c++程序设计实验、辅导与习题解答-实验四.doc
文本预览下载声明
实 验 四
任务1:程序调试与程序设计,if-else语句的应用。
根据题意,分段函数解析式为:y=2+0.5*x。
程序代码为:
如果把以上程序写成:
程序存在什么问题?请调试。
答:编译显示没有匹配 if 的非法 else。If中存在多条语句块,应该用“{}”将其红色方框内的语句块包含在其中。任务2: 程序调试。 if-else语句的应用。
从键盘输入一个数,如果该数大于0,则求该数的平方根,否则输出“该数小于0”。
程序如下:
如果省略下列程序段中的大括号,程序能运行吗?为什么?
if(x0)
{
y= sqrt (x);
coutx平方根是yendl;
}
答:不能!错误显示为:if找不到匹配的else。多条语句块一定要加{},因为if 语句后有大括号, 则大括号里面所有的语句都会在if表达式为真时执行;如果没大括号,则if表达式为真时只会执行第一条语句。
思考:为什么在语句while(fabs(x)1e-6)中应用表达式1e-6?
答:因为 x 定义的是float 型,浮点型不可能完全等于零,所以为了判读需要加上一个范围1e-6,当在 0附近 这个范围内都当作等于0;
任务3: 程序调试与程序设计。类成员函数中if-else语句的应用。
程序的功能是判断从键盘输入的数是正数还是负数,输入0结束程序运行,程序设计为:
设计程序。如果输入的x大于0,则计算y=10 的值;输入输入的x小于0,则计算y=10e^0.1x的值。
程序如下:
运行结果如下:
对象定义在循环外,请重新设计程序。
程序设计如下:
运行结果如下:
任务4: 程序调试与程序设计。应用二分法求方程f(x)=0的根,掌握二分法及循环的应用。
调试程序。函数为f(x)=2*x*x*x-2-2*x*x-6*x-3,用二分法求区间-10~10的根。
程序如下:
程序设计。改写上述程序,用类的方法求解程序,把类定义和主函数重新定义,编写类的成员函数root,并调试。
程序如下:
头文件:
源文件:
编写程序求解函数f(x)=x*x-2*x-6的根。(运行时范围务必定义为-3.5~3.5内,否则求不出值。)
程序如下,头文件:
源文件:
任务5:程序设计。各种类型的字符统计。
输入一行字符,分别统计这行字符中英文字母、空格、数字和其它字符的个数。
程序如下:
思考:如果while中的表达式写成while(ch=getcher()!=’\n’)或while((ch=getchar())!=’\0’),程序是否能达到预期效果?为什么?
答:不能,因为语句在执行过程中存在一个优先级问题,如果改变,运行就达不到预期效果。
在类外定义成员函数。
头文件:
源文件:
任务6:程序调试与设计。If-else if语句用于判断三角形。
程序及运行结果如下:
定义一个三角形的类。完成(1)中的功能。
程序如下:
任务7:程序调试与设计。Switch-else多分支语句的应用。
调试程序,观察输出结果。
红色方框内为调整后的结果!
运行结果如下:
改写程序,能运算+、-、*、/、%,并能对除数为0的情况进行判断。
程序如下:
显示全部