二级C++-226
(总分67.5,考试时间90分钟)
选择题
1. 一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是______。
A. -对一        B. 一对多
C. 多对多        D. 多对一
2. 有如下类定义:
class Animal{
public:
virtual void Name()=0;
};
class Koala:public Animal{
public:
void Name(){/*函数体略*/}
};
关于上述类定义,下列描述中错误的是______。
A. 类Koala是类Animal的派生类
B. 类Koala中的Name函数是一个虚函数
C. 类Animal中的Name函数是一个纯虚函数
D. 语句“Animal a;”能够建立类Animal的一个对象a
3. 在公有继承的情况下,允许派生类直接访问的基类成员包括______。
A. 公有成员        B. 公有成员和保护成员
C. 公有成员、保护成员和私有成员        D. 保护成员
4. 建立派生类对象时,3种构造函数分别是a(基类的构造函数)、b(成员对象的构造函数)、c(派生类的构造函数)这3种构造函数的调用顺序为
A. abc        B. acb
C. cab        D. cba
5. 设有关键码序列(66,13,51,76,81,26,57,69,23),要按关键码值递增的次序排序,若采用快速排序法,并以第一个元素为划分的基准,那么第一趟划分后的结果为______。
A. 23,13,51,57,66,26,81,69,76
B. 13,23,26,51,57,66,81,76,69
C. 23,13,51,57,26,66,81,69,76
D. 23,13,51,57,81,26,66,69,76
6. 数据库管理系统中负责数据模式定义的语言是____。
A. 数据定义语言        B. 数据管理语言
C. 数据操纵语言        D. 数据控制语言
7. 有以下定义,则此数组的元素中不正确的一个赋值结果是 ______。
static int a[10]={1,2,3,4,5};
A. a[10]=2        B. a[0]=1
C. a[3]=4        D. a[7]=0
8. 下面是类Shape的定义:
class Shape{
public:
virtual void Draw()=0;
};
下列关于Shape类的描述中,正确的是______。
A. 类Shape是虚基类
B. 类Shape是抽象类
C. 类Shape中的Draw函数声明有误
D. 语句“Shape s;”能够建立Shape的一个对象s
9. 若有下面的函数调用:
fun(a+b,3,max(n-1,b))
则fun的实参个数是______。
A. 3        B. 4
构造函数可以被重载
C. 5        D. 6
10. 如下函数模板:
template<class T>T square(T x){return x*x;}
其中,T是______。
A. 函数形参        B. 函数实参
C. 模板形参        D. 模板实参
11. 下列叙述中正确的是
A. 软件测试的主要目的是确定程序中错误的位置
B. 软件调试的主要目的是发现程序中错误的类型
C. 程序经调试后还应进行测试
D. 软件的测试与调试工,作最好都由程序编制者来完成
12. 有如下类定义:
class Sample{
public;
Sample(int x):ref(x){} //①
private:
Sample():ref(0){} //②
static int val=5; //③
constint ref; //④
};
上述程序段中,错误的语句是______。
A. ①        B. ②
C. ③        D. ④
13. 在下列原型所示的C++函数中,按“传值”方式传递参数的是______。
A. void f1(int x);
B. void f2(int*x);
C. void f3(const int*x);
D. void f4(int&x);
14. 下列叙述中错误的是______。
A. gets函数用于从终端读入字符串
B. getchar函数用于从磁盘文件读入字符
C. fputs函数用于把字符串输出到文件
D. fwrite函数用于以二进制形式输出数据到文件
15. 计算斐波那契数列第n项的函数定义如下:
int fib(int n){
if(n==0)return 1;
else if(n==1)return 2;
else return fib(n-1)+fib(n-2);
}
若执行函数调用表达式fib(2),函数fib被调用的次数是______。
A. 1        B. 2
C. 3        D. 4
16. 为了提高函数调用的实际运行速度,可以将较简单的函数定义为______。
A. 内联函数        B. 重载函数
C. 递归函数        D. 函数模板
17. 某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)____。
A. 3        B. 4
C. 6        D. 7
18. 关于运算符重载,下列表述中正确的是______。
A. C++已有的任何运算符都可以重载
B. 运算符函数的返回类型不能声明为基本数据类型
C. 在类型转换符函数的定义中不需要声明返回类型
D. 可以通过运算符重载来创建C++中原来没有的运算符
19. 下列关于输入流类成员函数getline()的描述中,错误的是______。
A. 该函数是用来读取键盘输入的字符串的
B. 该函数读取的字符串长度是受限制的
C. 该函数读取字符串时,遇到终止符便停止
D. 该函数读取字符串时,可以包含空格
20. 与语句“cout<<endl;”不等价的是______。
A. cout<<"n"        B. cout<<"\12"
C. cout<<"\xA"        D. cout<<"\0"
21. 若已定义过类A和B,并且定义类C如下:
class C{
public:
int val;
A aObj;
B bObj;
C*cObj;
C(): cObj(0), val(0){}
};
若要建立类C的对象object,则类成员val、aObj、bObj和cObj中最后被初始化的是______。
A. val        B. aObj
C. bObj        D. cObj
22. 在数据库系统中,把具有以下特征中之 ______ 两个特征的数据模型称为网状模型。
A. 允许有一个以上的结点没有双亲        B. 有且仅有一个结点无双亲
C. 根以外的结点有且仅有一个双亲        D. 一个结点可以有多个双亲
23. 下面关于break语句的描述中,不正确的是______。
A. break可以用于循环体内
B. break语句可以在for循环语句中出现多次
C. break语句可以在switch语句中出现多次
D. break语句可用于if条件判断语句内
24. 有如下程序:
#include<iostream>
using namespace std;
class B{
public:
B(int xx):x(xx){++count;x+=10;}
virtual void show()const
{cout<<count<<"_"<<x<<endl;}
protected:
static int count;
private:
int x;
};
class D:public B{
public:
D(int xx,int yy):B(xx),y(yy){++count;y+=100;}
virtual void show()const
{cout<<count<<"_"<<y<<endl;}
private:
int y;
};
int B::count=0;
int main(){
B *ptr=new D(10,20);
ptr->show();
delete ptr;
return 0;
}
运行时的输出结果是______。
A. 1_120        B. 2_120
C. 1_20        D. 2_20
25. 下列程序将x、y和z按从小到大的顺序排列,横线处应添加语句____。
template<class T>
void fun (______)
{
T a;
if(x>y)
{
a=x;x=y;y=a;
}
if(y>z)
{
a=y;y=z;z=a;
}
if(x>y)
{
a=x;x=y;y=a;
}
}
A. Tx,Ty,Tz        B. Tx;y;z
C. T&x,T&y,T&z        D. T&x,&y,&z
26. C++中,由类istream和类ostream而派出的一个类____,它提供双向I/O操作。
A. iostream        B. fstream
C. strstream        D. istream
27. 可以用p.a的形式访问派生类对象p的基类成员a,其中a是____。
A. 私有继承的公有成员        B. 公有继承的私有成员
C. 公有继承的保护成员        D. 公有继承的公有成员
28. 有如下类定义:
class B{
public:
void fun1(){}
private:
void fun2(){}
protected:
void fun3(){}
};
class D:public B{
protected:
void fun4(){}
};
若obj是类D的对象,则下列语句中不违反访问控制权限的是______。
A. obj.fun1();        B. obj.fun2();
C. obj.fun3();        D. obj.fun4();
29. 若执行语句:cout<<setfill("*")<<setw(10)<<123<<"OK"<<endl后将输出____。
A. *******1230K
B. 123********OK
C. *******123********OK
D. 123*******OK********

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。