资源描述
实验三 循环控制实验课程名:高级语言程序设计(C)专业班级: 学号: 姓名: 实验时间: 实验地点: 指导教师:一、实验目的和要求1. 了解C语言表示逻辑量的方法。2. 学会正确使用逻辑运算符和逻辑表达式3. 熟练掌握if 语句和 switch语句。4. 结合程序掌握一些简单的算法。5. 学习调试程序。二、实验内容1.1、任务名称: 程序c40101.c求1+100,填空,实现该功能源代码:#include void main()int s,i;s=0;for(i=0;i=100;i+)s=s+i;printf(1+.+100=%dn,s);运行结果:(需要截图)运行结果分析:可以去掉,将s=0移到for语句的表达式一即可 1.2、任务名称源代码:#include void main()int s,i;i=1,s=0;while(i=100)s=s+i;i+;printf(s=1+.+100=%dn,s);运行结果:(需要截图)运行结果分析:while语句与for语句的互换2.1、任务名称: 比较下列两个程序. 分别运行这两题,若输入7,这两个程序的结果分别是多少?若输入12,这两个程序的结果又分别是多少?比较为什么会有这样的区别?源代码:#include void main() int i,n,sum=0;scanf(%d,&i);n=i;while(i=10) sum+=i;i+;printf(%d+.+10=%dn,n,sum); 运行结果:(需要截图)2.2、源代码:#include void main() int i,n,sum=0;scanf(%d,&i);n=i;do sum+=i;i+; while(i10时,对while循环来说,一次也不执行循环体,而对dowhile循环语句来说则至少要执行一次循环体。3、任务名称: 预习c40103.c程序,若输入12345,分析输出结果是多少?上机验证源代码:#include void main( ) long data; scanf(%ld,&data); while(data) printf(%ld,data%10); data=data/10; 运行结果:(需要截图)运行结果分析:求余运算符的使用4、任务名称: 程序c40104.c实现求Fibonacci数列的前n个数。(验证、调试)运行程序,写出运行结果;采用单步跟踪技术运行该程序,观察一下变量的变化。源代码:#include void main( ) long int f1, f2; int i,n; printf(Input n:); scanf(%d,&n); f1=f2=1;for(i=1;in;i+) printf(%ldt%ldn,f1,f2); f1=f1+f2;f2=f2+f1; 运行结果:(需要截图)运行结果分析:f1、f2这两个变量数据可能很大所以要定义为long int 型5、任务名称: 预习c40105.c,写出预习结果并上机验证。(验证)源代码:#include void main( ) int i,j,x;for(i=0,x=0;i2;i+) x+;for(j=0;j3;j+) if(j%2) continue;x+;x+; printf(x=%dn, x); 运行结果:(需要截图)运行结果分析 :嵌套for循环的执行过程及continue语句的作用以及运用。6、任务名称: 程序c40201.c输入一批考试分数,用-1作为结束标志,若输入大于100分,则提示重新输入,然后计算最高分、最低分与平均分。请调试、检查程序中的错误,并改正之。源代码:#include void main() int mark; int n=0,sum=0 ; int max=0,min=100; for(;) scanf(%d,&mark); if(mark100) printf(Mark100 , Please reinputn); continue; if(mark=-1) break; n+; sum=sum + mark ; if(mark max) max=mark ; if(mark100) printf(Mark100 , Please reinputn); continue;7、任务名称: .编程:输入20个190的整数,分类统计130、3160、6190的数各有多少个? 编程点拨:(1) count1计130的个数,count2计3160的个数,count3计6190的个数。(2) 用for循环20次实现该程序的功能:输入一个整数x,判断该数所在的范围,若x是130,则count1加1;若x是3160,则count2加1;若x是6190,则count3加1。 (3) 最后,输出统计的结果。源代码#include void main( ) int count1=0,count2=0,count3=0;int i,x;printf(Enter the 20 integer from 1 to 90:n);for(i=0;i=1&x=31&x=60)count2+;else count3+;printf(统计结果:130:%d 3160:%d 6190:%dn,count1,count2,count3);:运行结果:(需要截图)运行结果分析:用for循环20次实现该程序的功能:输入一个整数x,判断该数所在的范围,若x是130,则count1加1;若x是3160,则count2加1;若x是6190,则count3加1 8、任务名称: 编程:素数是除了1和其本身以外,不能被其他自然数整除的自然数。从键盘输入一个数,判断该数是不是素数?源代码:#include void main() int i, x;printf(Enter one natural integer: );scanf(%d,&x);for(i=2;i=x-1;i+) if(x%i=0)break;if(ix)printf(%d is a not prime number.n,x);else printf(%d is a prime number.n,x);运行结果:(需要截图)运行结果分析:用for循环2x-1,用2x-1的每一个数去除x,若有一个数整除x,则说明x不是素数;否则,x就是素数。 9、任务名称: 编程:显示所有的水仙花数。谓水仙花数,是指一个3位数,其各位数字立方和等于该数字本身。源代码:#include int main() int i,j,k,n; printf(parcissus numbers are ); for (n=100;n999;n+) i=n/100; j=n/10-i*10; k=n%10; if (n=i*i*i + j*j*j + k*k*k) printf(%d ,n); printf(n); return 0; 运行结果:(需要截图)运行结果分析:利用一个循环,对100999范围内的每个3位数逐位分离后进行判断*10、任务名称输出下列图形。源代码:#include int main()int i,j,k;for(i=0;i=4;i+)for(j=0;j=3-i;j+)printf( );for(k=0;k=2*i;k+)printf(*);printf(n);运行结果:(需要截图)运行结果分析:每一行的星号与行号有关,即2*i+1,其中i是行号;每一行的输出位置比上一行少一个空格三、结论(写本次实验的收获)1. 了解C语言表示逻辑量的方法。2. 学会正确使用逻辑运算符和逻辑表达式3. 熟练掌握if 语句和 switch语句。4. 结合程序掌握一些简单的算法。5. 学习调试程序。说明:1、 每次实验报告后,以学生的学号+实验项目名作为该word文件名保存。例如某学生学号为20080001,姓名为张三,本次实验名称是:实验一 顺序结构程序设计,则本次实验报告的保存文件名为:01张三实验一.doc。(禁止提交文件夹)2、 在每次试验完后内,学生以整个试验项目为一个完整文档,将本报告(电子文档和纸质文档)按照(1)要求的文件名提交给实验指导教师。
展开阅读全文