国家二级C++机试(选择题)模拟试卷453
选择题
1.一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是( )。(B)
A. 12345ABCDE
B. EDCBA54321
C. ABCDE12345
D. 54321EDCBA
解析:栈是按照“先进后出”或“后进先出”的原则组织数据的。所以出栈顺序是EDCBA54321。
2.有如下程序段:
(C)
A. 44
B. 41
C. 88
D. 81
解析:这个程序定义了全局整型对象i和j,其值分别等于4和1。而在主函数中定义了局部整型对象i和j,i值赋予8,再把i值赋给j,接着输出i和j的值,所以其结果为88。这个题目要注意的一点是,全局整型对象i和j和主函数中定义了局部整型对象i和j,在计算机内存中表示的是不同的存储单元。它们的值是独自存放的,互相不同。
3.设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。现经过一系列入队与退队运算后,front=15,reaF15,则循环队列中的元素个数为( )。(D)
A. 15
B. 16
C. 20
D. 0或35
解析:循环队列的队头指针和尾指针都等于15,此循环队列中元素的个数有两种情况,第一种情况是队头指针和尾指针都是第一次到达15,此时元素个数为O:第二种情况是队头指针第一次到达l5,而尾指针第二次到达15,此时元素个数为35。
4.某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是( )。(C)
A. 10
B. 8
C. 6
D. 4
解析:根据二叉树的性质,在任意二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。
5.有如下程序:
#include<iostream>
using namespace std;
class TestClass{
protected:
TestClass(){cout<<’x’;}
TestClass(char c){cout<<c;}
};
class TestClass1:public TestClass
{
public:
TestClass1(char c){cout<<c;}
};
int main(){
TestClass1 d1(’y’);
return0:
}
执行这个程序,屏幕上将显示输出( )。(C)
A. y
B. yx
C. xy
D. yy
解析:程序中的类TestClass为基类,TestClass1为TestClass的派生类。由:main主函数入手,定义TestClass1类型的对象d1,参数值为’y’。TestClass1类继承TestClass,所以主函数中“TestClass1 d1(’y’);”语句首先调用调用基类中的“TestClass(){cout<<’x’;}”输出x,然后调用“TestClass1(char c){cout<<c;}”输出y,即答案为“xy”。
6.下列有关内联函数的叙述中,正确的是( )。(C)
A. 内联函数在调用时发生控制转移
B. 内联函数必须通过关键字inline来定义
C. 内联函数是通过编译器来实现的
D. 内联函数函数体的最后一条语句必须是return语句
解析:此题考查的是内联函数的概念。在调用时,内联函数会像宏函数一样的展开,将调用表达式用内联函数体来替换所以它没有一般函数的参数压栈和和退栈操作,所以选项A错误;即使没有使用。inline说明,编译器也会将在类的说明部分定义的函数认定为内联函数,所以选项B错误;内联函数只是比普通函数有更高的执行效率,所以选项D错误。
7.若PAT是一个类,则程序运行时,语句“PAT{*ad)[3];”调用PAT的构造函数的次数是( )。(A)
A. 0
B. 1
C. 2
D. 3
解析:语句“PAT(*ad)[3]”定义了含有3个元素的指向类PP/T类型的指针数组ad。
8.有如下程序:
#nclude
using namespace std;
class VAC{
public;
int f() const{return 3;}
int f(){return 5;)
};
Int main(){
VAC vl;
const VAC v2;
cout<<v 1.f()<<v2.f();
fetum O;
)
运行时的输出结果是( )。(A)
A. 53
B. 35
C. 55
D. 33
解析:此题考查的是常成员函数的应用。VAC类中说明了两个函数,一个是常成员函数,一个是普通函数:在主函数中说明了两个对象,通过普通对象vl调用的是普通函数,输出5;通过常对象V2调用的是常成员函数,输出3。
9.下列符号中不属于C++关键字的是( )。(D)
A. friend
B. namespace
C. continue
D. byte
解析:此题考查的是C++语言的关键字。Friend是声明友元函数或友元类时用到的关键字;namespace是定义或使用名字空间时用到的关键字;continue是终止本次循环直接开始下一次循环所用到的关键字;byte是字节的意思,它不是C++语言中的关键字。
10.若x和y是程序中的两个整型变量,则下列if语句中正确的是( )。(A)
A. if(x==0) y=1; else y=2;
B. if(x==0)then y=1 else y=2;
C. if(x==0) y=1 else y=2;
D. if(x==0)y=1;else y=2;
解析:if else语句的形式为:
if() else
所以符合以上形式的if else语句为选项A)。
11.有如下程序:
class Base{
public:
int data;
};
class Derivedl:public Base{};
class Derived2:protected Base{};
int main(){
Derivedl d1;
Derived2 d2;
d1.data=0; ∥①
d2.data=0; ∥②
return 0;
本文档预览:3600字符,共7419字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载