第一题:是非题(共10分,每项1分)
1. 函数调用语句:func(rec1,rec2+rec3,(rec4,rec5);中,含有的实参个数是5。
    A. 对
    B. 错
2. C语言中“/ ”运算符的运算对象必须是整型。
    A. 对
    B. 错
3. 若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是2。
    A. 对
    B. 错
4. 设有数组定义: char array [ ]="China"; 则数组 array所占的空间为5.
    A. 对
    B. 错
5. 若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是 NULL。
    A. 对
    B. 错
6. 用do-while语句构成的循环,在while后的表达式为零时结束循环。
    A. 对
    B. 错
7. 有如下说明:int  a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则数值为9的表达式是 *(P+8)。
    A. 对
    B. 错
8. 在C程序中,可把整型数以二进制形式存放到文件中的函数是fprintf函数.
    A. 对
    B. 错
9. C语言的子程序有过程和函数两种。
    A. 对
    B. 错
10. C语言的函数可以嵌套定义。
    A. 对
    B. 错
第二题:单选题(共45分,每项1.5分)
11. 下面叙述中正确的是____。
    A.全局变量在定义它的文件中的任何地方都是有效的
    B.全局变量在程序的全部执行过程中一直占用内存单元
    C.同一文件中的变量不能重名
    D.使用全局变量有利于程序的模块化和可读性的提高
12. 设有说明:char w; int x; float y; double z; 则表达式w*x+z-y值的数据类型为________。
    A.float
    B.int
    C.char
    D.double
13. C程序的基本结构单位是____。
    A.文件
    B.语句
    C.函数
    D.表达式
14. 在以下一组运算符中,优先级最高的运算符是________。
    A)<=
    B)=
    C)%
    D)&&
15. 有整型变量x,单精度变量y=5.5,表达式:x=float(y*3+((int)y)%4)执行后,x的值为____。
    A. 17
    B. 17.5000
    C. 17.5
    D. 16
16. 有这样的定义float*p[4];则下面的叙述中正确的是____。
    A.此定义不正确,形如char*p[4];的定义才是正确的
    B.此定义正确,p是指向一维实型数组的指针变量,而不是指向单个实型变量的指针变量
    C.此定义不正确,C一语言中不允许类似的定义
    D.此定义正确,定义了一个指针数组
17. C语言的if语句中,用作判断的表达式为____。
    A.任意表达式
    B.逻辑表达式
    C.关系表达式
    D.算术表达式
18. 整型变量x=1,y=3,经下列计算后,x的值不等于6的是____。
    A. X=(x=1+2,x*2)
    B. X=y>2?6:5
    C. X=-9-(--y)-(--y)
    D. X=y*4.8/2
19. 能正确表示逻辑关系:" a≥10或a≤0 "的C语言表达式是________。
    A)a>=10 or a<=0
    B)a>=0 | a<=10
    C)a>=10 && a<=0
    D)a>=10 || a<=0
20. 下面说法中正确的是____。
    A.编写C程序时,应该控制嵌套循环的重数
    B.编写C程序时,变量名应尽可能简短
    C.编写C程序时,应多用goto语句,以增加效率
    D.编写C程序时,要尽可能的简洁而新颖,可理解性是第二位的
21. 下列说法中错误的是____。
    A.一个数组只允许存储同种类型的变量
    B.如果在对数组进行初始化时,给定的数据元素个数比数组元素个数少时,多余的数组元素会被自动初始化为最后一个给定元素的值
    C.数组的名称其实是数组在内存中的首地址
    D.当数组名作为参数被传递给某个函数时,原数组中的元素的值可能被修改
22. 已定义两个字符数组a,b,则以下正确的输入格式是________。
    A)get(a, b);
    B)scanf("%s%s", a, b);
    C)scanf("%s%s", &a, &b);
    D)gets("a"),gets("b");
23. 下面对typedef的叙述中不正确的是________。
    A)用typedef可以定义各种类型名,但不能用来定义变量
    B)用typedef可以增加新类型
    C)用typedef只是将已经存在的类型用一个新的标识符来代表
    D)使用typedef有利于程序的通用和移植
24. 下面叙述中正确的是____。
    A.调用函数时的实参只能是有确定值的变量结构体数组不能作为参数传递给函数
    B.return( )语句中的括号中,可以是变量,常量或有确定值的表达式
    C.C语言中,函数调用时实参变量和形参变量间的参数传递方式都不是值传递
    D.实参和形参若类型不匹配,编译时将报错
25. C语言的switch语句中case后____。
    A.只能为常量
    B.只能为常量或常量表达式
    C.可为常量或表达式或有确定值的变量及表达式
    D.可为任何量或表达式
26. 下面说法中错误的是____。
    A.结构体变量的地址和结构体变量的成员的地址均可以被引用
    B.两个相同类型的结构体变量可以相互整体赋值
    C.可以对结构体变量进行整体输入输出
    D.被定义为指向某结构体类型的变量的指针不能直接指向结构体中的某一成员
27. C语言函数的隐含存储类别是____。
    A.static
    B.auto
    C.register
    D.extern
28. 在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类型是________。
    A)extern
    B)register
    C)auto
    D)static
29. 下列叙述中正确的是____。
    A.将指向函数的指针作为函数的参数,虽然可以提高效率,但是容易造成混乱,所以不符合结构化程序设计的原则。
    B.数组名实际上是此数组的首地址,所以数组名相当于一个指针变量
    C.若定义数组a[2][3],则a+1和*(a+1)完全等价
    D.某函数的形参为一个数组,则调用此函数时只能将数组名作为对应的实参
30. C语言中,逻辑“真”等价于____。
    A.大于零的数
    B. 大于零的整数
    C. 非零的数
    D.非零的整数
31. 不合法的标识符是________。
    A.int_do
    B.do
    C._123
    D.a1
32. 下面说法中错误的是____。
    A.共用体变量的地址和它各成员的地址都是同一地址
    B.共用体内的成员可以是结构变量,反之亦然
    C.在任一时刻,共用体变量的各成员只有一个有效
    D.函数可以返回一个共用体变量
33. 将字符串s1赋给另一个字符串s2,可以采用的方法是____。
    A.strcat(s1,s2)
    B.strcpy(s1,s2)
    C.s1=s2
    D.strcpy(s2,s1)
34. ________是构成C语言程序的基本单位。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。