A.032 B.016 C.023 D.022
17.
下面对函数的叙述,不正确的是(
)
A.函数的返回值是通过函数中的 return 语句获得的
B.函数不能嵌套定义
C.一个函数中有且只有一个 return 语句
D.函数中没有 return 语句,并不是不带回值
18.
下面的叙述,不正确的是(
)
A.
宏名无类型,其参数也无类型
B.宏定义不是 C 语句,不必在行末加分号
C.宏替换只是字符替换
D.宏替换定义命令必须写在文件开头
19.有定义 int a[3][4],输入其 3 行 2
列元素的正确语句为(
)
A.scanf(“%d”,a[3,2]); B.scanf(“%d”,*(*(a+2)+1))
C.scanf(“%d”,*(a+2)+1); D.scanf(“%d”,*(a[2]+1));
20.
下面对指针变量的叙述,正确的是(
)
A.指针变量可以加上一个指针变量
B.可以把一个整形数赋给指针变量
C.指针变量的值可以赋给指针变量
D.指针变量不可以有空值,即该指针变量必须指向某一变量
二、程序改错题
(每小题 4 分,共 20 分)
(下列每小题只有一个错误,请改正。)
1.
str_space(char *str)/*统计字符串中空格数*/
{ int num=0;
char ch;
while((ch=*str++)!=’\0’)
if(ch=’’) num++;
return (num);
}
2.
main()
{ int a,b;
float x,y,z;
scanf(“%f%f%f”,&x,&y,&z);
a=b=x+y+z;
c=a+b;
printf(“%d%d%d”,a,b,c);
}
3.
#include “stdio.h”
main()
{ static int a[]={0*5};
int i=0,sum=0;
for(;i<5;i++) sum=sum+*(a+i)+i;
printf(“sum=%d”,sum);