c语言上机期末考试题汇编.docxVIP

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

c语言上机期末考试题

第一部分单选题(50题)

1、若inta=4,b=6;则表达式ab?a+b:a-b的结果是?()

A.10

B.-2

C.4

D.6

【答案】:答案解析:ab为真,取a+b=4+6=10,故选A。

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

A.5

B.0

C.越界访问

D.无定义

【答案】:答案解析:a[5]下标超出0-4范围,属于越界访问(可能导致程序错误),故选C。

3、以下数组定义中,可省略数组长度的是?()

A.inta[5];

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

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

D.inta[][3];

【答案】:答案解析:初始化时可省略长度(编译器自动计算),D二维数组第二维不能省略,故选B。

4、以下循环中,循环次数为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。

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

A.char*str=hello;

B.charstr[]=hello;

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

D.charstr[5]=hello;

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

6、以下字符串常量定义正确的是?()

A.charstr[]=C;

B.charstr[1]=C;

C.charstr[]={C};

D.charstr[2]={C,\0};

【答案】:答案解析:A用双引号定义字符串(自动加\0),B单引号用于字符常量,C无\0,D长度2正确但A更简洁,故选A。

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

8、以下函数声明正确的是?()

A.intfun(intx,inty);

B.intfun(int,int);

C.intfun(intx;inty);

D.A和B

【答案】:答案解析:函数声明可写参数名或只写类型,A、B正确,C用分号错误,故选D。

9、以下if-else语句中,代码块正确的是?()

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

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

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

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

【答案】:答案解析:else需与最近的if匹配,A、C、D中else前有独立printf,语法错误,B用{}包裹代码块正确,故选B。

10、函数参数为数组时,形参的写法错误的是?()

A.inta[]

B.int*a

C.inta[5]

D.inta

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

11、以下for循环中,循环变量更新表达式为“i-=2”的是?()

A.for(i=10;i0;i-=2)

B.for(i=0;i10;i+=2)

C.for(i=10;i0;i--)

D.for(i=0;i10;i=2)

【答案】:答案解析:i-=2等价于i=i-2,A的更新表达式正确,故选A。

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

A.30

B.40

C.50

D.无定义

【答案】:答案解析:a+3指向a[3],*p=40,故选B。

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

A.4

B.5

C.1

D.2

【答案】:答案解析:a+4是第五个元素地址,*(a+4)=a[4]=5,故选B。

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

A.inta[]

B.int*a

C.inta[5]

D.inta

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

15、以下指针定义正确的是?()

A.int*p;

B.char*q;

C.float*r;

D.以上都正确

【答案】:答案

文档评论(0)

1亿VIP精品文档

相关文档