- 0
- 0
- 约6.26千字
- 约 13页
- 2026-01-30 发布于河南
- 举报
c语言竞赛测试题
第一部分单选题(50题)
1、若inti=0;执行while(1){printf(%d,i);i++;if(i==3)break;}输出结果是?()
A.012
B.0123
C.无限循环
D.无输出
【答案】:答案解析:while(1)无限循环,i=3时break,输出012,故选A。
2、以下关于指针数组的定义正确的是?()
A.int*arr[5];
B.int(*arr)[5];
C.intarr[5];
D.intarr[];
【答案】:答案解析:A是指针数组(5个int指针),B是指向数组的指针,C是普通数组,D缺少长度,故选A。
3、以下switch语句语法正确的是?()
A.switch(x){case1:printf(1);break;case2:printf(2);}
B.switch(x){case1:printf(1);case2:printf(2);break;}
C.switch(x){case1:printf(1);break;default:printf(0);}
D.以上都正确
【答案】:答案解析:switch语句case后可加break(跳出)或不加(穿透),default可选,A、B、C语法均正确,故选D。
4、若inti=0;执行for(;i5;){printf(%d,i);i++;}输出结果是?()
A.01234
B.12345
C.无限循环
D.无输出
【答案】:答案解析:for循环初始化和条件省略,循环体中i自增,执行5次,输出01234,故选A。
5、若inta[5]={10,20,30,40,50};则a[4]的值是?()
A.40
B.50
C.60
D.无定义
【答案】:答案解析:a[4]是第五个元素,值为50,故选B。
6、C语言程序的基本单位是?()
A.语句
B.函数
C.变量
D.表达式
【答案】:答案解析:C程序由函数构成,main是入口函数,其他函数实现功能,故选B。
7、数组名作为函数参数时,函数形参的正确写法是?()
A.inta[]
B.int*a
C.inta[5]
D.以上都是
【答案】:答案解析:数组形参可写为inta[]、int*a(指针)、inta[5](长度可忽略),本质均为指针,故选D。
8、若inta[4]={1,2,3,4};则*(a+1)的值是?()
A.1
B.2
C.3
D.4
【答案】:答案解析:a是首地址,a+1是第二个元素地址,*(a+1)=a[1]=2,故选B。
9、以下哪个操作会导致野指针?()
A.指针未初始化
B.指针指向的内存被释放后未置空
C.指针越界访问
D.以上都是
【答案】:答案解析:野指针是指向无效地址的指针,A、B、C均会导致野指针,故选D。
10、若inti=1;执行while(i=3){printf(%d,i);i++;}输出结果是?()
A.123
B.1234
C.012
D.无输出
【答案】:答案解析:i初始1,满足i=3,执行3次,输出123,i最终4,循环结束,故选A。
11、以下函数调用错误的是?()
A.fun();
B.fun(5);
C.fun(3,4);
D.无错误(需看函数定义)
【答案】:答案解析:调用需匹配函数定义,A对应无参函数,B对应单参函数,C对应双参函数,均可能正确,故选D。
12、以下switch语句中,break语句的作用是?()
A.终止当前case
B.终止switch语句
C.跳过下一个case
D.无作用
【答案】:答案解析:break在switch中用于跳出整个switch语句,避免case穿透,故选B。
13、以下数组定义中,正确的是?()
A.inta[5];
B.inta[5]={1,2,3,4,5};
C.inta[]={1,2,3,4,5};
D.以上都是
【答案】:答案解析:A、B、C均符合数组定义规则,故选D。
14、C语言中,宏定义的预处理命令关键字是?()
A.include
B.define
C.ifdef
D.endif
【答案】:答案解析:#define用于宏定义,#include用于包含头文件,#ifdef/endif是条件编译,故选B。
15、执行scanf(%d,%d,a,b);时,正确的输入格式是?()
A.23
B.2;3
C.2,3
D.2和3
【答案】:答案解析:scanf格式串中含逗号分隔符,输入需严格对应,故选C。
16、函数返回值的类型由______决定?()
A.return语句中的表达式类型
B.函数定义时的返回类型
C.函数调用时的参数类型
D.编译器默认类
原创力文档

文档评论(0)