《实验三 条件语句和开关语句的使用 分支程序设计.docx》由会员分享,可在线阅读,更多相关《实验三 条件语句和开关语句的使用 分支程序设计.docx(14页珍藏版)》请在第一文库网上搜索。
1、实验三分支程序设计一.实验目的流程控制语句用于实现基本程序结构,是程序设计的基础。本实验要求掌握条件语句和开关语句的使用。二.实验内容1.输入一个数,判断它的奇偶性后输出结果。【分析】判断一个数是否为偶数,只需要判断它是否能被2整除,若能整除,则为偶数,则为奇数。#inc1udeusingnamespacestd;intmain()(intinput;coutinput;if(input%2)coutnumberinputtisodd;e1secoutnumberinput,t,iseven;return0;【要求】(1)分别使用数据345680-34-23.5作为输入数据,测试程序,分析程序
2、结果,并记录结果。输入结果345odd680even-34even23.5odd(2)使用上述数据测试结果正确吗?如果有不正确之处请修改。有的正确,有的不正确最后一个有问题#inc1udeusingnamespacestd;intmain()(intinput;coutz,whichnumberdoyouwanttotestzinput;if(input%2=1:input%2=-1)cout,znumber,input,t,zzisood.*;e1secoutznumberz*input,t,(),输出两个不等的实根;若=(),输出两个相等实根;若(),输出两个复数根。ttinc1udeft
3、inc1udeusingnamespacestd;intmain()f1oata,b,c;f1oatd,x1,x2;COUt”请输入三个数a,b,cz,abc;if(a=0)coutzza不能为0zzend1;return1;e1secout,a=,a,t,zb=zzb,zc=,cend1;d=b*b-4*a*c;if(d=O)Cout。方程有两个相等实数根;cout,z1=x2=z*-b/(2*a)0)d=sqrt(d);x1=(-b+d)(2*a);x2=(-b-d)(2*a);CoUt方程有两个不等实数根;coutzz1=,zx1,t,z2=zzx2end1;e1seCOUtX”方程无实
4、数根“end1;return0;1)参照主教材的例2.8编写源程序并调试运行,并记录结果。比较与例2.8的不同之处。输入结果a=0b=0c=4a不能为0a=0b=2c=4a不能为0a=1b=2c=0方程有两个不等式根X1=0,X2=-2a=2b=5c=1X1=O.219224x2=-2.28078(2)思考if-e1se嵌套使用时的注意事项是什么?e1se总是和相离最近的if对应。3编写程序:输入一门课程的成绩,若高于90分,输出“Agrade”;若高于80分而低于90分,输出“Bgrade”;若高于70分而低于80分,输出“Cgrade”;#inc1udeusingnamespacestd;
5、voidmain(void)(f1oatscore;coutscore;coutthegradeis,score=90)cout,Agradeend1;e1seif(80=score&score90)coutBgrade,=70)cout,Cgrade=60)cout,Dgradeend1;e1secout,NOTPASSEDend1;【要求】1.使用if-e1se语句和SWitCh语句两种方法实现。ttinc1udeusingnamespacestd;voidmain(void)f1oatscore;intn;coutscore;CoUtthcgradeiszzscoreend1;n=sco
6、re10;switch(n)case10:case9:cout,zAGradenz;break;case8:cout/zBGradenzz;break;case7:CoUtXCGradenzz;break;case6:coutz,DGraden”;break;defau1t:coutz,NOTPASSEDn”;)1.2分析if-e1se语句和SWitCh语句的区别,switch语句特别适合于什么情况使用?适用于情况很多而且分类明确为具体的数字时3思考使用switch语句时应注意什么?注意常量表达式值各不相同4、编写程序:输入一个数,判断其是否是3或7的倍数,可分为4种情况输出。(1)是3的倍数
7、,但不是7的倍数。(2)不是3的倍数,是7的倍数。(3)是3的倍数,也是7的倍数。(4)既不是3的被数,也不是7的倍数。#inc1udeusingnamespacestd;intmain()(intc;coutc;if(c%21=0)CoUtcc”是3和7的倍数”end1;e1seif(c%3=0)CoUtcc”是3不是7的倍数end1;e1seif(c%7=0)COUtcc”是7不是3的倍数“/end1;e1seCoUtcc不是3也不是7的倍数“end1;return0;实验四循环结构程序设计一、实验目的1掌握3种循环结构:Whi1e,dowhi1e,for的区别与联系,以及它们之间相互转换
8、的方法,并能正确使用它们。2.掌握与循环语句相关的break语句和COntiIIUe语句的使用方法二,实验内容1 .输入正整数n,计算n的阶乘。【分析】由于n!=1*2*3*n,因此,要计算n的阶乘可以从1开始,由1的阶乘乘以2得到2的阶乘,再乘以3得到3的阶乘以此类推。ftinc1udeusingnamespacestd;intmain()(intn,i;doub1eresu1t=0;COUt”请输入正整数“n;if(n1)COUt输入有误!*end1;return1;)resu1t=1;for(i=2;i=n;i+)resu1t*=i;coutresu1tend1;returnO;)(1)
9、分别输入数据-2,1,5,10,20调试运行程序,并记录程序结果。输入结果-2输入有误115120103.5288e+006202.4329e+018(2)删除程序中A处的赋值语句return1;重新以上述数据调试运行程序,结果是否正确,如果不正确,该如何修改?输入结果-2输入有误I115120103.5288e+006202.4329e+018不正确应该returnO或者1或者2给她一个值否则程序在输入有误后将继续执行不能跳出(3)删除程序中B处的语句resu1t;重新以上述数据调试运行程序,结果是否正确,如果不正确,该如何修改?不正确除了一2其余结果都是O或者在程序的开始初始化resu1t
10、n(4)将程序中语句doub1eresu1t=0;改为intresu1t=0;重新以上述数据调试运行程序,结果如何?为什么?N取较大的数时,resu1t变成0因为int没有那么大的值2 .范例:编程计算求兀的近似值。ftinc1udeftinc1udeusingnamespacestd;voidmain()1onginti=0;doub1esum=0,term,pi;doi+=1;term=1.O(i*i);sum+=term;whi1e(term1e-12);pi=sqrt(sum*6);coutz,pi=z,piend1;1)输入程序编译后使用Debug跟踪,单步执行程序,记录以下变量值的
11、变化。(D如下图:i0Pi-9.2559631349317831e+061sun-9.2559631349317831e+061tern-9.2559631349317831e+061iOPi-9.2559631349317831e+061sun0.00000000000000080tern-9.2559631349317831e+061i1tern-9.2559631349317831e+061i1sum0.00000000000000000tern1.0000000000000000sum1.0000000000000000term1.000000000000000011Pi-9.2559
12、631349317831e+061sum1.0000000000000000tern1.0000000000000000i2tern1.0000000000000000i2sum1.0000060000000000term0.25000000000000000dTI电SUm1.2500000000000000ternO.250000000O0O0000i2Pi-9.2559631349317831e+061sum1.2500000000000000termO.250O0O000O000OOi3term0.2500000000000000013sum1.2500000000000000term0.11111111111111110sun1.3611111111111112tern0.11111111111111110i3Pi-9.255963139317