- 0
- 0
- 约6.37千字
- 约 13页
- 2026-01-31 发布于河南
- 举报
2026年清华c语言期末测试题
第一部分单选题(50题)
1、若charstr=hello;则str[1]的值是?()
A.h
B.e
C.l
D.\0
【答案】:答案解析:str是字符串首地址,str[1]等价于(str+1),值为e,故选B。
2、若intx=5;执行if(x3x7)printf(yes);elseprintf(no);输出结果是?()
A.yes
B.no
C.yesno
D.无输出
【答案】:答案解析:x=53且7,条件为真,输出yes,故选A。
3、函数返回值的类型由______决定?()
A.return语句中的表达式类型
B.函数定义时的返回类型
C.函数调用时的参数类型
D.编译器默认类型
【答案】:答案解析:函数返回类型在定义时指定,return表达式类型需与返回类型匹配(不匹配则强制转换),故选B。
4、函数调用时,实参的类型必须与形参的类型?()
A.完全一致
B.兼容(可自动转换)
C.无关
D.实参类型大于形参类型
【答案】:答案解析:实参和形参类型可兼容(如int→float),编译器自动转换,不兼容则编译错误,故选B。
5、若intx=3,y=5;执行if(xy)printf(x大);elseif(x==y)printf(相等);elseprintf(y大);输出结果是?()
A.x大
B.相等
C.y大
D.无输出
【答案】:答案解析:x=3y=5,执行else,输出y大,故选C。
6、以下哪个转义字符表示制表符?()
A.\n
B.\t
C.\b
D.\r
【答案】:答案解析:\t是制表符(Tab),\n换行,\b退格,\r回车,故选B。
7、以下关于指针数组和数组指针的说法正确的是?()
A.指针数组是数组,元素为指针
B.数组指针是指针,指向数组
C.int*arr[5]是指针数组,int(*arr)[5]是数组指针
D.以上都正确
【答案】:答案解析:A、B、C均准确区分了指针数组和数组指针,故选D。
8、以下函数调用正确的是?()
A.fun(5);
B.fun(3,4);
C.fun(hello);
D.取决于函数定义
【答案】:答案解析:函数调用需匹配函数定义的参数类型和个数,A、B、C是否正确取决于函数定义,故选D。
9、若inta[3]={1,2,3},p=a;则(p+2)的值是?()
A.1
B.2
C.3
D.无定义
【答案】:答案解析:p+2指向a[2],解引用*(p+2)=a[2]=3,故选C。
10、do-while循环的特点是?()
A.先判断条件,后执行循环体
B.先执行循环体,后判断条件
C.条件不满足时也不执行循环体
D.只能执行一次
【答案】:答案解析:do-while是“先执行后判断”,至少执行一次循环体,for和while是“先判断后执行”,故选B。
11、函数嵌套调用是指?()
A.函数调用自身
B.函数调用另一个函数
C.函数定义中包含另一个函数
D.多个函数互相调用
【答案】:答案解析:嵌套调用是函数A调用函数B,函数B调用函数C,递归是调用自身,故选B。
12、若charstr[]=Clanguage;则字符串长度是?()
A.10
B.11
C.12
D.13
【答案】:答案解析:字符串长度以\0结束,Clanguage含10个字符(不含\0),故选A。
13、函数的形参在______时分配内存?()
A.函数定义
B.函数声明
C.函数调用
D.程序编译
【答案】:答案解析:形参是局部变量,函数调用时分配内存,调用结束释放,故选C。
14、若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。
15、若inta=3;执行a+=aa;后a的值是?()
A.12
B.6
C.9
D.15
【答案】:答案解析:优先级先乘后加,a+=aa等价于a=a+(aa)=3+(33)=12,故选A。
16、若intx=9;执行以下代码后输出结果是?()if(x10)printf(A);elseif(x8)printf(B);elseif(x6)printf(C);elseprintf(D);
A.A
B.B
C.C
D.
【答案】:答案解析:x=98,执行第二个分支,输出B,故选B。
17、C语言程序编译的正确顺序是?()
A.预处理→编译→汇编→链接
B.编译→预处理→汇编→链接
C.预处理→汇编→编译→链接
D.链接→编译→
原创力文档

文档评论(0)