logo资料库

杭州电子科技大学信息工程学院C++考试卷A卷.doc

第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
资料共7页,全文预览结束
Time(int s=0, int m=0, int h=0){
Time opreator +(Time t1, Time t2){
T = T1 + T2;
T = T1 + T3;
杭州电子科技大学信息工程学院学生考试卷( A)卷 4. 虚函数可以实现________ 。 A.静态多态性; B.链接时多态性; C.运行时多态性; D. 编译时多态性 课程名称 面向对象程序设计 考试日期 07 年 6 月 17 日 成 绩 考生姓名 学号(8 位) 任课教师姓名 班级 专业 一. 是非判断题(5 题,共 10 分) 1. C++是面向对象的程序设计语言,不是面向过程的程序设计语言。 ( 2. 结构体对象在默认情况下可以直接访问其数据成员。 ( 3. 析构函数可以重载,也可以有数据返回类型。 ( ) 4. 基类指针可以指向派生类对象,派生类指针也可以指向基类对象。( 5. C++中多态性是指编译过程的多态性和运行时的多态性。 ( ) ) ) ) 二. 单项选择题(每题 2 分,共 20 分) 1.在 C++程序中,对象之间的相互通信通过( A. 继承实现 B. 调用成员函数实现 C. 封装实现 D. 函数重载实现 ) 2. 在 C++中,函数原型不能标识( A. 函数的返回类型 B. 函数参数的个数 C. 函数参数类型 D. 函数的功能 ) } D. template 5. 若一个应用程序中有类定义 class Person,在它的 public 成员中定义了若干成员函数, 以下_____ 为纯虚函数。 A. void count ( ){}; C. virtual void count ( ) =0; B. void count ( ) = 0; virtual void count ( ){}; D. 6. 设函数声明语句中的参数表为 (int &a, int &b, int c) ,函数体中 a , b , c 三个变量 的值都发生变化;主函数中调用此函数的实参表为 (x,y,z) ,调用函数语句执行后,以下 叙述正确的是________ 。 A. 变量 x 和 y 的值发生变化 C. 变量 x 、 y 、 z 的值都发生变化 D. 只有变量 z 的值发生变化 B. 变量 x 和 y 的值不发生变化 7. 设有以下定义: class Circle : public Point { double r ; public: … … } 则正确的描述为_________ A. Point 是 Circle 的派生类; B. C. Circle 是 Point 的派生类; D. r 是 Point 的数据成员 r 是类 Circle 和类 Point 共同的数据成员 8.如果可以用 p.a 的形式访问派生类对象 p 的基类成员 a,则 a 应该是( A.私有继承的公有成员 B.公有继承的私有成员 C.公有继承的保护成员 D.公有继承的公有成员 ) B. template Q F(Q x){ return x+x; 3.下面函数模板定义中不正确的是() A. template Q F(Q x){ return Q+x; } C. template T F(T x){ return x*x; } T F(T x){ return x>1; } 第 - 1 -页共 7页
① 私有继承后该函数是派生类的私有成员,外部函数不能访问。对应号为“←(______)” ② 不论公有派生或私有派生,派生类都不能用基类私有成员。对应号为“←(______)” ③ 因为该类有构造函数,定义对象时不能缺省参数。对应号为“←(______)” ④ 派生类新增加的私有成员,外部函数不能直接访问。对应号为“←(______)” ⑤ 私有成员,外部函数不能直接访问。对应号为“←(______)” #include class public: x(int a1=0, int b1=0) int get1( ) }; class {a=a1; b=b1;} {return a+b;} x { int a,b; y:private x {int c; public: y(int a1, int b1, int c1): x(a1,b1) {c=c1;} int get2( ) {return int get3( ) {return a+b+c;} c;} ←(1) 9. 以下叙述中正确的是:( ) A. 在定义构造函数时可以指定返回类型 B. 在定义析构函数时不能指定参数 C. 一个类只能有一个构造函数 D. 在一个类可以有多个析构函数 10. 对于类定义 class A{ public: virtual void func1( ){ } void func2( ){ } }; class B:public A{ public: void func1( ){cout<<〃class B func 1〃<
#include 四. 输出程序结果(每题 9 分,共 36 分) 1. class Time { char a[9]; int hours; int minutes; int senconds; public: Time(int s=0, int m=0, int h=0){ hours=h; minutes=m; seconds=s; } void show( ){cout<<"时间:"< 60){ temp.senconds = temp.seconds - 60; if(temp.minutes > 60){ temp.minutes = temp.minutes - 60; if(temp.hours >=24) temp.hours = temp.hours - 24; return temp; } void main( ) {Time T, T1(20, 23, 21), T2(10, 25, 15), T3(5, 10, 15); T = T1 + T2; T.show( ); T = T1 + T3; T.show( ); } temp.minutes++; } temp.hours++;} 2. #include int Div(int x,int y); int main() { try { cout<<"7/2="< #include template void swap(T& x, T& y) { T temp; temp = x; x = y; y = temp; } void main() { int double i= 0, j=1; a=1.25, b=-2.5; 第 - 3 -页共 7页
ch1='A', ch2='B'; char cout << "\n " << i << '\t' << j; cout << "\n " << ch1<< '\t' << ch2; cout << "\n " << a << '\t' << b; swap(i, j); swap(a, b); swap(ch1, ch2); cout << "\n " << i << '\t' << j; cout << "\n " << a << '\t' << b; cout << "\n " << ch1 << '\t' << ch2; } 4. #include using namespace std; class B0 { public: virtual void display()=0; }; class B1: public B0 { public: void display(){cout<<"B1::display()"<display(); } int main() { B0 *p; B1 b1; D1 d1; b1.display(); d1.display(); p=&b1; fun(p); p=&d1; fun(p); return 0; } 五. 编程题 (共 24 分) (应严格按照题目的要求定义类) 定义一个抽象基类 person 类,里面有一个纯虚函数 print。定义派生类 student, 从 person 类公有派生,私有段有学号 num,名字 name,成绩 score,公有段有构造函数,有 print 函数,能输出学生的名字,学号,成绩等信息。在学生类中再公有派生出 grad_student 研 究生类, 私有段有 thesis,和年龄 age,公有段包括构造函数,print 函数,能显示研究生类 的 thesis 和年龄 age 信息。在主函数中,定义学生类和研究生类对象和指针,通过指针动 态调用相应的 print 函数,输出学生类和研究生类信息。 第 - 4 -页共 7页
答题纸: 第一大题: 1. 2. 3. 4. 第二大题: 1. 10. 2. 3. 5. 4. 6. 5. 第三题: ① ② ③ 7. 8. 9. 10. 6. ④ 7. 8. 9. ⑤ 第四题: 第五题: 第 - 5 -页共 7页
第 - 6 -页共 7页
第 - 7 -页共 7页
分享到:
收藏