资源预览内容
第1页 / 共13页
第2页 / 共13页
第3页 / 共13页
第4页 / 共13页
第5页 / 共13页
第6页 / 共13页
第7页 / 共13页
第8页 / 共13页
第9页 / 共13页
第10页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
3.第二次实验C语言程序设计 实验报告专业 计算机科学与技术 班级 信安1302班 日期 成绩 实验组别 第 2 次实验 流程控制实验 指导教师 周时阳 学生姓名 学号 同组人姓名 实验名称 流程控制实验 3.1实验目的1.掌握复合语句,if语句,switch语句的使用,熟练掌握for,while,do-while三种根本的循环控制语句的使用,掌握重复循环技术,了解转移语句与标号语句。2.掌握运用for,while,do-while语句来编写程序。3.练习转移语句和标号语句的使用。4.使用集成开发环境的调试功能:单步执行,设置断点,观察变量值。3.2实验内容一计算个人所得税。源程序如下:shangji2chengxu9#include int main() double x,y; do printf(请输入工资数:); scanf(%lf,&x); while(x0); if(x1000)y=0; else if(x2000)y=0.05*x; else if(x3000)y=0.1*x; else if(x4000)y=0.15*x; else if(x5000)y=0.2*x; else y=0.25*x; printf(个人所得税为:%.2lf,y); return 0;实验步骤:步骤一:输入工资数。步骤二:用if条件句划分好范围,使输入的数据能被计算机读取并归入到相应的范围中。步骤三:根据对应范围的计算公式计算出个人所得税并进行输出。调试及编译过程:测试数据:1500第二类范围测试数据:3500第四类范围测试数据:6000第六类范围出现的缺乏及修改:无 运行结果:输出预期结果。二计算两数的最大公约数和最小公倍数源程序如下:shangji2chengxu10#include int main() int x,y,m,n,r; do printf(input two numbers:); scanf(%d%d,&x,&y); while(x0)|(y0); m=x;n=y; while(r=(x%y)!=0) x=y; y=r; printf(最大公约数为:%dn,y); printf(最小公倍数为:%d,(m/y)*(n/y)*y); return 0;实验步骤: 步骤一:定义两个整型变量,并输入两数赋值到这两个变量。 步骤二:定义一个中间变量,用来实现辗转相除法的过程中对余数的控制,设置一个循环语句用来寻求最大公约数,其中循环结束的标志为余数为0,即能整除。循环过程中不断将y的值赋给x,再将r的值赋给y。 步骤三:退出循环后得出最大公约数,再通过最大公约数得到最小公倍数,最后将这两数分别输出。调试及编译过程:测试数据:12,30一般情况测试数据:12,6两个成倍数的数测试数据:7,13两个互质的数出现的缺乏及修改:无 运行结果:输出预期的结果。三判断一个数是否为素数。源程序如下:shangji2chengxu11#include #includeint main() int n,r,i; do printf(input a number:); scanf(%d,&n); while(n2); for(i=2,r=1;i=sqrt(n);i+) r=n%i; if(r)printf(%d is a prime,n); else printf(%d is not a prime,n); return 0;实验步骤:步骤一:定义三个整型变量,分别用来存放该数,控制循环的标志数,以及余数。 步骤二:设置循环,将i从2开始直到该数的算数平方根,假设余数为0或已到循环结束的标志那么退出循环。 步骤三:在循环结束后判断余数的值,假设不为0,那么判断该数为素数,否那么该数不为素数。调试及编译过程:测试数据:2特殊情况测试数据:7质数测试数据:12不是质数四输出2到100间的素数。源程序如下:shangji2chengxu12#include #includeint main() int i,j,r,t; t=0; for(i=2;i=100;i+) for(j=2,r=1;(j=sqrt(i)&r;j+) r=i%j; if(r) printf(%4d,i); if(!(+t%5)printf(n); return 0;实验步骤: 步骤一:定义四个整型变量,分别控制内层循环,外层循环,余数及保证一行5个的数。 步骤二:外层循环为2到100间的数,内层循环为逐个检查它们是否为素数,假设是,那么输出,且t+1,当t为5的倍数是输出换行符即可保证一行5个。调试及编译过程:出现的缺乏及修改: 编写程序工程中if后没有加花括号,导致输出错误。后检查并得知,if只控制一条语句,假设要控制多条语句,需加上花括号形成复合语句。五输出九九乘法表源程序如下:shangji2chengxu13#include int main() int i,j; for(i=1;i=9;i+) for(j=1;j=i;j+) printf(%d*%d=%-4d,i,j,i*j); printf(n); return 0;实验步骤: 步骤一:定义两个整形变量,分别用来控制外层循环和内层循环。 步骤二:输出当前的乘法公式。调试及编译过程:出现的缺乏及修改:最开始编写时内层循环里的结束标志为j=9,于是输出的不是九九乘法表,而是它的两倍,即有了多余的乘法公式。调试出来后将标志改为j=i,于是多余的不被输出。六课程设计教材52面3(3).输出杨辉三角源程序如下:shangji2jiaocai52.3(3)#include int c(int m,int n);int main() int i,j1,j2; for(i=0;i=9;i+) for(j1=1;j1=20-i;j1+) printf( ); for(j2=0;j2=1&c(i,j2)=10&c(i,j2)=99) printf( ); else printf( ); printf(n); return 0;int c(int m,int n) if(!n) return 1; else return(c(m,n-1)*(m-n+1)/n);实验步骤: 步骤一:定义一个子函数用来计算需要输出的数的值 步骤二:设置一个循环用来控制前导空格的数目,通过条件语句的判断在一位数后输出三个空格,在两位数后输出两个空格,在三位数后输出一个空格。调试及编译过程:出现的缺乏及修改:为了使杨辉三角看起来比较整齐,需要控制空格的数量,不断调整每行前导空格减少的数量来调整整齐度。七教材52.(1)面源程序改错源程序中scanf语句中n前没有加&符号,且程序末尾的return 0没有放到花括号中去。修改后为:shangji2jiaocai52.1#includeint main() int i,n,s=1; printf(please enter n:); scanf(%d,&n); for(i=1;i=n;i+) s=s*i; printf(%d!=%d,n,s); return 0;调试及编译过程:测试数据:0特殊情况测试数据:8出现的缺乏及修改:无 运行结果:出现预期的结果。八教材52面21分别用while和do while语句改写程序下面是用while替换的情况:源程序如下:shangji2jiaocai52.2(1)#include int main() int i=1,n,s=1; printf(please enter n:); scanf(%d,&n); while(i=n) s*=i; i+; printf(%d!=%d,n,s); return 0;下面是用do while替换的情况:#includeint main() int i=1,n,s=1; printf(please enter n:); scanf(%d,&n); do s*=i; i+; while(i=s的最小n值,s由键盘端输入。源程序如下:shan
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号