- 0
- 0
- 约6.71千字
- 约 13页
- 2026-01-30 发布于山东
- 举报
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、函数返回值的类型由______决定?()
A.return语句中的表达式类型
B.函数定义时的返回类型
C.函数调用时的参数类型
D.编译器默认类型
【答案】:答案解析:函数返回类型在定义时指定,return表达式类型需与返回类型匹配(不匹配则强制转换),故选B。
3、以下哪个赋值语句是正确的?()
A.inta=5;
B.a=5;
C.inta=b=5;
D.a=b=5;
【答案】:答案解析:B、D未定义变量,C不能连续赋值定义,A定义并赋值正确,故选A。
4、以下哪个不是C语言的关键字?()
A.if
B.else
C.then
D.for
【答案】:答案解析:then不是C语言关键字,if(条件)、else(否则)、for(循环)均是,故选C。
5、指针的自增运算(p++)的含义是?()
A.指针值加1
B.指针指向的变量值加1
C.指针指向地址偏移一个类型大小
D.指针指向地址偏移1字节
【答案】:答案解析:p++使指针指向地址偏移“指向类型大小”(如int指针+4字节),故选C。
6、执行scanf(%d,%d,a,b);时,正确的输入格式是?()
A.23
B.2;3
C.2,3
D.2和3
【答案】:答案解析:scanf格式串中含逗号分隔符,输入需严格对应,故选C。
7、若intx=3,y=5;则表达式xy?x:y的结果是?()
A.3
B.5
C.true
D.false
【答案】:答案解析:三元运算符格式“条件?值1:值2”,xy为假,取y=5,故选B。
8、若inti=1;执行while(i5){printf(%d,i);i+=2;}输出结果是?()
A.13
B.135
C.1234
D.无输出
【答案】:答案解析:i初始1,每次加2,执行2次(1、3),输出13,故选A。
9、指针作为函数参数时,传递的是?()
A.指针的值
B.指针的地址
C.变量的值
D.变量的地址
【答案】:答案解析:指针传参本质是传递变量地址,函数中通过指针可修改实参值,故选D。
10、以下关于return语句的说法正确的是?()
A.函数中可有多条return语句
B.函数中必须有return语句
C.return语句必须在函数末尾
D.return语句只能返回一个值
【答案】:答案解析:A函数中可有多条return(如条件判断后返回),Bvoid函数可无return,Creturn可在任意位置,Dreturn只能返回一个值(返回多个值需用指针/数组),故选A。
11、以下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。
12、若intx=3,y=5;执行if(xy)printf(x大);elseif(x==y)printf(相等);elseprintf(y大);输出结果是?()
A.x大
B.相等
C.y大
D.无输出
【答案】:答案解析:x=3y=5,执行else,输出y大,故选C。
13、以下if-elseif语句的执行逻辑是?()if(x0)printf(负);elseif(x==0)printf(零);elseprintf(正);
A.多个条件可同时满足
B.仅执行第一个满足的条件分支
C.所有满足的条件分支都执行
D.无满足条件则不执行
【答案】:答案解析:if-elseif是互斥分支,仅执行第一个满足条件的分支,故选B。
14、若inti=0;执行while(i5){if(i==2)break;printf(%d,i);i++;}输出结果是?()
A.01
B.012
C.01234
D.无限循环
【答案】:答案解析:i=2时执行break,终止循环,输出01,故选A。
15、以下数组初始化中,未赋值元素默认为0的是?()
A.inta[5]={1,2,3};
B.charstr[5];
C.inta[5];
D.以上都是
【答案】:答案解析:全局数组未初始化默认为0,局部数组未初始化是随机值,A初始化部分元素,未赋值默认为0,故选A。
16、函数定义的格式是?()
A.返回类型函数
原创力文档

文档评论(0)