- 0
- 0
- 约6.98千字
- 约 13页
- 2026-01-31 发布于河南
- 举报
2026年c语言专科期末测试题
第一部分单选题(50题)
1、以下函数定义错误的是?()
A.intfun(inta,intb){returna+b;}
B.voidfun(){inta=5;printf(%d,a);}
C.intfun(){inta=3;returna;}
D.voidfun(inta){returna;}
【答案】:答案解析:D返回值类型void,不能return表达式a,语法错误,故选D。
2、以下函数定义中,参数为两个int类型的是?()
A.voidfun(inta,floatb){}
B.voidfun(inta,intb){}
C.voidfun(floata,intb){}
D.voidfun(inta,charb){}
【答案】:答案解析:B中两个参数均为int类型,其余选项参数类型不匹配,故选B。
3、若charstr[]=helloworld;则字符串长度是?()
A.10
B.11
C.12
D.13
【答案】:答案解析:helloworld含11个字符(不含\0),长度为11,故选B。
4、以下关于动态内存分配的说法正确的是?()
A.malloc函数用于动态分配内存,返回void*
B.free函数用于释放动态分配的内存
C.动态分配的内存需手动释放,避免内存泄漏
D.以上都正确
【答案】:答案解析:A、B、C均是动态内存分配的核心规则,故选D。
5、以下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。
6、do-while循环的特点是?()
A.先判断条件,后执行循环体
B.先执行循环体,后判断条件
C.条件不满足时也不执行循环体
D.只能执行一次
【答案】:答案解析:do-while是“先执行后判断”,至少执行一次循环体,for和while是“先判断后执行”,故选B。
7、若inta[4]={1,2,3,4};则*(a+1)的值是?()
A.1
B.2
C.3
D.4
【答案】:答案解析:a是首地址,a+1是第二个元素地址,*(a+1)=a[1]=2,故选B。
8、以下switch语句中,正确使用字符常量的是?()
A.switch(c){caseA:printf(A);break;}
B.switch(c){caseA:printf(A);break;}
C.switch(c){caseA:printf(A);break;}
D.switch(c){casea:b:printf(ab);break;}
【答案】:答案解析:字符常量用单引号,B是标识符,C是字符串,D语法错误(多个case需分开),故选A。
9、若inta=4;执行if(a--4)printf(A);elseprintf(B);输出结果是?()
A.A
B.B
C.AB
D.无输出
【答案】:答案解析:a--是后置自减,条件判断时a=4,44为假,执行else(输出B),后a变为3,故选B。
10、以下关于return语句的说法正确的是?()
A.函数中可有多条return语句
B.函数中必须有return语句
C.return语句必须在函数末尾
D.return语句只能返回一个值
【答案】:答案解析:A函数中可有多条return(如条件判断后返回),Bvoid函数可无return,Creturn可在任意位置,Dreturn只能返回一个值(返回多个值需用指针/数组),故选A。
11、转义字符\的作用是?()
A.表示反斜杠
B.表示换行
C.表示空格
D.表示制表符
【答案】:答案解析:\用于表示字符反斜杠(\),避免与转义字符冲突,故选A。
12、以下关于函数的说法错误的是?()
A.函数可嵌套调用
B.函数可递归调用
C.函数可重定义
D.函数可声明多次
【答案】:答案解析:C函数名不能重定义(重复定义编译报错),A、B、D正确,故选C。
13、若inta=7;执行if(a%3==1)printf(A);elseif(a%3==2)printf(B);elseprintf(C);输出结果是?()
A.A
B.B
C.C
D.无输出
【答案】:答案解析:7%3=1?7/3=2余1?不,7%3=1?7-3*2=1,条件1成立?哦7%3=1,应输出A?不对,7%3=1,第一个条件成立,输出A?重新计算:7÷3=2余1,a%3=1,执行第
原创力文档

文档评论(0)