全国计算机等级考试等级考试真题库之选择题(16)
1.下列叙述中正确的是
A)  程序执行的效率与数据的存储结构密切相关
B)  程序执行的效率只取决于程序的控制结构
C)  程序执行的效率只取决于所处理的数据量
D)  以上说法均错误
    参考答案:A
【解析】程序执行的效率与数据的存储结构、数据的逻辑结构、程序的控制结构、所处理的数据量等有关。
2.下列与队列结构有关联的是
A)  函数的递归调用
B)  数组元素的引用
C)  多重循环的执行
D)  先到先服务的作业调度
    参考答案:D
【解析】队列的修改是依先进先出的原则进行的,D正确。
3.
A)  DYBEAFCZX
B)  YDEBFZXCA
C)  ABDYECFXZ
D)  ABCDEFXYZ
    参考答案:C
【解析】前序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先访问根结点,然后遍历左子树,最后遍历右子树;并且,在遍历左右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。前序遍历描述为:若二叉树为空,则执行空操作。否则:①访问根结点;②前序遍历左子树;③前序遍历右子树,C正确。
4.一个栈的初始状态为空。现将元素1,2,3,A,B,C依次入栈,然后再依次出栈,则元素出栈的顺序是
A)  1,2,3,A,B,C
B)  C,B,A,1,2,3
C)  C,B,A,3,2,1
D)  1,2,3,C,B,A
    参考答案:C
【解析】栈的修改是按后进先出的原则进行的,所以顺序应与入栈顺序相反,故选C
5.下面属于白盒测试方法的是
A)  等价类划分法
B)  逻辑覆盖
C)  边界值分析法
D)  错误推测法
    参考答案:B
【解析】白盒测试法主要有逻辑覆盖、基本路径测试等。逻辑覆盖测试包括语句覆盖、路径覆盖、判定覆盖、条件覆盖、判断-条件覆盖,选择B。其余为黑盒测试法。
6.下面对对象概念描述正确的是
A)  对象间的通信靠消息传递
B)  对象是名字和方法的封装体
C)  任何对象必须有继承性
D)  对象的多态性是指一个对象有多个操作
    参考答案:A
【解析】对象之间进行通信的构造叫做消息,A正确。多态性是指同一个操作可以是不同对象的行为,D错误。对象不一定必须有继承性,C错误。封装性是指从外面看只能看到对象的外部特征,而不知道也无须知道数据的具体结构以及实现操作,B错误。
7.软件设计中模块划分应遵循的准则是
A)  低内聚低耦合
B)  高耦合高内聚
C)  高内聚低耦合
D)  以上说法均错误
    参考答案:C
【解析】根据软件设计原理提出如下优化准则:① 划分模块时,尽量做到高内聚、低耦合,保持模块相对独立性,并以此原则优化初始的软件结构。② 一个模块的作用范围应在其控制范围之内,且判定所在的模块应与受其影响的模块在层次上尽量靠近。③ 软件结构的深度、宽度、扇入、扇出应适当。④ 模块的大小要适中。C正确。
8.下面描述中不属于数据库系统特点的是
A)  数据共享
B)  数据完整性
C)  数据冗余度高
D)  数据独立性高
    参考答案:C
【解析】数据库系统的特点为高共享、低冗余、独立性高、具有完整性等,C错误。
9.数据库设计过程不包括
A)  概念设计
B)  逻辑设计
C)  物理设计
D)  算法设计
    参考答案:D
【解析】数据库设计过程主要包括需求分析、、概念结构设计、逻辑结构分析、数据库物理设计、数据库实施、数据库运行和维护阶段。答案为D选项。
10.
A)  自然连接
B) 
C)  投影
D) 
    参考答案:A
【解析】关系R和关系S有公共域,关系T是通过公共域的等值进行连接的结果,符合自然连接,选A
11.以下叙述中正确的是
A)  程序必须包含所有三种基本结构才能成为一种算法
B)  我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令
C)  如果算法非常复杂,则需要使用三种基本结构之外的语句结构,才能准确表达
D)  只有简单算法才能在有限的操作步骤之后结束
    参考答案:B
【解析】C语言程序可以不包含三种基本结构,也可以包含其中的一种或多种,所以A错误三种基本结构可以表示任何复杂的算法,所以C错误正确的算法,不管是简单算法还是复杂算法都可以在有限的操作步骤之后结束,这是算法的有穷性,所以D错误
12.以下叙述中正确的是
A)  在算法设计时,可以把复杂任务分解成一些简单的子任务
B)  C语言程序设计中,所有函数必须保存在一个源文件中
C)  只要包含了三种基本结构的算法就是结构化程序
D)  结构化程序必须包含所有的三种基本结构,缺一不可
    参考答案:A
【解析】C语言的程序中,函数不一定都放在同一个源文件中,可以分别放在不同源文件中,通过#include命令来引用,所以B错误结构化程序可以包含三种基本结构中的一种或几种,所以C,D错误
13.以下叙述中正确的是
A)  只能在函数体内定义变量,其他地方不允许定义变量
B)  常量的类型不能从字面形式上区分,需要根据类型名来决定
C)  预定义的标识符是C语言关键字的一种,不能另作它用
D)  整型常量和实型常量都是数值型常量
    参考答案:计算机二级c语言选择题库D
【解析】变量可以定义在函数体外也可以定义在函数体内,所以A错误常量的类型可以从字面形式上区分,比如1为整型常量,1.0为实型常量,a为字符型常量,所以B错误预定义的标识符不是C语言的关键字,所以C错误
14.以下叙述中正确的是
A)  C程序中的八进制和十六进制,可以是浮点数
B)  整型变量可以分为int型、short型、long型和unsigned型四种
C)  八进制数的开头要使用英文字母o,否则不能与十进制区分开
D)  英文大写字母X和英文小写字母x都可以作为二进制数字的开头字符
    参考答案:B
【解析】C程序中的实型常量只有十进制一种数制,所以A错误八进制数以0打头,所以C错误C语言中整数只有十进制八进制十六进制三种没有二进制数制,所以D错误
15.以下叙述中正确的是
A)  scanf函数中的格式控制字符串是为了输入数据用的,不会输出到屏幕上
B)  在使用scanf函数输入整数或实数时,输入数据之间只能用空格来分隔
C)  printf函数中,各个输出项只能是变量
D)  使用printf函数无法输出百分号%
    参考答案:A
【解析】scanf函数中的格式控制字符串是为了输入数据用的,无论其中有什么字符,也不会
输出到屏幕上,所以A正确scanf()的格式控制串可以使用其他非空白字符,如逗号,但在输入时必须输入这些字符,以保证匹配就可以,所以B错误Printf函数可以输出常量也可以输出变量,所以C错误Prinf函数可以用"\%"来输出百分号%,所以D错误
16.以下叙述中正确的是
A)  scanf函数的格式串中,必须有与输入项一一对应的格式转换说明符
B)  只能在printf函数中指定输入数据的宽度,而不能在scanf函数中指定输入数据占的宽度
C)  scanf函数中的字符串,是提示程序员的,输入数据时不必管它
D)  复合语句也被称为语句块,它至少要包含两条语句
    参考答案:A
【解析】在printfscanf函数中都可以指定数据的宽度,所以B错误scanf()的格式控制串可以使用其他非空白字符,如逗号,但在输入时必须输入这些字符,以保证匹配,所以C错误复合语句可以由任意多条语句构成,可以使一条也可以没有,所以D错误
17.以下叙述中正确的是
A)  逻辑""(即运算符||)的运算级别比算术运算要高
B)  C语言的关系表达式:0<x<10完全等价于: (0<x) && (x<10)
C)  逻辑""(即运算符!)的运算级别是最低的
D)  &&构成的逻辑表达式与由||构成的逻辑表达式都有"短路"现象
    参考答案:D
【解析】B选项中,(x>0)&&(x<10)的值是10,条件是x>0 并且x <10。但是 0<x<10这种写法的结果任何时候都是1 C选项中,逻辑""(即运算符!)的运算级别是最高的;A选项中,算术运算符优先级较高,关系和逻辑运算符优先级较低。因此D选项正确。
18.以下叙述中正确的是
A)  if语句只能嵌套一层
B)  if子句和else子句中可以是任意的合法的C语句
C)  不能在else子句中再嵌套if语句
D)  改变if-else语句的缩进格式,会改变程序的执行流程
    参考答案:B
【解析】A选项中,if语句的嵌套没有规定层数; C选项中,可以在else子句中再嵌套if语句;D选项中,改变if-else语句的缩进格式,不会改变程序的执行流程,需要注意ifelse的配对问题。因此B选项正确。
19.以下叙述中正确的是
A)  只要适当地修改代码,就可以将do-whilewhile相互转换
B)  对于"for(表达式1;表达式2;表达式3) 循环体"首先要计算表达式2的值,以便决定是否开始循环
C)  对于"for(表达式1;表达式2;表达式3) 循环体",只在个别情况下才能转换成while语句
D)  如果根据算法需要使用无限循环(即通常所称的"死循环") ,则只能使用while语句
    参考答案:A
【解析】B选项中,for语句中需要先求解先求解表达式1 C选项中,for语句使用最为灵活,它完全可以取代 while 语句;D选项中,对于死循环,也可以使用for语句。因此A选项正确。
20.以下叙述中正确的是
A)  只能在循环体内和switch语句体内使用break语句
B)  break出现在循环体中的switch语句体内时,其作用是跳出该switch语句体,并中止循环体的执行
C)  continue语句的作用是:在执行完本次循环体中剩余语句后,中止循环
D)  while语句和do-while语句中无法使用continue语句
    参考答案:A
【解析】break语句通常用在循环语句和开关语句中。当break用于开关语句switch中时,可使程序跳出switch而执行switch以后的语句;当break语句用于do-whileforwhile循环语句中时,可使程序终止循环而执行循环后面的语句,即满足条件时便跳出循环。continue语句的作用是跳过循环体中剩余的语句而强行执行下一次循环。BCD三个选项中均有错误。因此A选项正确。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。