- 0
- 0
- 约6.39千字
- 约 13页
- 2026-01-27 发布于河南
- 举报
清华c语言期末测试题
第一部分单选题(50题)
1、若inta=4,b=6;则表达式ab?a+b:a-b的结果是?()
A.10
B.-2
C.4
D.6
【答案】:答案解析:ab为真,取a+b=4+6=10,故选A。
2、若intx=6;执行以下代码后输出结果是?()if(x5){printf(A);}elseif(x8){printf(B);}else{printf(C);}
A.A
B.B
C.C
D.无输出
【答案】:答案解析:x=68,执行第二个分支,输出B,故选B。
3、以下关于函数的说法正确的是?()
A.函数必须有返回值
B.函数可嵌套定义
C.函数可递归调用
D.函数名可重定义
【答案】:答案解析:A函数可无返回值(void),B不能嵌套定义(可嵌套调用),D函数名不能重定义,C递归调用正确,故选C。
4、若intx=1;执行switch(x){case1:printf(1);case2:printf(2);break;case3:printf(3);}输出结果是?()
A.1
B.12
C.123
D.无输出
【答案】:答案解析:x=1匹配case1,无break,穿透到case2(执行后break),输出12,故选B。
5、若intx=4;执行if(x++4)printf(A);elseprintf(B);输出结果是?()
A.A
B.B
C.AB
D.无输出
【答案】:答案解析:x++是后置自增,条件判断时x=4,44为假,执行else(输出B),后x变为5,故选B。
6、若inti=0;执行do{printf(%d,i);i++;}while(i0);输出结果是?()
A.0
B.无输出
C.无限循环
D.01
【答案】:答案解析:do-while先执行一次(输出0,i=1),判断i0为假,循环结束,故选A。
7、以下哪个不是C语言的关键字?()
A.if
B.else
C.then
D.for
【答案】:答案解析:then不是C语言关键字,if(条件)、else(否则)、for(循环)均是,故选C。
8、若intx=3;执行以下代码后a的值是?()inta;if(x5)a=10;elseif(x2)a=20;elsea=30;
A.10
B.20
C.30
D.无定义
【答案】:答案解析:x=32,执行第二个分支,a=20,故选B。
9、以下二维数组初始化正确的是?()
A.inta[2][3]={{1},{2},{3}};
B.inta[2][3]={1,2,3,4,5};
C.inta[2][3]={{1,2,3},{4,5,6}};
D.inta[2][3]={1,2,3,4,5,6,7};
【答案】:答案解析:A行数超2,B元素不足6个(补0),C标准初始化,D元素超6个,故选C。
10、若inti=1,s=0;执行while(i=5){s+=i;i++;}后s的值是?()
A.15
B.10
C.5
D.0
【答案】:答案解析:循环累加1+2+3+4+5=15,s=15,故选A。
11、数组作为函数参数时,函数形参不能是?()
A.inta[]
B.int*a
C.inta[5]
D.inta
【答案】:答案解析:D中inta是普通变量,不能接收数组名(地址),A、B、C均可作为数组形参,故选D。
12、shortint类型的有符号取值范围是?()
A.0~65535
B.-32768~32767
C.-2147483648~2147483647
D.无固定范围
【答案】:答案解析:16位shortint有符号取值标准为-32768~32767,无符号为0~65535,故选B。
13、若inti=0;执行for(i=1;i=5;i++){if(i%3==0)continue;printf(%d,i);}输出结果是?()
A.1245
B.12345
C.3
D.无输出
【答案】:答案解析:i=3时continue,跳过printf,输出1、2、4、5,故选A。
14、以下数组定义中,正确的是?()
A.inta[5];
B.inta[5]={1,2,3,4,5};
C.inta[]={1,2,3,4,5};
D.以上都是
【答案】:答案解析:A、B、C均符合数组定义规则,故选D。
15、指针变量的大小取决于?()
A.指向变量的类型
B.编译器和系统(32位4字节,64位8字节)
C.指针变量的名称
D.变量的值
【答案】:答案解析:指针大小与指向类型无关,取决于系统位数(32位4B,64位8B),故选B。
16、以下哪个关键字用于定义整型变量?()
A.cha
原创力文档

文档评论(0)