<2018年计算机二级考试C语言试题及答案(2)
选择题(每小题1分,***40分)
<1[单选题]若有定义语句:double a,* P=amp;a;以下叙述中错误是(<)。
<A.语句定义中的*号是一个间地址运算符
参考答案:A 参考解析:在变量定义double a,* P= amp;a;中,*号是一个指针动作,夹角动作,所以A错误。 <6[单选题]若有语句定义:int x=10;,则表达式x-=x x 的值(<)。 <A.0 <B.-20 <C.-10 ★D.10 参考答案:C 参考解析:算术运算符的优先级为-=,且-=的结合方向为自右向左,所以表达式式x-=x x可以表示成x=x-(x x)=10-(10 10)=-10,选择C。 <2[单选题]若有定义语句:double x, y,*px,*py;执行了px=amp;x;py=amp;y;之后,正确的输入语句是(<)。 A.scanf(“Ifle”,px,py ); B.scanf(“ff”amp;x,amp;y); C.sceanf(“ff”,x.y); D.scanf(”IfIf'',x,y); 参考答案:A 参考解析:因为x,y都是双型数据,所以输入时的格式字符应为lf,所以B与C错误。D选项中scanf("lfIf",x,y);应为scanf(“IfIf"”,amp;x,amp;y);。 3[单选题]下列数据结构中,属于非线性结构是( )。 A.循环队列 B.带链队列 ?C.二叉树 ?D.带链栈 ?参考答案:C ?参考解析:树是简单的非线性结构,所以二叉树作为树的一种也是一种非线性结构。 4[单选题] 对于循环队列,下列叙述正确的是( )。 A.队头滑块是固定不变的 ?B.队头指针一定大于队尾指针 ?C.队头指针一定小于队尾指针 ?D.队头指针可以大于队尾指针,也可以小于队尾指针 参考答案:D 参考解析:循环排列的队头指针与队尾指针都不是固定的,随着入队与出队操作要进行变化。因为是循环利用的排列结构,所以队头指针有时可能大于队尾指针,有时也可能小于队尾指针。 5[单选题]若变量已定义正确,在 if(W)printf(“d\n”,k);中,以下替代不可w 的是( )。 ★A.alt;gt;b c ★B.ch=getchar() ★C.a==b c ★D.a 参考答案:A 参考解析:选项A是非法的表达,C语言中没有lt;gt;运算符。 6[单选题]以下排序方法简单的是,最坏的情况下比较次数最少(★)。 ★A.冒泡排序 ★B.选择排序 ★C.直接插入排序 D.堆排序 参考答案:D 参考解析:冒泡排序与筒单插入排序与简单选择排序法在最坏情况下均需要比较n(n-1)/2次,而堆排序在最坏情况下需要比较的次数为nlog2n。 ★7[单选题]数据库管理系统是(★) 。 【A.操作系统的部分 【B.在操作系统支持下的系统软件 【C.一个编译系统 ?D.一种操作系统 ?参考答案:B ?参考组织:数据库管理系统是数据库的机构,它是一种系统软件,负责数据库中的数据、数据整理、数据维护、控制及保护和数据服务等。是一种在操作系统之上的系统软件。 八【单选题】以下选项中,能用于用户标识符的是(?)。 ?A._0_ ?B.8_8 ?C.void ?D.无符号 参考答案:A 参考解析:C语言中标识符由字母、下划线、数字组成,且起始必须是字母或下划线。另外,关键字不能作为标识符。B中以数字8起始,所以错误。C与D中用的是void与unsigned,所以错误。 <9[单选题] 以下叙述中的是错误(<)。 <A .使用透明基本结构构成的程序只能解决简单的问题 〈B.重构程序由顺序、路径、循环循环组成 〈C.C语言是一种结构化程序语言 D.结构化结构化程序设计方法 参考:a 参考参考),循环透明基本结构构成的程序可以解决所有问题,而不仅仅是解决简单的问题,所以A错误。 ★10[单选题]下列叙述中正确的是(★)。 p> :A.栈是“先进先出”的线性表 :B.队列是“先进后出”的线性表 :C.循环队列是非线性结构 ?D. 网格线性表既可以采用顺序存储结构,也可以采用链式存储结构 ?参考答案:D ?参考解析:栈是先进后出的线性表,所以A错误;队列是先进先出的线性表,所以B错误;循环队列是线性结构的线性表,所以C错误。 11[单选题]以下不构成无限循环的语句或语句组是(<)。 ★A.n=0: ★do{ n;}while(nlt;=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选项中为第第语句 12[单选题]若a是数值类型,则逻辑表达式(a==1)||(a! =1) 的值为( )。 A.1 B.0 C.2 D.不知道a的值,不能确定 参考答案:A 参考解析:逻辑或”||”要求左肩的攻击对象有一个非零,结果就为真。不知道a的值,但若a为l,则左侧侵犯对象为1;若a的值不是1,则左侧侵犯对象的值为1,所以总能保证一侧为零,所以结果为真,即1 。 13[单选题]下列选项中不属于包装程序设计原则是(<)。 顶层次 C.分级 D.渐进求精 参考答案:A 参考解析:格式化程序设计的思想包括:自顶向下、阶梯求精、优先、限制使用goto语句,所以选择A。 14【单选题】某二叉树有5个度为2的结点,则该二叉树中的叶子结点数为(★)。 ★A.10 ★B.8 ★C.6 D.4 参考答案:C 参考解析:根据二叉树的基本性质3:在任意一棵二叉树中,度为0的叶子结点总是比度为2的结点多一个,所以本题中是5 1=6个。 <15[单选题]支持子程序调用的数据结构是(<)。 <A.栈 B.树 C.队列 D.二叉树 参考答案:A 参考解析:栈支持子程序调用。栈是一个只能在前面进行插入或删除的线性表,在主程序调用子函数时要首先保存主程序当前的状态,然后去转执行子程序,最后把子程序程序的执行结果返回到主程序中调用子程序的位置,继续后续执行,这种调用符合栈的特点因此,本题的答案为A。