以下代码的输出结果是() $va1=0;   for($val = 9;$val=0;$val--)   {     $va1++;   }   echo($va1);A、 0B、 9C、 10D、 这是一个无限循环,没有输出

题目

以下代码的输出结果是() $va1=0;   for($val = 9;$val>=0;$val--)   {     $va1++;   }   echo($va1);

  • A、 0
  • B、 9
  • C、 10
  • D、 这是一个无限循环,没有输出
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

( 28 )有如下程序:

#include<iostream>

using namespace std;

class MyClass{

public:

MyClass(int x):val(x) {}

void Print() const {cout<<"const:val="<<val<<'\t';}

void Print(){cout<<"val="<<val<<'t';}

private:

int val;

};

int main(){

const MyClass obj1(10);

MyClass obj2(20);

obj1.Print();

obj2.Print();

return 0;

}

程序的输出结果是

A ) val=10 const:val=20

B ) const:val=10 const:val=20

C ) const:val=10 val=20

D ) val=10 val=20


正确答案:C

第2题:

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

有如下程序: #include <iostream> using namespace std; class Part{ public: Part(int x=0):val(x) { cout<<val; } ~Part() { cout<<val; } private: int val; }; class Whole { public: Whole(int x, int y, int z=0):p2(x),p1 (y),val(z) { cout<<val; } ~whole() { cout<<val; private: Part p1,p2; int val; }; int main() { Whole obj (1,2,3); return 0; }程序的输出结果是

A.123321

B.213312

C.213

D.123123


正确答案:B
解析:本题考查的知识点是:类的构造与析构。建立一个类的对象时,构造函数的执行顺序如下:
①执行基类的构造函数,调用顺序按照各个基类被继承时声明的顺序(自左向右);
②执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序(自上而下:(如果一行声明了多个对象,则还要遵循自左向右)
③执行自身的构造函数。
析构顺序与之相反。本题的Whole类没有基类,但有两个Part类的成员p1和p2。根据它们定义的顺序,应该先构造p1再构造p2,而不是按Whole的构造函数中初始化列表的顺序那样构造。所以,第1个被构造的是p1(y),输出一个2;第2个被构造的是p2(x),输出一个1;最后调用自身构造函数,输出val的值3。析构函数严格与之相反。故输出结果为213312,本题应该选择B。

第3题:

有如下程序:

#include

using namespace std;

int main()

{

void function(double val);

double val;

function(val);

cout<

return 0;

}

void function(double val)

{

val = 3;

}

编译运行这个程序将出现的情况是

A .编译出错,无法运行

B .输出: 3

C .输出: 3.0

D .输出一个不确定的数


正确答案:D

第4题:

有如下程序:includeusing namespace std;class Part{public:Part(int x=0):val(x) {c

有如下程序: #include<iostream> using namespace std; class Part{ public: Part(int x=0):val(x) {cout<<val;} ~Part(){cout<<val;} private: int val; }; class Whole{ public: Whole(int x ,int y, int z=0):p2(x),p1(y),val(z){cout<<val;} ~Whole(){cout<<val;} private: Part p1,p2; int val; }; int main() Whole obj(1,2,3); return 0; } 程序的输出结果是( )。

A.123321

B.213312

C.213

D.123123


正确答案:B
解析:此题考查的是类的构造与析构。在建立类的对象时,构造函数的执行顺序如下:执行基类的构造函数,调用顺序按照各个基类被继承时声明的顺序(自左向右),接着执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序,最后执行自身的构造函数。析构顺序与之相反。本题中,Whole类中有两个Part类的成员p1和p2,根据它们定义的顺序,先构造p1再构造p2。所以,首先被构造的是p1(y),输出2;第二个被构造的是p2(x),输出1;最后调用析构函数,输出val的值3;析构函数调用顺序与构造函数相反。故最后输出213312。

第5题:

以下程序的输出结果是_____。 include class object {private:int val; public:objec

以下程序的输出结果是_____。

include<iostream.h>

class object

{ private:

int val;

public:

object( ) ;

object(int i) ;

~object( ) ;};

object: :object( )

{ val=0;

cout < < "Default constructor for object" < < endl;}

object: :object(int i)

{ val=i;

cout < < "Constructor for object" < < val < < endl;}

object: :~object( )

{ cout < < "Destructor for object" < < val < < endl;}

class container{ private:

object one;

object two;

int data;

public:

container( ) ;

container(int i,int j,int k) ;

~container( ) ;};

container: :container( )

{ data=0;

cout < < "Default constructor for container" < < endl;}

container: :container(int i,int j,int k) :two(i) ,one(j)

{ data=k;

cout < < "Constructor for container" < < endl;}

container: :~container( )

{ cout < < "Destructor for container" < < endl;}

void main( )

{ container anObj(5,6,10) ;}


正确答案:Constructor for object6 Constructor for object5 Constructor for container Destructor for container Destructor for object5 Destructor for object6
Constructor for object6 Constructor for object5 Constructor for container Destructor for container Destructor for object5 Destructor for object6 解析:C++语言中的构造函数和析构函数分别是在声明对象时和对象调用完毕后调用,本题中的调用就是这样成对出现的。

第6题:

( 30 )有如下程序:

#include<iostream>

using namespace std;

class Base{

public:

Base(int x=0){cout<<x;}

};

class Derived:public Base{

public:

Derived(int x=0){cout<<x;}

private:

Base val;

};

int main(){

Derived d(1);

return 0;

}

程序的输出结果是

A ) 0

B ) 1

C ) 01

D ) 001


正确答案:D

第7题:

有如下程序:includeusing namespace std;class MyClass{public:MyClass(int x):val(x

有如下程序: #include<iostream> using namespace std; class MyClass{ public: MyClass(int x):val(x){} void Print()const{cout<<“const:val=”<<<val<<‘\’;} void Print(){cout<<“val=”<<val<<‘t’;} private: int va1; }; int main(){ cons

A.val=10 const:val=20

B.const:val=10 const:val=20

C.const:val=10 val=20

D.val=10 val=20


正确答案:B
解析: 本题考查提派生类中构造函数的定义。派生类的构造首先要调用基类的构造函数,对基类成员初始化;然后对派生类中的新增成员初始化。格式:派生类名(构造函数形参表)基类构造函数(形参表)。

第8题:

以下程序段的输出结果是[ ]。 include void ref(int &i); void main(){int val=1

以下程序段的输出结果是 [ ] 。

include<iostream.h>

void ref(int &i);

void main(){

int val=1;

cout<<“旧值:”<<val<<end1;

ref(val);

cout<<”新值:”<<val<<end1;

}

void ref(int &i){i=10;}


正确答案:旧值:1 新值:10
旧值:1 新值:10

第9题:

有如下程序:includeusing namespace std;class Part{public:Part(int x=0):val(x){co

有如下程序: #include<iostream> using namespace std; class Part{ public: Part(int x=0):val(x){cout< ~Part( ){cout<<val;} pritave: int val; }; class Whole{ public: Whole(int x,int Y,int z=0):p2(x),p1(Y),val(z){cout<<val;} ~Whole( ){cout<<val;} pritave: Part p1,p2; int val; f; int main( ){ Whole obj(1,2,3); return 0; } 程序的输出结果是

A.123321

B.213312

C.213

D.123123


正确答案:B
解析:当类中出现其他类的对象时,先对该对象初始化,即调用对象类的构造函数,然后调用本类的构造函数;进行撤销时,先调用本类的析构函数,然后再调用类中对象所对应的类的析构函数。对象的创建顺序和构造函数声明中的参数顺序无关,而同类中定义的先后顺序有关。故先创建p1,再创建p2,撤销时先撤销p2,再撤销p1。 

第10题:

有以下程序: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。

更多相关问题