算法与数据结构—C语言描述(易错题).docxVIP

  • 0
  • 0
  • 约6.32千字
  • 约 13页
  • 2026-01-27 发布于河南
  • 举报

算法与数据结构—C语言描述(易错题).docx

算法与数据结构—C语言描述

第一部分单选题(50题)

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

A.abc

B.abc

C.abc

D.ab

【答案】:答案解析:字符串常量用双引号包裹,单引号用于字符常量,C是标识符,D语法错误,故选B。

2、若charstr=Clanguage;则(str+2)的值是?()

A.C

B.

C.l

D.a

【答案】:答案解析:str+2指向第三个字符,值为l,故选C。

3、若floatx=3.14;则表达式(int)x的结果是?()

A.3

B.3.14

C.4

D.0

【答案】:答案解析:强制转换为int取整数部分,3.14→3,故选A。

4、以下关于void类型函数的说法正确的是?()

A.不能有return语句

B.可以有return语句(无表达式)

C.必须有return语句

D.可返回任意类型

【答案】:答案解析:void函数可写return;(无表达式),用于提前结束函数,不能返回表达式,故选B。

5、若inta=3,b=5;执行以下代码后输出结果是?()if(ab)printf(A);elseprintf(B);

A.A

B.B

C.AB

D.无输出

【答案】:答案解析:a=3b=5,条件为假,执行else分支,输出B,故选B。

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

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

A.15

B.10

C.5

D.0

【答案】:答案解析:累加5+4+3+2+1=15,s=15,故选A。

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

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

A.计算阶乘

B.循环输出数字

C.数组遍历

D.变量交换

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

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

A.1

B.2

C.3

D.无定义

【答案】:答案解析:p+2指向a[2],解引用*(p+2)=a[2]=3,故选C。

11、以下switch语句中,break语句的位置正确的是?()

A.case后任意位置

B.必须在case代码最后

C.必须在default后

D.不能在default后

【答案】:答案解析:break可在case代码任意位置(执行到break即跳出),不一定在最后,default后也可加break,故选A。

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

A.123

B.012

C.12

D.无输出

【答案】:答案解析:do-while先执行,i从1到3,输出123,故选A。

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

A.2

B.3

C.4

D.5

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

14、若inta=3,b=4;则表达式ab++的值是?()

A.12

B.15

C.16

D.7

【答案】:答案解析:b++是后置自增,先参与运算(ab=3*4=12),再自增(b变为5),故选A。

15、表达式5324的结果是?()

A.0

B.1

C.真

D.假

【答案】:答案解析:53为真(1),24为真(1),逻辑与结果为1,故选B。

16、以下关于循环语句的说法错误的是?()

A.for循环三个表达式均可省略

B.while循环先判断后执行

C.do-while循环至少执行一次

D.continue可用于switch语句

【答案】:答案解析:continue仅用于循环语句,不能用于switch,A、B、C说法正确,故选D。

17、以下关于指针数组的定义正确的是?()

A.int*arr[5];

B.int(*arr)[5];

C.intarr[5];

D.intarr[];

【答案】:答案解析:A是指针数组(5个int指针),B是指向数组的指针,C是普通数组,D缺少长度,故选A。

18、do-while循环中,循环体至少执行几

文档评论(0)

1亿VIP精品文档

相关文档