}
voidmain()
{Cc1(4,5,6);}
9.下面程序的输出是(____)
classA
{public:
virtualvoidfun(){cout<<”A:
:
fun”<<’\n’;}
};
classB:
publicA
{public:
voidfun(){cout<<”B:
:
fun”<<’\n’;}
};
classC:
publicB
{public:
voidfun(){cout<<”C:
:
fun”<<’\n’;}
};
voidfun(A*obj)
{Cc;
obj->fun();
obj=&c;
obj->fun();
}
voidmain()
{Bb;fun(&b);}
10.下面程序的输出是(____)
classComplex
{private:
floatReal;
floatImage;
public:
Complex(floatreal=0;floatimage=0){Real=real;Image=image;}
Complexoperator+(Complex&com)
{Complexc;
c.Real=Real+com.Real;
c.Image=Image+com.Image;
returnc;
}
friendostream&opertor<<(ostream&os,Complex&com)
{os<<”real=”<returnos;
}
};
voidmain()
(Complexc1(2,3),c2(3,4),c3;
cout<c3=c1+c2;
cout<四、完善程序(一空两分,共二十分)
1.下面的程序用于判断所输入的字符串是否为“回文”。
回文是顺读和倒读都一样的字符串。
请完善程序。
#include
#include
intf(char*a)
{char*p1,*p2;
intn=strlen(a);
p1=a;
p2=();
while(p1{if()return0;
else{p1++;p2--;}
}
return1;
}
voidmain()
{
chars[101];
cin.getline(s,100);
if(___)cout<
”<elsecout<
”<<”\n”;
}
2.函数sum的功能是:
求下列多项式前n项之和,请填空。
#include
doublesum(intn)
voidmain(_)
{
intn;
doublef;
cout<<”Inputn:
”;
cin<f=sum(n);
cout<<”Theresultis:
”<}
doublesum(intn)
{
doubles=____;
inta=1,b=1,t;
for(inti=1;____;i++)
{
s=_____;
t=a;
a=a+b;
b=t;
}
returns;
}
3.下列程序用于对输入的一批整数建立先进后出的链表,即先输入的放在表尾,后输入的放在表头,由表头至表尾输出的次序正好与输入的次序相反。
输入的一批整数以9999作为结束,但链表中不包含此数。
请完善程序。
#include
#defineNULL0
structnode{
intdata;
structnode*link;
};
voidmain()
{structnode*p,*q;
intm,n=1;
q=NULL;
cout<<”输入第”<cin<while(____)
{p=_______;
p->data=m;
p->link=_____;
q=p;
cout<<”输入第”<cin<}
n-=2;
while(n>0);
{cout<<”第”<data<<”\n”;
_______;
}
}
五.编程题
建立一个数组类ARR,求一个整型数组所有元素中的最大值及该最大值在数组中的序号(从1开始),具体要求如下:
(1)私有数据成员:
intn:
数组实际元素个数
inta[100]:
存放数组元素
intmax,maxindex:
存放整形数组元素中的最大值及最大值的序号
(2)共有成员函数
ARR(intx[],intsize):
构造函数,用参数size初始化n,用x数组初始化a数组。
voidfindMax();求整型数组元素中的最大值及最大值的序号
voidshow():
将数组元素以每行5个数的形式输出到屏幕上,同时输出数组中元素的最大值及最大值序号。
(3)在主函数中完成对该类的测试,定义一个整型数组b[]={3,4,6,8,10,34,2},定义一个ARR类的对象arr,用b数组及其元素个数初始化该对象,求其最大值及最大值的序号并输出程序的运行结果。
程序的运行结果为:
346810
342
max=34maxindex=6