您好,欢迎来到知库网。
搜索
您的当前位置:首页湖北理工学院C语言实验三答案

湖北理工学院C语言实验三答案

来源:知库网


实验三 循环控制

实验课程名:高级语言程序设计(C) 专业班级: 学号: 姓名:

实验时间: 实验地点: 指导教师:

一、实验目的和要求 1. 熟练掌握用while语句、do while语句和for语句实现循环的方法。 2. 掌握在程序设计中用循的方法实现一些常用算法。并进一步学习调试程序的方法。 二、实验内容 1、任务名称程序c40101.c求1+…+100,填空,实现该功能。 (1、)源代码:#include int main() { int s,i; s=0; for(i=1;i<=100;i++) s=s+i; printf(\"1+2+...+100=%d\\n\ return 0; } 运行结果:(需要截图) (2、)源代码:#include int main() { int s=0,i=1; while(i<=100) {s+=i; i++;} printf(\"1+2+...+100=%d\\n\ return 0; } 运行结果: 运行结果分析:for与while可以相互转化。

2、任务名称: 分别运行这两个程序,若输入7,这两个程序的结果分别是多少?若输入12,这两个程序的结果又分别是多少?比较为什么会有这样的区别? (1、)源代码:#include void main() { int i,n,sum=0; scanf(\"%d\n=i; while(i<=10) { sum+=i; i++; } printf(\"%d+...+10=%d\\n\} 运行结果:(需要截图) (2、)源代码:#include int main() { int i,n,sum=0; scanf(\"%d\n=i; do { sum+=i; i++; } while(i<=10); printf(\"%d+...+10=%d\\n\return 0; } 运行结果: 运行结果分析:当i<=10时,while循环与do…while循环等价。当i>10时,while语句一次也不执行循环体,do…while语句会执行一次循环。 3、任务名称:下面程序,若输入12345,分析输出结果是多少? 源代码:#include void main( ) { long data; scanf(\"%ld\ while(data) { printf(\"%ld,\ data=data/10;

} } 运行结果:(需要截图) 运行结果分析:一个整形数除以10的余数为该整形数的个位数。 4、任务名称:程序c40104.c实现求Fibonacci数列的前n个数。(验证、调试) 1FnFn1Fn2n1或n2 n3运行程序,写出运行结果;采用单步跟踪技术运行该程序,观察一下变量的变化。 源代码:#include void main( ) { long int f1, f2; int i,n; printf(\"Input n:\"); scanf(\"%d\ f1=f2=1; for(i=1;i void main( ) { int i,j,x; for(i=0,x=0;i<2;i++) { x++; for(j=0;j<3;j++) { if(j%2) continue; x++; }

x++; } printf(\"x=%d\\n\ } 运行结果: 运行结果分析:逻辑判断语句非0即为真,continue打断本次循环。 6、任务名称:程序c40201.c输入一批考试分数,用1作为结束标志,若输入大于100分,则提示重新输入,然后计算最高分、最低分与平均分。请调试、检查程序中的错误,并改正之。 源代码:#include void main( ) { int mark; int n=0 , sum=0 ; int max=0 , min=100 ; for ( ; ; ) { scanf(\"%d\ if ( mark > 100 ) { printf(\" Mark > 100 , Please reinput \\n \"); continue; } if ( mark==-1) break; n ++ ; sum=sum + mark ; if( mark > max ) max = mark ; if( mark < min ) min = mark ; } sum=sum/ n ; printf(\"max =%d , min = %d, aver = %d \\n\ } 运行结果: 运行结果分析:求一批分数的最高分,则最高分的初始值应该设为0,然后在程序循环中逐渐地升高,直至求出最高分;求这批分数的最低分,则最低分的初始值设为100,然后在程序循环中逐渐地降低,直至求出最小值。Continue跳出本次循环,break跳出整个循环。 7、任务名称.编程:输入20个1~90的整数,分类统计1~30、31~60、61~90的数各有多少个? 源代码:#include int main() { int count1=0,count2=0,count3=0;

int i,x; printf(\"Please input 20 numbers:\\n\"); for(i=0;i<20;i++) {scanf(\"%d\if(x>=1&&x<=30) count1++; if(x>=31&&x<=60) count2++; if(x>=61&&x<=90) count3++;} printf(\"count1=%d,count2=%d,count3=%d\\n\} 运行结果: 运行结果分析:用for循环20次实现该程序的功能:输入一个整数x,判断该数所在的范围,若x是1~30,则count1加1;若x是31~60,则count2加1;若x是61~90,则count3加1。 8、任务名称:.编程:素数是除了1和其本身以外,不能被其他自然数整除的自然数。从键盘输入一个数,判断该数是不是素数? 源代码:#include void main( ) { int i, x; printf(\"Enter one natural integer: \"); scanf(\"%d\for(i=2;i<=x-1;i++) if(x%i==0)break; if(i int main()

{ int i,j,k; printf(\"parcissus number are:\"); for(i=1;i<=9;i++) for(j=0;j<=9;j++) for(k=0;k<=9;k++) if(i*i*i+j*j*j+k*k*k==i*100+j*10+k) printf(\"%d,\return 0; } 运行结果: 运行结果分析:利用三重循环,将这三个数通过一定的运算符连接成一个3位数,然后判断是否是水仙花数。 10、任务名称:编程:输出下列图形。 * *** ***** ******* ********* 源代码:#include int main() {int i,j,k; for(i=0;i<=4;i++) {for(j=0;j<=2-i;j++) printf(\" \"); for(k=0;k<=2*i;k++) printf(\"*\"); printf(\"\\n\");}; return 0; } 运行结果: 运行结果分析:找出第一个*的位置和该行*的个数的规律。 三、结论(写本次实验的收获) 通过本次实验熟练掌握了用while语句、do while语句和for语句实现循环的方法。对程序的调试有了更深刻的理解。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- zicool.com 版权所有 湘ICP备2023022495号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务