下列程序的运行结果是( )。 #include<iostream.h> classA { inta; public: A(){a=0;} A

题目

下列程序的运行结果是( )。 #include<iostream.h> classA { inta; public: A(){a=0;} A(){intaa} {a=aa; cout<<a++; } }; voidmain() { Ax,y(2),z(3); cout<<endl; }

A.00

B.23

C.34

D.25

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

第1题:

有如下程序:includeusing namespace std;class A{public: static int a; void init

有如下程序:#include<iostream>using namespace std;class A{public: static int a; void init(){a=1;} A(int a=2){init();a++;}};int A::a=0;A obj;int main(){ cout<<obj.a; return 0;}运行时输出的结果是

A.0

B.1

C.2

D.3


正确答案:B
解析:本题是一道陷阱题,看似考查类的静态成员变量,实际考查的是:变量作用域的屏蔽效应。在C++中,当标识符的作用域发生重叠时,在一个函数(或块)中声明的标识符可以屏蔽函数(或块)外声明的标识符或全局标识符。本题从行"class A{"到行“int A::a=0;”都是类A的声明部分。行“A obj;”声明了一个类A的全局对象 obj,由于没指定构造参数,所以构造时构造函数的形参a取默认值2。构造函数中首先调用了init函数,将静态成员变量a赋为1,然后将a增1。许多考生此时会很自然地认为是将类A的静态成员变量a增1了,从而导致选择C这个错误答案。其实,此时静态成员变量a被构造函数的形参a所屏蔽,所以a++改变的是形参a的值,对静态成员变量a没有影响,其值还是被init函数所改成的值1。故本题应该选择B。

第2题:

下面程序的输出结果是【】。 include using namespace std; class A {int a,b; public:A

下面程序的输出结果是【 】。

include <iostream>

using namespace std;

class A

{

int a, b;

public:

A()

{

a = b = 0;

}

A(int aa, int bb ) : a(aA) , b(bB)

{

cout <<"a="<<a<<","<<"b="<<b<<",";

}

~A()

{

cout<<"D";

};

int main ( )

{

A x, y(2, 3);

return 0;

}


正确答案:a=2b=3DD
a=2,b=3DD 解析:本题主要考核构造函数与析构函数的应用。主函数中定义 A类对象x时无输出,定义对象y时调用构造函数输出a=2,b=3。在主函数结束前,对象x,y都调用各自的析构函数输出DD。所以最后答案为a=2,b=3DD。

第3题:

下列程序的运行结果是【】。include class A{ int a, b; public: A() {a=b=0;} A(int

下列程序的运行结果是【 】。

include <iostream. h>

class A

{

int a, b;

public:

A() {a=b=0;}

A(int aa, int bb)

{

a=aa; b=bb;

cout<<a<<''<<b<<end1;

}

};

void main()

{ A x, y(2,3),z(4,5); }


正确答案:2 3 4 5
2 3 4 5

第4题:

下列程序的运行结果是includeclass A{int a;public:A( ){a=0;}A(int aa) { a=aa; c

下列程序的运行结果是 #include<iostream.h> class A { int a; public: A( ){a=0;} A(int aa) { a=aa; cout<<a++; } }; void main( ) { A x,y(2),z(3); cout<<end1; }

A.0

B.23

C.34

D.25


正确答案:B
解析:本题考查的是对构造函数的掌握,另外“++”运算符是右结合的,所以在进行输出的时候都是先把原来的输出后再自加1。

第5题:

下列程序的运行结果是 include class A { int a; public: A( ) {a=0;}A(int aa) {

下列程序的运行结果是

#include<iostream.h>

class A

{

int a;

public:

A( ) {a=0;}

A(int aa)

{

a=aa;

cout < < a++;

}

};

void main( )

A x,y(2) ,z(3) ;

cout < < endl;

}

A.00

B.23

C.34

D.25


正确答案:B
解析:本题考查的是对构造函数的掌握,另外“++”运算符是右结合的,所以在进行输出的时候都是先把原来的输出后再自加1。

第6题:

下列程序的运行结果是()。includeclass A{inta;public:A( ){a=0;}A(int aa){a=aa;co

下列程序的运行结果是( )。 #include<iostream.h> class A { inta; public: A( ){a=0; } A(int aa) { a=aa; cout<<a++; } }; void main() { A x,y (2),z (3): cout<<endl; }

A.0

B.23

C.34

D.25


正确答案:B

第7题:

下列程序的运行结果是()。includeclassA{int a;public:A(){a=0;}A(){int aa}{a=aa;c

下列程序的运行结果是( )。 #include<iostream.h> classA { int a; public: A(){a=0;} A(){int aa} {a=aa; cout<<a++; } }; Void main() { A x,y(2),z(3); cout<<endl; }

A.00

B.23

C.34

D.25


正确答案:B
解析: 本题考查的是对构造函数的掌握,另外”++”运算符是右结合的,所以在进行输出的时候都是先把原来的输出后再自加1。

第8题:

有如下程序:includeusing namespace std;class A{public:static int a;void init(){a

有如下程序: #include<iostream> using namespace std; class A{ public: static int a; void init(){a=1;} A(int a=2){init(); a++;} }; int A::a=0; A obj; int main() { cout<<obj.a; return 0; 运行时输出的结果是( )。

A.0

B.1

C.2

D.3


正确答案:B
解析:有如下程序:  #includeiostream>  using namespace std;  class A{  public:  static int a;  void init(){a=1;}  A(int a=2){init(); a++;}  };  int A::a=0;  A obj;  int main()  {  coutobj.a;  return 0;  运行时输出的结果是(  )。 

第9题:

下列程序的运行结果是()。 include class A { inta; public: A(){a=0:} A(int aa) {

下列程序的运行结果是( )。 #include<iostream.h> class A { inta; public: A(){a=0:} A(int aa) { a=aa; cout<<a++; } }; void main() { A x,y(2),z(3); cout<<endl; }

A.0

B.23

C.34

D.25


正确答案:B

第10题:

下列程序的运行结果是includeclass A{int a;public: A(){a=0;}A(int aa){ a=aa; co

下列程序的运行结果是 #include<isotream.h> class A { int a; public: A(){a=0;} A(int aa) { a=aa; cout<<a++; } }; void main() { A x,y(2),z(3); cout<<end1; }

A.0

B.23

C.34

D.25


正确答案:B
解析:本题考查的是对构造函数的掌握,另外“++”运算符是右结合的,所以在进行输出的时候都是先把原来的输出后再自加1。