国家二级(C++)机试模拟试卷289
选择题
1.已知二叉树后序遍历序列是CDABE,中序遍历序列是CADEB,它的前序遍历序列是( )。(C)
A. ABCDE
B. ECABD
C. EACDB
D. CDEAB
解析:由于后序遍历的最后一个元素为E,所以E为根结点,所以它的前序遍历的首个元素为E,故排除A)和D)选项。由于中序遍历中,元素B在元素根结点E的后面,所以B为二叉树的右子树,并且该二叉树右子树只有一个元素,所以前序遍历的最后一个元素应为B,故选项C)为正确选项,即该二叉树的前序遍历序列是EACDB。
2.在数据库系统的组织结构中,下列( )映射把用户数据库与概念数据库联系了起来。(A)
A. 外模式/模式
B. 内模式/夕}、模式
C. 模式/内模式
D. 内模式/模式
解析:数据库有两层映像,即外模式/模式和模式/内模式映像。模式/内模式映像定义数据库全局逻辑结构与存储结构之间的对应关系。
3.以下程序的执行结果为( )。
#include
class Sample
{
int n;
public:
Sample(int i){n=i;}
operator++(){n++;} //前缀重载运算符
operator++(int){n+=2;} //后缀重载运算符
void disp()
{
cout<<\\(A)
A. n=4
n=3
B. n=1
n=2
C. n=3
n=4
D. n=5
n=6
解析:此题考查的是“++”运算符的重载。为了区分前缀和后缀运算符,规定:重载后缀运算符时必须多一个虚拟参数:int。本题中, A(2)首先给n赋值2,语句A++,调用的是后缀运算符重载语句,使得n加2变为4。B(2)首先给n赋值2,然后语句++B,调用前缀运算符重载函数,使得n加1。因此最终的输出结果是n=4 n=3。
4.如果进栈序列为A,B,C,D,则可能的出栈序列是( )。(B)
A. C,A,D,B
B. B,D,C,A
C. C,D,A,B
D. 任意顺序
解析:栈的操作原则为后进先出。选项B)中出栈顺序可按“A进,B进,B出,C进,D进,D出,C出,A出”实现。
5.在学校中,“班级”与“学生”两个实体集之间的联系属于( )关系。(B)
A. 一对一
B. 一对多
C. 多对一
D. 多对多
解析:一个班可以有多名学生,而一名学生只能属于一个班级,所以“班级”与“学生”两个实体集之间的联系属于一对多关系。
6.下列有关运算符重载的叙述中,正确的是( )。(A)
A. 运算符重载是多态性的一种表现
B. C++中可以通过运算符重载创造新的运算符
C. C++中所有运算符都可以作为非成员函数重载
D. 重载运算符时可以改变其结合性
解析:重载运算符的规则如下:①C++不允许用户自己定义新的运算符,只能对已有的C++运算符进行重载;②C++不能重载的运算符只有5个;③重载不能改变运算符运算对象的个数;④重载不能改变运算符的优先级和结合性;⑤重载运算符的函数不能有默认的参数;⑥重载的运算符必须和用户定义的自定义类型的对象一起使用,至少应有一个是类对象,即不允许参数全部是C++的标准类型。故本题答案为A。
7.关于运算符重载,下列表述中正确的是( )。(C)
A. C++已有的任何运算符都可以重载
B. 运算符函数的返回类型不能声明为基本数据类型
C. 在类型转换符函数的定义中不需要声明返回类型
D. 可以通过运算符重载来创建C++中原来没有的运算符
解析:重载运算符的规则如下:①C++不允许用户自己定义新的运算符,只能对已有的C++运算符进行重载;②C++不能重载的运算符只有5个;③重载不能改变运算符运算对象的个数;④重载不能改变运算符的优先级和结合性;⑤重载运算符的函数不能有默认的参数;⑥重载的运算符必须和用户定义的自定义类型的对象一起使用,至少应有一个是类对象,即不允许参数全部是C++的标准类型。故本题答案为C。
8.有如下程序:
#include
using namespaee std;
class CD{
public:
~CD(){cout<<’C’;}
private:
char name[80];
};
int main(),{
CD a,*b,a[2];
return 0;
}
执行这个程序的输出结果是( )。(B)
A. CCCC
B. CCC
C. CC
D. C
解析:本题考查类的析构函数,题目中定义了类的一个对象a,对象指针*b,对象数组d[2],当程序执行完后,析构函数执行了3次,输出“CCC”,对象指针不会执行析构函数。所以本题答案为B。
9.下列关于类模板的模板参数的叙述中,错误的是( )。(D)
A. 模板参数可以作为数据成员的类型
B. 模板参数可以作为成员函数的返回类型
C. 模板参数可以作为成员函数的参数类型
D. 模板参数不能作为成员函数的局部变量的类型
解析:本题考查类模板的概念和定义,模板参数可以作为成员函数的局部变量的类型。
10.有如下程序:
#include
using namespaee std;
class MyClass{
public:
MyClass(int x):val(x){}
void Print()eonst{eout<<’’eonst:val=’’<<val<<’\t’;}
void Print(){eout<<’’val=’’<<val<<’\t’;}
private:
int val;
};
int main(){
eonst lyClass obj1(10);
MyClass obj2(20);
obj1.Print();
obj2.Print();
return 0;
}
执行这个程序的输出结果是( )。(C)
A. val=10 const:val=20
B. const:val=10 const:val=20
C. const:val=10 val=20
D. val=10 val=20
解析:本题考查常对象、常成员函数及构造函数。常对象只
本文档预览:3600字符,共16301字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载