国家二级(C语言)机试历年真题试卷汇编18
选择题
1.下列叙述中错误的是( )。(C)
A. 算法的时问复杂度与算法所处理数据的存储结构有直接关系
B. 算法的空间复杂度与算法所处理数据的存储结构有直接关系
C. 算法的时间复杂度与空间复杂度有直接关系
D. 算法的时间复杂度与算法程序执行的具体时间是不一致的
解析:算法的时间复杂度是指执行算法所需要的计算工作量。数据的存储结构直接决定数据输入,而这会影响算法所执行的基本运算次数,A项正确。算法的空间复杂度是指执行这个算法所需要的内存空间,其中包括输入数据所占的存储空间,B项正确。而算法的时间复杂度与空间复杂度没有直接关系,C项错误。算法程序执行的具体时间受到所使用的计算机、程序设计语言以及算法实现过程中的许多细节所影响,而算法的时间复杂度与这些因素无关,所以是不一致的,D项正确。
2.在满足实体完整性约束的条件下( )。(A)
A. 一个关系中应该有一个或多个候选关键字
B. 一个关系中只能有一个候选关键字
C. 一个关系中必须有多个候选关键字
D. 一个关系中可以没有候选关键字
解析:实体完整性约束要求关系的主键中属性值不能为空值,因此本题答案为A。
3.下面描述中,不属于软件危机表现的是( )。(A)
A. 软件过程不规范
B. 软件开发生产率低
C. 软件质量难以控制
D. 软件成本不断提高
解析:软件危机主要表现在:软件需求的增长得不到满足;软件开发成本和进度无法控制;软件质量难以保证;软件不可维护或维护程度非常低;软件的成本不断提高;软件开发生产率的提高赶不上硬件的发展和应用需求的增长。因此本题答案为A。
4.下列各项中不属于需求分析阶段任务的是( )。(D)
A. 确定软件系统的功能需求
B. 确定软件系统的性能需求
C. 需求规格说明书评审
D. 制定软件集成测试计划
解析:需求分析阶段的工作包括:需求获取、需求分析、编写需求规格说明书、需求评审,因此本题答案为D。
5.待排序的关键码序列为(15,20,9,30,67,65,45,90),要按关键码值递增的顺序排序,采取简单选择排序法,第一趟排序后关键码15被放到第( )个位置。(B)
A. 2
B. 3
C. 4
D. 5
解析:简单选择排序的算法可以描述为:前面的元素己经有序,扫描剩下的线性表,找到最小的元素,将它交换到剩余表的最前面,直到剩余表为空。所以第一趟排序后,将选出的最小元素与15交换,15被放在第3个位置。
6.构成计算机软件的是( )。(D)
A. 源代码
B. 程序和数据
C. 程序和文档
D. 程序、数据及相关文档
解析:计算机软件的定义为:与计算机系统的操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。答案选D。
7.在黑盒测试方法中,设计测试用例的主要根据是( )。(B)
A. 程序内部逻辑
B. 程序外部功能
C. 程序数据结构
D. 程序流程图
解析:黑盒测试是对软件已经实现的功能是否满足需求进行测试和验证,黑盒测试完全不考虑程序内部的逻辑结构和内部特性,只根据程序的需求和功能规格说明,检查程序的功能是否符合它的功能规格说明,因此本题答案为B。
8.在下列模式中,能够给出数据库物理存储结构与物理存取方法的是( )。(B)
A. 外模式
B. 内模式
C. 概念模式
D. 逻辑模式
解析:数据库系统的三级模式是概念模式、外模式和内模式。概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户的公共数据视图。外模式也称子模式或用户模式,它是用户的数据视图,给出了每个用户的局部数据描述。内模式又称物理模式,它给出了数据库的物理存储结构与物理存取方法,因此本题答案为B。
9.在关系模型中,每一个二维表称为一个( )。(A)
A. 关系
B. 属性
C. 元组
D. 主码(键)
解析:关系模型采用二维表来表示,一个二维表表示一个关系。
10.有三个关系R、S和T如下:
(C)
A. 自然连接
B. 交
C. 除
D. 并
解析:如果T=R/S,则T称为R除以S的商。在除运算中,T的域由R中那些不出现在S中的域所组成,对于T中的任一有序组,由它与关系S中每个有序组所构成的有序组均出现在关系R中。因此本题选择C。
11.以下叙述中正确的是( )。(A)
A. 我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令
B. 程序必须包含所有三种基本结构才能成为一种算法
C. 如果算法非常复杂,则需要使用三种基本结构之外的语句结构,才能准确表达
D. 只有简单算法才能在有限的操作步骤之后结束
解析:顺序、选择、循环是C语言程序的三个基本结构,一个C语言算法可以由其中一种或者多种构成,选项B错误;三种基本结构能解决所有的问题,而且C语言只能有这三种结构,选项C错误;C语言算法的特点之一就是有穷性,任何一个算法都必须能在有限的操作步骤之后结束,选项D错误;C语言程序编译时将每条可执行语句转换为二进制的机器指令,答案选A。
12.以下叙述中正确的是( )。(A)
A. 计算机只接收由0和1代码组成的二进制指令或数据
B. 计算机只接收由0和1代码组成的十进制指令或数据
C. 计算机可直接接收并运行C源程序
D. 计算机可直接接收并运行任意高级语言编写的源程序
解析:二进制数中只有两个字符0和1,表示具有两个不同稳定状态的元器件。例如,电路中有/无电流,有电流用1表示,无电流用O表示。类似的还比如电路中电压的高/低,晶体管的导通和截止等;二进制数运算简单,大大简化了计算中运算部件的结构,故选项A正确。
13.以下叙述中错误的是( )。(A)
A. C程序在运行过程中所有计算都以十进制方式进行
B. C程序在运行过程中所有计算都以二进制方式进行
C. 所有C程序都需要编译链接无误后才能运行
D. C程序中字符变量存放的是字符的ASCII值
解析:C程序在运行过程中,所有计算都以二进制方式进行。
14.若有定义语句:
int a=3,b=2,c=1;
以下选项中错误的赋值表达式是( )。(C)
A. a=(b=4)+c;
B. a=b=c+1;
C. a=(b=4)=3;
D. a=1+(b=c=4):
解析:b=4不能作为左值,(b=4)=3出现编译错误。
15.有以下程序:
#include
main()
{
int x,y,z;
x=y=1;
z=x++;y++;++y;
printf(\\(C)
A. 2 3 2
B. 2 3 3
C. 2 3 1
D. 2 2 1
本文档预览:3600字符,共13705字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载