1、class Csampleint a; (A)Csample(Csample ample ); -(B)Csample(int val):a(val) -(C) Csample();-(D);6、判断下面程序的输出:#includeiostream.hint a=0,b=0;class A public: int a,b; void f(int c=2,int d=3) a=c;b=d; void f(int c=3,int d=4) b=d; A n; n.f();n.a n.bendl; f(); n.f(7,8);abA.2 3 B.2 3 C.2 3 D.2 3 3 4 3 4 2 3
2、 2 3 3 4 7 8 3 4 7 87、关于缺省构造函数的下述描述中, 是错误的。A 如果没有定义构造函数或缺省构造函数,编译器会自动生成缺省构造函数。B 如果类有缺省构造函数,则可以不传递参数而定义类对象。C 缺省构造函数不对类对象数据成员赋初值。D 如果定义了类的构造函数,则编译器不再生成缺省构造函数。8、下面程序输出结果为 。#include public:virtual void f()coutf(); B b; b.f(); a2=b; a2.f(); A &a=b; a.f(); delete pa;A. A:f() B.A:f() C.A:f() D.A:f()f() B:f
3、() A:9、以下哪种构造函数不是单参数构造函数? A 复制构造函数B 只有第一个参数,其它参数为缺省的构造函数。C 缺省构造函数。D 转换构造函数。10、下面的函数f1()、f2()、f3()及对f3()的调用(D)中,正确的为 。 #include”iostream.h” private: int a; void f1() const -(A) a=2; int f2(const int c) -(B) a=3; c=a; return c; ; const int * f3() -(C) static int z=0; z+; return &z; void main() A a;a.f
4、1()a.f2(3); *f3()=5; -(D)*f3();11、下面程序中对成员函数的访问中,错误的是 。 void f1() coutf1() calledprotected A void f2()f2() calledclass C:private B void f3() f1();-(A)f3 called C c; c.f2(); -(B)c.f3(); -(C) b.f2();-(D)12、派生类的构造函数的成员初始化列表中,不能包含 。A 基类的构造函数。B 派生类中对象成员的初始化。C 基类中对象成员的初始化。D 派生类中一般数据成员的初始化。13、有关虚基类的描述中错误的是
5、 。A 最派生类构造函数中的虚基类构造函数会被调用。B 虚基类可以消除二义性。C 每个派生类构造函数成员初始化器表中都包含有对虚基类构造函数的调用,故虚基类构造函数会被调用多次。D 虚基类只有一个。14、关于虚析构函数的下述描述中, 是错误的。A 基类中析构函数为虚析构函数,则派生类中的析构函数也为虚析构函数。B 虚析构函数能保证delete运算符有效的释放基类及派生类对象。C 将析构函数定义为虚析构函数是因为类中有虚函数。D 虚析构函数并不能实现动态联编。15、关于纯虚函数和抽象类的描述中, 是错误的。A 纯虚函数没有函数体。B 抽象类及其派生类都可以定义对象。C 若某个成员函数为纯虚函数,
6、则该类为抽象类。D 抽象类通常在类结构的顶层。16、判断下面程序的输出结果 。 #includestring.h A(char *st); A();private: char string50; static int a;A(char *st) strcpy(string,st);stringA()a=2;void fun() A Funobj(fun); static A Staobj(staA Globobj(Glob int b=A: A Mainobj(Maincoutfor(int i=0;ii+) fun();A. Main B.Glob C.Glob D.Globfun Main
7、 Main Mainsta fun fun funGlob sta sta stafun sta fun funfun fun sta funsta sta fun Mainfun fun Main stafun sta sta Globsta Main GlobGlob GlobMain17、下面标出的语句中使用正确的为 。 #includeclass ctest static int count; int test;static int getcount() count=test; -(A) return count; int settest(const int & test=a;-(B)
8、 return test;int ctest:count=5; const ctest t1; t1.settest(5); -(C) t1.getcount();-(D)18、下面程序输出结果 。A(int j)b=j;int fun(int c)return (a+b*c); int b; A x(8); int A:*pa; pa=& x.*pa=6; int (A:*pf)(int); pf=A:fun; A *p=&x;(p-*pf)(2);A20 B.22 C.50 D.6619、下面程序的输出结果为 。 A() a=0;AsD.C.n; A(int i) a=i;sC.n A()
9、 coutsD.n A a1;A a24= A(), a1, 5, 2.3A. ASD.C. B.ASD.C.ASD.C. ASC.ASC. ASC. ASC. ASC.ASD. ASD.ASD ASD.ASD. ASDC.ASD.C. D.程序有错误ASD.C 无法运行ASC.ASD.20、下面程序输出结果 。A(const char *s)sA()virtual public AB(const char *s1,const char *s2)A(s1)s2C(const char *s1,const char *s2)class D:public C,public BD(const cha
10、r *s1,const char *s2,const char *s3,const char *s4)B(s1,s3),C(s1,s2),b(s3,s4),a(s1),A(s4)s1act3();A.B1 B.B1 C.A1 D.B1A2 A2 A2 A2B1 B1 B1 A1A1 B1 A1 B1A1 A1 A1 B122、下面程序输出结果 。A()fnvoid h()hB() f();public BC()C:void g(A *aa) aa-h(); B *bp=new C; g(bp);bp-h() delete bp;A. C:f B.C:f C.B:f D.B:f B:f C:f
11、B: A:h A:hh B:23、下面程序输出结果 。A(int i,int j)a=i,b=j;void move(int x,int y)a+=x;b+=y;void show()protected:int a,b;B(int i,int j,int k,int l)A(i,j),x(k),y(l)xyvoid fun()move(7,8);void f1()A:show();int x,y;A e(5,6);B d(1,2,3,4);d.fun();d.show();e.show();d.f1();A.3,4 B.3,4 C.3,4 D.3,4 1,2 1,2 12,14 8,10 12
12、,14 5,6 12,14 5,61,2 1,2 19,22 15,1824、下面程序输出结果 。virtual A()AnB()Bn A *a1; A *a2=new B(); a1=&A.B:B B.B:B C.B:B D.B:BA A:AA B:B B:25、下面程序输出结果 。A(int i)m=i;CON.m A(int i,int j) j=8;,jvoid print() DES. int m; A my=5; my.print(); my=6;A.CON.5,8 B.CON.5 DES.5 DES.5 5 5CON.6.8 CON.6DES.6 DES.66 6C.CON.5
13、D.CON.5 CON.6 CON.6 6 DES.6 DES.6 6 DES.62627阅读下面程序并选择:class cmessage char *buffer;cmessage()buffer=new char(0cmessage( (1) ) (2) cmessage() delete buffer;void display()buffernvoid set(char *string) delete buffer;buffer=new charstrlen(string)+1;strcpy(buffer,string);(3) operator=( (4) ) (5) cmessage
14、 message1;message1.set(hellocmessage message2(message1);cmessage message3; cmessage message4;message4=message3=message2;26程序段(1)、(2)应为 。A.(1)cmessage m (2)delete buffer;buffer=new(strlen(m.buffer)+1); strcpy(buffer,m.buffer);B.(1)cmessage &mm.buffer=new(strlen(buffer)+1);C.(1)char *string (2)buffer=
15、new(strlen(string)+1); strcpy(buffer,string);D.(1)cmessage & (2)buffer=new(strlen(m.buffer)+1); strcpy(buffer,m.buffer)27、程序段(3)、(4)、(5)为 。A.(3)void (4)cmessage & (5)delete buffer; buffer=new(strlen(m.buffer)+1); strcpy(buffer.m.buffer);B.(3)cmessage & (5)buffer=new(strlen(m.buffer)+1); return *this;C.(3)cmessage (4)cmessage m buffer=new(strlen(m.buffer)+1);D
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2