- 0
- 0
- 约6.66千字
- 约 13页
- 2026-01-31 发布于山东
- 举报
2026年c语言指针考试题库
第一部分单选题(50题)
1、若inta[4]={1,2,3,4},p=a;执行p++后,*p的值是?()
A.1
B.2
C.3
D.4
【答案】:答案解析:*p++先解引用(值为1),再p自增(指向a[1]),*p=2,故选B。
2、以下哪个是合法的字符常量?()
A.a
B.ab
C.a
D.a
【答案】:答案解析:字符常量用单引号包裹单个字符,A是字符串,B是两个字符(错误),D是标识符,故选C。
3、以下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。
4、以下switch语句中,case穿透的情况是?()
A.case后加break
B.case后不加break
C.有default
D.无default
【答案】:答案解析:case后不加break会继续执行下一个case的代码(穿透),加break则跳出,故选B。
5、以下二维数组定义中,行数为2的是?()
A.inta[2][3];
B.inta[][3]={1,2,3,4,5,6};
C.inta[2][3]={1,2,3,4,5};
D.以上都是
【答案】:答案解析:A行数2,B初始化6个元素(3列×2行),C行数2,故选D。
6、若inti=1;执行while(i=4){printf(%d,i);i+=3;}输出结果是?()
A.14
B.1234
C.1
D.无输出
【答案】:答案解析:i初始1,加3后4,执行2次,输出14,故选A。
7、二维数组a[2][3]在内存中存储的顺序是?()
A.a[0][0],a[0][1],a[0][2],a[1][0],a[1][1],a[1][2]
B.a[0][0],a[1][0],a[0][1],a[1][1],a[0][2],a[1][2]
C.随机顺序
D.按列存储
【答案】:答案解析:二维数组按行优先连续存储,顺序为第一行所有元素,再第二行,故选A。
8、若inta[5]={10,20,30,40,50};则a[4]的值是?()
A.40
B.50
C.60
D.无定义
【答案】:答案解析:a[4]是第五个元素,值为50,故选B。
9、以下if-else语句的语法错误是?()
A.if(x0)printf(a);elseprintf(b);
B.if(x0){printf(a);}else{printf(b);}
C.if(x0)printf(a);else;printf(b);
D.if(x0){printf(a);}elseprintf(b);
【答案】:答案解析:else后不能直接加分号(否则else无作用),C中else;后printf独立执行,故选C。
10、若inti=0;执行for(;;){if(i==4)break;printf(%d,i);i++;}输出结果是?()
A.0123
B.01234
C.无限循环
D.无输出
【答案】:答案解析:for(;;)是无限循环,i=4时break,输出0123,故选A。
11、若intx=10,y=20;则表达式x!=y的结果是?()
A.0
B.1
C.10
D.20
【答案】:答案解析:!=是不等于判断,x!=y为真,C语言中真用1表示,故选B。
12、break语句在循环中的作用是?()
A.跳过本次循环,继续下一次
B.终止整个循环
C.终止当前语句
D.无作用
【答案】:答案解析:break在循环中用于终止整个循环(跳出循环体),continue是跳过本次循环,故选B。
13、若charc=A;执行c=c+32后,c的值是?()
A.a
B.B
C.65
D.97
【答案】:答案解析:大写字母ASCII码比对应小写字母小32,A(65)+32=a(97),故选A。
14、以下函数调用错误的是?()
A.fun();
B.fun(5);
C.fun(3,4);
D.无错误(需看函数定义)
【答案】:答案解析:调用需匹配函数定义,A对应无参函数,B对应单参函数,C对应双参函数,均可能正确,故选D。
15、函数中局部变量的作用域是?()
A.整个程序
B.函数内部
C.函数外部
D.所有函数
【答案】:答案解析:局部变量定义在函数内,仅在函数内部有效,故选B。
16、若inta[4]={10,20,30,40};则a+1表示?()
A.1
原创力文档

文档评论(0)