在下列的程序的横线处填上适当的语句,使该程序的输出为12。include<iostream.h> using namespace

题目
在下列的程序的横线处填上适当的语句,使该程序的输出为12。include using namespace

在下列的程序的横线处填上适当的语句,使该程序的输出为12。

include<iostream.h>

using namespace std;

class Base

{

public:

int a,b;

Base(int i){a=i;}

};

class Derived:public Base

{

int a;

public:

Derived(int x):Base(x),b(x+1){};

void show()

{

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

第1题:

在下面的程序的横线处填上适当的语句,使该程序的输出为12。 include using namespace

在下面的程序的横线处填上适当的语句,使该程序的输出为12。

include<iostream.h>

using namespace std;

class Base

{

public:

int a,b;

Base(int i){a=i;}

};

class Derived:public Base

{

int a;

public:

Derived(int x):Base(x),b(x+1){};

void show()

{

______;//输出基类数据成员a的值

cout<<b<<endl;

}

};

int main()

{

Derived d(1);

d.show();

return 0;


正确答案:coutBase::a
coutBase::a 解析:此题考查的是基类和派生类的构造函数。派生类构造函数的执行顺序为:首先调用基类的构造函数,调用顺序按它们被继承时说明的顺序;然后调用子对象的构造函数,调用顺序按它们在类中说明的顺序;最后是派生类构造函数中的内容。此题要求结果是输出12,分析题目,首先调用基类的构造函数,然后是调用子对象的构造函数,横线处要求输出基类成员a的值,填入coutBase::a即可。

第2题:

在下面程序的横线处填上适当的语句,使程序执行后的输出结果为ABCD。 include using nam

在下面程序的横线处填上适当的语句,使程序执行后的输出结果为ABCD。

include<iostream>

using namespace std;

classA

{

public:

A(){cout<<'A';}

};

class B:______

{

public:

B(){cout<<'B';}

};

class C:______

{

public:C(){cout<<'C';}

};

class D:public B,public C

{

public:D(){cout<<'D';}

};

void main(){D obj;)


正确答案:virtual A或virtual public A或virtual private A或virtual protected A与virtual A或virtual public A或virtual private A或virtual protected A
virtual A或virtual public A或virtual private A或virtual protected A与virtual A或virtual public A或virtual private A或virtual protected A 解析:由于每执行一次A类的构造函数,都将输出一个字符A,输出结果中只有一个A,且第一个输出为A,D继承B,可知必有B继承A。由题中要求C肯定继承某个类,所以,这里的C只能是继承于A,保证输出中只有一个A,A必须为虚基类,所以本题中的空都填virtual A。

第3题:

在下面程序横线处填上适当内容,使程序输出为:55599。 include using namespace std; te

在下面程序横线处填上适当内容,使程序输出为:55599。

include <iostream>

using namespace std;

template <class TYPE>

class HisClass

{

TYPE data;

public:

HisClass(TYPE a, TYPE b, TYPE C) ;

TYPE getData(){ return data;)

};

template<class TYPE>

HisClass<TYPE>::HisClass(TYPE a,TYPE b,TYPE C)

{

【 】;

else主f(b>C)

data=b;

else

data=c;

}

int main()

{

HisClass<int> x1(3,4,5),x2(5,3,4),x3(4,5,3),x4(7,8,9),x5(8,7,9);

cout<<x1.getData()<<x2.getData()<<x3.getData()

<<x4.getData()<<X5.getData();

return 0;

}


正确答案:if(a>b&&a>C) data=a
if(a>b&&a>C) data=a 解析:本题考核类模板的定义。其构造函数实现的功能是将a、b、c中的最大值赋给私有成员data。

第4题:

下面程序的执行结果是______。 include include using namespace std; vo

下面程序的执行结果是______。

include<iostream.h>

include<iomanip.h>

using namespace std;

void main()

{

cout<<setfill('x')<<setw(10);

cout<<"Hello"<<endl;

}


正确答案:xxxxxHello
xxxxxHello 解析:本题考核I/O的格式化输出。setfill('x')表示填充字符为'x',并且一直有效,直到再次设置填充字符为止。setw(10)表示将输入输出宽度设置为10,当实际数据宽度小于指定的宽度时,多余的位置用填充字符填满;当实际数据的宽度大于设置的宽度时,仍按实际的宽度输出。宽度设置的效果只对一次输入或输出有效,在完成一个数据的输入或输出后,宽度设置自动恢复为0(表示按数据实际宽度输入输出)。题中字符串“Hello”的宽度不够10,所以其前面将有5个填充符 'x'。

第5题:

在下面程序横线处填上适当内容,使得程序的输出为9876。include using namespace std;te

在下面程序横线处填上适当内容,使得程序的输出为9876。

include <iostream>

using namespace std;

template<class T>

void f(【 】)

{

T t;

for (int i=0;i<n/2;i++)

{

t=a Ii];

a [i]=a[n-1-i];

a [n-1-i]=t;

}

}

int main ( )

{

int x[]={6,7,8,9};

f(x,4);

for (int i=0;i<4;i++)

cout<<x[i];

cout<<end1;

return 0;

}


正确答案:Ta[]int n
Ta[],int n 解析:函数f的形参之一为T类型的数组a,形参之二为整型数n。

第6题:

在下面程序的横线处填上______,使程序执行后的输出结果为1/2005。 include using nam

在下面程序的横线处填上______,使程序执行后的输出结果为1/2005。

include<iostream.h>

using namespace std;

class Date

{

Public:

Date(int m=1,int y=0): month(m),year(y){}

void Print(){cout<<month<<"/"<<year<<end1;}

______operator+(const Date&d1,const Date&d2);

private:

int month, year;

};

Date operator+(const Date&d1,const Date&d2)

{

int year,month;

year=d1.year+d2.year;

month=d1.month+d2.month;

year+=(month-1)/12;

month=(month-1)%12+1;

return Date(month,year);

}

void main()

{

Date d1(3,2004),d2,d3(10);

d2=d3+d1;

d2.Print();

}


正确答案:friend Date
friend Date 解析:此题考查的是类与对象以及运算符的重载。题目中“+”重载函数的参数表中有两个参数,所以是作为友元函数重载,实现的功能是将参数对象中成员变量month、year进行相应对加。题中重载幽数的返回值类型是类Date,所以应填入“friend Date”。

第7题:

在下面程序的横线处填上适当的语句,使该程序的输出为12。 include using namespace st

在下面程序的横线处填上适当的语句,使该程序的输出为12。

include <iostream>

using namespace std;

class Base

{

public:

int a;

Base(int i){a=i;}

};

class Derived: public Base

{

int a;

public:

Derived(int x): Base(x),b(x+l){}

void show()

{

【 】;∥输出基类数据成员a的值。

cout<<b<<end1;

}

};

int main()

{

Derived d(1);

d.show();

return 0;

}


正确答案:coutBase::a
coutBase::a 解析:本题考核作用域分辨符号的使用。作用域分辨符号是“::”,它可以用来限定要访问的成员所在的类的名称。一般来说,在派生类中对基类成员的访问应该是惟一的。但是,多继承情况下可能造成对基类中某个成员的访问出现不惟一的情况,通过使用对象作用域分辨符可以解决这种对基类成员访问的二义性问题。题中派生类Derived与基类Base定义了数据成员a,所以要访问基类数据成员可以通过作用域分辨符来实现。

第8题:

下列程序的输出结果是______。 include include using namespace std; voi

下列程序的输出结果是______。

include<iostream.h>

include<string.h>

using namespace std;

void fun(const char*s,char &C) {c=s[strlen(s)/2];}

int main()

{

char str[]="ABCDE";

char ch=str[1];

fun(str,ch);

cout<<ch;

return 0;

}


正确答案:C
C

第9题:

已知下列程序的输出结果是23,请将横线处缺失的部分补充完整。 include using namespace

已知下列程序的输出结果是23,请将横线处缺失的部分补充完整。

include<iostream>

using namespace std;

class MyClass{

public:

void Print()const{cout<<23;}

};

int main(){

MyClass*p=new MyClass();

______.Print();

return 0;

}


正确答案:(*p)
(*p) 解析:此题考查的知识点是成员函数的调用。通过对象调用成员函数使用“.”运算符,而通过对象的指针调用成员函数则使用“->”运算符。题目中,Print()函数之前已经有一个“.”,所以此处应填入一个对象,所以就把指针p转化成指针所指的对象,填入表达式(*P)。

第10题:

在下面程序横线处填上适当内容,以使该程序执行结果为4.4。includeusing namespace std;

在下面程序横线处填上适当内容,以使该程序执行结果为4.4。

include<iostream>

using namespace std;

template<typename T>

T average(T*datA)

{

T s=0;

int i:0;

while(data[i])

【 】;

return s/(i+1);

}

int main()

{

double x[]={2.5,4.5,6.5,5,0.0,5,3,18.5};

cout<<average(X);

return 0;

}


正确答案:s+=data[i++]
s+=data[i++] 解析:函数average()中的while循环用来将求传入的数组中各元素的值的总和。

更多相关问题