C 期末考试复习题

发布 2021-04-21 11:59:28 阅读 9283

一、选择题。

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.对于任意一个类,析构函...