C语言test4.docx

上传人:b****5 文档编号:26441103 上传时间:2023-06-19 格式:DOCX 页数:17 大小:20.25KB
下载 相关 举报
C语言test4.docx_第1页
第1页 / 共17页
C语言test4.docx_第2页
第2页 / 共17页
C语言test4.docx_第3页
第3页 / 共17页
C语言test4.docx_第4页
第4页 / 共17页
C语言test4.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

C语言test4.docx

《C语言test4.docx》由会员分享,可在线阅读,更多相关《C语言test4.docx(17页珍藏版)》请在冰豆网上搜索。

C语言test4.docx

C语言test4

实验四循环结构程序设计

(2)

一、实验目的

1.加深对循环语句的认识。

2.掌握在程序设计中用循环的方法实现各种算法(如枚举法、迭代法、递推法)

二、实验内容

1.阅读、调试、运行程序,比较阅读的结果和运行的结果。

(1)

#include

voidmain()

{inti=0,a=0;

while(i<20)

{for(;;)

{if((i%10)==0)break;

elsei--;

}

i+=11;a+=i;

}

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

}

(2)

#include

voidmain()

{inta,y;

a=10;y=0;

do{a+=2;y+=a;

printf("a=%dy=%d\n",a,y);

if(y>20)break;

}while(a=14);

}

(3)输入为“321”时,输出是什么?

#include

voidmain()

{charc;

while((c=getchar())!

='\n')

switch(c-'1')

{case0:

case1:

putchar(c+2);

case2:

putchar(c+3);break;

case3:

putchar(c+4);

default:

putchar(c+1);break;

}

printf("\n");

}

(4)

#include

voidmain()

{inti,x,y;

i=x=y=0;

do

{++i;

if(i%2!

=0){x=x+i;i++;}

y=y+i++;

}while(i<=7);

printf("x=%d,y=%d\n",x,y);

}

2.完善程序,并调试运行

(1)输入字符串,计算并输出其长度。

#include

voidmain()

{

intlen,i=0;

charch;

printf("pleaseinputastring:

\n");

ch=getchar();

while(ch!

='\n'){

i++;

(1);

}

(2);

printf("thestringhas%dcharacters.",len);

}

(2)下面程序的功能是根据以下公式求π值(直到最后一项小于10-5为止)

#include

voidmain()

{doubles=0.0,t=1.0;

intn;

for(

(1);t>=1e-5;n++)

{s+=t;t=

(2);}

printf("%f",2.0*(3));

}

(3)以下程序的功能:

计算并输出m以内最大的n个素数及它们的和。

#include

#include

voidmain()

{intsum=0,n,j,yes,m;

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

while(m>=2&&

(1))

{yes=1;

for(j=2;j<=m/2;j++)

if(m%j==0)

{yes=0;

(2);}

if(yes)

{sum+=m;

(3);

printf("%d\n",m);}

m--;

}

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

}

(4)输出100到10000之间的各位数字之和能被15整除的所有数,输出时每10个一行,请填空完成。

#include

voidmain()

{intm,n,k,i=0;

for(m=100;m<=1000;m++)

{___

(1)__;n=m;

do

{k=k+

(2);

n=n/10;

}(3);

if(k%15==0)

{printf("%5d",m);

i++;

if(i%10==0)(4);

}

}

}

3.修正程序,并调试运行

(1)以下程序的功能是求

请改正程序中的错误,使程序能得到正确的运行结果。

注意:

程序中有4处错误,不得增行和删行,也不得更改程序的结构!

程序如下:

#include

voidmain()

{intn,i,j,t;

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

ints;

printf("Pleaseinputanumber:

");

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

scanf("%d",n);

s=0;

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

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

{t=0;

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

t=t+j;

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

s=s+1/t;

}

printf("%10.6f\n",s);

}

(2)

已知一个数列的前三项分别为0、0、1,以后的各项都是其相邻的前三项的和。

下列给定程序的功能是:

计算并输出该数列的前n项的平方根之和。

例如,当n=10时,程序的输出结果应为23.197745。

#include

#include

voidmain()

{doublesum,s0,s1,s2,s;

intn,k;

scanf("%d",&n);

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

sum=0.0;

if(n<=2)sum=0.0;

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

s0=0.0;s1=0.0;s2=0.0;

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

for(k=4;k>n;k++)

{s=s0+s1+s2;

sum+=sqrt(s);

s0=s1;s1=s2;s2=s;

}

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

}

(3)下列给定程序的功能是:

给定n个成绩,统计并输出平均成绩和及格率。

#include

#include

voidmain()

{intx,j,c=0,n=6;

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

floatj;

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

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

{scanf("%d",&x);

if(x>=60)c++;

xa+=x;

}

xa=xa/n;

printf("ave=%f\n",xa);

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

printf("percent=%.1f%%\n",c/n*100);

}

(4)给定程序的功能是:

求三个正整数的最小公倍数。

例如,给变量x、y、z分别输入15112,则输出结果应当是:

330。

#include

voidmain()

{intx,y,z,j,t,n,m;

scanf("%d%d%d",&x,&y,&z);

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

j=0;

t=j%x;

m=j%y;

n=j%z;

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

while(t!

=0&&m!

=0&&n!

=0)

{j=j+x;

t=j%x;

m=j%y;

n=j%z;

}

printf("Theminimalcommonmultipleis:

%d\n",j);

}

4.编写程序,并调试运行

(1)输入一个自然数,判断它是否为“对称”数。

如整数“12321”是一个对称数。

(2)打印输出所有除以11后所得商正好是它的各位数字平方和的三位数。

(3)爱因斯坦阶梯问题。

设有一个阶梯,不知其它阶数,但知:

每步跨2阶,最后剩下1阶;每步跨3阶;最后剩下2阶;每步跨5阶;最后剩下4阶;每步跨7阶,正好到楼顶。

求最少有多少阶。

(4)输入20个1~90的整数,分类统计1~30、31~60、61~90的数各有多少个?

2、填空

1、#include

voidmain()

{

intlen,i=0;

charch;

printf("pleaseinputastring:

\n");

ch=getchar();

while(ch!

='\n'){

i++;

ch=getchar();

}

Len=i;

printf("thestringhas%dcharacters.",len);

}

2、#include

voidmain()

{doubles=0.0,t=1.0;

intn;

for(n=1;t>=1e-5;n++)

{s+=t;t=n*t/(2*n+1);}

printf("%f",2.0*s);

}

3、#include

#include

voidmain()

{intsum=0,n,j,yes,m;

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

while(m>=2&&n>0)

{yes=1;

for(j=2;j<=m/2;j++)

if(m%j==0)

{yes=0;

break;}

if(yes)

{sum+=m;

n--;

printf("%d\n",m);}

m--;

}

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

}

4、#include

voidmain()

{intm,n,k,i=0;

for(m=100;m<=1000;m++)

{k=0;n=m;

do

{k=k+n%10;

n=n/10;

}while(n!

=0);

if(k%15==0)

{printf("%5d",m);

i++;

if(i%10==0)printf(“\n”);

}

}

}

3、改错预习

1、

#include

voidmain()

{intn,i,j,t;

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

floats;

printf("Pleaseinputanumber:

");

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

scanf("%d",&n);

s=0;

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

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

{t=0;

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

t=t+j;

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

s=s+1.0/t;

}

printf("%10.6f\n",s);

}

2、

#include

#include

voidmain()

{doublesum,s0,s1,s2,s;

intn,k;

scanf("%d",&n);

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

sum=1.0;

if(n<=2)sum=0.0;

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

s0=0.0;s1=0.0;s2=1.0;

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

for(k=4;k<=n;k++)

{s=s0+s1+s2;

sum+=sqrt(s);

s0=s1;s1=s2;s2=s;

}

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

}

3、

#include

#include

voidmain()

{intx,j,c=0,n=6;

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

floatxa;

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

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

{scanf("%d",&x);

if(x>=60)c++;

xa+=x;

}

xa=xa/n;

printf("ave=%f\n",xa);

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

printf("percent=%.1f%\n",c/n*100);

}

4、

#include

voidmain()

{intx,y,z,j,t,n,m;

scanf("%d%d%d",&x,&y,&z);

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

j=x;

t=j%x;

m=j%y;

n=j%z;

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

while(t!

=0||m!

=0||n!

=0)

{j=j+x;

t=j%x;

m=j%y;

n=j%z;

}

printf("Theminimalcommonmultipleis:

%d\n",j);

}

4、编程预习:

1、#include

voidmain()

{inta,b=0,c;

printf("请输入您想判断的正整数:

");

scanf("%d",&a);

c=a;

while(a!

=0)

{b=a%10+b*10;

a=a/10;}

if(b==c)

printf("您输入的数是对称数。

\n");

else

printf("您输入的数不是对称数。

\n");

}

 

思路:

倒序数与原数相等。

2、

#include

voidmain()

{inta=100,b,c,d,e,x;

while(a<=999)

{b=a/11;

c=a%10;

d=a/10%10;

e=a/100%10;

x=c*c+d*d+e*e;

if(x==b)

{printf("%d\n",a);

a=a+1;}

else

a=a+1;

}

}

3、

#include

voidmain()

{inta=7,i=0;

while(i<1)

{if(a%2==1&&a%3==2&&a%5==4&&a%7==0)

{printf("%d\n",a);

i=i+1;}

else

a=a+1;}

}

4、

#include

voidmain()

{intx,a=0,b=0,c=0,i=1;

printf("请依次输入范围在1-90的20个正整数:

");

while(i<=20)

{scanf("%d",&x);

if(1<=x&&x<=30)

{a=a+1;

i=i+1;}

elseif(30

{b=b+1;

i=i+1;}

elseif(61

{c=c+1;

i=i+1;}

else

printf("Error!

");

}

printf("%d%d%d\n",a,b,c);

}

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

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1