试卷 编号: 郑州航空工业管理学院 2006 — 2007 学年第 一
学期
课程考试试卷(□A/□B )卷
课程名称: 面向对象技术 考试形式: 闭卷 考核对象(专业或班级): 05级计算机科学与应用 学号: 姓名: 说明:所有答案请答在规定的答题纸或答题卡上,答在本试卷册上的无效。
一、选择题(本题总计30分,每空1 分)
1、 按照与硬件的接近程度,程序语言可以分为高级语言与__________语言,而按照编程的思想,高级语言又可以分为面向__________程序设计的语言与面向对象的程序设计语言,C++语言的函数按照从属关系可以分为___________函数与类成员函数。
2、 面向对象的程序设计基本特性为_________性、________性与____________性。 3、 在面向对象的程序设计思想中,类摸板是对_______的抽象,类是对对象的____________。一个类及类对象是由描述属性的_______成员与作用于其上的操作(类成员函数)构成,
4、 在C++的类中,其数据成员按照访问权限可以分为__________成员,________成员与_______成员。
5、 类中必须包含的函数为____________函数与_____________函数,被所有类对象所共享的成员为_________成员。
6、 在派生类对象产生时,首先被执行的是_________的构造函数,而派生类对象消失时,首先被自动执行的是__________的析构函数,对于多重继承将按照自________的顺序执行基类的构造函数。
7、 类的友元具体可以分为____________、____________、____________。 8、在C++中,不能被继承的成员为____________、________________、_______________。 9、多态性可以分为编译时多态性与__________多态性、编译时多态性通过________来实现,定义虚函数的关键字为__________。
10、C++系统提供了一个用于输入输出的类体系结构,在其中的ios,ostream,ifstream类中,用于格式控制的基类为___________,用于输出的流类为__________,用于磁盘文件输入的流类为___________。
二、判断题(本题总计 10 分,每小题 1 分)
1、 只有类成员函数可以访问类对象的私有成员( )。 2、 “=”号运算符只能被成员运算符重载( )。 3、 析构函数可以被重载( )。
4、 程序员定义了类的构造函数后,系统将不在产生构造函数( )。 5、 基类的静态成员也是派生类的静态成员( )。
6、 指向派生类对象的指针也可以指向其基类生成的对象( )。 7、 父类中的保护成员可以被保护继承为子类中的保护成员( )。 8、 类模板是数据类型参数化的类()。
9、 “dec”是用于以八进制输出的格式控制符( )。
10、只有用关键字“inline”修饰的函数才是内联函数( )。
三、分析下面的程序,写出运行结果(每结果2分共24分) 1.
#include “iostream.h” #include “stdio.h”
class timer{ //定义一个时间类 int seconds; public: timer();
{seconds=0;} timer(int x) { seconds=x; }
timer(int min,int sec)
{seconds=min*60+sec;} int gettime()
{return seconds;} }; main() {
timer a, b(10),c(1,10); cout< class Student { int studentNo; static int count; public: Student() { count++; StudentNo=count; } void print() { cout<<”current student number is:”< int Student::count=0; main() { Student student1; student1.printf(); Student student2; student2.printf(); student *p; p= new Student; p->printf(); } 运行结果为: ________________ ________________ ________________ 3. #include private: double real,image; complex( ) {real =0.0 ,image=0.0;} } complex(double r;double i) {real =r,image=i;} } void printf() {cout< complex operator+(complex col ,complex co2) { complex temp; temp.real=col.real+co2.real; temp.imag=col.imag+co2.imag; return temp; }; main() { complex c1(1.1,2.2),c2(3.3,4.4),sum; c1.printf(); sum=c1+c2; sum.printf(); } 运行结果为: _____________ _____________ 4. class my_ base{ int a,b; public: base(int x,int y) {a=x;b=y;} virtual void show(){ cout<<“base”;