- 0
- 0
- 约6.92千字
- 约 13页
- 2026-01-28 发布于山东
- 举报
大一c语言期末试题
第一部分单选题(50题)
1、以下关于空指针的定义正确的是?()
A.#defineNULL0
B.#defineNULL(void*)0
C.int*p=NULL;
D.以上都正确
【答案】:答案解析:A、B是NULL的常见定义,C是定义空指针,均正确,故选D。
2、若inta[5]={10,20,30,40,50},p=a+3;则p的值是?()
A.30
B.40
C.50
D.无定义
【答案】:答案解析:a+3指向a[3],*p=40,故选B。
3、若intx=5;则表达式++x的结果是?()
A.5
B.6
C.4
D.7
【答案】:答案解析:++x是前置自增,先自增(x变为6)再参与运算,结果为6,故选B。
4、若inti=0;执行for(;i5;){printf(%d,i);i++;}输出结果是?()
A.01234
B.12345
C.无限循环
D.无输出
【答案】:答案解析:for循环初始化和条件省略,循环体中i自增,执行5次,输出01234,故选A。
5、以下数组初始化正确的是?()
A.charstr[]=hello;
B.charstr[5]=hello;
C.charstr[]={h,e,l,l,o};
D.charstr[5]={h,e,l,l,o,\0};
【答案】:答案解析:A字符串自动加\0,B长度5不足以存hello(含\0共6个字符),C无\0(字符串不完整),D长度5超,故选A。
6、函数指针的作用是?()
A.存储函数的地址
B.调用函数
C.实现回调函数
D.以上都正确
【答案】:答案解析:函数指针存储函数地址,可通过指针调用函数,常用于回调函数,故选D。
7、若inta=7;执行if(a%3==1)printf(A);elseif(a%3==2)printf(B);elseprintf(C);输出结果是?()
A.A
B.B
C.C
D.无输出
【答案】:答案解析:7%3=1?7/3=2余1?不,7%3=1?7-3*2=1,条件1成立?哦7%3=1,应输出A?不对,7%3=1,第一个条件成立,输出A?重新计算:7÷3=2余1,a%3=1,执行第一个分支,输出A,故选A(原解析修正:之前误算,正确结果A)。
8、以下for循环的语法错误是?()
A.for(inti=0;i5;i++)printf(%d,i);
B.for(i=0;i5;i++)printf(%d,i);
C.for(;i5;i++)printf(%d,i);
D.for(i=0;;i++)printf(%d,i);
【答案】:答案解析:B中i未定义(需先声明inti;),A(C99标准允许循环内定义)、C(初始化省略)、D(条件省略,无限循环)语法均正确,故选B。
9、以下for循环的循环变量初始化表达式为“i=5”的是?()
A.for(i=0;i5;i++)
B.for(i=5;i0;i--)
C.for(i=2;i=5;i++)
D.for(i=5;i10;i+=2)
【答案】:答案解析:初始化表达式是for循环第一个部分,B中i=5符合,其余初始化非5,故选B。
10、若inti=0;执行do{i++;printf(%d,i);}while(i=2);输出结果是?()
A.123
B.012
C.12
D.无输出
【答案】:答案解析:do-while执行3次,i=1、2、3,输出123,故选A。
11、以下for循环中,循环变量更新表达式为“i-=2”的是?()
A.for(i=10;i0;i-=2)
B.for(i=0;i10;i+=2)
C.for(i=10;i0;i--)
D.for(i=0;i10;i=2)
【答案】:答案解析:i-=2等价于i=i-2,A的更新表达式正确,故选A。
12、若intx=4;执行switch(x){case2:printf(2);break;default:printf(0);case4:printf(4);break;}输出结果是?()
A.04
B.4
C.204
D.无输出
【答案】:答案解析:x=4匹配case4,执行输出4,break跳出,故选B。
13、continue语句在循环中的作用是?()
A.终止整个循环
B.跳过本次循环剩余部分,继续下一次
C.暂停循环
D.无作用
【答案】:答案解析:continue跳过本次循环剩余代码,直接进入下一次循环条件判断,故选B。
14、以下关于指针数组和数组指针的说法正确的是?()
A.指针数组是数组,元素为指针
B.数组指针是指针,指向数组
C.int*arr[5]是指针数组,int(
原创力文档

文档评论(0)