国家二级C语言机试(选择题)模拟试卷322
选择题
1.下列关于栈的叙述中,正确的选项是( )。(D)
A. 在栈中只能删除数据
B. 在栈中只能插入数据
C. 栈是先进先出的线性表
D. 栈是先进后出的线性表
解析:栈是按照“先进后出”或“后进先出”的原则组织数据的。因此选项C)是错误的。在栈中,一端是封闭的,既不允许进行插入元素,也不允许删除元素;另一端是开口的,允许插入和删除元素。通常称插入、删除的这一端为栈顶,另一端为栈底。
2.算法的时间复杂度是指(D)
A. 算法的执行时间
B. 算法所处理的数据量
C. 算法程序中的语句或指令条数
D. 算法在执行过程中所需要的基本运算次数
解析:算法的时间复杂度,是指执行算法所需要的计算工作量。算法的工作量可以用算法在执行过程中所需基本运算的执行次数来度量。
3.若变量都已正确说明,则以下程序段输出结果为( )。
#include<stdio.h>
main()
(char a=’a’;
intb=2;
printf(a>b?”**a=%d’’:’’###bb=%d’’,a,b);
}(D)
A. ***a=3
B. ###b==3
C. ***a=3##b=5
D. 全部错误
解析:本题考查printf函数的格式和三目运算符“?:”的使用。printf函数中格式说明符之前插入的任何字符都原样输出。本题中“a>b”为真,所以返回“***a=97”。
4.某二叉树的中序遍历序列为CBADE,后序遍历序列为CBEDA,则前序遍历序列为( )。(C)
A. CBADE
B. CBEDA
C. ABCDE
D. EDCBA
解析:二叉树的后序遍历序列为CBEDA,由于后序遍历最后访问根结点,可以确定该二叉树的根结点是A。再由中序遍历序列为CBADE,可以得到子序列(CB)一定在左子树中,子序列(DE)一定在右子树中。结点C、B在中序序列和后序序列中顺序未变,说明结点B是结点C的父结点;结点D、E在中序序列和后序序列中顺序相反,说明结点D是结点E的父结点。因此该二叉树的前序遍历序列为ABCDE。
5.以下选项中作为C语言合法常量的是(A)
A. -80
B. -080
C. -8e1.0
D. -80.0e
解析:本题考查C语言中的常量,C语言中字母e或E之前必须有数字,且e或E后面的指数必须为整数。选项A表示负数-80;选项B中以数字0开始表示的是八进制数,八进制数数字范围是从0-7,不包括8;选项C是一个指数浮点,字母e后面应该是整型指数;选项D中字母e后面没有整数,不满足C规范。
6.对下列二叉树( )。
(C)
A. DYBEAFCZX
B. YDEBFZXCA
C. ABDYECFXZ
D. ABCDEFXYZ
解析:二叉树前序遍历的简单描述:若二叉树为空,则结束返回;否则,①访问根节点;②前序遍历左子树;③前序遍历右子树。可见,前序遍历二叉树的过程是一个递归的过程。根据题目中给出的二叉树的结构可知前序遍历的结果是ABDYECFXZ。
7.对如下二叉树
(D)
A. ABCDEF
B. DBEAFC
C. ABDECF
D. DEBFCA
解析:所谓后序遍历是指在访问根据结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后遍历右子树,最后访问根结点,并且,在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根点。因此,后序遍历二叉树的过程也是一个递归过程。其简单描述为:若二叉树为空,则结束返回;否则,先后序遍历左子树.然后后序遍历右子树,最后访问根结点。对于后序遍历,第一个访问的结点一定是最左下的结点,最后一个访问的结点一定是根结点,所以选项D)为正确答案。
8.下列叙述中正确的是( )。(A)
A. 程序执行的效率与数据的存储结构密切相关
B. 程序执行的效率只取决于程序的控制结构
C. 程序执行的效率只取决于所处理的数据量
D. 以上都不正确
解析:影响程序执行效率的因素有很多,如数据的存储结构、程序处理的数据量、程序的算法等。顺序存储结构和链式存储结构在数据插入和删除操作上的效率就存在差别。其中,链式存储结构的效率要高一些。
9.以下程序中,while循环的循环次数是( )。
main()
{ int n=0;
while(n<10)
{ if(n<1)continue;
if(n==5)break;
n++;
}
}(D)
A. 1
B. 10
C. 6
D. 死循环,不能确定次数
解析:本题考查break语句和continue语句。循环控制变量n的初始值为0,满足n<10,进入循环体,此时,n的值也满足第一个if语句的条件(n<1),执行continue语句,开始第二次循环,可见,循环控制变量n的值用于保持不变(恒为0),语句“n++;”执行不到,即无法使n的值等于5或大于等于10,因此,是一个死循环。
10.下列描述中正确的是(D)
A. 程序就是软件
B. 软件开发不受计算机系统的限制
C. 软件既是逻辑实体,又是物理实体
D. 软件是程序、数据与相关文档的集合
解析:计算机软件与硬件是计算机系统中相互依存的两部分。计算机软件是包括程序、数据及相关文档的完整集合。软件由两部分组成:一部分是机器可执行的程序和数据;二是机器不可执行的,与软件开发、运行、维护、使用等有关的文档。软件具有以下六个特点:①软件是一种逻辑实体,而不是物理实体,具有抽象性。②软件的生产与硬件不同,它没有明显的制作过程。③软件在运行、使用期间不存在磨损、老化问题。④软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移值的问题。⑤软件复杂性高,成本昂贵。⑥软件的开发涉及诸多社会因素。
11.有以下程序:
#include
main()
{
char x=2,y=2,z;
z=(Y<>1);
prinff(“%d\n”,z);
}
程序的输出结果是( )。(B)
A. 1
B. 0
C. 4
D. 8
解析:本题考查位运算<<和&。y<>1为1,二者与运算后为0,故B选项正确。
12.若变量均已正确定义并赋值,以下合法的C语言赋值语句是( )。(A)
A. x=y==5;
B. x=n%2.5;
C. x+n=i;
D. x=5:4+
本文档预览:3600字符,共11623字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载