文档介绍:2007-2008学年第1学期
2006级《C++面向对象程序设计》期末考试试题(A卷)
考试时间:2008年1月15日
班级学号姓名
本试卷满分100分;
请将答案写在答题纸上,写明题号,不必抄题,字迹工整、清晰;
请在答题纸和试题纸上都写上你的班级,学号和姓名,交卷时请将试题纸、答题纸和草纸
一并交上来。
单选题(共20分,每题2分)
1. 已知函数 int f( );是类A的公有静态成员,a是用const A a; 的形式创建的一个对象,那么下列语句错误的是:
(A) int num=A::f( ); (B) int num=( );
(C) int num= ( ) const; (D) const int num= ( );
2. 在实现函数 const A & f(A & obj) 时,下面的哪一个表达式不能作为函数的返回值?
(A) 全局静态变量(B) 局部静态变量
(C) 函数参数obj对象(D) 局部自动变量(auto变量)
和delete操作符的说法,哪个是不正确的:
(A) 使用new操作符,可以动态分配全局堆中的内存资源。
(B) 用new[]申请的数组,应该用delete[] 释放。
(C) 执行语句A * p = new A成功后,调用了delete p;,则p的值为0。
(D) 执行语句A * p = new A[10];时,会调用10次构造函数。
下列哪种成员函数可以由const修饰?
(A)无参构造函数(B) 拷贝构造函数(C) 自定义的转换函数(D) 虚的析构函数
,如下的哪个声明不能作为类D的成员?
(A) B* pB; (B) B aB; (C) D aD; (D) D* pD;
(.h文件)被多个源代码文件(.cpp文件)利用预处理指令#include引入,则下面哪种语法成分不应该放到这个头文件中?
(A) 类的定义
(B) 类的非内联形式的成员函数的函数体
(C) 类的内联形式的成员函数的函数体
(D) 类模板的函数体
可以在类A的成员函数void f( ) const的函数体中使用的this指针类型是:
(A) A* (B) const A* (C) const A * const (D) A * const
:
(A)利用调试器,查看a1与a2各成员数据的值是否相等
(B)重载== 运算符,用它来判断各成员数据的值是否相等。
(C)判断这两个对象的地址值是否相等。
(D)比较创建时使用的构造函数的实参是否相同。
:
(A) a[‘a’] (B) f(100)=0 (C) ~A(0) (D) P<int> (0)
,哪种是错误的?
(A)纯虚函数一定是类的非静态成员函数。
(B)纯虚函数可以是带const修饰的常量成员函数。
(C)含有纯虚函数的类一定是抽象类。
(D)纯虚函数的返回值类型一定是void。
二、判断正误,对于你认为错误的论述,说明原因或举出反例。(共20分,每题2分)
类的所有成员