一、单选题(共 40 道试题,共 80 分。)V 1. 下面4个选项中,均是不合法的用户标识符的选项是( )A. A P_0 do
B. float a0 _A
C. b-a 123 int
D. _123 temp INT
正确答案:
2. 已知p,p1为指针变量,a为数组名,i为整型变量,下列赋值语句中不正确的是( )A. p=&i
B. p=p1
C. p=&a[i]
D. p=10
正确答案:
3. struct person {char name[9]; int age;}; struct person class[10]={"John",17,"Paul",19,"Mary"18,"adam",16}; 根据上面的定义,能打印出字母M的语句是( )。A. printf("%c
",class[3].name);
B. printf("%c
",class[3].name[1]);
C. printf("%c
",class[2].name[1]);
D. printf("%c
",class[2].name[0])
正确答案:
4. 若有以下定义语句 union data {int l; char c; float f;}a; int n;则以下语句正确的是( )A. a=5;
B. a={2,'a',1.2};
C. printf("%d
",a.l);
D. n=a;
正确答案:
5. 若以”a+”方式打开一个已存在的文件,则以下叙述正确的是( )。A. 文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作。
B. 文件打开时,原有文件内容被删除,位置指针移到文件开头,可作重新写和读操作。
C. 文件打开时,原有文件内容被删除,只可作写操作。
D. 以上各种说法皆不下确。
正确答案:
6. 已知字母A的ASCII码为十进制数65,且定义c2为字符型变量,则执行语句c2='A'+'6'-'3';后,c2中的值为( )A. D
B. 68
C. 不确定的值
D. C
正确答案:
7. 若已有定义int x=2; int *p=&x;则*p的值为( )A. 2
B. &x
C. *x
D. &p
正确答案:
8. 关于return语句,下列说法正确的是( )。A. 不能在主函数中出现
B. 必须在每个函数中出现
C. 可以在同一个函数中出现多次
D. 只能在除主函数之外的函数中再出现一次
正确答案:
9. C语言的函数中,( )。A. 必须有形参
B. 形参必须是变量名
C. 可以有也可以没有形参
D. 数组名不能作形参
正确答案:
10. 设有如下程序 # include main() { char ch1='A',ch2='a'; printf("%c
",(ch1,ch2)); } 则下列叙述正确的为( )A. 程序的输出结果为大写字母A
B. 程序的输出结果为小写字母a
C. 运行时产生错误信息
D. 格式说明符的个数少于输出项的个数,编译出错
正确答案:
11. 以下叙述中错误的是:A. 局部变量的定义可以在函数体内部
B. 全局变量的定义可以在函数以外的任何位置
C. 同一程序中,全局变量和局部变量不能同名
D. 函数的形参属于局部变量
正确答案:
12. 下面4个选项中,均是C语言关键字的选项是( )。A. auto enum include
B. switch typedef continue
C. signed union scanf
D. if struct type
正确答案:
13. 下列哪个是字符写函数( )。A. fgetc
B. fputc
C. fgets
D. fwrite
正确答案:
14. fscanf函数的正确调用形式是( )。A. fscanf(文件指针,格式字符串,输出表列)
B. fscanf(格式字符串,输出表列, fp)
C. fscanf(格式字符串,文件指针,输出表列)
D. fscanf(文件指针,格式字符串,输入表列)
正确答案:
15. 一个源程序文件由一个或多个什么组成( )A. 语句
B. 函数
C. 程序块
D. 子程序
正确答案:
16. C语言结构体类型变量在程序执行期间( )。A. 所有成员一直驻留在内存中
B. 只有一个成员驻留在内存中
C. 部分成员驻留在内存中
D. 没有成员驻留在内存中
正确答案:
17. main() {int x=2,y=-1,z=2; if(x",z); } 以上程序的输出结果为( )。A. 3
B. 2
C. 1
D. 0
正确答案:
18. 当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是A. k%2
B. k%2==0
C. (k%2)!=0
D. !(k%2==0)
正确答案:
19. int k=1; while (k<=10); 上述语句执行后,变量k的值是( )。A. 10
B. 11
C. 9
D. 无限循环,值不定
正确答案:
20. 若有定义char str[]= “very good”,则str的长度为( )A. 8
B. 9
C. 10
D. 11
正确答案:
21. 数组名作为实参传递给形参时,数组名被处理为( )A. 该数组的长度
B. 该数组的元素个数
C. 该数组的首地址
D. 该数组中各元素的值
正确答案:
22. x=-1; do { x=x*x; } while (x); 以上程序段( )A. 是死循环
B. 循环执行2次
C. 循环执行1次
D. 有语法错误
正确答案:
23. 下列哪个是读写文件出错检测函数( )。A. ferror
B. clearerr
C. feof
D. fwrite
正确答案:
24. fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式必须是( )A. 只写
B. 追加
C. 读或读写
D. 答案B和C都正确
正确答案:
25. 已知学生记录描述为 struct student {int no; char name[20]; char sex; struct {int year; int month; int day;}birth;}; struct student s; 设变量s中的“生日”应该是“1984年11月11日”,下列对“生日”的正确赋值方式是( )。A. year=1984; month=11; day=11;
B. birth.year=1984; birth.month=11; birth.day=11;
C. s.year=1984; s.month=11; s.day=11;
D. s.birth.year=1984; s.birth.month=11; s.birth.day=11;
正确答案:
26. 当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是A. k%2
B. k%2==0
C. (k%2)!=0
D. !(k%2==0)
正确答案:
27. 变量的指针,其含义是指该变量的( )A. 地址
B. 值
C. 名字
D. 标识
正确答案:
28. putchar函数可以向终端输出一个:A. 整型变量表达式值
B. 实型变量值
C. 字符串
D. 字符或字符型变量值
正确答案:
29. 以下不正确的叙述是( )A. 在C程序中,逗号运算符的优先级最低
B. 在C程序中,APH和aph是两个不同的变量
C. 若a和b类型相同