您好,欢迎来到客趣旅游网。
搜索
您的当前位置:首页C++期末考试题A

C++期末考试题A

来源:客趣旅游网
 ………………………………装………………………………订……………………………线…………………………… 考试科目:面向对象程序设计 考试方式: 闭卷 试卷类型: A 学期:2010—2011学年第一学期 题号 得分 阅卷人 一 二 三 四 五 总得分 得分 一、选择题(每题1分,共15分) 1、假设已经有了定义“char *const name=”chen”;”下面的语句中正确的是( A ) A.name[3]=’q’; B.name=”lin”; C.name=new char[5]; Dchar(‘q’); 2、函数原型语句正确的是( B ). A.int function(void a);B.void function(int);C.int function(a);D.void int(double a); 3、重载函数在调用时选择的依据中,( B )是错误的。 A.函数名字 B.函数的返回类型 C.参数个数 D.参数的类型 4、在( A )情况下适宜采用内联函数。 A.函数代码小,频繁调用 B.函数代码多,频繁调用 C.函数体含有递归语句 D.函数体含有循环语句 5、下列描述中,( C )是错误的。 A.内联函数主要解决程序的运行效率问题 B.内联函数的定义必须出现在内联函数第一次被调用之前 C.内联函数中可以包括各种语句 D.对内联函数不可以进行异常接口声明 6、在C++中,关于下列设置默认参数值的描述中,( B )是正确的。 A.不允许设置默认参数值 B.在指定了默认值的参数右边,不能出现没有指定默认值的参数 C.只能在函数的定义性声明中指定参数的默认值 D.设置默认参数值时,必须全部都设置 7、下面有关重载函数的说法中正确的是( C ) A.重载函数必须具有不同的返回值类型 B.重载函数形参个数必须不同 C.重载函数必须有不同的形参列表 D.重载函数名可以不同 8、关于new运算符的下列描述中,( D )是错误的 A.它可以用来动态创建对象和对象数组 B.使用它创建的对象或对象数组可以使用运算符delete删除 C.使用它创建对象时要调用构造函数 D.使用它创建对象数组时必须指定初始值 9、关于delete运算符的下列描述中,( C )是错误的。 A.它必须用于new返回的指针 .name=new B.使用它删除对象时要调用析构函数 D.指针名前只有一对方括号符号,不管所删除数组的维数 C.对一个指针可以使用多次该运算符 10、在多继承构造函数定义中,几个基类构造函数用( C )分隔。 A. : B. ; C. , D. :: 11、设置虚基类的目的是( B )。 共 3 页 第 1 页 ………………………………装………………………………订……………………………线…………………………… 试 题 专 用 纸(附页) ………………………………装………………………………订……………………………线…………………………… 得分得分 三、请写出下列程序的运行结果(每题5分,共20分) 1. #include<> 3. #include<> 二、填空题(每空2分,共10分) 1、在用class定义一个类时,数据成员和成员函数的默认访问权限是_private___________ 。(填访问控制符) class Sample void swap(int *x,int &y); 2、C++支持____重载______,使得编译器能够根据函数参数的类型、数量和排列顺序的差异,来区分同名函数。 { void main() 3、面向对象程序设计的基本特征包括抽象、封装、_继承____________和______多态_______。 int x; { 4、保护继承时基类中的public成员在派生类中是__protected___________的。(填访问控制符) public: int a=13,b; 得分 Sample(){}; b=a%5; cout<<\"a=\"< void disp(){cout< cout<<\"a=\"< int main() class Student { example x(10); Constructing { cout<<()< { using namespace std; public: class Base { virtual void display(){cout<<“Graduate”; } public: }; Base(int x,int y){ a=x; b=y; } cout< class BASE { char c1; public: BASE(char n):c1(n){} virtual~BASE(){cout<< c1;} }; class DERIVED:public BASE 3. #include { using namespace std; char c2; class base1 { public: public: DERIVED(char n):BASE(n+1),c2(n){} ( ){cout<<\"class base1\" < using namespace std; inline double circle(double r) virtual void display()=0 ; class Base { public: Base(int a,int b) class girl { public: girl(char *n,int d) { name=new char[strlen(n)+1]; strcpy(name,n); age=d; } friend void display(girl &) ; //声明友元函数 ~girl(){ delete name ; } //析构函数,释放存储空间 private: char *name; int age; }; void display(girl &x) //定义友元函数 { cout<<\"Girl\\′s name is \"<<<<\ } 得分 五、程序设计(共35分) 1、按以下框架设计一个用来表示直角坐标系的Location2、按以下框架设计一个Time类,用来保存时、分、秒,类。(23分) class Location{ double x;double y; public: 通过重载操作符“+”实现两个时间的相加。要求将小时范围为大于等于0,分钟和秒范围在0-59。(12分) class Time{ 答案:

一、选择题(每小题1分,1×15=15分) 1 A 2 B 3 B 4 A 5 C 6 B 7 C 8 D 9 C 10 C 11 B 12 C 13 C 14 B 15 C 二、填空题(每空2分,共10分)

1 2 3 4 private 重载 继承、多态 protected 三、请写出下列程序的运行结果(每空5分,5×4=20分)

1 2 Contructing 10 101 Destructing 100 Destructing 四、程序填空:请在划横线位置填写适当的内容以完善程序(每空4分,4×5=20分)

1 virtual void display()=0 inline Base(a,b) 2 3 friend void display(girl &)

delete name 4 3 class base1 class base2 class level2 class base2 class level1 class toplevel Base 60 60 Derived 30 4 五、程序设计(共35分)

1、 Location::Location(double a,double b) //构造函数(3分) { x=a;y=b;} void Location::Setx(double a) //设置x坐标的值(3分) { x=a;} void Location::Sety(double b) //设置y坐标的值(3分) { y=b;} double Location::Getx() //取x坐标的值(3分) { return ;} double Location::Gety()//取y坐标的值(3分) {return ;} 2 Time::Time(int h,int m,int s) //构造函数(3分) { housrs=h; if(h<0) { cout<<”时钟数小于0,请修正”<=60||m<0) { cout<<”分钟数小于0或者大于等于60,请修正”<=60||seconds<0) { cout<<”秒钟数小于0或大于等于60,请修正”<

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

Copyright © 2019- kqyc.cn 版权所有 赣ICP备2024042808号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务