若有以下程序:#include<iostream>using namespaces std;class A{public: A(){} A(int i) {xl=i;

题目
若有以下程序:includeusing namespaces std;class A{public: A(){} A(int i) {xl=i;

若有以下程序: #include<iostream> using namespaces std; class A { public: A(){} A(int i) { xl=i; } void dispa() { cout<<"x1="<<x1<<","; } private: int x1; }; class B:public A { public: B(){} B(int i):A(i+10) { x2=i; } void dispb() { dispa(); cout<<"x2="<<x2<<endl; } private: int x2; }; int main{) { B b(2); b.dispb(): return 0; } 程序运行后的输出结果是

A.x1=10,x2=2

B.x1=12,x2=10

C.x1=12,x2=2

D.x1=2,x2=2

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

若有以下程序:include using namespace std;class A{private: int a;public: A(int

若有以下程序: #include <iost ream> using namespace std; class A { private: int a; public: A(int i) { a=i; } void disp () { cout<<a<<", "; } }; class B { private:

A.10,10,10

B.10,12,14

C.8,10,12

D.8,12,10


正确答案:D
解析:本题考核派生类构造函数的使用。本题中,派生C具有多重继承关系,所以在派生类C的构造函数中应该包含基类A和B的成员初始化列表。而且派生类C中的成员函数disp分别调用了基类A、B的公有成员函数disp()用于输出基类中私有数据变量初始化后的值。所以由类C构造函数的初始化形式可知,程序最后输出为8,12,10,即D选项。

第2题:

若有以下程序:includeusingnamespaceStd;classsample{ inti;publiC: sample(){} void

若有以下程序: #include <iostream> using namespace Std; class sample { int i; publiC: sample(){} void setvalue(int m) { i=m; } void fun(int m) { i+=m; } void disp() { cout<<i<<end1; } }; int main() { sample *ps; ps=new sample; ps->setvalue(20); ps->fun(5); ps->disp(); return 0; } 程序运行后,输出的结果是( )。

A.15

B.20

C.25

D.30


正确答案:C
解析:本题考核对象指针的应用。程序首先定义了一个类sample,其中包含一个私有成员i和3个公有成员函数。函数setvalue()的功能是给私有成员i赋值,函数fun()的功能是将私有成员i的值增加5,函数disp()的功能是输出变量i的值。在主函数中,先定义了类sample的一个对象指针ps,并申请了一块内存空间。执行语句ps->setvalue(20);后,类中i的值为20,执行语句ps->fun(5);后,类中i的值为25。所以程序最后输出25。

第3题:

若有以下程序:include using namespace std;class Base{private: int x;protected: i

若有以下程序: #include <iostream> using namespace std; class Base { private: int x; protected: int y; public: int z; void setx(int i) { x=i; int getx () { return x; } }

A.1,2,3,4

B.产生语法错误

C.4,3,2,1

D.2,3,4,5


正确答案:A
解析:本题考核私有继承中类成员的访问权限。当类的继承方式为私有继承时,基类公有成员和保护成员都以私有成员属性出现在派生类中。私有派生类的成员对其基类成员的访问权和公共派生的方式相同,但是,由私有派生的类声明的对象,不能访问任何基类的成员。本题中,基类Base中的保护成员y和公有成员setx和getx,经过私有继承以后,称为派生类Inherit的私有成员,所以可以在派生类Inherit的函数成员中对它们进行访问。类Inherit中的函数成员setvalue和display都是公有成员,所以可以通过Inherit的对象对它们进行访问。本程序的功能是对类中各数据成员进行赋值,然后查看赋值是否正确。

第4题:

若有以下程序:includeusing namespace std;class A{private:int a;public:A(int i){a

若有以下程序: #include<iostream> using namespace std; class A {private: int a; public: A(int i) {a=i;} void disp() {cout<<a<<“,”;}}; class B {private: int b; public: B(int j {b=j;} void disp() {cout<<b<<

A.10,10,10

B.10,12,14

C.8,10,12

D.8,12,10


正确答案:D
解析: 本题考查派生类构造函数的使用。派生类C具有多重继承关系,所以在派生类C的构造函数中应该包含基类A和B的成员初始化列表。

第5题:

若有以下程序:include using namespaces std;class A{public: A (){} A (int i) {x1=

若有以下程序: #include <iostream> using namespaces std; class A { public: A (){} A (int i) { x1=i; } void dispa() { cout<<"xl="<<xl<<" , "; } private: int x1; }; class B : public A { public: B (){} B (int i):A(i+10) { x2=i; } void dispb() { dispa (); cout <<"x2="<<x2<<end1; } private: int x2; }; int main () { B b(2); b.dispb (): return 0; } 程序运行后的输出结果是( )。

A.x1=10,x2=2

B.x1=12,x2=10

C.x1=12,x2=2

D.x1=2,x2=2


正确答案:C
解析:本题考核派生类的构造函数。在C++中,构造函数不能被继承,因此,派生类的构造函数必须通过调用基类的构造函数宋初始化基类子对象。所以,在定义派生类的构造函数时,除了对自己的数据成员进行初始化外,还必须负责调用基类构造函数,使基类的数据成员得以初始化。如果派生类中还有子对象,还应包含对子对象初始化的构造函数。本题中,在派生类B的构造函数中,调用基类A的构造函数对基类A的数据成员x1进行了初始化。

第6题:

分析以下程序的执行结果【】。include class S{ int A[10]; public: int &operato

分析以下程序的执行结果【 】。

include <iostream. h>

class S{

int A[10];

public:

int &operator () (int);

};

int &S: :operator() (int x) {

return A[x];

}

void main() {

S a;

int i,j;

for (i=0; i<10; i++)

a(i)=i*2;

for (i=0; i<10; i++)

cout<<a(i)<<" ";

cout<<end1; }


正确答案:0 2 4 6 8 10 12 14 16 18
0 2 4 6 8 10 12 14 16 18

第7题:

有以下程序: include using namespace std; int f(int); int main() {int i;for(i=0;

有以下程序:

include <iostream>

using namespace std;

int f(int);

int main()

{

int i;

for(i=0;i<5;i++)

cout<<f(i)<<" ";

return 0;

}

int f(int i)

{

static int k=1;

for(;i>0;i--)

k+=i;


正确答案:1 2 5 11 21
1 2 5 11 21 解析:函数f()中定义了一个内部静态变量k,其作用域仍在定义它的函数内。但该类型变量采用静态存储分配,当函数执行完,返回调用点时,该变量并不撤销,其值将继续保留,若下次再进入该函数时,其值仍然存在。内部静态变量有隐含初值0,并且只在编译时初始化一次。

第8题:

若有以下程序:includeusing namespace std;class sample{private: int x;public: sam

若有以下程序: #include <iostream> using namespace std; class sample { private: int x; public: sample() { } void setx(int i) { x=i; } friend int fun(sample B[],int n) { int m=O; for (int i=O; i<n; i++) { if(B[i].x>m) m=B [i].x; } return m; } }; int main ( ) { sample A[10]; int arr[]={90,87,42,78,97,84,60,55,78,65}; for (int i=O;i<10;i++) A[i]. setx (arr[i]); cout<<fun(A, 10)<<end1; return 0; } 该程序运行后的输出结果是( )。

A.97

B.84

C.90

D.78


正确答案:A
解析:程序中定义了一个类sample,以及类sample的友元函数fun()。在主函数中,通过for循环调用各数组对象中的setx成员函数给各个对象的私有数据成员赋值。而函数fun()的功能是返回各个数组对象中的最大私有成员数据的值。

第9题:

若有以下程序: include using namespace std; class sample { int x; public: sample

若有以下程序:

include <iostream>

using namespace std;

class sample

{

int x;

public:

sample(){}

void setx(int i)

{

x=i;

}

friend iht fun(sample B[],int n)

{

int m=0;

for{int i=0;i<n;i++)

if(B[i].x>m)

m=B[i].x;

return.m;

}

};

int main ( )

{

sample A[10];

int arr[]={90,87,42,78,97,84,60,55,78,65};

for(int i=O;i<10;i++)

A[i].setx(arr[i]);

cout<<fun(A, 10)<<end1;

return 0;

}

该程序运行后的输出结果是【 】。


正确答案:97
97 解析:本题考核对象数组的应用。主函数for循环中利用数组对象的setx()函数给各个对象的私有数据成员赋值。然后通过fun函数返回最大值。