高级程序设计C++考试题型及题例-答案_第1页
高级程序设计C++考试题型及题例-答案_第2页
高级程序设计C++考试题型及题例-答案_第3页
高级程序设计C++考试题型及题例-答案_第4页
高级程序设计C++考试题型及题例-答案_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档高级程序设计C+(II)考试题型1、 选择填空题,20题,20分。2、 写出下列程序运行结果,6题,30分。3、 根据题目要求,将程序的空格处补充完整,3题,24分。4、 按要求编写程序,2题,26分。题目示范一、 选择填空题1.下列函数中,不能有参数的是( C )。(A) 成员函数(B) 友元函数(C) 析构函数(D) 构造函数2在下面类的说明中,正确的语句是( A )。class Csample const int a=10; . .(A) Csample(Csample sample);. (B) Csample(int val):a(val ) . .(C)Csample(int x);. .(D)3. 若Example是已定义的类,在程序结束之前,共创建了( B )对象。 #include “example.h”main() Example example(0), *pExample, Aexample3; example.print(); pExample=new example;(A) 4 (B) 5 (C) 6(D) 74. 下述关于类的静态成员特性描述中,错误的是( D )。 (A) 静态成员函数没有this指针(B) 静态数据成员在类中声明,在类外初始化(C) 在类外引用静态数据成员时,要在静态数据成员名前加和作用域运算符(D) 类的每个对象都有自己的静态数据成员副本5. 下列为类Fraction重载为非成员函数的运算符重载函数原型中,错误的是( C )。(A) Fraction operator +(Fraction f1, Fraction f2)(B) Fraction operator (Fraction f1)(C) Fraction &operator=(Fraction &f1)(D) Fraction operator * (Fraction f1, Fraction f2)6. 下列为类Example定义重载的提取运算符(“”)函数头中,正确的是( A )。(A) istream &operator(istream &input, const Example) (B) istream& Example:operator(istream &intput, const Example)(C)ostream &operator(ostream &input, const Example)(D)ostream& Example:operator(ostream &input, const Example)7. 在下列运算符中,不能被重载的是( C )。(A) (B) () (C) :? (D) new8. 在建立派生类对象时,可能要调用的三种构造函数分别是a(基类的构造函数),b(成员对象的构造函数),c(派生类的构造函数). 这三种构造函数的调用顺序是( A )。(A) abc (B) acb(C) cab(D) cba9. 下列程序中划线处应填入的语句是( C )。#include class Base public: void fun() cout”Base of fun”endl; ;class Derived:public Base _; /调用基类的成员函数fun cout”Derived of fun”fun()10. 下面程序中错误的语句是( C )。class Base public: virtual void f()=0; virtual a();class Derived: public Base protected: int a,b; public: void f()cinab; coutendlaf();.(A) Derived derive;.(B) derive.Base:f();.(C) Delete pBase;.(D)二、 读程序,写运行结果。(每小题4分,共20分) 1. #include using namespace std;class sampleint n;static int sum;public:sample(int x) n=x;void add()sum+=n;void disp()coutn,sumendl;int sample:sum=0;int main()sample a(2),b(3),c(5);a.add();a.disp();b.add();b.disp();c.add();c.disp();2. #include using namespace std;class Apublic:virtual void f()coutA:f()endl;void g()coutA:g()endl;class B:public Apublic:void f()coutB:f()endl;void g()coutB:g()f();pa-g();三、 读程序填空。1. 以下程序的功能是定义字符串类,实现字符串的连接与赋值。程序的运行结果如下图所示。请将程序补充完整。#include #includeusing namespace std;class STRING public: _(1)_ /构造函数STRING(char *pn) size=strlen(pn); string=new charsize+1; if (string!=0) strcpy_s(string,size+1,pn); void show() /显示输出 coutstringendl; STRING operator+( STRING obj ); / 重载加法运算 STRING & operator=(const STRING &); /重载赋值运算 private: char *string; int size;STRING STRING:operator+( STRING obj ) STRING temp(null);temp.size=size+obj.size;_(2)_;/ temp.string=new chartemp.size+1strcpy_s(temp.string,size+1,string);strcat_s( temp.string,temp.size+1,obj.string );return temp; STRING & STRING:operator =(const STRING &obj)size=obj.size;deletestring;string=new charsize+1;if (string!=0)strcpy_s(string,size+1,obj.string);_(3)_ ; /return *thisint main() STRING obj1( My name is ),obj2( Zhangshan ),obj3(null);obj3 = obj1 + obj2;obj3.show();四、 编写程序有一个鸟类birds,将它作为基类派生麻雀类sparrow、孔雀类peacock和凤凰phoenix。完成这些类的定义,执行下列主程序后,得到如下执行结果。(12分) 有一个鸟类birds,将它作为基类派生麻雀类sparrow、孔雀类peacock和凤凰phoenix。完成这些类的定义,执行下列主程序后,得到如下执行结果。(12分)#include#includeusing namespace std;int main()birds *vp3;vp0=new sparrow (Lulu);vp1=new peacock (Pipi);vp2=new phoenix (Couou);for (int i=0;ishowinfo();delete vp; return 0;Ans#include#includeusing namespace std;class birdspublic:virtual void showinfo()=0;protected: char Name20;class sparrow:public birdspublic:sparrow(char *name)strcpy(Name,name);void showinfo()coutI am the sparrow Nameendl;class peacock:public birdspublic:peacock(char *name)strcpy(Name,name);void showinfo()coutI am the peacock Nameendl;class phoenix:public birdspublic:phoenix(char *name)strcpy(Name,name);void

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论