- 0
- 0
- 约6.04千字
- 约 13页
- 2026-01-27 发布于河南
- 举报
春考c语言考试题库
第一部分单选题(50题)
1、若charstr=abcde;则(str+4)的值是?()
A.d
B.e
C.\0
D.无定义
【答案】:答案解析:str+4指向第5个字符,值为e,故选B。
2、若inti=0;执行for(;;){if(i==4)break;printf(%d,i);i++;}输出结果是?()
A.0123
B.01234
C.无限循环
D.无输出
【答案】:答案解析:for(;;)是无限循环,i=4时break,输出0123,故选A。
3、以下函数无返回值的是?()
A.intfun(){return0;}
B.voidfun(){printf(hello);}
C.floatfun(){return3.14;}
D.charfun(){returnb;}
【答案】:答案解析:void类型函数无返回值,A、C、D均有返回值,故选B。
4、以下关于指针的说法正确的是?()
A.野指针是指向无效地址的指针
B.空指针是野指针的一种
C.避免野指针需初始化并及时置空
D.以上都正确
【答案】:答案解析:A、B、C均是野指针的核心知识点,故选D。
5、指针作为函数返回值时,不能返回?()
A.静态局部变量的地址
B.全局变量的地址
C.动态分配内存的地址
D.局部变量的地址
【答案】:答案解析:局部变量在函数调用结束后释放,返回其地址会导致野指针,故选D。
6、若inta[4]={10,20,30,40};则*(a+2)的值是?()
A.20
B.30
C.40
D.10
【答案】:答案解析:a+2是第三个元素地址,*(a+2)=a[2]=30,故选B。
7、若inta[4]={1,2,3,4},p=a;执行p++后,*p的值是?()
A.1
B.2
C.3
D.4
【答案】:答案解析:*p++先解引用(值为1),再p自增(指向a[1]),*p=2,故选B。
8、若charstr[10];执行strcpy(str,hello);后str的长度是?()
A.5
B.6
C.10
D.不确定
【答案】:答案解析:strcpy复制字符串hello(含\0),长度为5(不含\0),故选A。
9、while循环的语法格式正确的是?()
A.while(条件)语句;
B.while条件语句;
C.while(条件);语句;
D.while(条件){语句}
【答案】:答案解析:while后条件需加括号,语句可是单条(加分号)或代码块(用{}),D缺少分号,故选A。
10、函数参数传递中,地址传递的特点是?()
A.形参是实参的副本
B.形参修改不影响实参
C.传递的是变量地址
D.用于简单变量传参
【答案】:答案解析:地址传递(指针)传递变量地址,形参通过地址修改实参值,值传递是副本,故选C。
11、以下指针的算术运算中,单位是?()
A.1字节
B.指针指向类型的大小
C.4字节
D.8字节
【答案】:答案解析:指针算术运算(如p++)偏移量是指向类型的大小(如int指针+1偏移4字节),故选B。
12、break语句不能用于以下哪种结构?()
A.for循环
B.while循环
C.do-while循环
D.if语句
【答案】:答案解析:break可用于循环(for/while/do-while)和switch语句,不能用于if语句,故选D。
13、do-while循环中,循环体至少执行几次?()
A.0次
B.1次
C.2次
D.不确定
【答案】:答案解析:do-while“先执行后判断”,无论条件是否满足,循环体至少执行一次,故选B。
14、若inti=3;执行do{printf(%d,i);i--;}while(i=1);输出结果是?()
A.321
B.123
C.3210
D.无输出
【答案】:答案解析:do-while先执行,i从3减到1,输出321,故选A。
15、以下哪个是NULL指针?()
A.void*p=0;
B.int*p=NULL;
C.charp=(char)0;
D.以上都正确
【答案】:答案解析:NULL指针是不指向任何有效地址的指针,三种写法均正确,故选D。
16、以下switch语句中,case穿透的情况是?()
A.case后加break
B.case后不加break
C.有default
D.无default
【答案】:答案解析:case后不加break会继续执行下一个case的代码(穿透),加break则跳出,故选B。
17、若inti=1;执行do{printf(%d,i);i++;}while(i=3);输出结果是?()
A
原创力文档

文档评论(0)