- 0
- 0
- 约6.36千字
- 约 13页
- 2026-01-27 发布于山东
- 举报
春考c语言考试题库
第一部分单选题(50题)
1、函数嵌套调用是指?()
A.函数调用自身
B.函数调用另一个函数
C.函数定义中包含另一个函数
D.多个函数互相调用
【答案】:答案解析:嵌套调用是函数A调用函数B,函数B调用函数C,递归是调用自身,故选B。
2、continue语句只能用于以下哪种结构?()
A.循环语句
B.switch语句
C.if语句
D.所有结构
【答案】:答案解析:continue仅用于循环语句(for/while/do-while),用于跳过本次循环,故选A。
3、以下数组定义错误的是?()
A.inta[0];
B.inta[5];
C.inta[]={1,2,3};
D.inta[5]={1,2,3};
【答案】:答案解析:数组长度不能为0,编译报错,其余正确,故选A。
4、shortint类型的有符号取值范围是?()
A.0~65535
B.-32768~32767
C.-2147483648~2147483647
D.无固定范围
【答案】:答案解析:16位shortint有符号取值标准为-32768~32767,无符号为0~65535,故选B。
5、以下if语句中,逻辑运算符使用正确的是?()
A.if(x3x7)
B.if(x3x7)
C.if(x3|||x7)
D.if(x3||x7)
【答案】:答案解析:逻辑与用,逻辑或用||,B是按位与,C多写||,D逻辑错误(x3或x7恒为真),故选A。
6、以下循环语句中,语法正确的是?()
A.while(i5){printf(%d,i);i++;}
B.while(i5)printf(%d,i);i++;
C.do{printf(%d,i);i++;}while(i5)
D.for(i=0;i5)printf(%d,i);
【答案】:答案解析:B中i++在循环体外(循环无限),C缺少分号,D缺少更新表达式,A语法正确,故选A。
7、以下关于指针数组和数组指针的说法正确的是?()
A.指针数组是数组,元素为指针
B.数组指针是指针,指向数组
C.int*arr[5]是指针数组,int(*arr)[5]是数组指针
D.以上都正确
【答案】:答案解析:A、B、C均准确区分了指针数组和数组指针,故选D。
8、若intx=5;则表达式++x的结果是?()
A.5
B.6
C.4
D.7
【答案】:答案解析:++x是前置自增,先自增(x变为6)再参与运算,结果为6,故选B。
9、以下关于二维数组的说法正确的是?()
A.二维数组是数组的数组
B.二维数组元素在内存中按列存储
C.二维数组长度必须是常量
D.二维数组不能作为函数参数
【答案】:答案解析:二维数组本质是数组的数组,内存按行存储,可作为函数参数,长度需常量,故选A。
10、若inta[3][3]={{1,2,3},{4,5,6},{7,8,9}},(p)[3]=a;则((p+1)+2)的值是?()
A.5
B.6
C.8
D.9
【答案】:答案解析:p是指向3列数组的指针,p+1指向第二行,(p+1)+2指向第二行第三列,值为6,故选B。
11、以下关于函数递归的说法错误的是?()
A.必须有终止条件
B.可能导致栈溢出
C.效率比循环高
D.代码简洁
【答案】:答案解析:递归调用会创建栈帧,效率低于循环,A、B、D正确,C错误,故选C。
12、若inti=1;执行while(i=3){printf(%d,i);i++;}输出结果是?()
A.123
B.1234
C.012
D.无输出
【答案】:答案解析:i初始1,满足i=3,执行3次,输出123,i最终4,循环结束,故选A。
13、若charstr[10]=abcde;则str[5]的值是?()
A.e
B.\0
C.随机值
D.无定义
【答案】:答案解析:字符串自动在末尾加\0,str[5]是\0,故选B。
14、函数参数为数组时,形参的写法错误的是?()
A.inta[]
B.int*a
C.inta[5]
D.inta
【答案】:答案解析:D中inta是普通变量,不能接收数组名(地址),A、B、C均正确,故选D。
15、递归函数的终止条件是?()
A.函数调用自身
B.函数返回值为0
C.不再调用自身的条件
D.无终止条件
【答案】:答案解析:递归函数必须有终止条件(否则无限递归栈溢出),终止条件是不再调用自身的判断,故选C。
16、若inta[3][3]={{1,2},{3,4},{5,6}};则a[1][1]的值是?()
A.2
B.4
C.5
D.6
【答案】:答案解析:a[1][1]是第二行第二
原创力文档

文档评论(0)