资源描述:
《c语言循环作业(2)解答》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、循环作业(2)解答二、填空题:1.以下程序段的功能是:从键盘输入的若干字符中,统计出小写字母的个数,用换行符结束循环。请填空。答案:⑴:(ch=gehchar())!=‘’⑵:ch>=‘a’&&ch<=‘z’intn=0,ch;while(⑴)if(⑵)n++;printf(“n=%d”,n);2.以下程序的功能是:从键盘输入n的值,求出n项之和sn=2+22+222+…+22…2(n个)。请填空。#includevoidmain(){intcount=1;longinta=2
2、,n,sn=0,tn=0;printf(“inputn:”);scanf(“%ld”,&n);while(count<=n)答案:⑴:tn=tn+a;⑵:a=a*10;{⑴;sn=sn+tn;⑵;count++;}printf(“sn=%ld”,sn);}3.以下程序的功能是用“辗转相除法”求两个正整数的最大公约数。请填空。#include答案:⑴:r=a;a=b;b=r;⑵:a%bvoidmain(){intr,a,b;printf(“inputaandb:”);scanf(“%
3、d%d”,&a,&b);if(avoidmain(){charch;while((ch=getchar())!=‘’){if((ch>=’a’&&ch<=’z’)
4、
5、(ch>=’A’&&ch<=’Z’))
6、答案:⑴:ch>’Z’
7、
8、ch>’z’⑵:ch-26{ch++;if(⑴)ch=⑵;}printf(“%c”,ch);}}1.以下程序运行后的输出结果是:#includevoidmain(){答案:k=1,i=2inti,k;for(k=19,i=0;;){k-=3;if(k%4==0){i++;continue;}elseif(k<5)break;}printf(“k=%d,i=%d”,k,i);}}2.以下程序的功能是:求sum=1!+2!+3!+…+20!的值。请填空。#in
9、clude答案:⑴:s=s+t⑵:svoidmain(){intn;doubles=0,t=1;for(n=1;n<=20;n++){t=t*n;⑴;}printf(“sum=%e”,⑵);}3.以下程序的功能是:求数列1,1,1,3,5,9,17,31,......的前15个数,此数列的规律是从第4个数开始,每个数等于前3个数的和。请填空。#includevoidmain(){答案:⑴:f1+f2+f3⑵:f3=fintf,f1,f2,f3,i;f1=f2=f3
10、=1;printf(“%d%d%d”,f1,f2,f3);for(i=4;i<=15;i++){f=⑴;printf(“%d”,f);f1=f2;f2=f3;⑵;}}1.以下程序的功能是用近似公式e=1+++…+,计算e的值(精度为<10-6)。请填空。#include答案:⑴:t>=1e-6⑵:i++voidmain(){inti=1;doublee=1.0,t=1.0;while(⑴){t/=(double)i;e=e+t;⑵;}printf(“e=%f”,e);}2.以下程序
11、的功能是用公式=1-+-+…+,计算∏的近似值(精度为<10-4)。请填空。#include答案:⑴:sign=-sign;⑵:pi=4*sum#includevoidmain(){intsign=1,i=1;floatnext=1.0,pi,sum=0.0;while(fabs(next)>=1e-4){sum+=next;⑴;i=i+2 ;next=(float)sign/i;}⑵;printf(“pi=%f”,pi);}3.以下程序的功能是求正整数的所有因子之
12、和。请填空。答案:⑴:i<=x⑵:x=x/i#includevoidmain(){inti=1,x,s=0;scanf(“%d”,&x);for(i=1 ;⑴ ;i++)if(x%i==0){s=s+i ;⑵;}printf(“%d”,s);}三、改错题:1.下面程序的功能是在一个正整数的各数字中找出最大者。程序中有若干错误,请修改:max=0#includevoidmain(){intn,max,t