C 面向对象程序设计试题集

C++面向对象程序设计试题集

一、 填空题(每空2分,共20分)

1. 2.

3. 设a、b、c都是int型变量,则a=(b=4)+(c=2)后,a值为_,b值为 。 在派生类的成员中有公有成员、四类成员。 类Sample的构造函数将形参data赋值给数据成员data。请将类定义补充完整。 class Sample{ public: Sample(int data=0); Private: int data;

};

Sample::Sample(int data){ 4. 面向对象程序设计的

5. 继承发生在利用现有类派生新类时,其中现有类称为 ,或父类;派生的新类称为 ,或 。

6.

7. 若表达式(x+(y-z)*(m/n))+3中的变量均为double型,则表达式值的类型为 。 已知数组a 中的元素个数为n,下列语句的作用是将下标为i 的元素移动到下标为i-1 的单元,其中1≤i<n。例如,当n=4,a 中原有数据为1,2,3,4 时,则移动后a 中元素为2,3,4,4。请将语句补充完整:

for(int i=0;i

8. 类是对具有共同属性和行为的一类事物的抽象描述,共同属性被描述为类中的 ,共同行为被描述为类中的 。

9. 类Sample的构造函数将形参data赋值给数据成员data。请将类定义补充完整。 class Sample{ public:

Sample(int data=0); Private: int data; };

Sample::Sample(int data){ }

10. 实现运行时多态,要使用 函数。

11. 设A为test类的对象且赋有初值,则语句test B(A); 。

12. 在MyClass 类的定义中,对赋值运算符=进行重载。请将画线处缺失的部分补充完整。

MyClass::operator=(const MyClass rhs)

{

if(this=&rhs) return *this;

value=rhs. value; return *this; }

13. C++语言中的每条基本语句以 ________作为结束符,每条复合语句以________ 作为结束符。

14. 若p指针指向字符串“ABCDEFGHIJKL”,则语句cout<<*(p+5);的输出结果是________。

15. 当一个函数或一个类希望能够直接访问另一个类中的非公用成员时,应该将该函数

声名为另一个类的________或________。

16. 设px是指向一个类动态对象的指针变量,则执行“delete px”语句时,将自动调用该类的_______函数。

17. C++中没有字符串类型,字符串是通过________来表示的,每一个字符串都有一个结尾字符________。

18. 使用const 语句定义一个标识符常量时,则必须对它同时进行________。 19. 类test的析构函数名是。

20. 建立对象时,为节省内存,系统只给_______分配内存。 21. 类中的数据和成员函数默认访问类型为 。

22. 当建立一个新对象时,程序自动调用_______________。

23. 在C++中,函数的参数有两种传递方式,它们是值传递和________。 24. 若表达式(x+(y-z)*(m/n))+3中的变量均为double。 25. 循环语句:for(int i=50; i>20; i-=2) cout<

26. 任何类中允许有三种访问权限的数据,这三种访问权限分别是 public

27. 类是用户定义的类型,具有类类型的变量称为。当建立一个新对象时,程序自动调用 。

28. 利用成员函数对二元运算符重载,其左操作数为,右操作数为 29. C++将类继承分为 和 两种。

30. 派生类可以定义其_______________中不具备的数据和操作。 31. 有如下类定义:

class Sample{

public: Sample(); ~Sample(); private: static int date;};

将静态数据成员data初始化为0的语句是 。

32. 在保护继承方式下,基类的公有和保护成员成为派生类中的

33. 若表达式(x+(y-z)*(m/n))+3中的变量均为double型,则表达式值的类型为 。 34. 类test的析构函数名是

35. 在保护继承关系下,基类的公有成员和保护成员将成为派生类中的成员。 36. 类是对具有共同属性和行为的一类事物的抽象描述,共同属性被描述为类中的 ,共同行为被描述为类中的 。 37. 在派生类的成员中有私有成员

38. 在继承机制下,当对象消亡时,编译系统先执行 的析构函数,然后才执行派生类中子对象类的析构函数,最后执行 的析构函数。

39. 在C语言中,编程的单位是 在C++语言中,编程的单位是 。

40. 若表达式(x+(y-z)*(m/n))+3中的变量均为double型,则表达式值的类型为 。 41. 面向对象程序设计的 机制提供了重复利用程序资源的一种途径。 42. 非成员函数应声明为类的 才能访问这个类的private成员。 43. 派生新类的过程一般包括 、 、 三个步骤。

44. C++程序的头文件和源程序文件扩展名分别为和 。 45. 循环语句:for(int i=50; i>20; i-=2) cout<

46. 类中构造函数有 个,析构函数有 个。 47. 有如下类定义:

class Sample{ public: Sample(); ~Sample(); private:

static int date;};

将静态数据成员data初始化为0的语句是 。

48. 假定p所指对象的值为25,p+1所指对象的值为46,则执行“(*p)++;”语句后,p所指对象的值为 。

49. 若在类的定义体中只给出了一个成员函数的原型,则在类外给出完整定义时,其函数名前必须加上类名和两个________分隔符。

50. 若需要把一个函数“void F( );”定义为一个类AB的友元函数,则应在类AB的定义中加入一条语句: 。

51. 若要把类外定义的成员函数规定为内联函数,则必须把________关键字放到函数原型或函数头的前面。

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4