1、C+试题一、选择填空1. 对定义重载函数的下列要求中,( )是错的。GG.要求参数的个数不同;HH. 要求参数中至少有一个类型不同;II. 要求参数个数相同时,参数类型不同;JJ. 要求函数的返回值不同。2. 下列函数中,( )不能重载。KK. 成员函数; LL. 非成员函数;MM. 析构函数;NN.构造函数。3. 下列对重载函数的描述中,( )是错的。OO.重载函数中不允许使用缺省参数;PP. 重载函数中编译系统会根据参数表进行选择;QQ.不要使用重载函数来描述毫无相干的函数;RR. 构造函数重载将会给初始化带来多种方式;4. 下列运算符中,( )运算符不能重载。SS. &; B. ; C.
2、 : ; D.new5. 下列关于运算符重载的描述中,( )是正确的。TT. 运算符重载可以改变操作数的个数;UU. 运算符重载可以改变优先级;VV. 运算符重载可以改变结合性;WW. 运算符重载不可以改变语法结构。6. 运算符重载函数是( )。XX.成员函数;YY. 友元函数;ZZ. 内联函数;AAA. 带缺省参数的函数。7. 关于动态联编的下列描述中,( )是错误的。BBB. 动态联编是以虚函数为基础的;CCC. 动态联编是在运行时确定所调用的函数代码的;DDD. 动态联编调用函数操作是指向对象的指针或对象引用;EEE. 动态联编是在编译时确定操作函数的;8. 关于虚函数的描述中,( )是
3、正确的。FFF. 虚函数是一个static类型的成员函数;GGG. 虚函数是一个非成员函数;HHH. 基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数;III. 派生类的虚函数与基类的虚函数具有不同的参数个数和类型。9. 关于纯虚函数和抽象类的描述中,( )是错误的。JJJ. 纯虚函数是一种特殊的虚函数,它没有具体的实现;KKK. 抽象类是指具有纯虚函数的类;LLL. 一个基类中说明有纯虚函数,该基类的派生类一定不再是抽象类;MMM. 抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出;10. 下列描述中,( )是抽象类的特性。NNN. 可以说明虚函数;OOO. 可以进行构造
4、函数重载;PPP. 可以定义友元函数;QQQ. 不能说明其对象。二、判断下列描述的正确性,对者划,错者划。函数的参数个数和类型都相同,只是返回值不同,这不是重载函数。重载函数可以带有缺省值参数,但是要注意二义性。多数运算符可以重载,个别运算符不能重载,运算符重载是通过函数定义实现的。对每个可重载的运算符来讲,它既可以重载为友元函数,又可以重载为成员函数,还可以重载为非成员函数。对单目运算符重载为友元函数时,说明一个形参;重载为成员函数时,不能显式说明形参。重载运算符保持原运算符的优先级和结合性不变。虚函数是用virtual关键字说明的成员函数。构造函数说明为纯虚函数是没有意义的。抽象类是指一些
5、没有说明对象的类。 动态联编是在运行时选定调用的成员函数的。三、分析下列程序的输出结果。1、#include class Bpublic:B(int i)b=i+50;show(); B()virtual void show()cout”B:show() called.”bendl;protected:int b;class D:public Bpublic:D(int i):B(i) d=i+100;show();D() void show() cout”D:show() called.”dendl;protected:int d;void main()D d1(108);2、#includ
6、e class Bpublic:B()B(int i)b=i; virtual void virfun()cout”B:virfun() called.n”;private:int b;class D:public Bpublic:D()D(int i,int j):B(i) d=j; private:int d;void virfun() coutvirfun(); void main()D *pd=new D;fun(pd);3、#include class Apublic: A()ver=A;void print() cout”The A version”verendl;protecte
7、d: char ver;class D1:public Apublic:D1(int number)info=number; ver=1;void print() cout”The D1 info: ”info”version”verendl;private:int info;class D2:public Apublic:D2(int number)info=number;void print()cout”The D2 info”info”version”verendl;private:int info;class D3:public D1public:D3(int number):D1(n
8、umber)info=number; ver=3;void print()cout”The D3 info”info”version”verprint(); void main()A a;D1 d1(4);D2 d2(100);D3 d3(-25);print_info(&a);print_info(&d1);print_info(&d2);print_info(&d3);4、#include class Apublic:A() ver=A;virtual void print() cout”The A version”verendl;protected:char ver;class D1:p
9、ublic Apublic:D1(int number)info=number;ver=1;void print()cout”The D1 info:”info”version”verendl;private:int info;class D2:public Apublic:D2(int number) info=number;void print()cout”The D2 info:”info”version”verendl;private:int info;class D3:public D1public:D3(int number) :D1(number) info=number;ver
10、=3;void print()cout”The D3 info:”info”version”verprint(); void main()A a;D1 d1(4);D2 d2(100);D3 d3(-25);print_info(&a);print_info(&d1);print_info(&d2);print_info(&d3);5、#include class Matrixpublic:Matrix(int r,int c)row=r;col=c;elem=new doublerow*col;double& operator()(int x,int y) return elemcol*(x-1)+y-1; double operator()(int x,int y) const return elemcol*(x-1)+y-1; Matrix() delete elem;private:double *elem;int row,col;void main()Matrix m(5,8);for(int i=0;i5;i+)m(i,1)=i+5;for(i=0;i5;i+)coutm(i,1)”,”;coutendl;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1