大学工程学院C语言考试真题及答案1套.docxVIP

  • 0
  • 0
  • 约6.76千字
  • 约 13页
  • 2026-01-27 发布于山东
  • 举报

大学工程学院C语言考试真题及答案1套.docx

大学工程学院C语言考试真题

第一部分单选题(50题)

1、若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。

2、函数返回值的类型与return语句中表达式类型不一致时,会?()

A.编译错误

B.自动强制转换为函数返回类型

C.程序崩溃

D.无影响

【答案】:答案解析:编译器会将return表达式类型强制转换为函数返回类型(可能丢失精度),不报错,故选B。

3、若intx=10,y=20;则表达式x!=y的结果是?()

A.0

B.1

C.10

D.20

【答案】:答案解析:!=是不等于判断,x!=y为真,C语言中真用1表示,故选B。

4、以下for循环的语法错误是?()

A.for(inti=0;i5;i++)printf(%d,i);

B.for(i=0;i5;i++)printf(%d,i);

C.for(;i5;i++)printf(%d,i);

D.for(i=0;;i++)printf(%d,i);

【答案】:答案解析:B中i未定义(需先声明inti;),A(C99标准允许循环内定义)、C(初始化省略)、D(条件省略,无限循环)语法均正确,故选B。

5、若inta[4]={1,2,3,4};则a[3]的值是?()

A.3

B.4

C.1

D.2

【答案】:答案解析:a[3]是第四个元素,值为4,故选B。

6、若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。

7、以下关于函数递归的说法错误的是?()

A.必须有终止条件

B.可能导致栈溢出

C.效率比循环高

D.代码简洁

【答案】:答案解析:递归调用会创建栈帧,效率低于循环,A、B、D正确,C错误,故选C。

8、若inti=0;执行while(1){if(i==3)break;printf(%d,i);i++;}输出结果是?()

A.012

B.0123

C.无限循环

D.无输出

【答案】:答案解析:while(1)是无限循环,i=3时break,输出012,故选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、以下switch语句中,break语句的作用是?()

A.终止当前case

B.终止switch语句

C.跳过下一个case

D.无作用

【答案】:答案解析:break在switch中用于跳出整个switch语句,避免case穿透,故选B。

11、以下指针运算中,结果为值的是?()

A.*p

B.p+1

C.a

D.p-2

【答案】:答案解析:*p是解引用,获取指针指向变量的值,B、C、D结果均为指针,故选A。

12、若intx=1;执行switch(x){case1:printf(1);break;case1:printf(2);break;}会出现什么情况?()

A.输出1

B.输出2

C.编译错误

D.运行错误

【答案】:答案解析:case后常量不能重复,编译时会报错,故选C。

13、C语言中,语句结束的标志是?()

A.逗号

B.分号

C.冒号

D.句号

【答案】:答案解析:C语言单条语句以分号(;)结尾,复合语句用{}包裹,故选B。

14、若inti;执行for(i=0;i5;i++)printf(%d,i);输出结果是?()

A.01234

B.12345

C.012345

D.无输出

【答案】:答案解析:for循环初始化i=0,条件i5(成立时执行),每次循环后i++,执行5次,输出01234,故选A。

15、以下关于指针的说法正确的是?()

A.野指针是指向无效地址的指针

B.空指针是野指针的一种

C.避免野指针需初始化并及时置空

D.以上都正确

【答案】:答案解析:A、B、C均是野指针的核心知识点,故选D。

16、若inti=0;执行do{printf(%d,i);i++;}while(i0);输出结果是?()

A.0

B.无输出

C.无限循环

D.01

【答案】:答案解析:do-while先执行一次(输出0,i=1),判断i0为假

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档