C语言实验三循环结构程序的设计解答.docx

上传人:b****2 文档编号:2163078 上传时间:2023-05-02 格式:DOCX 页数:17 大小:87.55KB
下载 相关 举报
C语言实验三循环结构程序的设计解答.docx_第1页
第1页 / 共17页
C语言实验三循环结构程序的设计解答.docx_第2页
第2页 / 共17页
C语言实验三循环结构程序的设计解答.docx_第3页
第3页 / 共17页
C语言实验三循环结构程序的设计解答.docx_第4页
第4页 / 共17页
C语言实验三循环结构程序的设计解答.docx_第5页
第5页 / 共17页
C语言实验三循环结构程序的设计解答.docx_第6页
第6页 / 共17页
C语言实验三循环结构程序的设计解答.docx_第7页
第7页 / 共17页
C语言实验三循环结构程序的设计解答.docx_第8页
第8页 / 共17页
C语言实验三循环结构程序的设计解答.docx_第9页
第9页 / 共17页
C语言实验三循环结构程序的设计解答.docx_第10页
第10页 / 共17页
C语言实验三循环结构程序的设计解答.docx_第11页
第11页 / 共17页
C语言实验三循环结构程序的设计解答.docx_第12页
第12页 / 共17页
C语言实验三循环结构程序的设计解答.docx_第13页
第13页 / 共17页
C语言实验三循环结构程序的设计解答.docx_第14页
第14页 / 共17页
C语言实验三循环结构程序的设计解答.docx_第15页
第15页 / 共17页
C语言实验三循环结构程序的设计解答.docx_第16页
第16页 / 共17页
C语言实验三循环结构程序的设计解答.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言实验三循环结构程序的设计解答.docx

《C语言实验三循环结构程序的设计解答.docx》由会员分享,可在线阅读,更多相关《C语言实验三循环结构程序的设计解答.docx(17页珍藏版)》请在冰点文库上搜索。

C语言实验三循环结构程序的设计解答.docx

C语言实验三循环结构程序的设计解答

实验三循环结构程序设计

一、实验目的

1.熟练掌握三种循环语句的应用。

2.熟练掌握循环结构的嵌套。

3.掌握break和continue语句的使用。

4.练习调试与修改程序。

5.掌握一组数据求和、求平均值、求最大值最小值的计算方法。

6.掌握循环次数已知、未知的处理方法(精度的控制、结束标志的使用等)

7.掌握简单图形的打印输出处理。

二、实验内容

1.[目的]掌握循环次数已知的循环控制处理方法。

[题目内容]编写一个程序,其功能为:

计算并输出1~10的平方值。

[输入]无

[输出]如下形式

1squaredis1

2squaredis4

3squaredis9

4squaredis16

5squaredis25

6squaredis36

7squaredis49

8squaredis64

9squaredis81

10squaredis100

[提示]使用三种循环语句均可。

#include"stdio.h"

voidmain()

{

inti;

for(i=1;i<=10;i++)

printf("\n%dsquaredis%d\n",i,i*i);

printf("\n");

}

2.[目的]掌握循环次数已知的循环控制处理方法。

[题目内容]编写一个程序,其功能为:

计算并输出

[输入]键盘输入x值

[输出]计算结果

[提示]使用三种循环语句均可。

#include"stdio.h"

voidmain()

{

intn,x,sum=0;

printf("请输入x:

");

scanf("%d",&x);

for(n=1;n<=100;n++)

sum=sum+x*x;

printf("sum=%d\n",sum);

}

如果程序功能为:

计算并输出

,要求从键盘输入n、x值,程序应如何修改?

3.[目的]掌握循环次数已知的循环控制处理方法。

[题目内容]编写一个程序,其功能为:

求1-100之间的奇数之和。

[输入]无

[输出]计算结果

[提示]使用三种循环语句均可。

#include"stdio.h"

voidmain()

{

inti,sum=0;

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

sum=sum+i;

printf("sum=%d\n",sum);

}

4.[目的]掌握循环次数已知的循环控制处理方法。

[题目内容]编写一个程序,其功能为:

输出100以内能被7整除的数。

[输入]无

[输出]判断结果

[提示]使用三种循环语句均可。

#include"stdio.h"

voidmain()

{

inti,sum=0;

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

if(i%7==0)printf("%d\t",i);

}

5.[目的]掌握循环次数已知的循环控制处理方法。

[题目内容]编写一个程序,其功能为:

计算并输出一年12个月的总降雨量和平均降雨量。

[输入]12个月的降雨量

[输出]总降雨量和平均降雨量

[提示]使用for循环语句,和值、平均值变量采用双精度类型,和值初值设为零。

#include"stdio.h"

voidmain()

{

inti;

doublex,sum=0,ave;

for(i=1;i<=12;i++)

{

printf("请输入%d月的降雨量:

",i);

scanf("%lf",&x);

sum=sum+x;

}

ave=sum/12;

printf("sum=%lf\tave=%lf\n",sum,ave);

}

6.[目的]掌握循环次数已知的循环控制处理方法。

[题目内容]编写一个程序,其功能为:

在0°到90°之间每隔5°输出一行数据,打印一个表。

每行中包括5个项目:

角度数,以及它所对应的正弦、余弦、正切、余切函数值。

[输入]无

[输出]如下表格

[提示]使用for循环语句和if语句,注意0°、90°时的正切和余切的处理。

#include"stdio.h"

#include"math.h"

#definePI3.1415926

voidmain()

{

inti;

doubleih;

printf("角度数正弦余弦正切余切\n");

for(i=0;i<=90;i=i+5)

{

ih=i*PI/180;

if(i==0)

printf("%d\t%lf\t%lf\t%lf\t%c\n",i,sin(ih),cos(ih),sin(ih)/cos(ih),'-');

elseif(i==90)

printf("%d\t%lf\t%lf\t%c\t%lf\n",i,sin(ih),cos(ih),'-',cos(ih)/sin(ih));

else

printf("%d\t%lf\t%lf\t%lf\t%lf\t\n",i,sin(ih),cos(ih),sin(ih)/cos(ih),cos(ih)/sin(ih));

}

}

7.[目的]掌握循环次数已知的循环控制处理方法。

[题目内容]编写一个程序,其功能为:

输入10个字符,输出各个字符的ASCII编码。

[输入]10个字符

[输出]各个字符的ASCII编码

[提示]使用for循环语句,字符的输入不需要分隔符,可以连续输入10个字符。

#include"stdio.h"

voidmain()

{

inti;

charch;

for(i=1;i<=10;i++)

{

printf("请输入一个字符:

");

scanf("%c",&ch);

printf("\n%c%d\n",ch,ch);

}

}

8.[目的]掌握循环次数未知的循环控制处理方法。

[题目内容]编写一个程序,其功能为:

计算一批货物的总值,输入货物单价和数量。

事先不知道需要统计的货物有多少种。

[输入]货物单价和数量

[输出]货物的总值

[提示]使用while循环语句或do…while语句,设计一个特殊值作为循环结束的标志,例如,单价值为零。

#include"stdio.h"

voidmain()

{

doubleprice,num,sum=0;

printf("请输入货物单价和数量:

");

scanf("%lf%lf",&price,&num);

while(price!

=0)

{

sum=sum+price*num;

printf("请输入货物单价和数量:

");

scanf("%lf%lf",&price,&num);

}

printf("sum=%lf\n",sum);

}

9.[目的]掌握递推法的处理方法。

[题目内容]编写一个程序,其功能为:

输出fibnocci数列的前20项,每行输出5个。

说明:

fibnocci数列的前两项均为1,以后各项等于其前两项之和。

[输入]无

[输出]fibnocci数列的前20项

[提示]使用for循环语句以及递推算法,fibnocci数列的前两项均为1,以后各项等于其前两项之和。

#include"stdio.h"

voidmain()

{

inti,f1,f2,f3,n;

f1=1;f2=1;

printf("\n%8d%8d",f1,f2);

n=2;

for(i=1;i<=18;i++)

{

if(n%5==0)printf("\n");

f3=f1+f2;

printf("%8d",f3);n++;

f1=f2;f2=f3;

}

printf("\n");

}

10.[目的]掌握递推法的处理方法。

[题目内容]编写一个程序,利用递推法计算下列公式:

要求精确到10-6。

[输入]无

[输出]计算结果

[提示]使用do..while循环语句以及递推算法,当计算到n项时,

,当计算到n+1项时,

计算到yn+1-yn=

≤10-6为止。

#include"stdio.h"

voidmain()

{

intn=1,m;

doubley1,y=1;

do

{

m=n*(n+1);

y1=1.0/m;

y=y+y1;

n++;

}while(y1>=10e-6);

printf("y=%lf\n",y);

}

11.[目的]掌握递推法的处理方法。

[题目内容]求和值Sn=a+aa+aaa+……+aaaa…aa(n位)。

如n=5,a=3,则是求S5=3+33+333+3333+33333。

编写程序对于任意输入的a和n,求Sn。

[输入]a和n

[输出]Sn

[提示]使用for循环语句以及递推算法。

可设定一个变量m,m的初值为a,将m的值加到初值为0的变量S中;下一个要加的值可如下计算:

m=m*10+a,共加n次。

#include

voidmain()

{

inta,n,i;

longterm,sum;

printf("请输入a,n:

");

scanf("%d,%d",&a,&n);

term=a;

sum=a;

for(i=2;i<=n;i=i+1)

{

term=term*10+a;

sum=sum+term;

}

printf("sum=%ld\n",sum);

}

12.[目的]掌握递推法的处理方法。

[题目内容]编写一个程序,求1+2!

+3!

+...+20!

的和。

[输入]无

[输出]1+2!

+3!

+...+20!

的和

[提示]使用for循环语句以及递推算法。

关键语句longterm=1,sum=0;term=term*i;sum=sum+term;

#include

voidmain()

{

longterm=1,sum=0,i;

for(i=1;i<=20;i++)

{

term=term*i;

sum=sum+term;

}

printf("%ld\n",sum);

}

13.[目的]掌握穷举法的处理方法。

[题目内容]编写一个程序,判断一个整数是否素数。

[输入]无

[输出]是否素数的信息

[提示]使用for循环语句以及穷举算法。

利用素数的定义。

#include"stdio.h"

voidmain()

{

intx,i;

printf("请输入一个整数:

");

scanf("%d",&x);

for(i=2;i

{

if(x%i==0)

{

printf("\n%d不是素数。

\n",x);

break;

}

}

if(i>=x)printf("\n%d是素数。

\n",x);

}

14.[目的]掌握穷举法的处理方法。

[题目内容]编写一个程序,输出9*9乘法口诀表。

[输入]无

[输出]9*9乘法口诀表。

[提示]使用for循环语句以及穷举算法。

算法提示:

分行与列考虑,共9行9列,外循环控制行,内循环控制列。

方阵

#include

voidmain()

{

inti,j;

for(i=1;i<=9;i++)

{for(j=1;j<=9;j++)

printf("%2d*%2d=%2d",i,j,i*j);

printf("\n");}

}

斜三角

#include

voidmain()

{

inti,j;

for(i=1;i<=9;i++)

{for(j=1;j<=i;j++)

printf("%2d*%2d=%2d",i,j,i*j);

printf("\n");}

}

15.[目的]掌握穷举法的处理方法。

[题目内容]编写一个程序,打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数。

[输入]无

[输出]所有的“水仙花数”

[提示]使用for循环语句以及穷举算法。

算法提示:

①利用单层for循环控制对100—999之间的数,每个数分解出个位,十位,百位。

②使用3重for循环,循环变量分别取值为1-9,0-9,0-9。

#include

voidmain()

{inti,a,b,c;

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

{a=i/100;

b=i%100/10;

c=i%10;

if(a*a*a+b*b*b+c*c*c==i)

printf("%d\n",i);

}

}

#include

voidmain()

{inti,j,k;

for(i=1;i<=9;i++)

for(j=0;j<=9;j++)

for(k=0;k<=9;k++)

{if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)

printf("%d\n",i*100+j*10+k);

}

}

16.[目的]掌握图形输出的处理方法。

[题目内容]一个电子器件的可靠性由下面等式给定:

可靠性(r)=e-t,其中,为器件每小时的失效率,t为运行时间(以小时为单位)。

编写一个程序,画出一个图形,用来确定在0到3000小时内不同运行时间的可靠性。

失效率为0.001。

[输入]n=3000,lamda=0.001

[输出]图形

[提示]使用for循环语句,算法提示:

t的值由for语句按步长为150生成for(t=0;t<=3000;t=t+150),语句R=(int)(50*r+0.5)中的整数50是一个放大因子,用来把r转换为一个较大的数值,该数值用于描述曲线(r的值总是小于)。

#include

#include

voidmain()

{

doubler,lamda;

inti,t,n,R;

printf("请输入器件的每小时失效率:

");

scanf("%lf",&lamda);

printf("请输入最大时间:

");

scanf("%d",&n);

for(i=0;i<=27;i++)

printf("--");

printf("\n");

for(t=0;t<=n;t=t+150)

{

r=exp(-lamda*t);

R=(int)(50*r+0.5);

printf("|");

for(i=1;i<=R;i++)

printf("*");

printf("\n");

}

for(i=1;i<3;i++)

printf("|\n");

}

17.[目的]运用已学知识解决实际问题。

[题目内容]某物品的现值(通常称为帐面价格)由以下等式给出

P=c(1-d)n

其中:

c=原始价值,d=年折旧率,n=已使用年限P=经过y年后的现值。

如果把P看作是该物品经使用年限后的报废价值,编写一个程序,给定原始价值、折旧率、报废价值,计算出可使用的年限。

[输入]原始价值、折旧率、报废价值

[输出]可使用的年限

[提示]使用for循环语句、break语句。

#include

#include

voidmain()

{

doublec,d,p,p1;

intn;

printf("请输入原始价值、折旧率、报废价值:

");

scanf("%lf%lf%lf",&c,&d,&p);

p1=c;

for(n=0;n<=100000;n++)

{

p1=p1*(1-d);

if(p>p1)break;

}

printf("可使用年限是:

%d\n",n-1);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2