大学工程学院C语言考试真题及答案(名校卷).docxVIP

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

大学工程学院C语言考试真题及答案(名校卷).docx

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

第一部分单选题(50题)

1、函数定义的格式是?()

A.返回类型函数名(参数列表){函数体}

B.函数名(返回类型,参数列表){函数体}

C.函数名(参数列表)返回类型{函数体}

D.返回类型函数名{参数列表,函数体}

【答案】:答案解析:函数定义标准格式为“返回类型函数名(参数列表){函数体}”,故选A。

2、若inta[5]={10,20,30,40,50};则a[2]的值是?()

A.10

B.20

C.30

D.40

【答案】:答案解析:数组下标从0开始,a[2]是第三个元素30,故选C。

3、以下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。

4、以下for循环中,用于计算1到5的平方和的是?()

A.s=0;for(i=1;i=5;i++)s+=ii;

B.s=0;for(i=1;i=5;i++)s+=i2;

C.s=1;for(i=1;i=5;i++)s*=i;

D.s=0;for(i=1;i=5;i++)s+=i+i;

【答案】:答案解析:平方和是12+22+32+42+52=1+4+9+16+25=55,A的逻辑正确,故选A。

5、递归函数的优点是?()

A.代码简洁,逻辑清晰

B.效率高,占用内存少

C.避免栈溢出

D.适合所有问题

【答案】:答案解析:递归优点是代码简洁(如阶乘、斐波那契数列),缺点是效率低、占用栈空间多(可能溢出),故选A。

6、若inta=5,b=3;执行if(ab){a--;b++;}后a和b的值分别是?()

A.4,4

B.5,3

C.4,3

D.5,4

【答案】:答案解析:ab为真,执行代码块,a=5-1=4,b=3+1=4,故选A。

7、若inta=4;执行a-=2;后a的值是?()

A.2

B.4

C.6

D.0

【答案】:答案解析:a-=2等价于a=a-2,4-2=2,故选A。

8、若inta=3;执行a+=aa;后a的值是?()

A.12

B.6

C.9

D.15

【答案】:答案解析:优先级先乘后加,a+=aa等价于a=a+(aa)=3+(33)=12,故选A。

9、指针作为函数返回值时,不能返回?()

A.静态局部变量的地址

B.全局变量的地址

C.动态分配内存的地址

D.局部变量的地址

【答案】:答案解析:局部变量在函数调用结束后释放,返回其地址会导致野指针,故选D。

10、以下函数递归调用的例子是?()

A.计算阶乘

B.循环输出数字

C.数组遍历

D.变量交换

【答案】:答案解析:阶乘常用递归实现(n!=n*(n-1)!),B、C、D用循环更高效,故选A。

11、以下定义指向字符串的指针正确的是?()

A.char*str=hello;

B.charstr[]=hello;

C.char(*str)[]=hello;

D.charstr[5]=hello;

【答案】:答案解析:A是指向字符串常量的指针,B是字符数组,C是数组指针(类型不匹配),D长度不足(含\0需6字节),故选A。

12、以下哪个不是C语言的关键字?()

A.if

B.else

C.then

D.for

【答案】:答案解析:then不是C语言关键字,if(条件)、else(否则)、for(循环)均是,故选C。

13、函数指针的作用是?()

A.存储函数的地址

B.调用函数

C.实现回调函数

D.以上都正确

【答案】:答案解析:函数指针存储函数地址,可通过指针调用函数,常用于回调函数,故选D。

14、若charc=A;执行c=c+32后,c的值是?()

A.a

B.B

C.65

D.97

【答案】:答案解析:大写字母ASCII码比对应小写字母小32,A(65)+32=a(97),故选A。

15、以下循环语句中,语法正确的是?()

A.while(i5){printf(%d,i);i++;}

B.while(i5)printf(%d,i);i++;

C.do{printf(%d,i);i++;}while(i5)

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

【答案】:答案解析:B中i++在循环体外(循环无限),C缺少分号,D缺少更新表达式,A语法正确,故选A。

16、若floatx=3.1

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档