C++试卷
第481题
有如下程序,下列叙述中正确的是()。
#include<iostream>
using namespace std;
class Music{
public:
void setTitle(char* str){strcpy(title, str);}
protected:
char type[10];
private:
char title[20];
};
class Jazz: public Music{
public:
void set(char* str){
strcpy(type,"Jazz"); //①
strcpy(title,str); //②
}
};
第482题
当派生类从一个基类保护继承时,基类中的一些成员在派生类中成为保护成员,这些成员在基类中原有的访问属性是()。
第483题
下列关于派生类和基类的描述中,正确的是()。
第484题
有如下程序,下列关于程序编译结果的描述中,正确的是()。
#include<iostream>
using namespace std;
class Base {
public:
int data;
};
class Derived1 :public Base {};
class Derived2 :protected Base {};
int main() {
Derived1 d1;
Derived2 d2;
d1.data = 0; //①
d2.data = 0; //②
return 0;
}
第485题
有如下程序,运行这个程序的输出结果是()。
#include<iostream>
using namespace std;
class XX{
int x;
public:
XX(int xx=0):x(xx){}
int getX() {return x;}
};
class YY: public XX{
int y;
public:
YY(int xx, int yy):XX(xx),y(yy){}
int getV() {return getX()+y;}
};
int main(){
YY c(3,4);
cout<<c.getV()+c.getX()<<endl;
return 0;
}
第486题
有如下程序,编译时有错误的是()。
#include<iostream>
using namespace std;
class Media{
pub
lic:
void Name(){}
void Show(){}
protected:
int page;
};class Book: private Media{
public:
void Print() { cout<<page<<endl; }
void Show() { Media::Show(); } //①
};
int main(){
Book Bible;
Bible.Name(); //②
Bible.Print(); //③
Bible.Show(); //④
return 0;
第487题
有如下程序,执行后的输出结果是()。
#include<iostream>
using namespace std;
class A {
public:
A(){cout<<"A";}
};
class B:public B{cout<<"B";}
class C:public A {
B b;
public:
C(){cout<<"C";}
};
int main(){ C obj; return 0;}
第488题
有如下程序,执行这个程序的输出结果是()。
#include<iostream>
using namespace std;
class A {
public:
A(){ cout<<"A";}
~A(){ cout<<"~A";}
};
class B: public A {
A* p;
public:
B(){ cout<<"B"; p=new A();}
~B(){ cout<<"~B"; delete p;}
};
int main(){
B obj;
return 0;
}
第489题
有如下程序,执行这个程序屏幕上将显示输出()。
#include<iostream>
using namespace std;
class Base{
protected:
Base() {cout<<"A";}
Base(char c){cout<<c;}
};
class Derived:public Base{
public:
Derived(char c){cout<<c;}
};
int main(){
Derived d1('B');
return 0;
}
第490题
在一个派生类对象结束其生命周期时()。
第491题
有如下程序,运行时输出的结果是()。
#include<iostream>
using namespace std;
class A
{
public:
A(int i):x(i){}
void dispa(){cout<<x<<',';}
private:
int x;
};
class B:public A
{
public:
B(int i):A(i+10){x=i;}
void dispb(){dispa(); cout<<x<<endl;}
private:
int x;
};
int main()
{
B b(2);
b.dispb();
return 0;
}
第492题
有如下程序,运行时的输出结果是()。
#include<iostream>
using namespace std;
class Base{
int x;
public:
Base(int n=0):x(n){cout<<n;}
int getX() const{return x;}
};
class Derived:public Base {
int y;
public:
Derived(int m,int n):y(m),Base(n){cout<<m;}
Derived(int m):y(m){cout<<m;}
};
int main(){
Derived d1(3),d2(5,7);
return 0;
}
第493题
有如下程序,运行时的输出结果是()。
#include<iostream>
using namespace std;
class AA{
public:
AA(){ cout<<'1'; }
};
class BB: public AA{
int k;
public:
BB():k(0) { cout<<'2'; }
BB(int n):k(n) { cout<<'3'; }
};
int main(){
BB b(4), c;
return 0;
}
第494题
有如下程序,运行时的输出结果是()。
#include<iostream>
using namespace std;
class Base{
public:
Base(int x=0): valB(x){cout<<valB;}
~Base(){cout<<valB;}
private:
int valB;
};
class Derived:public Base{
public:
Derived(int x=0,int y=0):Base(x),valD(y){cout<<valD;}
~Derived(){cout<<valD;}
private:
int valD;
};
int main(){
Derived obj12(2,3);
return 0;
}
第495题
生成派生类对象时,派生类构造函数调用基类构造函数的条件是()。
第496题
有如下程序,运行时的输出结果是()。
#include<iostream>
using namespace std;
class Base1 {
public:
Base1(int d) {cout<<<d;}
~Base1() {}
};
class Base2 {
public:
Base2(int d) {cout<<<d;}
~Base2() {}
};
class Derived: public Base1,Base2 {
public:
Derived(int a,int b,int c,int d):
Base1(b), Base2(a), b1(d), b2(c) {}
private:
int b1;
int b2;
};
int main(){
Derived d(1,2,3,4);
return 0;
}
第497题
已知基类Employee只有一个构造函数,其定义如下: Employee::Employee(int n):id(n){} ,Manager是Employee的派生类,则下列对Manager的构造函数的定义中,正确的是()。
第498题
运行这个程序的输出结果是()。
#include<iostream>
using namespace std;
class A{
public:
A(){cout<<'A';}
~A(){cout<<'C';}
};
class B:public A{
public:
B(){cout<<'G';}
~B(){cout<<'T';}
};
int main(){
B obj;
return 0;
}
第499题
有如下程序,运行这个程序的输出结果是()。
#include<iostream>
using namespace std;
class Mountain{
int height;
public:
Mountain (int h=0):height(h) {}
virtual char* GetName() const { return "山";}
int GetHeight() const { return height;}
};
class Lushan:public Mountain{
public:
Lushan(int d):Mountain(d) {}
char* GetName() const { return "庐山";}
};
int main(){
Mountain *p=new Lushan(1000);
cout<<p->GetName()<<"海拔"<<p->GetHeight()<<"米";
return 0;
}
第500题
在C++中,用于实现运行时多态性的是()。