- 0
- 0
- 约6.24千字
- 约 13页
- 2026-01-31 发布于山东
- 举报
2026年c语言编程期末测试题
第一部分单选题(50题)
1、若inta=2;执行a*=a+3;后a的值是?()
A.7
B.10
C.14
D.5
【答案】:答案解析:a*=a+3等价于a=a*(a+3)=2*(2+3)=10,故选B。
2、若inta=10,*p=a;则sizeof(p)的值是?()
A.4
B.8
C.取决于系统
D.10
【答案】:答案解析:sizeof(p)是指针大小,32位系统4字节,64位8字节,故选C。
3、若inti=1;执行while(i=4){printf(%d,i);i+=3;}输出结果是?()
A.14
B.1234
C.1
D.无输出
【答案】:答案解析:i初始1,加3后4,执行2次,输出14,故选A。
4、若inti=0;执行do{printf(%d,i);i++;}while(i0);输出结果是?()
A.0
B.无输出
C.无限循环
D.01
【答案】:答案解析:do-while先执行一次(输出0,i=1),判断i0为假,循环结束,故选A。
5、函数调用的一般格式是?()
A.函数名(实参列表);
B.函数名实参列表;
C.返回类型函数名(实参列表);
D.函数名=实参列表;
【答案】:答案解析:函数调用格式为“函数名(实参列表);”,实参与形参匹配,故选A。
6、若inta[4]={10,20,30,40};则a+1表示?()
A.10的地址
B.20的地址
C.30的地址
D.40的地址
【答案】:答案解析:a是首地址(a[0]=10),a+1是a[1](20)的地址,故选B。
7、以下哪个不是C语言的关键字?()
A.if
B.else
C.then
D.for
【答案】:答案解析:then不是C语言关键字,if(条件)、else(否则)、for(循环)均是,故选C。
8、以下if语句语法正确的是?()
A.if(x0)printf(yes);
B.ifx0printf(yes);
C.if(x0);printf(yes);
D.if(x0){printf(yes)}
【答案】:答案解析:if后条件需加括号,B缺少括号,C分号导致语句结束,D缺少分号,故选A。
9、C语言中,注释的正确写法是?()
A.//单行注释
B./*多行注释/
C.--注释
D.A和B
【答案】:答案解析:C语言支持//单行注释和/...*/多行注释,--不是注释符号,故选D。
10、以下数组定义错误的是?()
A.inta[0];
B.inta[5];
C.inta[]={1,2,3};
D.inta[5]={1,2,3};
【答案】:答案解析:数组长度不能为0,编译报错,其余正确,故选A。
11、以下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。
12、函数定义和函数声明的区别是?()
A.定义包含函数体,声明不包含
B.声明包含函数体,定义不包含
C.定义和声明无区别
D.定义在程序开头,声明在结尾
【答案】:答案解析:函数定义是完整实现(含函数体),声明是告诉编译器函数名、参数、返回类型(不含函数体),故选A。
13、以下switch语句中,case穿透的情况是?()
A.case后加break
B.case后不加break
C.有default
D.无default
【答案】:答案解析:case后不加break会继续执行下一个case的代码(穿透),加break则跳出,故选B。
14、以下关于return语句的说法正确的是?()
A.函数中可有多条return语句
B.函数中必须有return语句
C.return语句必须在函数末尾
D.return语句只能返回一个值
【答案】:答案解析:A函数中可有多条return(如条件判断后返回),Bvoid函数可无return,Creturn可在任意位置,Dreturn只能返回一个值(返回多个值需用指针/数组),故选A。
15、转义字符\0的作用是?()
A.表示空格
B.表示制表符
C.字符串结束标志
D.换行
【答案】:答案解析:\0ASCII码为0,是字符串默认结束标志,不计入长度,故选C。
16、函数中局部变量的作用域是?()
A.整个程序
B.函数内部
C.函数外部
D.所有函数
【答案】:答案解析:局部变量定义在函数内,仅在函数内部有效,故选B。
17、
原创力文档

文档评论(0)