算法与数据结构—C语言描述及参考答案1套.docxVIP

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

算法与数据结构—C语言描述及参考答案1套.docx

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

第一部分单选题(50题)

1、以下函数定义中,参数为指针的是?()

A.voidfun(int*a){printf(%d,*a);}

B.voidfun(inta){printf(%d,a);}

C.voidfun(inta[]){printf(%d,a[0]);}

D.A和C

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

2、若intx=3,y=5;则表达式xy?x:y的结果是?()

A.3

B.5

C.true

D.false

【答案】:答案解析:三元运算符格式“条件?值1:值2”,xy为假,取y=5,故选B。

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

A.0

B.1

C.真

D.假

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

4、C语言程序的入口函数是?()

A.main()

B.printf()

C.scanf()

D.main

【答案】:答案解析:所有C程序从main()函数开始执行,必须有且仅有一个,故选A。

5、do-while循环的特点是?()

A.先判断条件,后执行循环体

B.先执行循环体,后判断条件

C.条件不满足时也不执行循环体

D.只能执行一次

【答案】:答案解析:do-while是“先执行后判断”,至少执行一次循环体,for和while是“先判断后执行”,故选B。

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

A.abc

B.abc

C.abc

D.ab

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

7、以下关于函数的说法正确的是?()

A.函数必须有返回值

B.函数可嵌套定义

C.函数可递归调用

D.函数名可重定义

【答案】:答案解析:A函数可无返回值(void),B不能嵌套定义(可嵌套调用),D函数名不能重定义,C递归调用正确,故选C。

8、函数返回值通过______语句返回?()

A.printf

B.scanf

C.return

D.break

【答案】:答案解析:return语句用于函数返回值,printf输出,scanf输入,break跳出循环/switch,故选C。

9、以下if-elseif语句的执行逻辑是?()if(x0)printf(负);elseif(x==0)printf(零);elseprintf(正);

A.多个条件可同时满足

B.仅执行第一个满足的条件分支

C.所有满足的条件分支都执行

D.无满足条件则不执行

【答案】:答案解析:if-elseif是互斥分支,仅执行第一个满足条件的分支,故选B。

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

11、若int*p=(int)malloc(sizeof(int));则p的值是?()

A.0

B.随机值

C.1

D.无定义

【答案】:答案解析:malloc分配的内存未初始化,值为随机值,故选B。

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

A.*p

B.p+1

C.a

D.B和C

【答案】:答案解析:p+1是指针偏移,a是取地址,结果均为指针;*p是解引用(获取值),故选D。

13、逻辑表达式!5的结果是?()

A.0

B.1

C.5

D.真

【答案】:答案解析:5为真,!是逻辑非,真变假(0),故选A。

14、以下数组初始化中,未赋值元素默认为0的是?()

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

B.charstr[5];

C.inta[5];

D.以上都是

【答案】:答案解析:全局数组未初始化默认为0,局部数组未初始化是随机值,A初始化部分元素,未赋值默认为0,故选A。

15、以下函数定义错误的是?()

A.intfun(inta,intb){returna+b;}

B.voidfun(){inta=5;printf(%d,a);}

C.intfun(){inta=3;returna;}

D.voidfun(inta){returna;}

【答案】:答案解析:D返回值类型void,不能return表达式a,语法错误,故选D。

16、若intx=2;执行switch(x){default:printf(0);case1:printf(1);break;case2:printf(2);case3:printf(3);}输出结果是?()

A.01

B.23

C.0123

D.无输出

【答案】:答案解析:x=2匹配cas

文档评论(0)

1亿VIP精品文档

相关文档