C语言循环结构程序设计实验报告.doc
下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
2.下载的文档,不会出现我们的网址水印。
3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
文档包含非法信息?点此举报后获取现金奖励!
下载文档到电脑,查找使用更方便
14
积分
还剩页未读,继续阅读
关 键 词:C语言循环结构程序设计实验报告
C语言程序设计实验报告
循环结构程序
C语言程序设计
C语言循环结构程序设计实验报告.doc
循环结构程序设计
实验报告.doc
C语言实验报告
C语言循环结构
资源描述:
云南大学数学与统计学实验教学中心
实验报告
课程名称:程序设计和算法语言
学期: 2012~2013学年下学期
成绩:
指导教师:
学生姓名:
学生学号
实验名称:循环结构程序设计
实验编号:四
实验日期:
实验学时: 3
学院:
专业
年级:
一、实验目的
1.进一步练习选择结构的程序设计。
2.练习并掌握实现循环结构的三种方法。
3.练习并掌握选择结构与循环结构的嵌套。
4.掌握多重循环的应用。
5.学会单步跟踪的操作方法。
二、实验内容
实验内容和步骤
1 分别用三种循环语句(while语句、do-while语句、for语句),实现求1~ 100的累加和。编程上机调试,总结出三种循环语句哪种实现起来方便、灵活。
while语句do-while语句
#include#includevoid main() void main()
{{
int i=1,sum=0; int i=1,sum=0;
while(i<=100) do
{ {
sum=sum+i; sum=sum+i;
i++; i++;
} }
printf(“%d\n”,sum); while(i<=100);
} printf(“%d\n”,sum);
运行结果:5050 }
for语句
#includevoid main()
{ int i,sum=0;
for(i=1;i<=100;i++)
{sum=sum+i;}
printf(“%d\n”,sum);
}
25
2 求 ∑ n! (1!+2!+3!+…+25!)。
n=1
程序如下:
main()
{ float n,s=0,t=1;
for(n=1;n<=25;n++)
{ t=t*n;
s=s+t;
}
printf(“1!+2!+3!+ …+25!=%e\n”,s);
}
上机运行,并记录下结果。然后用另外两种循环语句实现上述功能。
运行结果:1!+2!+3!+ .+25!=1.61587e+25
while语句:
main()
{ float n=1,s=0,t=1;
while(n<=25)
{ t=t*n;
s=s+t;
n++;
}
printf(“1!+2!+3!+ …+25!=%e\n”,s);
}
do-while语句:
main()
{ float n=1,s=0,t=1;
do
{ t=t*n;
s=s+t;
n++;
}
while(n<=25);
printf(“1!+2!+3!+ …+25!=%e\n”,s);
}
3 指出下面三个程序的功能,当输入“quit?”时,它们的执行结果是什么?
#includemain()
{ char c;
c=getchar();
while(c!=’?’)
{putchar(c);
c=getchar();
}
}
程序功能:输入的字符不是“?”时,就将该字符输出;若输入字符“?”时,不输出任何值。
运行结果:输入”quit?”时,输出:quit
#includemain()
{ char c;
while(( c=getchar())!=’?’) putchar(++c);
}
程序功能:输入的字符不是“?”时,将其ASCII值自加一后,输出字符;遇到?时,停止运行。
运行结果:输入”quit?”时,输出:rvju
#includemain()
{while(putchar(getchar())!=’?’);
}
程序功能:将输入的字符原样输出
运行结果:输入”quit?”时,输出:quit?
分析输出的三种不同结果,在实验报告中写出为什么。
*4 换零钱。把一元钱全兑换成硬币,有多少种兑换方法?
参考程序如下:
main()
{ int i,j,k,n;
n=100,k=0;
for(i=0;i<=n/5;i++)
for(j=0;j<=(n-i*5)/2;j++)
{ printf(“ 5 cent=%d\t 2 cent=%d\t 1 cent=%d\n”,i,j.n-i*5-j*2);
k++;
}
printf(“total times=%d\n”,k);
}
*5 穿越沙漠。用一辆吉普车穿越1000公里的沙漠。吉普车的总装油量为500加仑,耗油量为1加仑/公里。由于沙漠中没有油库,必须先用车在沙漠中建立临时加油站,该吉普车要以最少的油耗穿越沙漠,应在什么地方建立临时油库,以及在什么地方安放多少油最好?
参考程序如下:
main()
{ int k=1;
float station,distation,total;
station=distation=total=500.0;
while(distation<1000.0)
{printf(“station(%d)=%9.4f oil’s total(%d)=%10.4f\n”,
k,station,k,total);
total=500.0*++k;
station=500.0/(2*k-1);
diststion + =station;
distation - =station;
station=1000.0-distation;
printf(“station(%d)=%9.4f oil’s total(%d)=%10.4f\n”,
k,station,k,(k-1)*500.0+(2*k-1)*station);
}
【上机实习指导】
1.输入例6.2.
①上机运行程序,分析运行结果。
②用单步跟踪观察while语句的执行过程:连续按三次F8键,再用两次Ctrl-F7操作分别将i和sum的值显示出来,然后不按断F8键,每次按F8后,观察绿条的变化和变量值的变化情况,以此来分析并弄清while语句的执行过程。
③修改程序,实现s=1+1/2+1/3+…+1/10。
运行结果:5050
每次按F8后,绿条会在while语句,sum=sum+i;i++;中移动,并且i和sum的值也有变化,不断地增加一,直到不满足条件。
开始
i=1;sum=0
i<=10
t=1/i
sum=sum+t
i++
输出sum
结束
#includevoid main()
{
float i,sum=0,t;
i=1;
while(i<=10)
{
t=1/i;
sum=sum+t;
i++;
}
printf("%f\n",sum);
}
【自编程序上机】
1.计算下列级数和
s==1-(2/3)+(3/5)-(4/7)+…+(-1)n((n+1)/(2n+1))
直到最后一项的绝对值小于10-4为止(注意:是(n+1)/(2n+1))。
具体要求如下:
①画出流程图。
②除了要输出级数和s外,同时要求输出总的项数n。输出形式为:
n=具体值,s=具体值
#include#includevoid main()
n=1;sum=1
开始
{
sum=sum+pow(-1,n)*(n+1)/(2*n+1)
int n=1;
float sum=1;
n++
do
{
fabs((n+1)*(2*n+1))
void main()
m<=1000
{
int i,k,m,n,sum=0;
for(m=2;m<=1000;m++)
{ 真
k=m/2,n=0,i=1
for(k=m/2,n=0,i=1;i<=k;i++)
{
i<=k
if(m%i==0) n=n+i;
}
if(m==n)真
m%i==0
{
sum=sum+m;
printf("%d+",m);
n=n+i
}
}
i++
printf("\b=%d\n",sum);
}
m==n
m++
输出m+
sum=sum+m
运行结果:
6+28+496=530
输出sum
结束
3.P121 6.14。要求用循环结构实现。
4.百钱买百鸡问题。已知公鸡每只5元,母鸡每只3元,小鸡1元3只,要求100元钱正好买100只鸡,则应买公鸡、母鸡的小鸡各多少只?
5.某班有学生n人,从终端读入n及n个人学生的成绩,试编程实现以下功能:
①印出前3个最好成绩及取得每个最好成绩的人数;
②若90分以上计为优,75-89分计为良,60-74分计为中,60分以下计为不及格,试统计各档成绩所占百分率。
习题
1 下列论题哪些是错误的?
C语言没有goto语句。×
While《表达式》语句的作用是:
当表达式的值为0时重复执行循环体语句。×
do(语句)while(表达式)的作用是:
重复执行循环体(“语句”),直到表达式成立(其值为真)。√
④ “do…while”语句中,写在do后面。While前面的若干语句,不必用花括号括起来。×
break语句用于退出条件语句和循环语句的判断。×
contiune语句表示将循环继续下去。×
凡是while语句能解决的问题也能用do…while语句解决。√
凡是用while语句能解决的问题都可以用for语句实现。√
凡是用for语句能解决的问题都可以用while语句实现。√
造成“死循环“的主要原因是循环变量的值没有得到必要的修改。√
2 下列程序存在哪些错误?
100
(1)求 sum=Σ 1/n
i=1
main()
{ int n,sum;
n=1;
while(n<100) sum+=n;n++;
printf(“sum=%f\n”,sum);
}
sum没有初始化,while(n<=100)
⑵从键盘输入若干学生的成绩(输入负分结束),输出平均成绩和最高分。
main() /* a:平均成绩;n学生数;max最高分;sum总分;s单项成绩单*/
{ int n=0;
float a,sum,max=0;
scanf(“%f”,&s);
while(s>=0)
{ if(s>max) max=s;
sum=sum+s;n=n+1;
}
a=sum/n;
printf(“max=%f,a=%f\n”,max,a);
}
没有定义s,sum没有初始化,max的初始值不应为0,
(3) 计算并输出Σ(2n+1)超过1000的第一个n值。
n=1
main()
{ int n=1,sum=0;
for(; ; n++) sum=sum+(2*n+1);
if(sum>2000) break;
printf(“n=%d,sum=%d\n”,n,sum);
}
if(sum>1000)break;for中的表达式2不能省去
⑷求2—1000之间的全部素数(每行显示10个数)。
#include “math.h”
main()
{ int m=3,k,i,n=1;
printf(“%7d”,2);
do
if(n%10=0) printf(“\n”);
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0) continue;
if(i>=k+1)
{ printf(“%8d”,m); n++;}
while m>1000; printf(“\n”);
}
if(n%10==0) while(m<=1000)
开始
3 sn=a+aa+…+a…a,其中a是1-9中的一个数字。n为一正整数,a和n均从键盘输入。(例如输入n,a为4,sn=8+88+888+8888)
#includevoid main()
sn=0;t=a
{
int a,n,t,i;
输入a,n
long sn=0;
scanf("%d,%d",&a,&n);
i=1
t=a;
for(i=1;i<=n;i++)
i<=n
{
sn=sn+a;
a=a*10+t;
}
sn=sn+a
printf("sn=%ld\n",sn);
}
a=a*10+t
i++
4打印以下图案
*
* * *
* * * * *
输出sn
* * * * * * *
* * * * *
结束
* * *
*
∞
5求sinx=Σ (-1)n x2n+1/(2n+1)!的近似值,精确到| x2n+1/(2n+1)!|<10-6
n=0
#include#includevoid main()
{
int n;
展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:C语言循环结构程序设计实验报告.doc
链接地址:https://www.renrendoc.com/p-16287489.html