- 0
- 0
- 约6.87千字
- 约 13页
- 2026-01-31 发布于山东
- 举报
2026年数组c语言考试题库
第一部分单选题(50题)
1、若inta[5]={1,2,3,4,5},p=a;执行p+=2;后p的值是?()
A.2
B.3
C.4
D.5
【答案】:答案解析:p+=2使p指向a[2],*p=3,故选B。
2、若intx=3,y=5;则表达式xy?x:y的结果是?()
A.3
B.5
C.true
D.false
【答案】:答案解析:三元运算符格式“条件?值1:值2”,xy为假,取y=5,故选B。
3、若inti;执行for(i=0;i5;i++)printf(%d,i);输出结果是?()
A.01234
B.12345
C.012345
D.无输出
【答案】:答案解析:for循环初始化i=0,条件i5(成立时执行),每次循环后i++,执行5次,输出01234,故选A。
4、shortint类型的有符号取值范围是?()
A.0~65535
B.-32768~32767
C.-2147483648~2147483647
D.无固定范围
【答案】:答案解析:16位shortint有符号取值标准为-32768~32767,无符号为0~65535,故选B。
5、do-while循环中,循环体至少执行几次?()
A.0次
B.1次
C.2次
D.不确定
【答案】:答案解析:do-while“先执行后判断”,无论条件是否满足,循环体至少执行一次,故选B。
6、以下if语句中,逻辑非运算符使用正确的是?()
A.if(!x)printf(yes);
B.if(!x==0)printf(yes);
C.if(!(x0))printf(yes);
D.A和C
【答案】:答案解析:!x表示“x为假(0)”,!(x0)表示“x不大于0”,均正确;B中!x==0等价于x!=0,逻辑不同,故选D。
7、若intx=1;执行switch(x){case1:printf(1);break;case1:printf(2);break;}会出现什么情况?()
A.输出1
B.输出2
C.编译错误
D.运行错误
【答案】:答案解析:case后常量不能重复,编译时会报错,故选C。
8、若inti=0;执行do{i++;printf(%d,i);}while(i3);输出结果是?()
A.123
B.012
C.12
D.无输出
【答案】:答案解析:do-while先执行,i从1到3,输出123,故选A。
9、函数返回值的类型由______决定?()
A.return语句中的表达式类型
B.函数定义时的返回类型
C.函数调用时的参数类型
D.编译器默认类型
【答案】:答案解析:函数返回类型在定义时指定,return表达式类型需与返回类型匹配(不匹配则强制转换),故选B。
10、以下字符串数组定义正确的是?()
A.charstr[5][10]={hello,world};
B.charstr[5][]={hello,world};
C.charstr[][10]={hello,world,!};
D.charstr[5][10]={hello,world,!};
【答案】:答案解析:B第二维不能省略,A、C、D均正确?D最完整(5行10列,初始化3个字符串),故选D。
11、若inti=0;执行for(;i5;){printf(%d,i);i++;}输出结果是?()
A.01234
B.12345
C.无限循环
D.无输出
【答案】:答案解析:for循环初始化和条件省略,循环体中i自增,执行5次,输出01234,故选A。
12、若inta=10,*p=a;则sizeof(p)的值是?()
A.4
B.8
C.取决于系统
D.10
【答案】:答案解析:sizeof(p)是指针大小,32位系统4字节,64位8字节,故选C。
13、以下指针定义正确的是?()
A.int*p;
B.char*q;
C.float*r;
D.以上都正确
【答案】:答案解析:A指向int,B指向char,C指向float,均符合指针定义语法,故选D。
14、以下if-else语句中,代码块执行顺序正确的是?()
A.先执行if条件,满足则执行if代码块,否则执行else代码块
B.先执行else代码块,再执行if条件
C.同时执行if和else代码块
D.仅执行else代码块
【答案】:答案解析:if-else逻辑为“条件判断→满足执行if,否则执行else”,互斥执行,故选A。
15、以下定义函数指针正确的是?()
A.int(*fp)(int);
B.int*fp(int);
C.intfp(int);
D.int(fp)[];
【答案
原创力文档

文档评论(0)