}
四、分析以下程序并回答问题:
classAclassB:
publicA
{public:
{public:
voidf1();voidf3();
inti;protected:
protected:
intm;
voidf2();private:
intj;intn;
private:
};
intk;
};
classC:
publicBvoidmain()
{public:
{Aa1;
voidf4();Bb1;
private:
Cc1;
intp;}
};
(1)在main函数中能否用b1.i,b1.j,b1.k引用类B对象b1中基类A的成员?
为什么?
(2)能否在main函数中用c1.f1(),c1.f2(),c1.f3()和c1.f4()调用f1,f2,f3,f4成员函数?
为什么?
(3)类C的成员函数f4能否调用基类A中的成员函数f1,f2和派生类中的成员函数f3?
为什么?
(4)如果把类B从类A的继承方式改为protected,回答问题
(1)。
五、编程
1.已知下列分段函数:
编写程序输入x的值,求y的值,并画出N-S流程图。
2.输入任意x,求y的值,画出N-S流程图。
3.求数列:
前20项的和,画出N-S流程图。
4.求
前20项的累加和。
5.有数列:
f1=1,
f2=1,
fn=fn-1+fn-2,求该数列第20项。
6.已知数列:
编一程序,求其前十项的和。
(画出流程图)
7.编写函数求n个数的最大值(n≥10),且指出其在整个数列中的位置。
8.统计一字串中字母、数字和其他字符的个数,并把字母存入另一个字串中。
9.编写一函数,将输入的n(n≥10)个整数中最小的数与第一个数对换,最大的数与最后一个数对换。
10.下面这个程序的功能是找出一个整型数组中元素的最大值。
程序给出了类的定义和主函数,请把它补充完整。
#include
classArray_max//声明类
{public:
voidset_value();//对数组元素设置值
voidmax_value();//找出数组中的最大元素
voidshow_value();//输出最大元素
private:
intarray[10];//整型数组
intmax;//max用来存放最大值
};
voidmain()//主函数
{Array_maxarry;
arry.set_value();
arry.max_value();
arry.show_value();
}
11.编写一函数将字符串中的第m个字符开始的字母字符复制成另一个字符串,(主函数如下)。
#include
#include
voidcopystr(m);
main()
{
intm;
charstr1[80],str2[80];
printf("Pleaseinputastring:
\n");
gets(str2);
printf("Inputm:
\n");
scanf("%d",&m);
if(strlen(str2)\n");
else
{
copystr(str1,str2,