- 0
- 0
- 约6.89千字
- 约 13页
- 2026-01-31 发布于山东
- 举报
2026年c语言知识试题
第一部分单选题(50题)
1、以下关于数组的说法正确的是?()
A.数组下标从1开始
B.数组名可作为左值赋值
C.数组长度定义后不可修改
D.数组元素类型可不同
【答案】:答案解析:数组下标从0开始,数组名是常量(不可赋值),元素类型必须相同,长度定义后固定,故选C。
2、指针作为函数参数时,传递的是?()
A.指针的值
B.指针的地址
C.变量的值
D.变量的地址
【答案】:答案解析:指针传参本质是传递变量地址,函数中通过指针可修改实参值,故选D。
3、若inta[5]={1,2,3,4,5};则*(a+4)的值是?()
A.4
B.5
C.1
D.2
【答案】:答案解析:a+4是第五个元素地址,*(a+4)=a[4]=5,故选B。
4、若inta[3][3]={{1},{2,3},{4,5,6}};则a[1][0]的值是?()
A.2
B.3
C.4
D.5
【答案】:答案解析:a[1][0]是第二行第一列,值为2,故选A。
5、以下switch语句语法错误的是?()
A.switch(x){case1:printf(1);break;}
B.switch(x){casea:printf(a);break;}
C.switch(x){case1.5:printf(1.5);break;}
D.switch(x){default:printf(0);}
【答案】:答案解析:case后必须是整型常量,1.5是浮点型,语法错误,故选C。
6、二维数组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。
7、以下循环语句中,执行次数为5次的是?()
A.for(i=0;i5;i++)
B.while(i5){i++;}
C.do{i++;}while(i5);
D.for(i=1;i=5;i--)
【答案】:答案解析:A执行5次(0-4),B、C未初始化i(若i初始0则5次,否则不确定),D初始i=10,执行0次,故选A。
8、函数定义和函数声明的区别是?()
A.定义包含函数体,声明不包含
B.声明包含函数体,定义不包含
C.定义和声明无区别
D.定义在程序开头,声明在结尾
【答案】:答案解析:函数定义是完整实现(含函数体),声明是告诉编译器函数名、参数、返回类型(不含函数体),故选A。
9、while循环的语法格式正确的是?()
A.while(条件)语句;
B.while条件语句;
C.while(条件);语句;
D.while(条件){语句}
【答案】:答案解析:while后条件需加括号,语句可是单条(加分号)或代码块(用{}),D缺少分号,故选A。
10、若floatf=5.9;强制转换为整型的表达式是?()
A.int(f)
B.(int)f
C.intf
D.(float)f
【答案】:答案解析:强制类型转换格式为(目标类型)变量,(int)f结果为5(取整数部分),故选B。
11、以下哪个赋值语句是正确的?()
A.inta=5;
B.a=5;
C.inta=b=5;
D.a=b=5;
【答案】:答案解析:B、D未定义变量,C不能连续赋值定义,A定义并赋值正确,故选A。
12、若inti=0,s=0;执行do{s+=i;i++;}while(i5);后s的值是?()
A.10
B.15
C.5
D.0
【答案】:答案解析:do-while累加0+1+2+3+4=10,s=10,故选A。
13、若inta[3][3]={{1,2,3},{4,5,6},{7,8,9}};则a[1][2]的值是?()
A.5
B.6
C.8
D.9
【答案】:答案解析:a[1][2]是第二行第三列,值为6,故选B。
14、定义整型变量x、y并均赋值10的语句是?()
A.intx=y=10;
B.intx=10,y=10;
C.intx=10;y=10;
D.intx=10;inty=10;
【答案】:答案解析:同一行定义多个变量用逗号分隔,A不能连续赋值,C缺少int,D是两行定义,故选B。
15、指针变量的大小取决于?()
A.指向变量的类型
B.编译器和系统(32位4字节,64位8字节)
C.指针变量的名称
D.变量的值
【答案】:答案解析:指针大小与指向类型无关,取决于系统位数(32
原创力文档

文档评论(0)