国家二级C++机试(选择题)模拟试卷240
选择题
1.在软件开发中,需求分析阶段产生的主要文档是( )。(B)
A. 可行性分析报告
B. 软件需求规格说明书
C. 概要设计说明书
D. 集成测试计划
解析:A错误,可行性分析阶段产生可行性分析报告。c错误,概要设计说明书是总体设计阶段产生的文档。D错误,集成测试计划是在概要设计阶段编写的文档。B正确,软件需求规格说明书是后续工作如设计、编码等需要的重要参考文档。
2.支持子程序调用的数据结构是( )。(A)
A. 栈
B. 树
C. 队列
D. 二叉树
解析:栈是一种限定在一端进行插入与删除的线性表。在主函数调用子函数时,要首先保存主函数当前的状态,然后转去执行子函数,把子函数的运行结果返回到主函数调用子函数时的位置,主函数再接着往下执行,这种过程符合栈的特点。所以一般采用栈式存储方式。
3.下列关于线性链表的叙述中,正确的是( )。(C)
A. 各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致
B. 各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续
C. 进行插入与删除时,不需要移动表中的元素
D. 以上都不正确
解析:线性表的链式存储结构称为线性链表。在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。
4.某系统总体结构图如下图所示:
(C)
A. 7
B. 6
C. 3
D. 2
解析:这个系统总体结构图是一棵树结构,在树结构中,根结点在第1层,同一层上所有子结点都在下一层,由系统总体结构图可知,这棵树共3层。在树结构中,树的最大层次称为树的深度。所以这棵树的深度为3。
5.设树T的深度为4,其中度为1,2,3,4的结点个数分别为4,2,1,1。则T中的叶子结点数为( )。(B)
A. 8
B. 7
C. 6
D. 5
解析:深度为m二叉树其总结点数为2 m -1=2 4 -1=15。总结点数减去度为1,2,3,4的结点个数就是叶子结点数。15-4-2-1-1=7。
6.设一棵完全二叉树共有700个结点,则此二叉树中的叶子结点数为( )。(D)
A. 85
B. 120
C. 250
D. 350
解析:①具有n个结点的完全二叉树的深度为[long 2 n]+1,计算出该完全二叉树的深度为10。
②设度为0的结点(即叶子结点)为n 0 ,度为1的结点为n 1 ,度为2的结点为n 2 ,总结点数为n,深度为k。n=n 1 +n 2 +n 0 ,由于n 0 =n 2 +1则n 2 =n 0 -1,故n=n 1 +n 0 -1+n 0 =n 1 +2n 0 -1。由于完全二叉树中度为1的结点数只有两种可能:0或1。
③假设度为1的结点数为0即满二叉树,根据满二叉树的定义,其2 m -1个结点,根据以上计算所得的深度10来计算,应有2 10 -1=1024-1=1023个结点,显然与题目中700个结点不符。因此,度为1的结点数必然为1。
故n=n 1 +2n 0 -1=1+2n 0 -1=2n 0 ,则n 0 =n/2=700/2=350。
7.设一棵树的度为3,其中没有度为2的结点,且叶子结点数为5。该树中度为3的结点数为(B)
A. 1
B. 2
C. 3
D. 不可能有这样的树
解析:树的度是指一棵树中,最大的结点的度称为树的度。本题中树的度为3,那么树中最少有一个结点的度为3。而树中没有度为2的结点,叶子结点数为5,度为1的结点下面只有一个叶子结点。因此,该树中含2个度为3的结点满足题目要求。
8.定义无符号整数类为UInt,下面可以作为类UInt实例化值的是( )。
B
解析:UInt表示的是无符号整数类,所以它的每个实例都是一个无符号整数,所以排除选项A)和选项C),选项D)是整数集合,所以也排除。
9.有如下程序:
#include<iostream.h>
void main()
{
char str[2][5]={’’1234’’,’’5678’’},*p[2];
int i,j,s=0;
for(i=0;i<2;i++)p[i]=str[i];
for(i=0;i<2;i++)
for(j=0;p[i][j]>’\0’;j+=2)
s=10*s+p[i][j]-’0’;
cout<<s;
}
该程序的输出结果是( )。(A)
A. 1357
B. 2468
C. 3556
D. 23678
解析:程序中的“for(i=0;i<2;i++)p[i]=str[i];”语句将str中的值赋值给指针数组p。在接下来的二重for循环中,跳取“j+=2”,p指针指向的值即“1”,“3”,“5”,“7”。在分别对字符到整型的转换,即减去字符’0’,然后依次转换为千位,百位,十位,个位“10*s”操作输出整型s,即“1357”。
10.有三个关系R、S和T如下:
(B)
A. 自然连接
B. 差
C. 交
D. 并
解析:由三个关系R、S和T的结构可以知道,关系T是由关系R、S经过差运算得到的。
11.)有如下程序
#include
using namespace std;
class A{
public:
virtual void func1(){cout<<\\(C)
A. B1B2
B. A1A2
C. B1A2
D. A182
解析:此题考查的是虚函数的概念。此题中,func1是虚函数,func2是一般成员函数,而且在派生类与基类中都存在两个这样的函数。在主函数中,语句A*p=new B;定义了一个基类的指针p,并让它指向一个派生类对象。所以通过该指针调用func1时,运行的是派生类的版本,而通过该指针调用func2运行的是基类的版本
本文档预览:3600字符,共7124字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载