2018计算机二级考试C语言试题及答案(二)

2018计算机二级考试C语言试题及答案(二)

选择题(65438+每题0分,***40分)

1【选择题】如果有定义的语句:双a,* p = &;a;下列说法中错误的是()。

定义语句中的*号是一个地址运算符。

B.定义语句中的*号是一个说明符。

C.定义语句中的p只能存储double类型变量的地址。

D.在定义语句中,* p = &;A将变量A的地址作为初始值赋给指针变量p。

参考答案:a

参考分析:在变量中定义双a,* p = &;a;在中,*号是指针运算符,不是地址运算符,所以A是错误的。

6【选择题】如果有定义的语句:int x = 10;,表达式x-=x+x的值是()。

答:0

B.-20

C.-10

D.10

参考答案:c。

参考解析:算术运算符+的优先级高于-=,而-=的组合方向是从右到左,所以表达式x-=x+x可表示为x = x-(x+x)= 10-(10+10)=-10。

2【选择题】如果有定义的语句:双x,y,*px,* pypx = &;x;py = & ampy;之后,正确的输入语句是()。

A.scanf("%If%le ",px,py);

scanf(" % f % f " & amp;x & amp;y);

C.sceanf("%f%f ",x . y);

D.scanf("%If%If ",x,y);

参考答案:a

参考分析:因为X和Y都是双精度数据,输入的格式字符应该是%lf,所以B和C是错误的。选项d中的Scanf("%lf%If ",x,y);应该是Scanf ("%if% if " ")。x & amp;y);。

3【选择题】下列数据结构中,属于非线性结构的是()。

A.循环排队

B.链式队列

C.二叉树

D.皮带链栈

参考答案:c。

参考分析:树是简单的非线性结构,所以二叉树作为树的一种也是非线性结构。

4【选择题】对于循环排队,下列说法中正确的是()。

A.团队领导指针是固定的。

B.头指针必须大于尾指针。

C.头指针必须小于尾指针。

头指针可以大于尾指针,也可以小于尾指针。

参考答案:d。

引用分析:循环队列的头指针和尾指针都不是固定的,它会随着入队和出队操作而变化。由于循环队列结构,队列头指针有时可能大于队列尾指针,有时可能小于队列尾指针。

5【选择题】如果变量已经正确定义,在if (w) printf ("%d \ n ",k);其中,以下是不能代替w的()。

A.a & lt& gtb+c

B.ch=getchar()

C.a==b+c

D.a++

参考答案:a

参考分析:选项A是非法表达式,没有

6【选择题】在以下排序方法中,()是最差情况下比较最少的。

A.气泡分类

B.简单选择排序

C.直接插入排序

D.堆排序

参考答案:d。

参考分析:冒泡排序、单插入排序、简单选择排序最差情况下需要比较n(n-1)/2次,堆排序最差情况下需要比较nlog2n次。

7【选择题】数据库管理系统是()。

A.操作系统的一部分

B.操作系统支持的系统软件

C.编译系统

D.操作系统

参考答案:b

参考分析:数据库管理系统是数据库的组织。它是一种系统软件,负责数据库中的数据组织、数据操作、数据维护、控制和保护以及数据服务。是操作系统之上的一种系统软件。

8【选择题】下列选项中,可以作为用户标识符的是()。

A._0_

B.8_8

c .无效

未签名的

参考答案:a

参考解析:C语言中的标识符由字母、下划线和数字组成,开头必须是字母或下划线。此外,关键字不能用作标识符。b以数字8开头,所以是错的。C和D中使用了关键字void和unsigned,所以是错误的。

9【选择题】下列说法中错误的是()。

A.由三种基本结构组成的程序只能解决简单的问题。

B.结构化程序由三个基本结构组成:序列、分支和循环。

C.c语言是一种结构化编程语言。

D.结构化编程提倡模块化设计方法。

参考答案:a

参考分析:由序列、选择(分支)、循环三个基本结构组成的程序可以解决所有问题,而不仅仅是简单的问题,所以A是错的。

10【选择题】正确的说法是()。

A.栈是一个“先进先出”的线性表。

B.队列是“先入后出”的线性表

C.循环队列是非线性结构。

D.有序线性表可以采用顺序存储结构,也可以采用链式存储结构。

参考答案:d。

参考分析:栈是先入后出的线性表,所以A是错的;队列是先进先出线性表,所以B是错的;循环队列是线性结构的线性表,所以C是错的。

11【选择题】下列不构成无限循环的语句或语句组是()。

A.n=0:

do { ++ n;} while(n & lt;=0);

b . n = 0;

while(1){ n++;}

c . n = 10;

while(n);{ n-;}

D.for(n=0,I = 1;;i++)n+= I;

参考答案:a

引用解析:选项A中do后面的语句只执行一次,结束循环;选项B中的while(1)条件始终为真,所以是无限循环;选项C中n的值为10,循环体为空语句,所以wilile(n)始终为真,进入无限循环;d选项中for语句的第二个表达式为空,因此没有判据,进入无限循环。

12【选择题】如果a是数值型,则逻辑表达式(a==1)||(a!=1)是()。

A.1

B.0

C.2

D.如果不知道A的值,就无法确定。

参考答案:a

引用分析:逻辑OR“| |”要求只要两边都有非零操作数,结果就为真。虽然A的值未知,但如果A为L,则左操作数为1;如果a的值不是1,那么右操作数的值就是1,所以总是可以保证有一边是非零的,所以结果为真,也就是1。

13【选择题】下列选项中,不属于结构化程序设计原理的是()。

A.可包装的

B.自上而下

C.模块化

D.逐渐细化

参考答案:a

参考分析:结构化编程的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择a。

14【选择题】一棵二叉树有5个度为2的节点,那么二叉树的叶节点数是()。

A.10

B.8

C6

丁四

参考答案:c。

参考分析:根据二叉树3的基本性质:在任何二叉树中,度为0的叶节点总是比度为2的叶节点多一个,所以在本题中为5+1=6。

15【选择题】支持子程序调用的数据结构是()。

A.堆

B.树

C.行列

D.二叉树

参考答案:a

引用解析:堆栈支持子例程调用。Stack是线性表,只能在一端插入或删除。主程序调用子程序时,需要先保存主程序的当前状态,然后转向执行子程序,最后将子程序的执行结果返回到主程序中调用子程序的位置,继续向下执行。这个调用符合栈的特性,所以这个问题的答案是a。