一、选择题。
1. 在声明类时,下面的说法正确的是( c )。
a.可以在类的声明中给数据成员赋初值 b.数据成员的数据类型可以是register
可以按任意顺序出现
d.没有用 private、public、protected定义的数据成员是公有成员。
2. 在一个类的定义中,包含有(c )成员的定义。
a. 数据 b. 函数 c. 数据和函数 d. 数据或函数。
3. 假定aa为一个类,int a()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为(a )。
a. int aa::a() b. int aa:a() c. aa::a() d. aa::int a()
4. 假定aa为一个类,a为该类公有的数据成员,px为指向该类对象的一个指针,则访问px所指对象中数据成员a的格式为(c )。
a. px(a) b. px[a] c. px->a d.
5. 下列关于运算符new的描述中,错误的是( d )。
a.它可以创建对象或变量b.它可以创建对象数组或一般类型数组。
c.用它创建对象或对象数组时要调用相应的构造函数 d.用它创建的对象可以不用delete运算符释放。
6. 在下面有关析构函数特征的描述中,正确的是( a )。
a.一个类中可以定义多个析构函数 b.析构函数名与类名完全相同。
c.析构函数不能指定返回类型 d.析构函数可以由一个或多个参数
7. 构造函数是在( b )时被执行的。
a.程序编译 b. 创建对象 c. 创建类 d. 程序装入内存。
8. 友元的作用之一是( a )。
a.提高程序的运行效率 b.加强类的封装性
c.实现数据的隐藏性 d.增加成员函数的种类。
9. 设置虚基类的目的是( b )。
a.简化程序 b.消除二义性 c. 提高运行效率 d.减少目标**。
10. 回值的纯虚函数,正确的写法是( b )。
show()=0; void show();
void show()=0; d. void show()=0 virtual;
11. 重载函数在调用时选择的依据中,( b )是错误的。
a. 函数名字 b.函数的返回类型 c.参数个数 d.参数的类型。
12. 已知:int fun (int &a),m=10;下列调用fum()函数的语句中,正确的是( c )。
a.fun(&mb.fun (m*2c.fun (md.fun (m++)
13. 下列各种类中,不能定义对象的类是( b )。
a.派生类 b.抽象类 c.嵌套类 d.虚基类。
14. 类中定义的成员默认为( a )访问属性。
a. public b. private c. protected d. friend
15. 静态成员函数对类的数据成员访问(b )。
a. 是不允许的 b. 只允许是静态数据成员
c. 只允许是非静态数据成员 d. 可允许是静态数据成员或非静态数据成员。
16. 在下列语句中,将函数int f_sum(int x,int y)正确重载的是( a )。
f_sum(int x,int y) f_sum(int a,int b)
f_sum(int f_sum(int a,int b)
17. 下列各语句是输出字符'a'的,其中错误语句是( b )。
a.cout<<'ab.'a');c.char ch='a';cout<18. 当将一个类a或函数f()说明为另一个类b的友元后,类a或函数f()能够直接访问类b的(d )。
a. 只能是公有成员 b. 只能是保护成员
c. 只能是除私有成员之外的任何成员 d. 具有任何权限的成员。
19. c++语言程序中进行文件操作时应包含的头文件是( a )。
a. b. c. d.
20. 在c++程序中使用的cin标识符是系统类库中定义的( a )类中的一个对象。
a. istream b. ostream c. iostream d. fstream
21. 已知:char n=’p’;在下列表示引用的方法中,( 是正确的。
&x=n; b. char &y=’pc. char &z; &t=&n;
22. 在( a )情况下适宜采用内联函数。
a.函数**小,频繁调用 b. 函数**多,频繁调用
c.函数体含有递归语句 d. 函数体含有循环语句。
23. 如果表达式a+b中的“+”是作为友元函数重载的运算符,若采用运算符函数调用格式,则可表示为( )
a. b. c. operator+(a,b) d. operator(a+b)
24. 执行完循环 for(i=1;i<100;i++)后,i 的值为 ( b )。
a. 99 b. 100 c. 101 d. 102
25. 假定一个类对象数组为a[n],当离开它定义的作用域时,系统自动调用该类析构函数的次数为( c )。
a. 0 b. 1 c. n d. n-1
26. 在c++程序中使用的cout标识符是系统类库中定义的( b )类中的一个对象。
a. istream b. ostream c. iostream d. fstream
二、填空题
1. 在下面一段类定义中, derived类是由直接基类base 1和base 2所派生的,derived类包含有两个间接基类basebase,在初始化函数init中,需要把x1和x2的值分别赋给属于基类base1的x成员和属于基类base2的x成员。
class basebase
class base1: public basebase
class base2: public basebase
class derived: (1) public base12) public base2
public:
derived()
void init(int x1, int x2) ;
2. 该类中maxa()函数的实现如下,请在标号位置补充适当的内容。
int (1) int a[ ]
int x=a[0];
for(int i=1; i if(a[i]>x) (2) a[ j+i=j ]
(3) break;
class a
___3)_ 定义析构函数,删除a所指向的动态存储空间。
class point
private:
int x, y;
public:
point()
point(int x0,int y0)
int getx()
int gety()
void print(){cout<<"point("<1 point operator+(point & pt,int dd); 友元函数声明。
2友元函数声明。
point operator+(point& pt,int dd)
//加号操作符重载函数,实现point类对象与整数加法。
point temp=pt;
return temp;
point operator+(point& pt1,point& pt2)
C期末考试复习题
c 期末考试复习题。一 选择题。1.在声明类时,下面的说法正确的是 c a.可以在类的声明中给数据成员赋初值 b.数据成员的数据类型可以是register 可以按任意顺序出现 d.没有用 private public protected定义的数据成员是公有成员。2.在一个类的定义中,包含有 c 成员...
c期末考试复习题
1.程序中主函数的名字为 a.main b.main c.main d.任意标识符。2.关于c 程序的书写,下列不正确的说法是 a.区分大小写 b.一行可以写多条语句 c.一条语句可写成多行。3.能正确表示逻辑关系 a 10 或a 0 的c 语言表达式是 a.a 10 or a 0 b.a 10 a...
C 期末考试复习题
一 单项选择题 本大题共10 小题,每小题2 分,共20 分 1.在c 中,函数原型不能标识 d a.函数的返回类型b.函数参数的个数c.函数参数类型d.函数的功能。2.在c 程序中,对象之间的相互通信通过 b a.继承实现b.调用成员函数实现c.封装实现d.函数重载实现。3.对于任意一个类,析构函...