国家二级C++机试(选择题)模拟试卷480
选择题
1.在一棵二叉树上,第5层的结点数最多是( )。(D)
A. 8
B. 9
C. 15
D. 16
解析:根据二叉树的性质:二叉树第i(i>1)层上至多有2i-1个结点。得到第5层的结点数最多是16个。
2.下列叙述中正确的是( )。(B)
A. 有一个以上根结点的数据结构不一定是非线性结构
B. 只有一个根结点的数据结构不一定是线性结构
C. 循环链表是非线性结构
D. 双向链表是非线性结构
解析:在数据结构中,树这类的数据结构只有一个根结点,但它不是线性结构。
3.下列选项中,不是C++关键字的是( )。(B)
A. class
B. function
C. friend
D. virtual
解析:class、friend、virtual都是C++的关键字,而。funtion是VB的关键字。
4.Windows环境下,由C++源程序文件编译而成的目标文件的扩展名是( )。(C)
A. cpp
B. exe
C. obj
D. lik
解析:在VC6.0集成开发环境下,用户可以使用编译(compile)命令将一个.cpp为扩展名的C++源程序文件转换成一个以.obj为扩展名的目标文件。
5.下列运算符不能重载为友元函数的是( )。(A)
A. = () [] ->
B. + – ++ —
C. > < >= <=
D. += -= *= /=
解析:此题考查的是运算符重载的概念。C++语言规定,=、[]、()、->以及所有的类型转换运算符只能作为成员函数重载,如果要重载为友元函数就必须重载为非成员函数。
6.冒泡排序在最坏情况下的比较次数是(C)
A. n(n+1)/2
B. nlog2n
C. n(n-1)/2
D. n/2
解析:对n个结点的线性表采用冒泡排序,在最坏情况下,冒泡排序需要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要的比较次数为n(n-1)/2。
7.设二叉树的后序序列与中序序列均为ABCDEFGH,则该二叉树的前序序列为(A)
A. HGFEDCBA
B. ABCDEFGH
C. ABCDHGFE
D. DCBAHGFE
解析:后序遍历中,最后一个字母是根结点,也就是H是根结点;在中序遍历中,根结点前面的是左子树、后面的是右子树,H后面没有,因此该树没有右子树。同理,可判断出该树是第一个完全的左子树。由此可画出这个二叉树,然后根据二叉树可的前序序列为HGFEDCBA。
8.下列关于函数重载的叙述中,错误的是( )。(C)
A. 重载函数的参数个数可以不同
B. 重载函数的参数类型可以不同
C. 重载函数的返回值类型必须不同
D. 重载函数的参数个数或参数类型必须有所不同
解析:两个或两个以上的函数,具有相同的函数名,但是形参的个数或者类型不同,编译器根据实参和形参的类型及个数进行最佳匹配,自动确定调用哪个函数,这就是函数的重载。
9.以下程序的输出结果是( )。
#include<iostream>
using namespace std;
void fun(char**q)
{
++q;
cout<<*q<<end1;
}
main()
{
static char*s[]={’’HI\\(C)
A. 为空
B. HI
C. HELLO
D. TEST
解析:由程序main主函数入手,调用fun函数,在fun函数中执行“cout<<*q<<end1;”语句实现程序输出。主函数中变量char*s[]为指针数组,char**p表示p指向的字符指针数据。*p就代表p指向的字符指针。语句“p=s;\\
10.用树形结构表示实体之间联系的模型是( )。(C)
A. 关系模型
B. 网状模型
C. 层次模型
D. 以上三个都是
解析:层次模型的基本结构是树形结构,这种结构方式在现实世界中很普遍,它们自顶向下、层次分明。
11.软件测试的目的是(A)
A. 发现程序中的错误
B. 修改程序中的错误
C. 避免程序中的错误
D. 发现和修改程序中的错误
解析:软件测试的目的是:发现一些可以通过测试避免的开发风险;实施测试来降低所发现的风险;确定测试何时可以结束;在开发项目的过程中将测试看作是一个标准项目。
12.在表达式x+y*z中,+是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。下列叙述中正确的是( )。(C)
A. operator+有两个参数,operator*有两个参数
B. operator+有两个参数,operator*有一个参数
C. operator+有一个参数,operator*有两个参数
D. operator+有一个参数,operator*有一个参数
解析:此题考查的是运算符的重载。运算符可重载成员函数,也可重载为友元函数。当重载为成员函数时,运算符重载函数的形参个数要比运算符操作数的个数少一个;当重载为友元函数时,其参数个数应与操作数的个数相同。
13.有如下程序:
#include<iostream>
using namespace std;
void f1(inta x,int&y){int z=x;x=y;y=z;}
void f2(int x,int y){int z=x;x=y;y=z;}
int main() {
int x=10,y=26;
f1(x,y);
f2(x,y);
cout<<y<<end1;
return 0;
}
运行时的输出结果是( )。(A)
A. 10
B. 16
C. 26
D. 36
解析:子函数f1中的形参是引用变量,所以执行子函数实现了变量x,y值的交换,变量x的值等于26,而变量y的值等于10。而子函数f2中的形参是普通变量,因为C++的函数之间的参数传递是传值,所以执行函数f2不能实现变量x,y值的交换。
14.在下列函数原型中,可以作为类从构造函数的是( )。(D)
A. voidAA(int);
B. int AA0;
C. AA(int)const;
D. AA(int);
解析:此题考查的是构造函数的概念。构造函数是类的一个特殊成员函数,它与类同名,并且没有返回值。选项A、B不符合要求。选项C中函数AA,会更新对象的数据成员。
15.下列关于this指针的描述中,正确的是( )。(D)
本文档预览:3600字符,共7339字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载