计算机二级

请找出下列程序中错误之处 ______。 include classA{private: intx1;protected: int请找出下列程序中错误之处 ______。#include<iostream.h>class A{private:int x1;protected:int x2;public:int x3;};class B:public A{private:int y1;protected:int y2;public:int y3;void disp(){cout<<x1<<y1<<end1:

题目
请找出下列程序中错误之处 ______。 include classA{private: intx1;protected: int

请找出下列程序中错误之处 ______。

#include<iostream.h>

class A{

private:

int x1;

protected:

int x2;

public:

int x3;

};

class B:public A{

private:

int y1;

protected:

int y2;

public:

int y3;

void disp(){cout<<x1<<y1<<end1:} //A

void set(int i) {x2=i;} //B

};

void main() {

B bb;

bb.x3=10; //C

bb.y3=10; //D

}

A.A

B.B

C.C

D.D

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

第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题:

以下程序中,错误的行为①include②class A③{④public:⑤int n=2;⑥A(int val){cout<

以下程序中,错误的行为

①#include<iostream.h> ②class A ③{ ④ public: ⑤ int n=2; ⑥ A(int val){cout<<val<<end1;} ⑦ ~A(){}; ⑧}; ⑨void main() ⑩{ (11) A a(0); (12)}

A.⑤

B.⑥

C.⑦

D.(11)


正确答案:A
解析:C抖语言中规定在类体中不允许对所定义的数据成员进行初始化。

第3题:

下面程序中错误之处是 ______。 include classA{private:intxl;protected:intx2;publ

下面程序中错误之处是 ______。

include<iostream.h>

class A{

private:

int xl;

protected:

int x2;

public:

int x3;

};

class B: public A{

private:

int b1;

protected:

int b2;

public:

int b3;

void disp(){cout<<x1<<b2<<end1;} //A

void set(int i){x3=i;} //B

};

void main()

B bb;

bb. a3=10 //C

bb. b3=10 //D

}


正确答案:√
1

第4题:

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

若有以下程序: #include <iostream> using namespace std; class A { private: int x; protected: int y; public: int z; void setx(int i) { x=i; } int getx () { return x; }; class B : protected A { public: void setvalue(int a, int b, int c) { setx (a); y=b; z=c; } void display() { cout<<getx ( ) <<", "<<y<<", "<<z<<", "<<end1; } }; int main () { B obj; obj.setvalue(5, 6, 7); obj.display ( ); return 0; } 程序运行后的输出结果是( )。

A.产生语法错误

B.7,6,5

C.5,6,7

D.7,5,6


正确答案:C
解析:本题考核保护继承中对类成员的访问权限。①在保护继承中,基类公有成员和保护成员都以保护成员身份出现在派生类中,而基类私有成员不可访问。②基类的公有成员和保护成员被继承以后作为派生类的保护成员,这样,派生类的其他成员可以直接访问它们。③由保护派.生的类声明的对象,不能访问任何基类的成员。在本题中,基类A中的数据成员y和函数setx,经过保护继承以后,在派生类B中成为保护成员,派生类B的对象不能访问它们。而派生类B中的函数setvalue和display都是公有成员,可以通过对象对它们进行访问。所以程序中对各成员的访问是正确的。本程序的功能是对类中各数据成员进行赋值,然后查看赋值是否正确。

第5题:

下面程序的结果为includeint c;class A{private:int a;static int b;public:A( ){a

下面程序的结果为 #include<iostream.h> int c; class A { private: int a; static int b; public: A( ) {a=0;c=0;} void seta( ){a++;} void setb( ){b++;}

A.1 2 1

B.1 2 2

C.1 1 2

D.2 2 2


正确答案:B
解析:C++语言中全局变量是任何函数都可以改变的量,静态变量的有效范围在定义它的类中,而普通的变量的有效性只在使用它的函数中,在本题中c为全局变量,b为静态变量,a为普通变量,b和c在类A的对象a1和a2中都自加1。所以b,c为 2,a为1。

第6题:

已知程序的结果为1 2 3,请填空。 include template class A { public: T X,

已知程序的结果为1 2 3,请填空。

include<iostream.h>

template<class T>

class A

{

public:

T X, y, z;

void display( ) {cout < < x < < " " < < y < < " " < < z;}

};

void main( )

{

A<int>a1;

_____

_____

_____

a1.display( ) ;

}


正确答案:12 a1.x=1; 13 a1.y=2; 14 a1.z=3;
12 a1.x=1; 13 a1.y=2; 14 a1.z=3; 解析:通过程序的结果知道数据类型是int,所以调用时声明模板实参为int的,再对x、y、z进行赋值。

第7题:

下面这个程序的结果是includeclass A{private:int a;public:void seta( );int geta

下面这个程序的结果是 #include<iostream.h> class A { private: int a; public: void seta( );int geta( );}; void A::seta( ) { a = 1;} int A::geta( ) {return a;} class

A.1

B.2

C.随机输出1或2

D.程序有错


正确答案:D
解析:在类A中有geta()函数,在类B中也有geta()函数,类C继承了类A和类B,这样就产生了二义性,所以程序会出错。

第8题:

以下程序中,错误的行为 ① include ② class A ③ { ④ public: ⑤ int n=2; ⑥ A(int va

以下程序中,错误的行为

① #include<iostream.h>

② class A

③ {

④ public:

⑤ int n=2;

⑥ A(int val) {cout < < val < < endl;}

⑦ ~A( ) {};

⑧ };

⑨ void main( )

⑩ {

(11) A a (0) ;

(12) }

A.⑤

B.⑥

C.⑦

D.⑩


正确答案:A
解析:C什语言中规定在类体中不允许对所定义的数据成员进行初始化。

第9题:

请在mian函数中填空使下面程序的输出结果为1 1。 include class A { private:

请在mian函数中填空使下面程序的输出结果为1 1。

include<iostream.h>

class A

{ private:

int a;

int b;

public:

A( ):a(0) ,b(1) { }

void show( ) { cout < < a < < " " < < b;} };

class B

{ private:

int a;

int c;

public:

B( ):a(1),


正确答案:cc.B::show( );
cc.B::show( ); 解析:class A中有show( )函数,class B中也有show( )函数,class C继承了 class A和class B,产生二义性,这时C的对象cc必须用域名来确定调用的是哪个show函数,因为答案是1 1,所以要加域名B::。注意:C++中二义性的解决方法。