c语言实验报告4 循环结构程序设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《C程序设计》课程实验报告
学院:班级:姓名:学号:
实验设备:计算机1台实验日期:2011年3月1日
实验项目名称循环结构程序设计
实验目的
掌握使用三种循环语句实现循环结构的方法。
实验要求:能用while~ do~while for 三种循环语句实现循环结构,编写简单的程序,掌握这三种循环语句。
实验内容(包括步骤):1.猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半另一个,以后每天早晨都吃剩下的一半另一个,到第十天早晨再想吃时,就剩一个桃子。问第一天共摘了多少桃子。
要求:分别用三种语句编写程序。
2.编写程序验证下列结论:任何一个自然数n的立方都等于n个连续奇数之和。例如:13=1;23=3+5;33=7+9+11;43=13+15+17+19。
要求:程序对每个输入的自然数计算并输出相应的连续奇数,直到输入的自然数为0时止。
3.编写程序,求1-3+5-7+…-99+101的值。
4.编写程序,求e的值。e ≈ 1+1/1!+1/2!+1/3!+1/4!+…+1/n!
(1)用for循环,计算前50项。
(2)用while循环,要求直至最后一项的值小于10-6。
5.编写程序,输出从公元1600年至2000年所有闰年的年号。每输出5个年号换一行。判断公元年是否为闰年的条件是:
(1)公元年数如能被4整除,而不能被100整除,则是闰年。
(2)公元年数如能被400整除也是闰年。
6.编写程序,打印以下图形:
*
***
*****
*******
*****
***
*
7.输入一行字符,统计输入的字符中字母‘a’出现的次数(包括大小写)。
8.我国1991年有11.6亿人口,要求根据人口平均年增长率,计算从1991年算起经过多少年后我国的人口增加到15亿。
9.有一个四位数F=BBAA,前二位数相同,后二位数相同,此数又是某个自然数T的平方,求此数。
10.分解一个正整数的所有质因数
调试与结果测试:部分程序出现错误经过调整后调试正常,达到题目要求的结果,运行正常。
代码注释: 4-1-1
#include
int main()
{
int x,n;
for(x=1,n=2;n<=10;n++)
{x=2*x+2;
}
printf("第一天共摘了%d个\n",x);
return 0;
}
4-1-2
#include
int main()
{
int x,n;
x=1;
n=2;
do{x=2*x+2;
n++;}
while(n<=10);
printf("第一天摘了%d个\n",x);
return 0;
}
4-1-3
#include
int main()
{
int x,n;
x=1;
n=2;
while(n<=10)
{x=2*x+2;
n++;}
printf("第一天摘了%d个\n",x);
return 0;
}
4-2
#include
int main()
{
int n,m,t,s;
s=0;
scanf("%d",&n);
m=n*n*n;
printf("%d的三次方等于%d",n,m);
t=n*(n-1)+1;
while(s {s=s+t; printf("%4d",t); t=t+2;} printf("\n"); return 0; } 4-3 #include int main() { int i,n,sum,sign; i=1; sign=1; sum=0; for(n=0;n<=51;n++) {i=(2*n-1)*sign; sign=-sign; sum=sum+i;} printf("值为%d\n",sum); return 0; } 4-4-1 #include int main() { double e=1,t=1; int n; e=1; for(n=1;n<=49;n++) {t=t*n; e=e+1/t;} printf("e=%4.2f\n",e); return 0; } 4-4-2 #include #include int main() { float e=1,t=1; int n=1; while(fabs(1/t)>=1e-6) {t=t*n; n++; e=e+1/t; } printf("e=%10.8f\n",e); return 0; } 4-5 #include int main() { int year,leap,m; for(year=1600,m=0;year<=2000;year++) { if(year%4==0) { if(year%100==0) { if(year%400==0) leap=1; else leap=0; }