- 0
- 0
- 约6.58千字
- 约 13页
- 2026-01-30 发布于山东
- 举报
c语言期末考试题库
第一部分单选题(50题)
1、若inta[3][3]={{1,2,3},{4,5,6},{7,8,9}},(p)[3]=a;则((p+1)+2)的值是?()
A.5
B.6
C.8
D.9
【答案】:答案解析:p是指向3列数组的指针,p+1指向第二行,(p+1)+2指向第二行第三列,值为6,故选B。
2、若inta[5]={10,20,30,40,50};则a[2]的值是?()
A.10
B.20
C.30
D.40
【答案】:答案解析:数组下标从0开始,a[2]是第三个元素30,故选C。
3、以下指针的算术运算中,单位是?()
A.1字节
B.指针指向类型的大小
C.4字节
D.8字节
【答案】:答案解析:指针算术运算(如p++)偏移量是指向类型的大小(如int指针+1偏移4字节),故选B。
4、do-while循环中,循环体至少执行几次?()
A.0次
B.1次
C.2次
D.不确定
【答案】:答案解析:do-while“先执行后判断”,无论条件是否满足,循环体至少执行一次,故选B。
5、以下关于数组的说法错误的是?()
A.数组元素必须是同一类型
B.数组长度必须是常量
C.数组可在函数内定义
D.数组可整体赋值
【答案】:答案解析:数组不能用“=”整体赋值,需逐个元素或循环赋值,A、B、C正确,故选D。
6、continue语句在循环中的作用是?()
A.终止整个循环
B.跳过本次循环剩余部分,继续下一次
C.暂停循环
D.无作用
【答案】:答案解析:continue跳过本次循环剩余代码,直接进入下一次循环条件判断,故选B。
7、定义整型变量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。
8、若inta=4,b=6;则表达式ab?a+b:a-b的结果是?()
A.10
B.-2
C.4
D.6
【答案】:答案解析:ab为真,取a+b=4+6=10,故选A。
9、若int*p=(int)malloc(sizeof(int));则p的值是?()
A.0
B.随机值
C.1
D.无定义
【答案】:答案解析:malloc分配的内存未初始化,值为随机值,故选B。
10、函数调用时,实参的顺序必须与形参的顺序?()
A.一致
B.相反
C.无关
D.部分一致
【答案】:答案解析:实参和形参需按顺序一一对应(类型、个数、顺序匹配),否则可能导致逻辑错误,故选A。
11、若intx=5;执行if(x3x7)printf(yes);elseprintf(no);输出结果是?()
A.yes
B.no
C.yesno
D.无输出
【答案】:答案解析:x=53且7,条件为真,输出yes,故选A。
12、递归函数的终止条件是?()
A.函数调用自身
B.函数返回值为0
C.不再调用自身的条件
D.无终止条件
【答案】:答案解析:递归函数必须有终止条件(否则无限递归栈溢出),终止条件是不再调用自身的判断,故选C。
13、以下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。
14、以下哪个数据类型的占用字节数最大?()
A.char
B.short
C.int
D.double
【答案】:答案解析:char(1字节)、short(2字节)、int(4字节)、double(8字节),故选D。
15、若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。
16、以下数组初始化正确的是?()
A.charstr[]=hello;
B.charstr[5]=hello;
C.charstr[]={h,e,l,l,o};
D.charstr[5]={h,e,l,l,o,\0};
【答案】:答案解析:A字符串自动加\0,B长度
原创力文档

文档评论(0)