单选题
1.有如下程序, 该程序的输出的结果是( )int addc(int a,int b,int c) { c=a+b;return(c); } main() { int x=4,y=2,z,r;
z=x+y;r=addc(addc(x,y,z),addc(y,z,x),z);printf(\
A.36 B.12 C.14 D.6
答案: C
2.以下只有在使用时才为该类型变量分配内存的存储类说明是()。
A.auto和static B.auto和register C.register和static D.extern和register 答案: B
3.以下正确的说法是:在C语言中()。
A.实参和与其对应的形参各占用独立的存储单元 B.实参和与其对应的形参共占用一个存储单元
C.只有当实参和与其对应的形参同名时才共占用存储单元 D.形参是虚拟的,不占用存储单元 答案: A
4.算法的空间复杂度是指( )
A.算法程序的长度
B.算法程序中的指令条数 C.算法程序所占的存储空间 D.执行过程中所需要的存储空间 答案: D
5.在C语言中,能代表逻辑值“真”的是()。
A.True
B.大于0的数 C.非0整数 D.非0的数 答案: D
6.C语言中的文件类型只有()。
A.索引文件和文本文件两种 B.ASCII文件和二进制文件两种 C.文本文件一种 D.二进制文件一种 答案: B
7.变量的指针,其含义是指该变量的()。
A.值 B.地址 C.名
D.一个标志 答案: B
8.以下程序的运行结果是()。main(){int
i=1,sum=0;while(i<10)sum=sum+1;i++;printf(\);}
A.i=10,sum=9 B.i=9,sum=9 C.i=2,sum=1 D.运行出现错误 答案: D
9.关于数组,下列说法错误的是( )
A.在任何一个数组中,数组元素的类型都是一致的 B.<常量表达式>不允许是变量
C.一维数组中的各个元素在内存中是按顺序存放的
D.C语言运行时要检查数组的边界,即下标值超界时,系统会报错 答案: D
10.以下说法错误的是( )
A.int (*p)( ) ; 表示p被定义为一个指向返回值为整数的函数的指针 B.使用指向函数的指针是结构化程序设计的一种有效手段。 C.char **p相当于char *(*p)
D.指针数组的元素补仅能存放地址,还可以存放其他数组的元素。 答案: D
11.( )是用来描述对象的属性和行为的
A.实体 B.类 C.对象 D.现象 答案: B
12.关于return语句,下面说法错误的是( )
A.它的功能是将表达式的值作为函数的返回值返回
B.函数中可以有多个return语句,执行到哪个就从那一个return语句返回 C.return可以返回多个值
D.return(表达式)语句中的表达式值的类型应与定义函数时函数的类型一致 答案: C
13.以下不能正确定义二维数组的选项是( )
A.int a[2][2]={{1},{2}}; B.inta[][2]={1,2,3,4}; C.int a[2][2]={{1},2,3}; D.int a[2][]={{1,2},{3,4}}; 答案: D
14.若用数组名作为函数的实参,传递给形参的是()。
A.数组的首地址
B.数组第一个元素的值 C.数组中全部元素的值 D.数组元素的个数 答案: A
15.有以下程序
int *f(int *x,int *y) { if(*x<*y) return x; else
return y; } main()
{ int a=7,b=8,*p,*q,*r}; 执行后输出结果是
A.7,8,8 B.7,8,7 C.8,7,7 D.8,7,8 答案: B
16.若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是( )
A.p=2*(int*)malloc(sizeof(int)); B.p=(int*)malloc(2*sizeof(int)); C.p=(int*)malloc(2*2);
D.p=(int*)calloc(2,sizeof(int)); 答案: A
17.下列四个选项中,均是C语言关键字的选项是()。
A.auto、enum、include
B.switch、typedef、continue C.signed、union、scanf D.if、struct、type 答案: B
18.设:int a = 4, b = 5; 则表达式 8>4-!0||2&&5>4 的结果为( )
A.0 B.1 C.-1
D.无法计算 答案: B
19.下列程序的输出结果是()。main(){char c1=97,c2=98;printf(\
A.9798 B.97b C.a98 D.ab 答案: B
20.关于链表的插入和删除,下列说法错误的是( )
A.插入位置包括表头、表中和表尾
B.从链表中删除一个结点,就是把它从内存中抹掉。 C.要删除链表中的某个结点,需自己定义删除函数。 D.删除结点要注意删除的结点是否是头结点 答案: B
21.若已定义:
int a[]={0,1,2,3,4,5,6,7,8,9}, *p=a,i;
其中 0≤i≤9, 则对a数组元素不正确的引用是( )
A.a[p-a] B.*(&a[i]) C.p[i] D.a[10] 答案: D
22.下列标识符中,不合法的C语言用户自定义标识符是()。