- 0
- 0
- 约6.4千字
- 约 13页
- 2026-01-31 发布于河南
- 举报
2026年c语言上机期末考试题
第一部分单选题(50题)
1、以下数组定义中,长度为5的是?()
A.inta[5];
B.inta[]={1,2,3,4,5};
C.charstr[]=abcd;
D.以上都是
【答案】:答案解析:A长度5,B长度5,C字符串abcd含\0共5个字符,故选D。
2、若inta[5]={1,2,3};则a[3]的值是?()
A.0
B.3
C.随机值
D.无定义
【答案】:答案解析:初始化时未赋值的元素默认为0,a[3]=0,故选A。
3、若charstr=abcde;则(str+4)的值是?()
A.d
B.e
C.\0
D.无定义
【答案】:答案解析:str+4指向第5个字符,值为e,故选B。
4、以下switch语句中,case穿透的情况是?()
A.case后加break
B.case后不加break
C.有default
D.无default
【答案】:答案解析:case后不加break会继续执行下一个case的代码(穿透),加break则跳出,故选B。
5、若intx=2;执行switch(x){default:printf(0);case1:printf(1);break;case2:printf(2);case3:printf(3);}输出结果是?()
A.01
B.23
C.0123
D.无输出
【答案】:答案解析:x=2匹配case2,无break,穿透到case3,输出23,故选B。
6、以下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。
7、若inta=5,p=a;则p的值是?()
A.5
B.a
C.p
D.无定义
【答案】:答案解析:*p等价于p,即指针p自身的值(a的地址),故选C。
8、若inta=5,p=a;执行p=8;后a的值是?()
A.5
B.8
C.a
D.无定义
【答案】:答案解析:*p=8通过指针修改指向变量a的值,a变为8,故选B。
9、逻辑表达式30的结果是?()
A.0
B.1
C.3
D.真
【答案】:答案解析:逻辑与只要有一个operand为0则结果为0,3为真,0为假,故选A。
10、以下哪个运算符的优先级最高?()
A.+
B.*
C.=
D.==
【答案】:答案解析:算术运算符中*(乘)优先级高于+(加),赋值(=)和关系(==)优先级更低,故选B。
11、以下数组初始化中,未赋值元素默认为0的是?()
A.inta[5]={1,2,3};
B.charstr[5];
C.inta[5];
D.以上都是
【答案】:答案解析:全局数组未初始化默认为0,局部数组未初始化是随机值,A初始化部分元素,未赋值默认为0,故选A。
12、函数调用时,实参的类型必须与形参的类型?()
A.完全一致
B.兼容(可自动转换)
C.无关
D.实参类型大于形参类型
【答案】:答案解析:实参和形参类型可兼容(如int→float),编译器自动转换,不兼容则编译错误,故选B。
13、函数参数传递中,值传递的特点是?()
A.形参修改影响实参
B.形参是实参的副本
C.传递的是变量地址
D.用于数组传参
【答案】:答案解析:值传递时形参是实参的拷贝,修改形参不影响实参,地址传递才影响实参,故选B。
14、以下定义函数指针正确的是?()
A.int(*fp)(int);
B.int*fp(int);
C.intfp(int);
D.int(fp)[];
【答案】:答案解析:A是指向int返回值、int参数的函数指针,B是返回int的函数,C是普通函数,D是指向数组的指针,故选A。
15、若intx=3;执行以下代码后a的值是?()inta;if(x5)a=10;elseif(x2)a=20;elsea=30;
A.10
B.20
C.30
D.无定义
【答案】:答案解析:x=32,执行第二个分支,a=20,故选B。
16、指针作为函数参数时,传递的是?()
A.指针的值
B.指针的地址
C.变量的值
D.变量的地址
【答案】:答案解析:指针传参本质是传递变量地址,函数中通过指针可修改实参值,故选D。
17、while循环的语法格式正确的是?()
A.while(条件)语句;
B
原创力文档

文档评论(0)