好文档 - 专业文书写作范文服务资料分享网站

C++期末考试题A

天下 分享 时间: 加入收藏 我要投稿 点赞

……………………………………………………………最新资料推荐…………………………………………………

………………………………装………………………………订……………………………线…………………………… ………………………………装………………………………订……………………………线…………………………… 试 题 专 用 纸(附页) ………………………………装………………………………订……………………………线…………………………… 考试科目:面向对象程序设计 考试方式: 闭卷 试卷类型: A 学期:2010—2011学年第一学期 得分 得分 题号 一 二 三 四 总得分 五 二、填空题(每空2分,共10分) 5分,共20分) 三、请写出下列程序的运行结果(每题 定义一个类时,数据成员和成员函数的默认访问权限是 。(填访问控制符) 1、在用class_private___________ 1. 得分 #include 3. #include class Sample 2、C++支持____重载______,使得编译器能够根据函数参数的类型、数量和排列顺序的差异,来区分同名函数。 void swap(int *x,int &y); 阅卷人 { void main() 3、面向对象程序设计的基本特征包括抽象、封装、_继承____________和______多态_______。 int x; { 4、保护继承时基类中的public成员在派生类中是__protected___________的。(填访问控制符) public: int a=13,b; 得分 Sample(){}; b=a%5; 一、选择题(每题1分,共15分) 得分 Sample(int a){x=a;} cout<<\1、假设已经有了定义“char *const name=”chen”;”下面的语句中正确的是( A ) Sample(Sample &a){x=a.x+1;} swap(&a,b); name[3]=’q’; Bname=”lin”; C.name=new char[5]; A . void disp(){cout< 2. #include void main() void swap(int *x,int &y) 2、函数原型语句正确的是( B ). using namespace std; using namespace std; { .int function(void a);B.void function(int); AC{ .int function(a);D.void int(double a); class example{ int i=15; 3 、重载函数在调用时选择的依据中,Sample s1(2),s2(s1); int temp=*x; ( B )是错误的。 public: int main() { s2.disp(); .函数名字 B.函数的返回类型 example(int n){i=n; cout<<\ *x=y; C.参数个数 D.参数的类型 Aint i; } y=temp; ~example(){cout<<\、在( A ) 4i=100; 情况下适宜采用内联函数。 } int get_i(){return i;} .函数代码小,频繁调用 B.函数代码多,频繁调用 C.函数体含有递归语句 D.函数体含有循环语句 A::i=i+1; private: 、下列描述中,( C )是错误的。 5cout<<::i< 2. #include int i; Areturn 0; .内联函数主要解决程序的运行效率问题 B.内联函数的定义必须出现在内联函数第一次被调用之前 class BASE }; class Student } C . { { 内联函数中可以包括各种语句 D.对内联函数不可以进行异常接口声明int sqr_it(example o){return o.get_i()*o.get_i();} 101 6、在C++中,关于下列设置默认参数值的描述中,( B )public: 是正确的。 char c1; int main() virtual void display(){cout<<“UnderGraduate”; } B.在指定了默认值的参数右边,不能出现没有指定默认值的参数 { example x(10); Constructing A .不允许设置默认参数值public: }; C cout< 4. #include { 8、关于new运算符的下列描述中,( D )是错误的 }; using namespace std; using namespace std; .它可以用来动态创建对象和对象数组 char c2; A B.使用它创建的对象或对象数组可以使用运算符delete删除 void fn(Student& x){x.display();} class base1 { class Base { .使用它创建对象时要调用构造函数public: void main() C D.使用它创建对象数组时必须指定初始值 public: public: DERIVED(char n):BASE(n+1),c2(n){} { 9、关于delete运算符的下列描述中,( C )是错误的。 base1( ){cout<<\ Base(int x,int y){ a=x; b=y; } ~DERIVED(){cout<show(); A.构造函数可以带有返回值; B.构造函数的名字与类名完全相同; Base 1)创建一个构造函数,防止分母为0,对不是化简形式的分数进行化简,并避免分母为负数。 toplevel obj; return 0; pc=&mc; pc->show(); 60 60 C.构造函数必须带有参数; D.构造函数必须定义,不能默认。 } 2)为该类重载加、减、乘、除运算符。 return 0; Derived 15、在下面有关析构函数特征的描述中,正确的是( C ) class base1 class base2 class level2 class base2 class level1 3)创建一个成员函数printRational(),用来输出分数,如:} 5/7 。 30 A.一个类中可以定义多个析构函数; B.析构函数名与类名完全相同; class toplevel C.析构函数不能指定返回类型; D.析构函数可以有一个或多个参数。 共 共 3 3 页页 第第 2 1 页页

……………………………………………………………最新资料推荐…………………………………………………

………………………………装………………………………订……………………………线…………………………… 得分 2. #include using namespace std; inline double circle(double r) // 内联{ return 3.1416*r*r; } int main() { double i=2.5 cout<<\ return 0; } 函数 四、程序填空:请在划横线位置填写适当的内容以完善程序(每空4分,共20分) 1. class Base { public: void set(int x){ r=x; } virtual void display()=0 ; // 纯虚函数display ( ) protected: int r; }; class Derived:public Base { public: void display(){ cout<<\ }; // 重定义虚函数display ( ) 4. class girl { 3. class Base { public: public: girl(char *n,int d) Base(int a,int b) //基类的构造函数 { name=new char[strlen(n)+1]; { strcpy(name,n); age=d; } cout<<\ friend void display(girl &) ; x=a;y=b; //声明友元函数 } ~girl(){ delete name ; } private: //析构函数,释放存储空间 int x; int y; private: }; char *name; class Derive :public Base{ int age; public: Derive(int a,int b,int c): Base(a,b); }; void display(girl &x) //定义友元函数 //派生类构造函数 { cout<<\′s name is {cout<<\ \ private: } int z; }; 得分 五、程序设计(共35分) 1、按以下框架设计一个用来表示直角坐标系的Location2、按以下框架设计一个Time类,用来保存时、分、秒,类。(23分) 通过重载操作符“+”实现两个时间的相加。要求将小时class Location{ 范围限制为大于等于0,分钟和秒范围限制在0-59。(12double x;double y; 分) public: Location(double,double); //构造函数(3分) void Setx(double); //设置x坐标的值(3分) void Sety(double); //设置y坐标的值(3分) double Getx(); //取x坐标的值(3分) double Gety(); //取y坐标的值(3分) double distance(Location &); //成员函数,求给定两点之间的距离(4分) friend double distance(Location &,Location &); //友元函数,求给定两点之间的距离(4分) } class Time{ int hours;int minutes;int seconds; public: Time(int h=0,int m=0, int s=0); //构造函数(3分) Time operator+(Time &); //运算符重载,实现两个时间的相加(5分) void disptime(); //输出时间,格式为“时:分:秒”(4分) } 答案: ……………………………………………………………最新资料推荐…………………………………………………

一、选择题(每小题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 private 三、请写出下列程序的运行结果(每空5分,5×4=20分)

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

1 virtual void display()=0 2 inline 3 Base(a,b) 4 friend void display(girl &) delete name 3 class base1 class base2 class level2 class base2 class level14 Base 60 60 Derived 302 重载 3 继承、多态 4 protected 五、程序设计(共35分)

C++期末考试题A

……………………………………………………………最新资料推荐…………………………………………………………………………………装………………………………订……………………………线……………………………………………………………装………………………………订……………………………线……………………………试题专
推荐度:
点击下载文档文档为doc格式
0dkk57599k2xzhu2kzn0175lm26knl009wb
领取福利

微信扫码领取福利

微信扫码分享