C语言期末试题北京卷含答案.docxVIP

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

C语言期末试题北京卷

第一部分单选题(50题)

1、数组作为函数参数时,函数形参不能是?()

A.inta[]

B.int*a

C.inta[5]

D.inta

【答案】:答案解析:D中inta是普通变量,不能接收数组名(地址),A、B、C均可作为数组形参,故选D。

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

3、以下函数参数为指针的是?()

A.voidfun(int*a){}

B.voidfun(inta){}

C.voidfun(inta[]){}

D.A和C

【答案】:答案解析:A是指针参数,C数组名参数本质是指针,B是值参数,故选D。

4、指针作为函数参数时,传递的是?()

A.指针的值

B.指针的地址

C.变量的值

D.变量的地址

【答案】:答案解析:指针传参本质是传递变量地址,函数中通过指针可修改实参值,故选D。

5、若inti=0,s=0;执行do{s+=i;i++;}while(i5);后s的值是?()

A.10

B.15

C.5

D.0

【答案】:答案解析:do-while累加0+1+2+3+4=10,s=10,故选A。

6、以下数组初始化错误的是?()

A.inta[5]={0};

B.inta[]={1,2,3};

C.inta[5]={1,2,3};

D.inta[5]={1,2,3,4,5,6};

【答案】:答案解析:D初始化元素个数超数组长度(5),编译报错,A、B、C正确,故选D。

7、逻辑表达式!0的结果是?()

A.0

B.1

C.真

D.假

【答案】:答案解析:C语言中非0为真,!是逻辑非,!0(假)结果为1(真),故选B。

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

A.0

B.1

C.10

D.20

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

9、递归函数的终止条件是?()

A.函数调用自身

B.函数返回值为0

C.不再调用自身的条件

D.无终止条件

【答案】:答案解析:递归函数必须有终止条件(否则无限递归栈溢出),终止条件是不再调用自身的判断,故选C。

10、以下switch语句中,default的位置可以在?()

A.所有case之前

B.所有case之后

C.两个case之间

D.以上都可以

【答案】:答案解析:default位置灵活,可在case前、后或中间,不影响执行逻辑,故选D。

11、以下循环中,循环次数为3次的是?()

A.for(i=1;i=3;i++)

B.while(i=3)

C.do{i++;}while(i3);

D.for(i=5;i0;i--)

【答案】:答案解析:A执行3次(1-3),B是无限循环,C(i初始0)执行3次,D执行5次,题目问“3次”,A明确正确,故选A。

12、若charstr[]=helloworld;则字符串长度是?()

A.10

B.11

C.12

D.13

【答案】:答案解析:helloworld含11个字符(不含\0),长度为11,故选B。

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

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

A.40

B.50

C.60

D.无定义

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

15、以下数组初始化正确的是?()

A.charstr[]=hello;

B.charstr[5]=hello;

C.charstr[]={h,e,l,l,o};

D.charstr[5]={h,e,l,l,o,\0};

【答案】:答案解析:A字符串自动加\0,B长度5不足以存hello(含\0共6个字符),C无\0(字符串不完整),D长度5超,故选A。

16、以下if-else语句的语法错误是?()

A.if(x0)printf(a);elseprintf(b);

B.if(x0){printf(a);}else{printf(b);}

C.if(x0)printf(a);else;printf(b);

D.if(x0){printf(a);}elseprintf(b);

【答案】:答案解析:else后不能

文档评论(0)

1亿VIP精品文档

相关文档