- 0
- 0
- 约6.14千字
- 约 13页
- 2026-01-31 发布于山东
- 举报
2026年c语言考期末试题
第一部分单选题(50题)
1、以下关于函数的说法错误的是?()
A.函数可嵌套调用
B.函数可递归调用
C.函数可重定义
D.函数可声明多次
【答案】:答案解析:C函数名不能重定义(重复定义编译报错),A、B、D正确,故选C。
2、若inta[5]={1,2,3};则a[3]的值是?()
A.0
B.3
C.随机值
D.无定义
【答案】:答案解析:初始化时未赋值的元素默认为0,a[3]=0,故选A。
3、若intx=5;则表达式++x的结果是?()
A.5
B.6
C.4
D.7
【答案】:答案解析:++x是前置自增,先自增(x变为6)再参与运算,结果为6,故选B。
4、以下关于数组的说法正确的是?()
A.数组长度可动态修改
B.数组元素可不同类型
C.数组在内存中连续存储
D.数组名可作为左值赋值
【答案】:答案解析:A数组长度定义后固定,B元素必须同类型,D数组名是常量(不可赋值),C正确,故选C。
5、以下哪个关键字用于定义整型变量?()
A.char
B.int
C.float
D.double
【答案】:答案解析:int定义整型,char字符型,float单精度浮点型,double双精度浮点型,故选B。
6、若inti=5,s=0;执行while(i0){s+=i;i--;}后s的值是?()
A.15
B.10
C.5
D.0
【答案】:答案解析:累加5+4+3+2+1=15,s=15,故选A。
7、以下二维数组初始化正确的是?()
A.inta[2][3]={{1},{2},{3}};
B.inta[2][3]={1,2,3,4,5};
C.inta[2][3]={{1,2,3},{4,5,6}};
D.inta[2][3]={1,2,3,4,5,6,7};
【答案】:答案解析:A行数超2,B元素不足6个(补0),C标准初始化,D元素超6个,故选C。
8、若inta=7,*p=a;执行++*p;后a的值是?()
A.7
B.8
C.a
D.无定义
【答案】:答案解析:++*p等价于++(*p),先解引用取a的值,再加1(a=8),故选B。
9、以下函数定义中,参数为两个int类型的是?()
A.voidfun(inta,floatb){}
B.voidfun(inta,intb){}
C.voidfun(floata,intb){}
D.voidfun(inta,charb){}
【答案】:答案解析:B中两个参数均为int类型,其余选项参数类型不匹配,故选B。
10、break语句在循环中的作用是?()
A.跳过本次循环,继续下一次
B.终止整个循环
C.终止当前语句
D.无作用
【答案】:答案解析:break在循环中用于终止整个循环(跳出循环体),continue是跳过本次循环,故选B。
11、以下关于循环语句的说法错误的是?()
A.for循环三个表达式均可省略
B.while循环先判断后执行
C.do-while循环至少执行一次
D.continue可用于switch语句
【答案】:答案解析:continue仅用于循环语句,不能用于switch,A、B、C说法正确,故选D。
12、以下指针运算正确的是?()
A.inta=10,*p=a;p++;
B.inta=10,*p=a;p=a;
C.inta=10,*p=a;p=5;
D.inta=10,*p=a;*p=a;
【答案】:答案解析:A指针p自增(指向a的下一个地址),B不能将int值赋给指针,C不能取常量地址,D不能将地址赋给int变量,故选A。
13、若intx=10;则表达式x%3的结果是?()
A.1
B.2
C.3
D.0
【答案】:答案解析:%是取余运算符,10除以3商3余1,故选A。
14、以下函数定义错误的是?()
A.voidfun(){}
B.voidfun(inta){}
C.intfun(){}
D.intfun(){return;}
【答案】:答案解析:D返回类型int(必须return表达式),return无表达式错误,A、B、C正确,故选D。
15、若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。
16、以下关于函数递归的说法错误的是?()
A.必须有终止条件
B.可能导致栈溢出
C.效率比循环高
D.代码简洁
【答案】:答案解析:递归调用会创建栈帧,效率低于循环,A、B、D正确,C错误,故选C。
17、函数指针的作用是?()
原创力文档

文档评论(0)