- 0
- 0
- 约6.37千字
- 约 13页
- 2026-01-27 发布于山东
- 举报
清华c语言期末测试题
第一部分单选题(50题)
1、若inta=3,b=5;执行以下代码后输出结果是?()if(ab)printf(A);elseprintf(B);
A.A
B.B
C.AB
D.无输出
【答案】:答案解析:a=3b=5,条件为假,执行else分支,输出B,故选B。
2、以下关于指针数组的定义正确的是?()
A.int*arr[5];
B.int(*arr)[5];
C.intarr[5];
D.intarr[];
【答案】:答案解析:A是指针数组(5个int指针),B是指向数组的指针,C是普通数组,D缺少长度,故选A。
3、若inta[4]={1,2,3,4};则*(a+1)的值是?()
A.1
B.2
C.3
D.4
【答案】:答案解析:a是首地址,a+1是第二个元素地址,*(a+1)=a[1]=2,故选B。
4、以下关于函数参数的说法正确的是?()
A.形参是函数定义时的变量
B.实参是函数调用时的变量/常量
C.形参和实参类型需匹配
D.以上都正确
【答案】:答案解析:A、B、C均是函数参数的基本规则,故选D。
5、以下数组定义错误的是?()
A.inta[0];
B.inta[5];
C.inta[]={1,2,3};
D.inta[5]={1,2,3};
【答案】:答案解析:数组长度不能为0,编译报错,其余正确,故选A。
6、若inti=0;执行for(;i5;){printf(%d,i);i++;}输出结果是?()
A.01234
B.12345
C.无限循环
D.无输出
【答案】:答案解析:for循环初始化和条件省略,循环体中i自增,执行5次,输出01234,故选A。
7、若intx=2;执行switch(x){case1:printf(a);case2:printf(b);case3:printf(c);}输出结果是?()
A.b
B.bc
C.abc
D.无输出
【答案】:答案解析:x=2匹配case2,无break,穿透到case3,输出bc,故选B。
8、若inta[4]={1,2,3,4};则a[3]的值是?()
A.3
B.4
C.1
D.2
【答案】:答案解析:a[3]是第四个元素,值为4,故选B。
9、函数参数传递中,地址传递的特点是?()
A.形参是实参的副本
B.形参修改不影响实参
C.传递的是变量地址
D.用于简单变量传参
【答案】:答案解析:地址传递(指针)传递变量地址,形参通过地址修改实参值,值传递是副本,故选C。
10、若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。
11、以下函数调用正确的是?()
A.fun(5);
B.fun(3,4);
C.fun(hello);
D.取决于函数定义
【答案】:答案解析:函数调用需匹配函数定义的参数类型和个数,A、B、C是否正确取决于函数定义,故选D。
12、以下字符串数组定义正确的是?()
A.charstr[5][10]={hello,world};
B.charstr[5][]={hello,world};
C.charstr[][10]={hello,world,!};
D.charstr[5][10]={hello,world,!};
【答案】:答案解析:B第二维不能省略,A、C、D均正确?D最完整(5行10列,初始化3个字符串),故选D。
13、下列字符串常量定义正确的是?()
A.abc
B.abc
C.abc
D.ab
【答案】:答案解析:字符串常量用双引号包裹,单引号用于字符常量,C是标识符,D语法错误,故选B。
14、以下哪个是NULL指针?()
A.void*p=0;
B.int*p=NULL;
C.charp=(char)0;
D.以上都正确
【答案】:答案解析:NULL指针是不指向任何有效地址的指针,三种写法均正确,故选D。
15、指针作为函数参数时,传递的是?()
A.指针的值
B.指针的地址
C.变量的值
D.变量的地址
【答案】:答案解析:指针传参本质是传递变量地址,函数中通过指针可修改实参值,故选D。
16、函数定义在main函数之后时,必须先?()
A.调用函数
B.声明函数
C.定义函数
D.无要求
【答案】:答案解析:main函数调用其他函数时,若函数定义在main之后,需先声明(否则编译器找不到函数),故选B。
17、若int
原创力文档

文档评论(0)