问答题

【参考答案】

使用VC++6.0打开考生文件夹下的源程序文件3.cpp。程序通过继承关系,实现对姓名的控制。类TC1实现对名字访问的接口,TC2实现对名字的设置和输出。
程序输出为
TC2Name
May
其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。
(1)在类TCl中定义接口函数GetName为纯虚函数。请在注释1后添加适当的语句。
(2)函数GetName2用于获得名字的缓存,但只获得允许读操作这个缓存,请在注释2后添加适当的语句。
(3)实现TC2的构造函数,请在注释3后添加适当的语句。
(4)完成TC2的构造函数,实现对名字的处理。请在注释4后添加适当的语句。
注意:增加或者修改代码的位置已经用符号表示出来,请不要修改其他的程序代码。

试题程序:
#include<iostream.h>
classTC1
{
public:
//********1********
};
classTC2:publicTCl
{
public:
voidGetName()
{
cout<<"TC2Name"<<endl;
}
//********2********
{
returnm_str;
}
//********3********
{
inti:
for(i=0;str[i]!=0;i++)
m_str[i]=str[i];
//********4********
}
private:
charm_str[32];
};
voidmain()
{
TCl*P;
TC20bj1("May");
p=&objl;
p->GetName();
cout<<obj1.GetNamc2()<<endl;
return;
}

(↓↓↓ 点击下方‘点击查看答案’看答案解析 ↓↓↓)

相关考题

填空题 给定程序的功能是将n个人员的考试成绩进行分段统计,考试成绩放在a数组中,各分段的人数存到b数组中:成绩为60~69的人数存到b[0]中,成绩为70~79的人数存到b[1]中,成绩为80~89的人数存到b[2]中,成绩为90~99的人数存到b[3]中,成绩为100的人数存到b[4]中,成绩为60分以下的人数存到b[5]中。 例如,当a数组中的数据是:93、85、77、68、59、43、94、75、98,调用该函数后,b数组中存放的数据应是:1、2、1、3、0、2。 注意:部分源程序给出如下。 请勿改动main()函数和其他函数中的任何内容,仅在横线上填入所编写的若于表达式或语句。 试题程序: #includedstdi0.h> void fun(int a[],int b[],int n) { int i; for(i=0;i<6;I++) b[i]=0; for(i=0:i<【1】 ;i++) if(a[i]<60) b[5]++; 【2】 b[(a[i]一60)/10]++; } void main() { int i,a[100]={93,85,77,68,59,43,94,75,98),b[6]; fun(【3】 ,9); printf("the result is:"); for(i=0;i<6;i++) printf("%d",b[i]); printf("\n,"); }

填空题 请补充main()函数,亥函数的功能是求方程ax2+bx+ e=0的两个实数根。方程的系数a、b、C从键盘输入,如果判别式(disc=b*b-4*a*c)小于0,则要求重新输入a、b、c的值。 例如,当a=1,b=2,c=1时,方程的两个根分别是:x1 =-1.00,x2=-1.00。 注意:部分源程序给出如下。 请勿改动函数中的其他任何内容,仅在横线上填入所编写的若干表达式或语旬。 试题程序: #include<math.h》 #include<stdio.h》 void main() { double a,b,c,x1,x2,disc; do { printf("Input a,b,C:"); scanf("%1f,%1f,%1f”,&a,&b,&C); disc=b*b一4*a*C: if(disc<0) printf("disc=%1f\n Input again!\n",disc); } while(【1】); printf("****1he result****\n"); x1=(-b+【2】 (disc))/(2*a); x2=(-b-【3】(disc))/(2*a); printf("\nx1=%6.21f\nx2=%6.21f\n",x1,x2); }

判断题 在相同条件下,产生被动土压力所需的位移量大大超过产生主动土压力所需的位移量。( )