C语言程序设计实验指导书(8)

2018-12-12 22:55

实验八 循环结构程序设计(三)

实验八 循环结构程序设计(三)

【实验目的】

1.熟练使用for、while和do-while语句,理解它们的相同和不同之处。 2.熟练掌握break和continue语句的使用。

【实验内容】

一、试着编写下列程序

【例8-1】输出三位数中的所有水仙花数。水仙花数是指各位数字的立方和等于其自身的数。例如,153的各位数字的立方和是13+53+33=153 源程序:

#include \#include \main() {

int i,a,b,c;

for(i=100;i<=999;i++) {

a=i/100;

b=i/10; c=i;

if(pow(a,3)+pow(b,3)+pow(c,3)==i) /*或if(a*a*a+b*b*b+c*c*c==i) 第二行命令行去掉*/ printf(\} }

?举一反三

【8-1】输出三位数中能够被5整除的数。

【例8-2】求Sn=a+aa+aaa+aaaa+?其中a是一个数字,n由键盘输入。例,a为2,n为5时Sn=2+22+222+2222+22222。 源程序:

34

实验八 循环结构程序设计(三)

#include \main() {

long i,a,n,sum=0,t; scanf(\

t=a; /*用t来取每一项*/ for(i=1;i<=n;i++) { }

printf(\}

sum+=t; t=t*10+a;

?举一反三

【8-2】求1?12!?13!?.....?1n!的和。

?提示:n为任意的一个正整数。

【8-3】输入一个正整数,判断是否为素数。 源程序:

#include #include main() {

int x,k;

scanf(\k=sqrt(x); for(i=2;i<=k;i++) if(x%i==0) break;

if(i>k) printf(\是素数\,x); else printf(\}

?提示:能够被1和它本身整除的数是素数。例:2、3、5、7、11······等。1不是素数。

35

实验八 循环结构程序设计(三)

判断一个数n是否为素数,可以用2~(n-1)或2~

n2或2~n范围的数一个一个去除n,n

一旦被这范围的某一个数除尽,则n就是非素数。

?举一反三

【8-3】求1+2+3+4+5+·······和值大于10为止。用break语句编写程序。

二、程序改错

不允许增加行也不允许删除行,也不得更改程序的结构。

1、求fibonacci数列的前30个数之和,已知此数列的前2项分别为1。 源程序: main() {

long f1=1,f2=1,n,s=0; /********found********/ for(n=1;n<=30;n++); { s=s+f1+f2;

f1=f1+f2; f2=f2+f1; }

printf(\

}

2、输入n个数,求这n个数中偶数的平均值 源程序: main() {

int i,n,m,a=0; float s=0; scanf(\/********found********/ for(i=1;i<=n) { scanf(\

if(m%2==0) { a=a+1;s=s+m ; } i++; }

printf(\

36

实验八 循环结构程序设计(三)

3、找出2至99之间的全部同构数。同构数是这样一组数:它出现在其平方数的右边,例如,5是25右边的数,25是625右边的数,5和25都是同构数。 源程序: main( ) { int i;

for(i=2;i<100;i++)

/********found********/

if(i= =(i*i)&&i= =(i*i)0)

printf(\}

三、程序填空

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 1、下面程序功能是:输出100~200之间不能被3整除的数。 源程序: main() {

int n;

for(n=100;n<=200;n++) { if( 【1】 )

continue; printf(\ } }

2、输入一个正整数n,输出2/1+3/2+5/3+······的前20项之和,保留2位小数(该序列从第二项起,每一项的分子是前一项的分子与分母之和,分母是前一项的分子。) 源程序:

#include \main()

{

float m=2,n=1,sum=0,t; int i=1; for(;i<=20;i++) { }

sum+=【1】; t=m; m=m+n; n=t;

printf(\

37

实验八 循环结构程序设计(三)

【思考题】

1.三种循环的区别?

2、在哪些条件下能退出循环体? 3、分析程序的运行结果 main() { int a,sum;

for(a=1;a<=10;a++) sum+=a;

printf(“%d,%d”,sum,a);

}

4、分析程序中break语句和continue语句的执行方式有何不同? main()

{ int a;

for(a=100;a<=999;a++) {

if(a%3==0) break; /*将break改为continue*/ printf(“%d ”,a); } }

38


C语言程序设计实验指导书(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:实验十 血糖的测定

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: