- 0
- 0
- 约5.99千字
- 约 13页
- 2026-01-31 发布于河南
- 举报
2026年C语言考试题库
第一部分单选题(50题)
1、以下哪个表达式可访问数组a的第i个元素(i从1开始)?()
A.a[i]
B.a[i-1]
C.*(a+i)
D.*(a+i-1)
【答案】:答案解析:数组下标从0开始,第i个元素对应下标i-1,a[i-1]正确,C、D是指针访问(对应下标i),故选B。
2、以下哪个转义字符表示制表符?()
A.\n
B.\t
C.\b
D.\r
【答案】:答案解析:\t是制表符(Tab),\n换行,\b退格,\r回车,故选B。
3、若intx=1;执行switch(x){case1:printf(1);break;case1:printf(2);break;}会出现什么情况?()
A.输出1
B.输出2
C.编译错误
D.运行错误
【答案】:答案解析:case后常量不能重复,编译时会报错,故选C。
4、以下if语句中,条件表达式正确的是?()
A.if(x=5)printf(yes);
B.if(x==5)printf(yes);
C.if(x=5;)printf(yes);
D.if(x==5;)printf(yes);
【答案】:答案解析:if条件需是判断表达式(==),A是赋值,C、D多加分号,故选B。
5、若int*p=(int)malloc(sizeof(int));则p的值是?()
A.0
B.随机值
C.1
D.无定义
【答案】:答案解析:malloc分配的内存未初始化,值为随机值,故选B。
6、表达式5324的结果是?()
A.0
B.1
C.真
D.假
【答案】:答案解析:53为真(1),24为真(1),逻辑与结果为1,故选B。
7、若inti=0,s=0;执行do{s+=i;i++;}while(i5);后s的值是?()
A.10
B.15
C.5
D.0
【答案】:答案解析:do-while累加0+1+2+3+4=10,s=10,故选A。
8、若inta=7,b=3;执行if(a%b==1)a=0;elseb=0;后a和b的值分别是?()
A.0,3
B.7,0
C.0,0
D.7,3
【答案】:答案解析:7%3=1,条件为真,a=0,b保持3,故选A。
9、若inta=3,b=4;则表达式ab++的值是?()
A.12
B.15
C.16
D.7
【答案】:答案解析:b++是后置自增,先参与运算(ab=3*4=12),再自增(b变为5),故选A。
10、若inti=1;执行do{printf(%d,i);i++;}while(i=3);输出结果是?()
A.123
B.1234
C.012
D.无输出
【答案】:答案解析:do-while先执行一次(输出1,i=2),再判断,共执行3次,输出123,故选A。
11、以下函数调用正确的是?()
A.fun(5);
B.fun(3,4);
C.fun(hello);
D.取决于函数定义
【答案】:答案解析:函数调用需匹配函数定义的参数类型和个数,A、B、C是否正确取决于函数定义,故选D。
12、以下关于函数参数的说法正确的是?()
A.形参是局部变量
B.实参是局部变量
C.形参在函数调用后释放
D.实参在函数调用后释放
【答案】:答案解析:形参是函数内局部变量(调用时分配内存,调用结束释放),实参是主调函数中的变量(生命周期与主调函数一致),故选A。
13、定义整型变量x、y并均赋值10的语句是?()
A.intx=y=10;
B.intx=10,y=10;
C.intx=10;y=10;
D.intx=10;inty=10;
【答案】:答案解析:同一行定义多个变量用逗号分隔,A不能连续赋值,C缺少int,D是两行定义,故选B。
14、以下函数声明中,返回类型为float的是?()
A.floatfun();
B.voidfun(floata);
C.intfun(floata);
D.charfun(floata);
【答案】:答案解析:A返回类型为float,B无返回值,C返回类型int,D返回类型char,故选A。
15、以下if语句中,赋值表达式作为条件的是?()
A.if(x==3)
B.if(x=3)
C.if(x3)
D.if(x!=3)
【答案】:答案解析:x=3是赋值表达式,结果为3(非0,真),其余是判断表达式,故选B。
16、以下if语句中,赋值语句和判断语句混淆的是?()
A.if(x==5)
B.if(x=5)
C.if(x!=5)
D.if(x5)
【答案】:答案解析:x=5是赋值(将5赋给x),x==5是判断(x是否等于5),B混淆了两者,故选B。
17、
原创力文档

文档评论(0)