自考2243-计算机软件基础(-)2007年版课后习题答案

第四章

一、简答题

1. 参考书上68页,69页,72页 2. 函数的返回值,函数的形参

3. 实参与形参之间是值传递的关系 二、填空题 1. 库 用户自定义 2. 3 3. gets() 4. strlen() 5. strcpy() 6. 全局 局部

7. 有返回值 无返回值 8. return 9. void 10. 前 11. 调用 三、改错

1. 表示不同的变量

2. 按照调用的先后顺序执行 3. 各自有自己的存储单元 4. 可以没有形参

5. 分配在动态存储区

6. 以该函数定义的返回值为准 7. 嵌套调用指函数调用函数 四、单选 1-5 BDACC 6-10 DAACC 11-13 BCC 五、程序分析题 1. j str[j-1]

2. 本题程序是错的,第五行,for(I = m + 1 ; i++)这里少东西,所以跳过 3. i < n x = fun(4) 4. 1: a = 1 , b = 1 2: a = 2 , b = 2 3: a = 3 , b= 3 六、编程题 1.

int fun(int year) {

if( year % 400 == 0|| (year % 4 == 0 && year % 100)) return 1 ; else return 0 ; }

2.

#include #include

void fun1(int a , int b , int c) {

float t = sqrt(b * b - 4 * a * c) ;

printf(\}

void fun2(int a , int b , int c) {

printf(\}

void fun3(int a , int b , int c) { printf(\该方程没有实根\}

int main(int argc , char *argv[]) { int a , b , c ;

scanf(\ if(b * b - 4 * a *c > 0) fun1(a , b , c) ;

else if(b * b - 4 * a * c == 0) fun2(a , b , c) ; else fun3(a , b , c) ; return 0 ; } 3.

#include #include

int fun(int a[] , int n) { int i , j = 0 ;

for(i = 1 ; i < n ; ++i) if(i % 3 == 0 && i % 7 == 0) a[j++] = i ; return j ; }

int main(int argc , char *argv[]) { int a[100] , n , m , i ;

}

scanf(\m = fun(a , n) ;

for(i = 0 ; i < m ; ++i) printf(\return 0 ;

第五章

一、简答

1. 不一定,这要看指针的类型,比如 int * p ,则p + 1 就增加两个字节 2. 定义指针时表示定义的变量是指针类型,引用指针时,表示指针指针指向的变量

3. p + n , p – n ,其中n是int类型 二、填空题 1. 地址 2. & * 3. 指针 4. *p 5. 1006 6. malloc 7. a+i *(a+i) 8. 3 9. ?b? ?\\0? 三、改错题

1. 只能存放同类型的变量的地址,比如int *只能存放int型变量的地址 2. 这个说法是正确的,没有错误

3. 不是,指的是指针所指向的变量的类型 4. 只能是同类型的指针或者&a这样的地址值 5. 是可以改变的 四、单选 1-5 CDDAA 6-10 BCDDD 五、程序分析题 1. *x t 2. r + b[u] *x 3. 10 4. CDG 5. 80,-20 6. 5 7. 55

1711717 六、编程题 1.

#include

int main(int argc , char *argv[]) { char s[100] ; int i ; gets(s) ;

for(i = 0 ; s[i] != '\\0' ; ++i) ; printf(\ return 0 ; } 2.

#include

int fun(char *s , char c) { int count = 0 ;

for( ; *s != '\\0' ; ++s) if(*s == c) ++count ; return count ; }

int main(int argc , char *argv[]) { char s[100] , c ; gets(s) ;

c = getchar() ;

printf(\ printf(\ return 0 ; } 3.

#include

int main(int argc , char *argv[]) { char s[100] ;

int i , n1 , n2 , n3 , n4 , n5 ;

n1 = n2 = n3 = n4 = n5 = 0 ; gets(s) ;

for(i = 0 ; s[i] != '\\0' ; ++i) { if(s[i] >= 'A' && s[i] <= 'Z') ++n1 ; else if(s[i] >= 'a' && s[i] <= 'z') ++n2 ; else if(' ' == s[i])

}

}

++n3 ;

else if(s[i] >= '0' && s[i] <= '9') ++n4 ; else ++n5 ;

printf(\大写字母:%d\\n\printf(\小写字母:%d\\n\printf(\空格:%d\\n\printf(\数字:%d\\n\

printf(\其他字符:%d\\n\return 0 ;

第六章

一、简答题 1

比如定义

struct Student {

char name[100] ; int age ; }stu ;

则stu.name , stu.age 即可引用结构体成员

2. 不是必须为所有的成员赋初值,因为语法上没有强制要求。 二、填空题

1. 21 &a[0] p->x a[1] 2. 1 3

3. “ab” “cd” 三、改错题 1. 可以同名 2. 可以含有 3. 不可以 四、单选题 BACBDD

五、程序分析题 1. Zhao 2. 10 x 3. 200 y 4、-> .

5、 36 40 20

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4