- 0
- 0
- 约6.46千字
- 约 13页
- 2026-01-31 发布于山东
- 举报
2026年C语言考试题
第一部分单选题(50题)
1、若inti=0,s=0;执行while(i=3){s+=i2;i++;}后s的值是?()
A.12
B.6
C.8
D.10
【答案】:答案解析:累加02+12+22+3*2=0+2+4+6=12,s=12,故选A。
2、若inti=0;执行while(i5){if(i==2)break;printf(%d,i);i++;}输出结果是?()
A.01
B.012
C.01234
D.无限循环
【答案】:答案解析:i=2时执行break,终止循环,输出01,故选A。
3、以下哪个是合法的字符常量?()
A.a
B.ab
C.a
D.a
【答案】:答案解析:字符常量用单引号包裹单个字符,A是字符串,B是两个字符(错误),D是标识符,故选C。
4、若inti=1;执行do{printf(%d,i);i++;}while(i=0);输出结果是?()
A.1
B.无输出
C.无限循环
D.12
【答案】:答案解析:do-while先执行一次(输出1,i=2),再判断i=0为假,循环结束,故选A。
5、指针作为函数返回值时,不能返回?()
A.静态局部变量的地址
B.全局变量的地址
C.动态分配内存的地址
D.局部变量的地址
【答案】:答案解析:局部变量在函数调用结束后释放,返回其地址会导致野指针,故选D。
6、若inta[3][2]={{1,2},{3,4},{5,6}};则a[2][1]的值是?()
A.5
B.6
C.3
D.4
【答案】:答案解析:a[2][1]是第三行第二列,值为6,故选B。
7、若inti=0,s=0;执行for(i=0;i4;i++)s+=i;后s的值是?()
A.6
B.10
C.4
D.0
【答案】:答案解析:累加0+1+2+3=6,s=6,故选A。
8、以下关于函数递归的说法错误的是?()
A.必须有终止条件
B.可能导致栈溢出
C.效率比循环高
D.代码简洁
【答案】:答案解析:递归调用会创建栈帧,效率低于循环,A、B、D正确,C错误,故选C。
9、以下函数声明错误的是?()
A.voidfun(int);
B.voidfun(inta);
C.voidfun(inta,intb);
D.voidfun(inta;intb);
【答案】:答案解析:函数声明中参数用逗号分隔,不能用分号,D语法错误,故选D。
10、以下函数定义错误的是?()
A.voidfun(){}
B.voidfun(inta){}
C.intfun(){}
D.intfun(){return;}
【答案】:答案解析:D返回类型int(必须return表达式),return无表达式错误,A、B、C正确,故选D。
11、以下if-else语句中,代码块正确的是?()
A.if(x0)printf(a);printf(b);elseprintf(c);
B.if(x0){printf(a);printf(b);}elseprintf(c);
C.if(x0)printf(a);{printf(b);}elseprintf(c);
D.if(x0)printf(a);printf(b);else{printf(c);}
【答案】:答案解析:else需与最近的if匹配,A、C、D中else前有独立printf,语法错误,B用{}包裹代码块正确,故选B。
12、若intx=2;执行switch(x){default:printf(0);case1:printf(1);break;case2:printf(2);case3:printf(3);}输出结果是?()
A.01
B.23
C.0123
D.无输出
【答案】:答案解析:x=2匹配case2,无break,穿透到case3,输出23,故选B。
13、若inta=5,*p=a;则*p的值是?()
A.5
B.a
C.p
D.无定义
【答案】:答案解析:*p等价于p,即a(a的地址),故选B。
14、以下数组初始化错误的是?()
A.inta[5]={0};
B.inta[]={1,2,3};
C.inta[5]={1,2,3};
D.inta[5]={1,2,3,4,5,6};
【答案】:答案解析:D初始化元素个数超数组长度(5),编译报错,A、B、C正确,故选D。
15、shortint类型的有符号取值范围是?()
A.0~65535
B.-32768~32767
C.-2147483648~2147483647
D.无固定范围
【答案】:答案解析:16位shortint有符号取值标准为-32768~32767,无
原创力文档

文档评论(0)