




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
3.第二次实验C语言程序设计 实验报告专业 计算机科学与技术 班级 信安1302班 日期 2014.3.29 成绩 实验组别 第 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面2(1)分别用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由键盘端输入。源程序如下:shangji2jiaocai52.2(2)#include int j(int n);int main() int i,s; printf(enter s:); scanf(%d,&s); for(i=0;i+) if(j(i)=s) break; printf(i=%d,i); return 0;int j(int n) int i,s=1; for(i=1;i=n;i+) s*=i; return (s);调试及编译过程:测试数据:1(特殊情况)测试数据:40310出现的不足及修改:无 运行结果:出现预期结果。(十)教材52面3.(2)将一行字符复制输出,其中一个以上的空格用一个空格代替。源程序如下:shangji2jiaocai52.3(2)#include int main() char c,s81; int r=1,i=0; printf(enter :n); while(c=getchar()!=n) if(c!= ) r=1; si=c; i+; else if(r=1) r=0; si=c; i+; else ; si=0; puts(s); return 0;调试及编译过程:测试数据:前导多个空格的情况:测试数据:前导一个空格的情况:测试数据:前导没有空格的情况:出现的不足及修改:无 运行结果:出现预期的结果。3.3实验总结1.本次实验进行流程控制的实践,期间运用到了顺序语句,循环语句和条件语句,在高中时数学方面打下过一点基础,对设计算法方面也有一定的帮助。2通过本次实验,主要是解决数学问题,为以后解决实际问题做好铺垫,期间用到的语句结构虽然比较简单,却是写大型应用软件不可缺少的基石。3.在编写这些程序的过程中,相比之前又是一次大的进步,由简单的语句过渡到简单
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025福建南平市建阳区园林服务中心招聘园林养护综合专员1名考前自测高频考点模拟试题及答案详解一套
- 2025春季中国太平校园招聘考前自测高频考点模拟试题及一套完整答案详解
- 2025贵州茅台酒股份有限公司高层次人才(博士研究生)引进14人考前自测高频考点模拟试题附答案详解(黄金题型)
- 2025年湖南长沙水业集团有限公司春季校园招聘24人考前自测高频考点模拟试题及1套参考答案详解
- 智能社区创新创业项目商业计划书
- 2025年枣庄山亭区人民医院公开招聘备案制专业技术人员(15人)考前自测高频考点模拟试题及答案详解(必刷)
- 无线局域网网卡创新创业项目商业计划书
- 奶牛养殖牧场托管服务创新创业项目商业计划书
- 建筑物内清洁服务创新创业项目商业计划书
- 智慧文旅融合服务平台创新创业项目商业计划书
- 四年级下册心理健康教案-第二十五课 有了苦恼会倾诉-培养孩子的乐观情绪|北师大版
- 预应力混凝土管桩(L21G404)
- DL-T5024-2020电力工程地基处理技术规程
- PICC堵管原因与再通方法
- 初中数学分层作业设计举例-有理数
- 给小学生科普化学
- 驾照体检表完整版本
- 磁保持继电器基础知识课件
- 安全生产区域管理办法范本
- 设备保管协议
- 中石油职称英语通用教材
评论
0/150
提交评论