实验循环控制_第1页
实验循环控制_第2页
实验循环控制_第3页
实验循环控制_第4页
实验循环控制_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言程序设计实验报告-实验5循环控制(二)一 实验目的 (1)掌握用while语句,do.while语句和for语句实现多重循环的方法(2)掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等) (3)进一步学习调试程序的技巧 二.实验内容和步骤1.填空题(1)给定以下程序c5-1.c的功能是打印一个如下的九九乘法表的一部分:1*1=12*1=2 2*2=43*1=3 3*2=6 3*3=94*1=4 4*2=8 4*3=12 4*4=16#include<stdio.h>int main() int i,j; for(i=1;i<=4;i+) for(j=1

2、;j<=i;j+) printf("%3d*%3d=%3d",i,j,i*j); printf("n");return 0;(2)下面程序c5-2.c的功能是输出以下图形:#include<stdio.h>int main() int i,j,k; for(i=0;i<=3;i+) for(j=0;j<=10-i;j+) printf(" "); for(k=0;k<=2*i;k+) printf("*"); printf("n"); return 0;(3)

3、下面程序c5-3.c的功能是求出100300之间的素数和,请把程序补充完整#include<stdio.h>#include<math.h>int main() int i,j,flag,sum=0; for(i=100;i<=300;i+) flag=0; for(j=2;j<=i-1;j+)if(i%j=0) flag=1;break;if(flag=0) sum+=i;printf("The sum is %dn",sum);return 0;反思与总结:1.注意(2)题中的i,j,k的初值都为0,所以是3不是4,是2i不是2i+1

4、.10决定了第一个*之前有11个空格;2.(3)题中flag的作用是个标记变量2.改错题 (1)以下给定程序c5-4.c的功能是已知一元以下的硬币有一角、二角、五角3种面值,列举出将一元兑成硬币的所有方法。#include<stdio.h>#include<math.h>int main() float i,j,k; for(i=0;i<=2;i+)for(j=0;j<=5;j+)for(k=0;k<=10;k+) if(i*0.5+j*0.2+k*0.1=1.0) printf("%.0f,%.0f,%.0fn",i,j,k);r

5、eturn 0;(2)给定以下程序c5-5.c的功能是输出11000之间的所有完数,并输出每个完数的所有因子。所谓完数,就是指一个正数,它的各因数之和等于其自身。#include<stdio.h>int main() int i,j,t; for(i=1;i<=1000;i+) t=0; for(j=1;j<i;j+) if(i%j=0) t+=j; if(t=i) printf("n%d is a full numbern",i); printf("factors of %d are:t",i); for(j=1;j<i;

6、j+)if(i%j=0) printf("%d,",j); printf("n");反思与总结:在本题中for(i=1;i<=1000;i+)用了两次,但作用不一样,注意体会。3程序设计题(1)根据公式sum=1+1/2!+1/3!+1/n!,计算sum的值(前20项)。#include<stdio.h>int main() int i,j,t; float sum;for(i=1,sum=0;i<=20;i+) t=1; for(j=1;j<=i;j+)t=t*j; sum=sum+1.0/t;printf("s

7、um=%fn",sum); return 0;反思与总结:注意t=1的位置,不能将其放在循环之前。(2)用多重循环变成实现打印出所有的“水仙花数”的功能,所谓水仙花数是指一个3位数,其各位数字的立方和等于该数本身。#include<stdio.h>int main() int a,b,c; for(a=1;a<=9;a+)for(b=0;b<=9;b+)for(c=0;c<=9;c+)if(100*a+10*b+c=a*a*a+b*b*b+c*c*c)printf("%d%d%d是一个水仙花数n",a,b,c);return 0;反思

8、与总结:C语言中没有乘方符号。(3)输入一个正整数,将其逆序输出。#include<stdio.h>int main() int t,m; scanf("%d",&m);do t=m%10; printf("%d",t);m=m/10;while(m!=0);printf("n");return 0; 反思与总结:就因为漏了&,出现了已停止工作的问题!(4)编程打印数列2/1,3/2,5/3,8/5,13/8,21/13的前20项之和。#include<stdio.h>int main() in

9、t i=1; float m=2,n=1,sum=0,term,t; while(i<=20) term=m/n; sum=sum+term; t=m; m=m+n; n=t; i=i+1;printf("sum=%fn",sum); return 0; 反思与总结:注意定义的变量类型!(5)已知在区间0,3上,函数方f(x)=x3-x2-1有一个实根,试用二分法求函数f(x)的根。#include<stdio.h>#include<math.h>int main() float low=1,high=3,mid,flow,fhigh,fmid;while(fabs(high-low)>=1e-6) mid=(low+high)/2; flow=low*low*low-low*low-1; fmid=mid*mid*mid-mid*mid-1; if(flo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论