C语言实验三循环结构程序设计解答Word文档格式.docx
《C语言实验三循环结构程序设计解答Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言实验三循环结构程序设计解答Word文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
for(i=1;
i<
=10;
i++)
printf("
\n%dsquaredis%d\n"
i,i*i);
\n"
);
}
2.[目的]掌握循环次数已知的循环控制处理方法。
计算并输出
。
[输入]键盘输入x值
[输出]计算结果
voidmain()
intn,x,sum=0;
请输入x:
"
scanf("
%d"
&
x);
for(n=1;
n<
=100;
n++)
sum=sum+x*x;
sum=%d\n"
sum);
如果程序功能为:
,要求从键盘输入n、x值,程序应如何修改?
3.[目的]掌握循环次数已知的循环控制处理方法。
求1-100之间的奇数之和。
inti,sum=0;
i=i+2)
sum=sum+i;
4.[目的]掌握循环次数已知的循环控制处理方法。
输出100以内能被7整除的数。
[输出]判断结果
if(i%7==0)printf("
%d\t"
i);
5.[目的]掌握循环次数已知的循环控制处理方法。
计算并输出一年12个月的总降雨量和平均降雨量。
[输入]12个月的降雨量
[输出]总降雨量和平均降雨量
[提示]使用for循环语句,和值、平均值变量采用双精度类型,和值初值设为零。
doublex,sum=0,ave;
=12;
{
printf("
请输入%d月的降雨量:
scanf("
%lf"
sum=sum+x;
}
ave=sum/12;
sum=%lf\tave=%lf\n"
sum,ave);
6.[目的]掌握循环次数已知的循环控制处理方法。
在0°
到90°
之间每隔5°
输出一行数据,打印一个表。
每行中包括5个项目:
角度数,以及它所对应的正弦、余弦、正切、余切函数值。
[输出]如下表格
[提示]使用for循环语句和if语句,注意0°
、90°
时的正切和余切的处理。
math.h"
#definePI3.1415926
doubleih;
角度数正弦余弦正切余切\n"
for(i=0;
=90;
i=i+5)
ih=i*PI/180;
if(i==0)
%d\t%lf\t%lf\t%lf\t%c\n"
i,sin(ih),cos(ih),sin(ih)/cos(ih),'
-'
elseif(i==90)
%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个字符。
charch;
请输入一个字符:
%c"
ch);
\n%c%d\n"
ch,ch);
8.[目的]掌握循环次数未知的循环控制处理方法。
计算一批货物的总值,输入货物单价和数量。
事先不知道需要统计的货物有多少种。
[输入]货物单价和数量
[输出]货物的总值
[提示]使用while循环语句或do…while语句,设计一个特殊值作为循环结束的标志,例如,单价值为零。
doubleprice,num,sum=0;
请输入货物单价和数量:
%lf%lf"
price,&
num);
while(price!
=0)
sum=sum+price*num;
sum=%lf\n"
9.[目的]掌握递推法的处理方法。
输出fibnocci数列的前20项,每行输出5个。
说明:
fibnocci数列的前两项均为1,以后各项等于其前两项之和。
[输入]无
[输出]fibnocci数列的前20项
[提示]使用for循环语句以及递推算法,fibnocci数列的前两项均为1,以后各项等于其前两项之和。
inti,f1,f2,f3,n;
f1=1;
f2=1;
\n%8d%8d"
f1,f2);
n=2;
=18;
if(n%5==0)printf("
f3=f1+f2;
%8d"
f3);
n++;
f1=f2;
f2=f3;
10.[目的]掌握递推法的处理方法。
[题目内容]编写一个程序,利用递推法计算下列公式:
要求精确到10-6。
[输出]计算结果
[提示]使用do..while循环语句以及递推算法,当计算到n项时,
,当计算到n+1项时,
计算到yn+1-yn=
≤10-6为止。
intn=1,m;
doubley1,y=1;
do
m=n*(n+1);
y1=1.0/m;
y=y+y1;
}while(y1>
=10e-6);
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<
stdio.h>
{
inta,n,i;
longterm,sum;
请输入a,n:
%d,%d"
a,&
n);
term=a;
sum=a;
for(i=2;
=n;
i=i+1)
term=term*10+a;
sum=sum+term;
sum=%ld\n"
12.[目的]掌握递推法的处理方法。
[题目内容]编写一个程序,求1+2!
+3!
+...+20!
的和。
[输出]1+2!
的和
关键语句longterm=1,sum=0;
term=term*i;
longterm=1,sum=0,i;
=20;
term=term*i;
%ld\n"
13.[目的]掌握穷举法的处理方法。
[题目内容]编写一个程序,判断一个整数是否素数。
[输出]是否素数的信息
[提示]使用for循环语句以及穷举算法。
利用素数的定义。
intx,i;
请输入一个整数:
x;
if(x%i==0)
\n%d不是素数。
x);
break;
if(i>
=x)printf("
\n%d是素数。
14.[目的]掌握穷举法的处理方法。
[题目内容]编写一个程序,输出9*9乘法口诀表。
[输出]9*9乘法口诀表。
算法提示:
分行与列考虑,共9行9列,外循环控制行,内循环控制列。
方阵
inti,j;
=9;
{for(j=1;
j<
j++)
%2d*%2d=%2d"
i,j,i*j);
斜三角
=i;
15.[目的]掌握穷举法的处理方法。
[题目内容]编写一个程序,打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数。
[输出]所有的“水仙花数”
①利用单层for循环控制对100—999之间的数,每个数分解出个位,十位,百位。
②使用3重for循环,循环变量分别取值为1-9,0-9,0-9。
{inti,a,b,c;
for(i=100;
=999;
{a=i/100;
b=i%100/10;
c=i%10;
if(a*a*a+b*b*b+c*c*c==i)
%d\n"
{inti,j,k;
for(i=1;
for(j=0;
for(k=0;
k<
k++)
{if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
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的值总是小于)。
math.h>
doubler,lamda;
inti,t,n,R;
请输入器件的每小时失效率:
lamda);
请输入最大时间:
=27;
--"
for(t=0;
t=t+150)
r=exp(-lamda*t);
R=(int)(50*r+0.5);
|"
for(i=1;
=R;
*"
3;
|\n"
17.[目的]运用已学知识解决实际问题。
[题目内容]某物品的现值(通常称为帐面价格)由以下等式给出
P=c(1-d)n
其中:
c=原始价值,d=年折旧率,n=已使用年限P=经过y年后的现值。
如果把P看作是该物品经使用年限后的报废价值,编写一个程序,给定原始价值、折旧率、报废价值,计算出可使用的年限。
[输入]原始价值、折旧率、报废价值
[输出]可使用的年限
[提示]使用for循环语句、break语句。
doublec,d,p,p1;
intn;
请输入原始价值、折旧率、报废价值:
%lf%lf%lf"
c,&
d,&
p);
p1=c;
for(n=0;
=100000;
p1=p1*(1-d);
if(p>
p1)break;
可使用年限是:
n-1);