- 0
- 0
- 约6.5千字
- 约 13页
- 2026-01-30 发布于河南
- 举报
c语言上机考试题库
第一部分单选题(50题)
1、以下函数参数为指针的是?()
A.voidfun(int*a){}
B.voidfun(inta){}
C.voidfun(inta[]){}
D.A和C
【答案】:答案解析:A是指针参数,C数组名参数本质是指针,B是值参数,故选D。
2、函数定义和函数声明的区别是?()
A.定义包含函数体,声明不包含
B.声明包含函数体,定义不包含
C.定义和声明无区别
D.定义在程序开头,声明在结尾
【答案】:答案解析:函数定义是完整实现(含函数体),声明是告诉编译器函数名、参数、返回类型(不含函数体),故选A。
3、函数的形参在______时分配内存?()
A.函数定义
B.函数声明
C.函数调用
D.程序编译
【答案】:答案解析:形参是局部变量,函数调用时分配内存,调用结束释放,故选C。
4、以下if-elseif语句的执行逻辑是?()if(x0)printf(负);elseif(x==0)printf(零);elseprintf(正);
A.多个条件可同时满足
B.仅执行第一个满足的条件分支
C.所有满足的条件分支都执行
D.无满足条件则不执行
【答案】:答案解析:if-elseif是互斥分支,仅执行第一个满足条件的分支,故选B。
5、continue语句在循环中的作用是?()
A.终止整个循环
B.跳过本次循环剩余部分,继续下一次
C.暂停循环
D.无作用
【答案】:答案解析:continue跳过本次循环剩余代码,直接进入下一次循环条件判断,故选B。
6、以下关于数组的说法正确的是?()
A.数组下标从1开始
B.数组名可作为左值赋值
C.数组长度定义后不可修改
D.数组元素类型可不同
【答案】:答案解析:数组下标从0开始,数组名是常量(不可赋值),元素类型必须相同,长度定义后固定,故选C。
7、以下哪个是合法的字符常量?()
A.a
B.ab
C.a
D.a
【答案】:答案解析:字符常量用单引号包裹单个字符,A是字符串,B是两个字符(错误),D是标识符,故选C。
8、若floatf=5.9;强制转换为整型的表达式是?()
A.int(f)
B.(int)f
C.intf
D.(float)f
【答案】:答案解析:强制类型转换格式为(目标类型)变量,(int)f结果为5(取整数部分),故选B。
9、以下定义函数指针正确的是?()
A.int(*fp)(int);
B.int*fp(int);
C.intfp(int);
D.int(fp)[];
【答案】:答案解析:A是指向int返回值、int参数的函数指针,B是返回int的函数,C是普通函数,D是指向数组的指针,故选A。
10、下列字符串常量定义正确的是?()
A.abc
B.abc
C.abc
D.ab
【答案】:答案解析:字符串常量用双引号包裹,单引号用于字符常量,C是标识符,D语法错误,故选B。
11、若intx=5;则表达式x+++x的结果是?()
A.10
B.11
C.12
D.9
【答案】:答案解析:结合性从左到右,x+++x等价于(x++)+x=5+6=11,故选B。
12、数组名作为函数参数时,函数形参的正确写法是?()
A.inta[]
B.int*a
C.inta[5]
D.以上都是
【答案】:答案解析:数组形参可写为inta[]、int*a(指针)、inta[5](长度可忽略),本质均为指针,故选D。
13、若inta=3;执行a+=aa;后a的值是?()
A.12
B.6
C.9
D.15
【答案】:答案解析:优先级先乘后加,a+=aa等价于a=a+(aa)=3+(33)=12,故选A。
14、函数声明的作用是?()
A.告诉编译器函数的存在
B.实现函数功能
C.分配函数内存
D.调用函数
【答案】:答案解析:函数声明用于向编译器说明函数名、参数、返回类型(确保调用正确),定义才是实现功能,故选A。
15、若intx=5;执行以下代码后输出结果是?()if(x10)printf(A);elseif(x6)printf(B);elseif(x3)printf(C);elseprintf(D);
A.A
B.B
C.C
D.
【答案】:答案解析:x=53,执行第三个分支,输出C,故选C。
16、以下关于指针的说法正确的是?()
A.指针可用于实现多返回值函数
B.指针可提高程序效率
C.指针可用于动态内存分配
D.以上都正确
【答案】:答案解析:指针的核心用途包括多返回值、高效访问、动态内存分配,故选D。
17、若inta[5]={10,20,30,40,50},p=a+3;则
原创力文档

文档评论(0)