1、endl; return 0;abccde3、有类定义如下:#include iostream.hclass Type Type (int i=0);Type operator-(int);friend Type operator +(Type, Type);private:int val;若有对象定义Type cl;则下列语句序列中,错误的是 cA)Type(3)+c1; B) c1+Type(3); C) 3-c1; D) c1-3;4、#includeclass BookBook(char* t=)strcpy(title,t);-virtual _char *Category()con
2、st=0;-char title40;class Novel:public BookNovel(char *t=):Book(t)char *Category()const return 文学 ;Book *pb;pb=new Novel();coutCategory();5有如下程序: #include using namespace std; class Media public: void Name(); void Show(); protected: int page; ; class Book:private Media void Print() coutpage void Show
3、() Media:Show(); / int main() Book Bible; Bible.Name(); / Bible.Print(); / Bible.Show(); / 编译不正确的是:(2)6、有如下程序段int i =0, j=1;int &r=i ; / r =j;int*p=&i ;*p=&r ; / / 将*去掉或者将&去掉其中编译正确的语句是1237、下面程序的语句1-4有误,找出不正确的语句并修改有如下程序:MyClass(int x):val(x)void Set(int x) val=x; void Print() const coutval=valt;Int m
4、ain()const MyClass obj1(10);-MyClass obj2(20);obj1.Print(); /语句 1obj2.Print(); /语句 2obj1.Set(20); /语句 3 / 将此句删除 obj1为常量obj2.Set(30); /语句 48、有如下程序:#include class Toy Toy(char* _n) strcpy (name,_n); count+;Toy() count-;char* GetName() return name;static int getCount() return count; 静态成员属于类char name10;
5、static int count;int Toy:count=0;Toy t1(Snoopy),t2(Mickey),t3(Barbiet1.getCount()/ = toy:getcount();/输出3 9、如果不使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是只能访问从基类继承的成员,有如下程序,没有使用多态机制。class Baseint a,b;Base(int x ,int y) a=x; b=y;void show() couta,bclass Derived:public Base int c ,d;Derived(int x,int y,int z,int m)
6、:Base(x,y)c=z; d=m;cdBase B1(50,50),*pb;Derived D1(10,20,30,40);pb=&D1;show();/ 输出 10 20 10.若有如下类声明class MyClass MyClass() cout 执行下列语句MyClass a,b2,*p2; 以后,程序的输出结果 1 1 111、下列语句中不正确的是(AC)。A)const int a; B)const int a=10;C)const int*point=10; D)const int*point=new int(10);12、在C+中既可以用于文件输入又可以用于文件输出的流类是
7、AA)fstream B)ifstream C)ofstream D)iostream13、有如下程序:class A A()coutA A()coutCclass B:public A B( )coutG B( )coutT B obj;运行这个程序的输出结果是 AGTC14、有如下程序: class Boat; class Car Car(int i):weight(i) friend int Total(const Car &c,const Boat &b); / private: int weight; class Boat Boat(int i):c,const Boat & int
8、 Total(const Car &b) / return c.weight+b.weight; Car c(10); Boat b(8);The total weight isTotal(c,b)15若需要为XV类重载乘法运算符,运算结果为XV类型,在将其声明为类的成员函数时,下列原型声明正确的是 D A)XV operator *(XV,XV); B)XV *(XV); C)operator *(XV); D)XV operator *(XV);16有如下程序:using namespace std;class Instrumentpublic:virtual void Display()
9、=0;class Piano:public Instrumentvoid Display()/*函数体程序略*/int main() Instrument s;Instrument *p=0;/;return 0;下列叙述中正确的是 BA)语句“Insturment *p=0;”编译时出错B)语句“Instrument s;C)类Piano中的Display函数不是虚函数D)类Instrumen类是一个虚基类17、已知类IMS中两个成员函数的声明为void listen() const;与void speak();,另有两个对象的定义为IMS obj1;const IMS obj2;,则下列语
10、句中,产生编译错误的是 BA)obj1.listen(); B)obj1.speak();C)obj2.listen(); D)obj2.speak();17、若在表达式y/x中,“”是作为成员函数重载的运算符,则该表达式还可以表示为CA)x.Operator/(y) B)operator/(x,y)C)y.operator/(x) D)operator/(y,x)18、有函数模板声明和一些变量定义如下:template T1 sum(T2,T3);double d1,d2;则下列调用中,错误的是 DA)sumdouble,double,double(d1,d2);B)sum(d1,d2);C
11、)sumD)sum(d1,d2);/ 没有参数指明T1的类型19、 有如下类定义class A char *a;A():a(0) A(char *aa) /把aa所指字符串拷贝到a所指向的存储空间a= _ new charstrlen(aa)+1;_ ;strcpy(a,aa);A() delete a; 横线处应填写的表达式是20、有如下程序:class test int a;test ( ) coutconstructortest(int a)couttest(const test &_test)a=_test.a;copy constructortest() coutdestructor
12、test A(3); 运行时输出的结果是 3 destructor21、下列运算符重载函数中,属于类 Value 的成员函数的是(ACD)。A)Value operator+(Value);B)Value operator-(Value, Value);C)Value operator*(int);D)Value operator/(Value);22、下列函数模板的定义中,不合法的是CDA) template T abs(T x) return x 0 ? -x: x;B)template T abs(T x)return x-x:x;C)template T abs(T x)return
13、xD)template T abs(T x)returm x23、有如下程序:class point static int number;point() number+;point() number-;int point:number=0;void main()point *ptr;point A,B;point *ptr_point=new point3;ptr=ptr_point;point C;point:numberdeleteptr;运行时输出的结果是 624、下列函数原型声明中,正确的是 ABDA)int fnction(int m,int n);B)int function(in
14、t,int);C)int function(int m=3,int n);D)int function(int &m,int &n);25、若有函数模板mySwap和一些变量定义如下: template void mySwap(T X,T Y); double d1,d2; int i1,i2; 下列对mySwap的调用中,正确的是 ABD A)mySwap(i1,i2) B)mySwap(d1,d2)C)mySwap(i1,d1) D)mySwap(i2,d2)26、下列程序的输出是3,请填充程序中的空缺,使该行形成一个运算符重载函数的定义。class MyNumberint n;MyNum
15、ber(int k):n(k)-operator- int( )const return n;MyNumber num1(3);int(num1);27、有如下程序:/ 没有错误cmathusing std:cout;class Pointfriend double distance(const Point &p); /p距原点的距离Point(int xx=0,int yy=0):x (xx),Y(yy) / 改为point(int xx,int yy):x(XX),y(YY)int x,Y;double distance(const Point &p) /return sqrt(p.x*p
16、.x+p.Y*p.Y);Point p1(3,4);distance(p1);28、若已定义了类Vehicle,则下列派生类定义中,正确的是 a c dA)class Car:Vehicle/*类体略*/,B)class Car:public Car/*类体略*/;C)class Car:public Vehicle/*类体略*/;D)class Car:virtual public Vehicle/*类体略*/;29、使用VC6打开工程test4_1,此工程包含一个源程序文件test4_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下: Constructor2 Co
17、nstructor1 i=0 i=10 Destructor 源程序文件test4_1.cpp清单如下: #includeiostream.hclass CSample int i;public;CSample( ) coutConstructorlendl; i=0;CSample(int val) coutConstructor2i=val;CSample( )coutDestructorvoid disp( ); *found(1)* void disp() / void CSample:disp() 声明错了 couti=”iendl; void main() CSample *a,b
18、(10); *found(2)* 指向不明 CSample c;a=&c; a-disp(); a-disp(); *found(3)* b-disp(); 普通对象 b.disp();30、请将下列模板类Data补充完整。template class Datavoid put (T v) val=v; _T_ get() /返回数据成员val的值,返回类型不加转换 return val;T val;31、根据程序中的注释将下列缺失部分补充完整。int x, y; /点的x和y坐标x(xx),y(yy) class CirclePoint center; /圆心位置Int radius; /半
19、径 /利用cx和cy分别初始化圆心的x和y坐标-Circle(int cx,int cy,int r):center(cx,cy)-,radius(r) void area() cout3.14159*radius*radius32、下列程序的输出结果是_0 4 2_。class Test Test() cnt+; Test() cnt-; static int Count() return cnt; static int cnt;int Test:cnt = 0; cout Test:Count() Test tl, t2; Test* pT3 = new Test; Test* pT4 = new Test; Test: delete pT4; delete pT3;Count() class person /*1*
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1