您的当前位置:首页试卷

试卷

2023-07-02 来源:爱问旅游网


试卷 编号: 郑州航空工业管理学院 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<运行结果为: __________ __________ __________ 2.

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 cass complex {

private:

double real,image; complex( )

{real =0.0 ,image=0.0;} }

complex(double r;double i) {real =r,image=i;} }

void printf()

{cout<friend complex operator+(complex col ,complex co2); };

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”;

cout<class my_class:public base{ int c: public:

my_class(int x,int y,int z):my_base(x,y){c=z;}

void show(){cout<<“my_class ”<<“c=”<my_base mb(50,50),*mp;

my_class mc(10,20,30); mp=&mb; mp->show(); mp=&mc; mp->show(); }

运行结果为: ______________ ______________ 5.

#include ”iostream.h” class three{ int x,y,z; public:

three(int a,int b,int c) { x=a;y=b;z=c;}

friend ostream &operator<<(ostream &output, three ob); };

ostream &operator<<(ostream &output, three ob) {

output<main() {

three obj1(10,20,30); cout<three obj2(50,40,100);

cout<程序运行的结果为: _____________ _____________

四、选择题(本题总计 10分,每题2分)

1、在下面有关构造函数的描述中,正确的是() A 构造函数可以带有返回值;

B 构造函数的名称必须与类名完全相同; C 构造函数必须带有参数;

D 构造函数必须定义,不能默认。

2、在进行类声明时,下面说法正确的是()

A 类中的公有成员函数不可以访问类的私有成员; B 类的静态成员函数不能访问对象中的非静态成员; C在类中可以直接对数据成员初始化;

D没有用private,public,protected 修饰的成员,默认为公有成员。 3、在类的继承中,下面说法正确的是()

A 基类中的保护成员可以被私有继承为派生类中的保护成员; B 私有成员不可以被继承;

C 基类的友员可以被继承为子类的友元;

D 若基类只有带参的构造函数,则派生类的构造函数必须有参数。 4 有关运算符重载正确的描述是( )

A C++语言允许在重载运算符时改变运算符原来的功能; B C++语言中所有运算符都可以被重载;

C C++语言允许在重载运算符时改变运算符的结合性; D C++语言允许在重载运算符时改变运算符的优先级。 5、模板的使用是为了() A 提高代码的可重用性; B 提高代码的运行效率; C 加强类的封装性; D 实现多态性。

四、编程题(本题总计 26分)

1,编写一个BOOK类,包含name(书名),writer(著者), public_name(出版社),price(价格),number(数量),NO(书号)定义必要的构造函数,定义成员函数Borrow和Restore,分别用来表示借阅与归还,定义成员函数print用于输出—有关书的信息,定义set_NOr与get_NO来实现修改类对象的书号与获得类对象的书号(10分)

2,定义一个二维方阵类(3*3),定义必要的构造函数,通过重载运算符‘+’,实现任意两个方的阵和运算。(10分)

3,定义一个字符串类,能够用“=”号实现字符串的敷值(6分)。

因篇幅问题不能全部显示,请点此查看更多更全内容