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。