- 0
- 0
- 约6.53千字
- 约 13页
- 2026-01-27 发布于河南
- 举报
数组c语言考试题库
第一部分单选题(50题)
1、以下关于数组越界的说法正确的是?()
A.编译时会报错
B.运行时一定会崩溃
C.可能导致程序错误
D.无影响
【答案】:答案解析:数组越界属于未定义行为,编译时不报错,运行时可能正常或崩溃,故选C。
2、以下switch语句中,default的执行时机是?()
A.所有case都不匹配时
B.第一个case不匹配时
C.最后一个case不匹配时
D.任何时候
【答案】:答案解析:default仅在所有case都不匹配时执行,故选A。
3、以下数组定义错误的是?()
A.inta[0];
B.inta[5];
C.inta[]={1,2,3};
D.inta[5]={1,2,3};
【答案】:答案解析:数组长度不能为0,编译报错,其余正确,故选A。
4、以下函数参数传递方式中,能修改实参值的是?()
A.值传递
B.地址传递
C.都能
D.都不能
【答案】:答案解析:值传递修改的是形参(副本),不影响实参;地址传递通过指针修改实参值,故选B。
5、以下关于main函数的说法正确的是?()
A.main函数可无返回值
B.main函数可带参数
C.main函数是程序入口
D.以上都正确
【答案】:答案解析:main函数可声明为void(无返回值),可带argc/argv参数,是程序唯一入口,故选D。
6、若intx=10;则表达式x%3的结果是?()
A.1
B.2
C.3
D.0
【答案】:答案解析:%是取余运算符,10除以3商3余1,故选A。
7、以下if-else语句中,代码块正确的是?()
A.if(x0)printf(a);printf(b);elseprintf(c);
B.if(x0){printf(a);printf(b);}elseprintf(c);
C.if(x0)printf(a);{printf(b);}elseprintf(c);
D.if(x0)printf(a);printf(b);else{printf(c);}
【答案】:答案解析:else需与最近的if匹配,A、C、D中else前有独立printf,语法错误,B用{}包裹代码块正确,故选B。
8、若inta[5]={10,20,30,40,50};则a[2]的值是?()
A.10
B.20
C.30
D.40
【答案】:答案解析:数组下标从0开始,a[2]是第三个元素30,故选C。
9、以下哪个数据类型的占用字节数最大?()
A.char
B.short
C.int
D.double
【答案】:答案解析:char(1字节)、short(2字节)、int(4字节)、double(8字节),故选D。
10、以下函数声明正确的是?()
A.voidfun();
B.voidfun(inta);
C.intfun(int);
D.以上都正确
【答案】:答案解析:函数声明可省略形参名(只留类型),A、B、C均符合语法,故选D。
11、若inti=0;执行while(1){if(i==3)break;printf(%d,i);i++;}输出结果是?()
A.012
B.0123
C.无限循环
D.无输出
【答案】:答案解析:while(1)是无限循环,i=3时break,输出012,故选A。
12、以下循环中,用于计算1到10的乘积的是?()
A.s=0;for(i=1;i=10;i++)s+=i;
B.s=1;for(i=1;i=10;i++)s*=i;
C.s=0;while(i=10){s*=i;i++;}
D.s=1;do{s+=i;i++;}while(i=10);
【答案】:答案解析:乘积初始值为1,累加初始值为0,B的逻辑是12...*10,正确,故选B。
13、以下哪个函数用于读取字符?()
A.putchar()
B.gets()
C.getchar()
D.printf()
【答案】:答案解析:getchar()读取单个字符,puts()输出字符串,gets()读取字符串(已淘汰),故选C。
14、C语言中,宏定义的预处理命令关键字是?()
A.include
B.define
C.ifdef
D.endif
【答案】:答案解析:#define用于宏定义,#include用于包含头文件,#ifdef/endif是条件编译,故选B。
15、以下关于动态内存分配的说法正确的是?()
A.malloc函数用于动态分配内存,返回void*
B.free函数用于释放动态分配的内存
C.动态分配的内存需手动释放,避免内存泄漏
D.以上都正确
【答案】:答案解析:A、B、C均是动
原创力文档

文档评论(0)