下列程序的输出结果是#include<iostream.h>class Myclass{public : Myclass( int i=0,int j=0){x

题目
下列程序的输出结果是includeclass Myclass{public : Myclass( int i=0,int j=0){x

下列程序的输出结果是 #include<iostream.h> class Myclass{ public : Myclass( int i=0,int j=0) {x=i; y=j; } void show( ){cout<<"x="<<x<<" "<"y="<<y<<endl;} void show( )const{cout<<"x="<

A.x=4,y=3;x=7,y=8

B.x=3,y=4;x=7,y=8

C.x=7,y=8;x=4,y=3

D.x=8,y=7;x=7,y=8

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

第1题:

下列程序的输出结果是includeclass Myclass{ public:My class(inti=0,int j=0) {x=

下列程序的输出结果是 #include<iostream.h> class Myclass{ public:My class(inti=0,int j=0) { x=i; y=j; } void show(){cout<<"x=" <<x<<" " <"y=" <<y<<endl;} void show()const{cout<<"x="<<""<<"y="<<y<<endl;} privated: int x; int y; }; void main() { Myclassmy1(3,4); const my2(7,8); myl.show();my2.show();}

A.x=4,y=3;x=7,y=8

B.x=3,y=4;X=7,y=8

C.x=7,y=8;x=4,y=3

D.x=8,y=7;x=7,y=8


正确答案:A
解析:在Myclass类中定义了两个同名函数show,其中一个是常成员函数。在main函数中定义了两个对象myl,my2,其中对象my2是常对象。这两个对象调用成员函数show时,通过对象myl调用的是没有用,const修饰的一般成员函数,而通过对象my2调用的是const修饰的常成员函数。

第2题:

如下程序的输出结果是includeusing namespace std;class MyClass{public:MyClass(int

如下程序的输出结果是 #include<iostream> using namespace std; class MyClass{ public: MyClass(int i=0){cout<<1;} MyClass(const MyClass&x)}cout<<2;} }; int main( ){ MyClass objl(1),obj2(2),ohj3(objl); return 0; }

A.112

B.111

C.121

D.113


正确答案:A
解析:MyClass objl(1),ohj2(2),obj3(objl);创建objl和obj2对象时调用第一个构造函数,打印1,创建obj3对象时调用第二个构造函数,打印2。

第3题:

分析以下程序的执行结果【】。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

第4题:

以下程序运行后的输出结果是()。includevoid main(){ char aft="abbcabbcabbc"; int

以下程序运行后的输出结果是( )。 #include<iostream.h> void main() { char aft="abbcabbcabbc"; int i=0,j=0,k=0; while(a[i]) { if(a[i]=='a') j++; if(a[i]=='b') k++; i++; } cout<<j<<""<<k<<end1; }

A. 2,6

B.3,5

C.4,7

D.3,6


正确答案:D
解析:程序中首先定义字符数组a,然后在while循环中统计字符a和b的个数。其中j记录a的个数,k记录b的个数。第一个if语句是当第i个字符为a时,i加1;第二个if语句是当第i个字符为b时,k加1。

第5题:

下列程序的输出结果是includeclass Myclass{public:Myclass(int i=0,int j=0){x=i;

下列程序的输出结果是 #include<iostream.h> class Myclass{ public:Myclass(int i=0,int j=0) { x=i; y=j; } void show( ) {cout < <"x=" < < x < <" " <"y=" < < y < < endl;} void show( ) const{cout < <"x=" < <" " < <"y=" < < y < < endl;} privated: int x; int y; }; void main( ) { Myclass my1(3,4) ; const my2(7,8) ; my1.show( ) ;my2.show( ) ;}

A.x=4,y=3;x=7,y=8

B.x=3,y=4;x=7,y=8

C.x=7,y=8;x=4,y=3

D.x=8,y=7;x=7,y=8


正确答案:A
解析:在Myclass类中定义了两个同名函数show,其中一个是常成员函数。在main函数中定义了两个对象my1、my2,其中对象my2是常对象。这两个对象调用成员函数show时,通过对象my1调用的是没有用const修饰的一般成员函数,而通过对象my2调用的是const修饰的常成员函数。

第6题:

有以下程序:includeusing namespace std;class MyClass{public: MyClass(); ~MyClass

有以下程序: #include<iostream> using namespace std; class MyClass { public: MyClass(); ~MyClass(); void SetValue(int val); private: static int i; }; int MyClass::i=0; MyClass::MyClass() { i++; cout<<i; } MyClass::~MyClass() { i--; cout<<i; } void MyClass::SetValue(int val) { i=val; } int main() { MyClass*my[2]; int k; for(k=0;k<2;k++) my[k]=new MyClass; for(k=0;k<2;k++) delete my[k]; return 0; } 运行后的输出结果是( )。

A.1210

B.1100

C.1234

D.输出结果不确定


正确答案:A
解析:类MyClass中变量i是静态数据成员,它被MyClass类的所有对象共享,但它不属于任何一个对象,它的作用域是类范围。程序i是用来统计类MyClass所创建对象的个数,每创建一个对象i加1,每删除MyClass类对象i减1。

第7题:

下列程序的运行结果是 includeclass Location{private:int X.Y;public:void init(i

下列程序的运行结果是 #include<iostream.h> class Location{ private: int X.Y; public: void init(int=0,int=0); void valueX(int val){X=val;} int valueX( ){ return X;} void valueY

A.5 0 6 4

B.0 0 6 4

C.5 0 6 2

D.0 0 6 2


正确答案:A
解析:本题中有成员函数和它的重载函数,要注意它们的不同,在本题中先调用了init函数,初始化了X,Y,都为0,valueX(5);又将X变为5,所以输出5和0,然后初始化init(6,2),接着又valueY(4);将X,Y设为6和4,所以输出6和4。

第8题:

有如下程序:includeusing namespace std;elass MyClass{public:MyClass( ){++count;

有如下程序: #include<lostreanl> using namespace std; elass MyClass{ public: MyClass( ){++count;} ~MyClass( ){--count;} static int getCount( ){return count;} private: static int count; }; int MyClass::count=0; int main( ){ MyClass obj; cout<<obj.getCount( ); MyClass*ptr=new MyClass; cout<<MyClass::getCount( ); delete ptr; cout<<MyCiass::getCount( ); return 0; } 程序的输出结果是

A.121

B.232

C.221

D.122


正确答案:A

第9题:

有如下程序: include using namespace std; class MyClass { public:

有如下程序: #include <iostream> using namespace std; class MyClass { public: MyClass() { ++count; } ~MyClass() { --count; } static int getCount() { return count; } private: static int count; }; int MyClass::count=0; int main() { MyClass obj; cout<<obj.getCount(); MyClass *ptr=new MyClass; cout<<MyClass::getCount(); delete ptr; cout<<MyClass::getCount(); return 0; }程序的输出结果是

A.121

B.232

C.221

D.122


正确答案:A
解析:本题考查的知识点是:静态成员。对于类中的非静态数据成员,每一个类对象都拥有一个拷贝(副本),即每个对象的同名数据成员可以分别存储不同的数值,这是保证每个对象拥有区别于其他对象的特征的需要。而类中的静态成员则是解决同一个类的不同对象之间的数据和函数共享问题的。静态成员的特性是不管这个类创建了多少个对象,它的静态成员都只有一个拷贝(副本),这个副本被所有属于这个类的对象共享。这种共享与全局变量或全局函数相比,既没有破坏数据隐藏的原则,又保证了安全性。题目中,首先定义了一个obj对象,其构造函数使MyClass的静态数据成员count增1,所以第一条输出语句输出的结果是1。然后通过指针动态创建了一个MyClass类的对象,构造函数再次被调用,count变为2,所以第2次输出结果是2。接下来是用delete删除了刚才动态创建的MyClass对象,析构函数被调用,count减1变为1,第3次输出1。故本题的输出为121,选项A正确。