国家二级C语言机试(选择题)模拟试卷367
选择题
1.算法具有五个特性,以下选项中不属于算法特性的是(B)
A. 有穷性
B. 简洁性
C. 可行性
D. 确定性
解析:算法的五个特性分别是:有穷性、可行性、确定性、输入和输出。
2.下列叙述中正确的是( )。(A)
A. 在栈中,栈顶指针的动态变化决定栈中元素的个数
B. 在循环队列中,队尾指针的动态变化决定队列的长度
C. 在循环链表中,头指针和链尾指针的动态变化决定链表的长度
D. 在线性链表中,头指针和链尾指针的动态变化决定链表的长度
解析:在栈中,通常用指针top来指示栈顶的位置,用指针bottom指向栈底。栈顶指针top动态反映了栈中元素的变化情况。在循环队列中,队头指针和队尾指针的动态变化决定队列的长度。链式存储结构中,各数据节点的存储序号是不连续的,并且各节点在存储空间中的位置关系与逻辑关系也不一致,故头指针和尾指针或栈顶指针无法决定链表长度。
3.下列描述中正确的是(A)
A. 线性链表是线性表的链式存储结构
B. 栈与队列是非线性结构
C. 双向链表是非线性结构
D. 只有根结点的二叉树是线性结构
解析:线性表的链式存储结构称为线性链表。线性表链式存储结构的基本单位称为存储结点,每个存储结点包括数据域和指针域两个组成部分。各数据元素之间的前后件关系是由各结点的指针域来指示的,指向线性表中第一结点的指针HEAD称为头指针,当HEAD=NULL时称为空表。栈、队列和双向链表是线性结构,树是一种简单的非线性结构。在树这种数据结构中,所有数据元素的关系具有明显的层次特征。二叉树是非线性结构。线性结构和非线性结构是从数据的逻辑结构角度来讲的,与该数据结构中有多少个元素没有关系,即使是空的二叉树也是非线性结构。
4.下面叙述中正确的是(A)
A. 线性表是线性结构
B. 栈与队列是非线性结构
C. 线性链表是非线性结构
D. 二叉树是线性结构
解析:线性表是最简单的、最常用的一种线性结构。所谓线性链表指的是采用链式存储结构的线性表。栈和队列其实是一种特殊的线性表。树是一种简单的非线性结构,二叉树是树的一种。
5.若变量都己正确说明,则以下程序段输出结果为( )。
#include
main()
{char a=’a’;
int b=2:
printf(a>b?\\(D)
A. ***a=3
B. ###b=3
C. ***a=3##b=5
D. 全部错误
解析:本题考查printf函数的格式和三目运算符“?:”的使用。printf函数中格式说明符之前插入的任何字符都原样输出。本题中“a>b”为真,所以返回“***a=97”。
6.对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为( )。(C)
A. 9
B. 10
C. 45
D. 90
解析:在最坏情况下,冒泡排序的时间复杂度为n(n-1)/2,为45,答案选C。
7.线性表的长度为n。在最坏情况下,比较次数为n-1的算法是( )。(C)
A. 顺序查找
B. 同时寻找最大项与最小项
C. 寻找最大项
D. 有序表的插入
解析:顺序查找要逐个查看所有元素,会比较n次。在最坏情况下,寻找最大项无论如何需要查看表中的所有元素,n个元素比较次数为n-1。同时寻找最大项和最小项,需要为判断较大值和较小值分别进行比较,会有更多的比较次数。有序表的插入最坏情况下是插入到表中的最后一个元素的后面位置,则会比较n次。
8.设一棵完全二叉树共有700个结点,则此二叉树中的叶子结点数为(D)
A. 85
B. 120
C. 250
D. 350
解析:①具有n个结点的完全二叉树的深度为[long2n]+1,计算出该完全二叉树的深度为10。 ②设度为0的结点(即叶子结点)为n0,度为1的结点为n1,度为2的结点为n2,总结点数为n,深度为k。n=n1+n2+n0,由于n0=n2+1则n2=n0-1,故n=n1+n0-1+n0=n1+2n0-1。由于完全二叉树中度为1的结点数只有两种可能:0或1。③假设度为1的结点数为0即满二叉树,根据满二叉树的定义,其2m-1个结点,根据以上计算所得的深度10来计算,应有210-1=1024-1=1023个结点,显然与题目中700个结点不符。因此,度为1的结点数必然为1。故n=n1+2n0-1=1+2n0-1=2n0,则n0=n/2=700/2=350。
9.下列叙述中正确的是(A)
A. 对长度为n的有序链表进行查找,最坏情况下需要的比较次数为n
B. 对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)
C. 对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log 2 n)
D. 对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog 2 n)
解析:本题主要考查的知识点为查找技术。顺序查找的使用情况:
①线性表为无序表;
②表采用链式存储结构。二分法查找只适用于顺序存储的有序表,并不适用于线性链表。
10.数据库系统中完成查询操作使用的语言是( )。(A)
A. 数据操纵语言
B. 数据定义语言
C. 数据控制语言
D. 数据并发语言
解析:数据库管理系统提供了相应的数据语言:
数据定义语言(DDL):该语言负责数据的模式定义与数据的物理存取构建。
数据操纵语言(DML):该语言负责数据的操纵,包括查询与增、删、改等操作。
数据控制语言(DCL):该语言负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。
11.在面向对象方法中,实现信息隐蔽是依靠(C)
A. 对象的继承
B. 对象的多态
C. 对象的封装
D. 对象的分类
解析:对象的封装性是指从外部看只能看到对象的外部特征,即只需知道数据的取值范围和可以对该数据施加的操作,而不需要知道数据的具体结构以及实现操作的算法。对象的内部,即处理能力的实行和内部状态,对外是不可见的。从外面不能直接使用对象的处理能力,也不能直接修改其内部状态,对象的内部状态只能由其自身改变。
12.已知字符’A’的ASCII代码值是65,字符变量c1的值是’A’,c2的值是’D’。则执行语句printf(\\(C)
A. A,68
B. A,B
C. 65,66
D. 65,68
解析:在C语言中,字符常量在内存中占一个字节,存放的是字符的ASCII码值。所有的字符常量都作为整型量来处理。在本题中输出语句用整型格式输出字符时,输出的是其ASCII码值。因为字符’A’和’D’的ASCII码值分别为65和68,所以c2-2=68-2=66。
13.设有以下说明,则不正确的叙述是( )。
unionun
{ int a;
charb;
float c;
} art;(C)
A. arr所占的内存长度等于成员c的长度
B. art的地址和
本文档预览:3600字符,共12042字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载