国家二级C++机试(选择题)模拟试卷470
选择题
1.下面叙述中正确的是(A)
A. 线性表是线性结构
B. 栈与队列是非线性结构
C. 线性链表是非线性结构
D. 二叉树是线性结构
解析:线性表是最简单的、最常用的一种线性结构。所谓线性链表指的是采用链式存储结构的线性表。栈和队列其实是一种特殊的线性表。树是一种简单的非线性结构,二叉树是树的一种。
2.在函数中,可以用auto、extem、register和static这四个关键字中的一个来说明变量的存储类型,如果不说明存储类型,则默认的存储类型是( )。(A)
A. auto
B. extem
C. register
D. static
解析:此题考查的是存储类型。C++语言变量的存储类型分为如下几种类型:auto—函数内部的局部变量;static—静态存储分配;extern—全局变量:register—变量存储在硬件寄存器中。
3.一棵二叉树中共有80个叶子结点与70个度为1的结点,则该二叉树中的总结点数为(B)
A. 219
B. 229
C. 230
D. 231
解析:根据二叉树的性质,在任意二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个,故总结点数=叶子节点数+度为2的节点数+度为1的节点数=80+79+70=229。
4.某二叉树共有12个结点,其中叶子结点只有1个。则该二叉树的深度为(根结点在第1层)( )。(D)
A. 3
B. 6
C. 8
D. 12
解析:根据二叉树的性质,度为0的结点(即叶子结点)总是比度为2的结点多一个。题目中的二叉树的叶子结点为1,因此度为2的结点的数目为0,故该=叉树为12层,每层只有一个结点。
5.若有以下程序:
#include<iostream>
using namespace std;
class A
{
public:
A(int i,int j)
{a=i;
b=j;
}
void move(int x,int y)
{a+=x;
b+=y;
}
void show()
{cout<<a<<’’,’’<<b<<end1;
}
private:
int a,b;
};
class B:private A
{
public:
B(int i,int j):A(i,j){}
void fun()
{
move(3,5);
}
void f1()
{
A::show();
}
};
int main()
{B d(3,4);
d.fun();
d.f1();
return 0;
}
程序执行后的输出结果是( )。(C)
A. 3,4
B. 6,8
C. 6,9
D. 4,3
解析:此题的执行过程如下:首先B d(3,4);语句调用B类的构造函数:B(int i,int i),B的构造函数中调用基类A的构造函数,使得a=3,b=4;d.fun()会调用函数move(3,5),使得(3,4)和(3,5的对应部分分别相加,最后输出6,9。
6.在面向对象方法中,实现信息隐蔽是依靠( )。(C)
A. 对象的继承
B. 对象的多态
C. 对象的封装
D. 对象的分类
解析:对象的封装性是指从外部看只能看到对象的外部特征,即只需知道数据的取值范围和可以对该数据施加的操作,而不需要知道数据的具体结构以及实现操作的算法。对象的内部,即处理能力的实行和内部状态,对外是不可见的,从外面不能直接使用对象的处理能力,也不能直接修改其内部状态,对象的内部状态只能由其自身改变。
7.已知函数f的原型是“void font*x,int&y);”,变量v1、v2的定义是“int v1,v2;”,下列调用语句中,正确的是( )。(C)
A. f(v1,v2);
B. f(v1,&v2);
C. f(&v1,v2);
D. f(&v1,&v2);
解析:在函数f的形参表达式中第一个形参为整型指针变量,第二个为整型引用变量,所以用实参v1的指针初始化第一个形参,用实参v2初始化第二形参。
8.设二叉树的后序序列与中序序列均为ABCDEFGH,则该二叉树的前序序列为(A)
A. HGFEDCBA
B. ABCDEFGH
C. ABCDHGFE
D. DCBAHGFE
解析:后序遍历中,最后一个字母是根结点,也就是H是根结点;在中序遍历中,根结点前面的是左子树、后面的是右子树,H后面没有,因此该树没有右子树。同理,可判断出该树是第一个完全的左子树。由此可画出这个二叉树,然后根据二叉树可的前序序列为HGFEDCBA。
9.在黑盒测试方法中,设计测试用例的主要根据是( )。(B)
A. 程序内部逻辑
B. 程序外部功能
C. 程序数据结构
D. 程序流程图
解析:黑盒测试法指的是根据程序的外部功能,把程序本身看成一个黑盒子,设计测试用例来验证程序外部功能的正确性。
10.若实体A和B是一对多的联系,实体B和C是一对一的联系,则实体A和C的联系是( )。(B)
A. 一对一
B. 一对多
C. 多对一
D. 多对多
解析:由于B和C有一一对应的联系,而A和B只间有一对多的联系,则通过关系之间的传递,则A和C之间也是一对多的联系。
11.if语句的语法格式可描述为:
格式1=if(<条件>)<语句>
或
格式2:if(<条件>)<语句1>else<语句2>
关于上面的语法格式,下列表述中错误的是( )。(A)
A. <条件>部分可以是一个if语句,例如if(if(a=0)…)…
B. <语句>部分可以是一个if语句,例如if(…)if(…)…
C. 如果在<条件>前加上逻辑非运算符!并交换<语句1>和<语句2>的位置,语句功能不变
D. <语句>部分可以是一个循环语句,例如if(…)while(…)…
解析:此题考查的是if语句。If语句的条件部分是一个表达式而不是语句,因此选项A叙述错误。
12.要定义一个具有5个元素的一维数组vect,并使其各元素的初值依次是30, 50, —88,0和0,则下列定义语句中错误的是( )。
A
解析:此题考查的是一维数组定义时的初始化。当数
本文档预览:3600字符,共9865字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载