国家二级(C语言)机试历年真题试卷汇编19
选择题
1.下列数据结构中,属于非线性结构的是( )。(C)
A. 循环队列
B. 带链队列
C. 二叉树
D. 带链栈
解析:线性结构的特点:①有且只有一个根结点;②每一个结点最多有一个前驱,也最多有一个后继。不满足线性结构条件的称为非线性结构,二叉树的非叶子结点最多可以用两个后继,属于非线性结构。
2.算法的空间复杂度是指( )。(A)
A. 算法在执行过程中所需要的计算机存储空间
B. 算法所处理的数据量
C. 算法程序中的语句或指令条数
D. 算法在执行过程中所需要的临时工作单元数
解析:算法的空间复杂度是指算法在执行过程中所需要的内存空间,因此本题答案为A。
3.下列数据结构中,能够按照“先进后出\\(B)
A. 循环队列
B. 栈
C. 队列
D. 二叉树
解析:栈是按“先进后出\\
4.某二叉树共有12个结点,其中叶子结点只有1个。则该二叉树的深度为(根结点在第1层)( )。(D)
A. 3
B. 6
C. 8
D. 12
解析:二叉树中,度为0的结点数等于度为2的结点数加1,即n2=n0—1,叶子结点即度为0,n0=1,则n2=0,总结点数为12=n0+n1+n2=1+n1+0,则度为1的结点数n1=11,所以深度为12。故D选项正确。
5.下面不能作为结构化方法软件需求分析工具的是( )。(A)
A. 系统结构图
B. 数据字典(DD)
C. 数据流程图(DFD图)
D. 判定表
解析:结构化方法软件需求分析工具主要有数据流图、数据字典、判定树和判定表。
6.下面不属于软件测试实施步骤的是( )。(B)
A. 集成测试
B. 回归测试
C. 确认测试
D. 单元测试
解析:软件测试主要包括单元测试、集成测试、确认测试和系统测试。
7.下面描述中不属于数据库系统特点的是( )。(C)
A. 数据共享
B. 数据完整性
C. 数据冗余度高
D. 数据独立性高
解析:数据库系统的特点为高共享、低冗余、独立性高、具有完整性等,故C选项错误。
8.负责数据库中查询操作的数据库语言是( )。(C)
A. 数据定义语言
B. 数据管理语言
C. 数据操纵语言
D. 数据控制语言
解析:数据定义语言:负责数据的模式定义与数据的物理存取构建;数据操纵语言:负责数据的操纵,包括查询及增、删、改等操作;数据控制语言:负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。
9.设数据元素的集合D={1,2,3,4,5},则满足下列关系R的数据结构中为线性结构的是( )。
B
解析:关系R中的每个结点由两个部分构成,分别是数据域和指针域。选项B中可以看出,元素序列为5→4→1→3→2,符合线性结构的条件。A选项2的前面有1和3两个数值,带有不确定性;C选项2的后面有4和3两个数值;D选项1的后面有3和2两个数值。所以B选项正确。
10.一般情况下,当对关系R和S进行自然连接时,要求R和S含有一个或者多个共有的( )。(C)
A. 记录
B. 行
C. 属性
D. 元组
解析:自然连接是一种特殊的等值连接,它满足以下条件:①两关系间有公共域(属性);②通过公共域的等值进行连接,故C选项正确。
11.以下关于结构化程序设计的叙述中正确的是( )。(D)
A. 由三种基本结构构成的程序只能解决小规模的问题
B. 结构化程序使用goto语句会很便捷
C. 一个结构化程序必须同时由顺序、分支、循环三种结构组成
D. 在C语言中,程序的模块化是利用函数实现的
解析:D项正确,C语言允许对函数单独进行编译,从而可以实现模块化。A项错误,使用三种基本结构组成的程序可以解决复杂的问题;B项错误,使用goto语句会使程序混乱,程序中应该尽量避免使用goto语句;C项错误,一个结构化程序没有必要同时由顺序、分支、循环三种结构组成。
12.以下叙述中正确的是( )。(D)
A. 书写源程序时,必须注意缩进格式,否则程序会有编译错误
B. 程序的主函数名除main外,也可以使用Main或_main
C. 程序可以包含多个主函数,但总是从第一个主函数处开始执行
D. 在C程序中,模块化主要是通过函数来实现的
解析:C语言的源程序中对缩进没有要求,所以A选项错误。C语言中区分大小写,main函数不能写成Main或_main,所以B选项错误。一个C程序有且只有一个主函数,所以C选项错误。
13.以下叙述中正确的是( )。(D)
A. 只能在函数体内定义变量,其他地方不允许定义变量
B. 常量的类型不能从字面形式上区分,需要根据类型名来决定
C. 预定义的标识符是C语言关键字的一种,不能另作它用
D. 整型常量和实型常量都是数值型常量
解析:变量可以定义在函数体外,也可以定义在函数体内,所以A错误。常量的类型可以从字面形式上区分,比如1为整型常量,1.0为实型常量,a为字符型常量,所以B错误。预定义的标识符不是C语言的关键字,所以C错误。故D选项正确。
14.若有以下程序段:
double x=5.1 6894:
printf(\\(C)
A. 5.170000
B. 5.175000
C. 5.169000
D. 5.168000
解析:本题考查强制类型转换与输出格式。%f的输出格式是以带小数点的数学形式输出浮点数。首先计算x*1000,结果为5168.94,加0.5为5169.44,然后进行强制类型转换,转换成整型为5169,然后除以双精度数据1000,结果为双精度数据5.169,输出时按照%1的格式输出,所以输出结果为5.169000。
15.以下定义语句中正确的是( )。(B)
A. int a=b=0;
B. char A=65+1,b=’b’;
C. float a=1,*b=&a,*c=&b;
D. double a=0.0;b=1.1;
解析:定义变量时不能连等,所以A错误;C选项中,b是指针,c定义为指向指针的指针才可以接受&b,所以C错误;D选项,b=1.1前没有类型名,所以错误。
16.若有以下程序:
#include<stdio.h>
main()
{
int a=一11,b=10;
a%=b%=4;
printf(\\(B)
A. 1 2
B. 一1 2
C. 一1—2
D. 1—2
解析:先计算b%=4,即b=b%4,结果为2,然后计算a%=2,结果为一1,最后输出a的值为一1,b的值为2,故B选项正确。
17.下面选项中关于位运算的叙述正确的是( )。(A)
A. 位运算的对象只能是整型或字符型数据
B. 位运算符都需要两个操
本文档预览:3600字符,共14349字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载