2.程序填空(1)以下程序的功能是计算1~50之间能被7整除的整数之和。#includestdio.hvoidmain(){inti,sum=0;for(i=1;50;i++)if(i%7==0)sum+=i;printf(sum=%d\n,sum);}(2)下面程序接收来自键盘的输入,直到输入Ctrl+Z(值为-1)键为止。这些字符被原样输出,但若有连续一个以上的空格时只输出一个空格。请填空。#includestdio.hvoidmain(){charcx;charfront=’’;while((cx=getchar())!=’\n’){if(cx!=’’)putchar(cx);if(cx==’’)if(front!=’’)putchar(cx);front=cx;}}3.程序改错(1)下列程序的功能是求1+3+5+…99的和。#includestdio.hvoidmain(){ints,i;★//ints=0,i;i=1;while(i=99)s=s+i;★//{s=s+i;i++;}printf(1+3+5+…99的和是:%d\n,s);}(2)下面程序的功能是输入一个正整数,判断是否是素数,若为素数输出1,否则输出0。#includestdio.hvoidmain(){inti,x,y=0;★//y=1scanf(%d,&x);for(i=2;i=x/2&&y;i++)if((x%i)!=0)y=0;★//x%i==0printf(%d\n,y);}4.设计性实验(1)题/*方法(1)精度控制*/#includestdio.h#includemath.hmain(){ints;floatn,t,pi;t=1;pi=0;n=1.0;s=1;while((fabs(t))=1e-6){pi=pi+t;n=n+2;s=-s;t=s/n;}pi=pi*4;printf(pi=%10.6f\n,pi);}/*方法(2)次数控制*/#includestdio.h#includemath.hmain(){ints;longtimes;floatn,t,pi;t=1;pi=0;n=1.0;s=1;for(times=1;times=1e9;times++){pi=pi+t;n=n+2;s=-s;t=s/n;}pi=pi*4;printf(pi=%10.6f\n,pi);}(2)题main(){inti,j,frame;doublewheattal=0;doublewheatfnu=1;printf(Pleaseinputframe’snumbers:);scanf(%d,&frame);for(i=0;iframe;i++){wheattal+=wheatfnu;wheatfnu+=wheatfnu;}printf(\nTotalwheattatol’stimeter=%e\n,wheattal/1.40e8);}(3)题/*方法一:使用递推公式n=n+2*/main(){inti,n=1;doubles=0,t=1;for(i=1;i=20;i++){t*=n;s+=t;n+=2;}printf(s=%lf,s);getch();}/*方法二:使用通项公式2*i+1*/main(){inti;doubles=0,t=1;for(i=1;i=20;i++){t*=2*i+1;s+=t;}printf(s=%lf,s);getch();}/*方法三*/#includestdio.hmain(){longtotal,sum,m,n,t;total=0;for(m=1;m=20;m++){sum=1;t=1;for(n=1;n=m;n++){sum=sum*t;t=t+2;}total=total+sum;}printf(total=%ld,total);}2.程序填空(1)以下程序的功能是计算1~50之间能被7整除的整数之和。#includestdio.hvoidmain(){inti,sum=0;for(i=1;50;i++)if(i%7==0)sum+=i;printf(sum=%d\n,sum);}(2)下面程序接收来自键盘的输入,直到输入Ctrl+Z(值为-1)键为止。这些字符被原样输出,但若有连续一个以上的空格时只输出一个空格。请填空。#includestdio.hvoidmain(){charcx;charfront=’’;while((cx=getchar())!=’\n’){if(cx!=’’)putchar(cx);if(cx==’’)if(front!=’’)putchar(cx);front=cx;}}3.程序改错(1)下列程序的功能是求1+3+5+…99的和。#includestdio.hvoidmain(){ints,i;★//ints=0,i;i=1;while(i=99)s=s+i;★//{s=s+i;i++;}printf(1+3+5+…99的和是:%d\n,s);}(2)下面程序的功能是输入一个正整数,判断是否是素数,若为素数输出1,否则输出0。#includestdio.hvoidmain(){inti,x,y=0;★//y=1scanf(%d,&x);for(i=2;i=x/2&&y;i++)if((x%i)!=0)y=0;★//x%i==0printf(%d\n,y);}4.设计性实验(1)题/*方法(1)精度控制*/#includestdio.h#includemath.hmain(){ints;floatn,t,pi;t=1;pi=0;n=1.0;s=1;while((fabs(t))=1e-6){pi=pi+t;n=n+2;s=-s;t=s/n;}pi=pi*4;printf(pi=%10.6f\n,pi);}/*方法(2)次数控制*/#includestdio.h#includemath.hmain(){ints;longtimes;floatn,t,pi;t=1;pi=0;n=1.0;s=1;for(times=1;times=1e9;times++){pi=pi+t;n=n+2;s=-s;t=s/n;}pi=pi*4;printf(pi=%10.6f\n,pi);}(2)题main(){inti,j,frame;doublewheattal=0;doublewheatfnu=1;printf(Pleaseinputframe’snumbers:);scanf(%d,&frame);for(i=0;iframe;i++){wheattal+=wheatfnu;wheatfnu+=wheatfnu;}printf(\nTotalwheattatol’stimeter=%e\n,wheattal/1.40e8);}(3)题/*方法一:使用递推公式n=n+2*/main(){inti,n=1;doubles=0,t=1;for(i=1;i=20;i++){t*=n;s+=t;n+=2;}printf(s=%lf,s);getch();}/*方法二:使用通项公式2*i+1*/main(){inti;doubles=0,t=1;for(i=1;i=20;i++){t*=2*i+1;s+=t;}printf(s=%lf,s);getch();}/*方法三*/#includestdio.hmain(){longtotal,sum,m,n,t;total=0;for(m=1;m=20;m++){sum=1;t=1;for(n=1;n=m;n++){sum=sum*t;t=t+2;}total=total+sum;}printf(total=%ld,total);}2.程序填空(1)求任意两个整数之间所有的素数。#includestdio.hvoidmain(){inti1,i2,i,j,flag;printf(inputtwointeger(i1,i2):);scanf(%d%d,&i1,&i2);printf(primenumber:\n);for(i=i1;i=i2;i++){flag=1;for(j=2;j=i-1;j++){if(i%j==0){flag=0;break;}}if(flag==1)printf(%d\t,i);}printf(\n);}(2)以下程序的功能是输出下三角九九乘法表。#includestdio.hvoidmain(){inti,j;for(i=1;i=9;i++){for(j=1;j=i;j++)printf(%d*%d=%d\t,i,j,i*j);printf(\n);}}3.程序改错(1)下列程序的功能是输出所有的“水仙花数”。所谓“水仙花数”是指一个三位数,该数的各位数字立方和等于该数本身的数。例如:153是一个“水仙花数”,因为153=13+53+33。#includestdio.hvoidmain(){intx,s,a;for(s=0,x=100;x1000;s=0,x++)★{a=x;while(a!=0){s=s+(a%10)*(a%10)*(a%10);★a=a/10;}if(x==s)printf(%d,x);★}}(2)以下程序的功能是输出1至1000之间的所有完数。若一个整数等于该数的所有因子之和,则称该整数为完数。#includestdio.hvoidmain(){inti,j;ints;for(i=1;i=999;i++){s=1;★//s=0;for(j=1;ji-1;j++)★//for(j=1;j=i-1;j++){if(i/j==0)s=s+j;}★//i%jif(s=i)printf(%5d,i);★//s==i}}4.设计性实验SY61.Cmain(){inti,j,k,n=0;/*i,j,k分别代表三位整数的百位,十位,个位.n代表个数*/for(i=1;i=9;i++)for(j=0;j=9;j++)for(k=0;k=9;k++)if(i*i*i+j*j*j+k*k*k==1099)/*在所有组合中找出满足指定条件的*/{printf(%4d,100*i+10*j+k);n++;if(n%5==0)printf(\n);/*表示每行输出5个数*/}}SY62.C#includestdio.h#includestring.hmain(){inti,j,k;for(i=1;i=4;i++)/*上三角形有4行,每循环1次输出1行*/{for(k=1;k8-((2*i-1)/2);k++)/*该循环输出每行的空格.8用于调节偏离位置,可换成别的数(=8)*/printf();for(j=1;j=2*i-1;j++)/*该循环输出每行的’*’字符*/printf(*);putchar(’\n’);/*换行*/}for(i=3;i=1;i--)/*下面为倒三角形,有3行*/{for(k=1;k8-((2*i-1)/2);k++)printf();for(j=1;j=2*i-1;j++)printf(*);putchar(’\n’);}}sy63.cmain(){intn=1,score,t;scanf(%d,&score);while(score=0&&n=5){n++;t=0;while(score!=0){t=t+(score%10)*(score%10);score=score/10;}if(t==108)printf(%d,score);scanf(%d,&score);}}SY64.C#includemath.hmain(){floatx0,x1,x2,fx0,fx1,fx2;/*x1,x2分别表示每次区间的左右端点,x0代表区间的中间点,fx0,fx1,fx2代表相应点的函数值*/do{printf(pleaseinputx1&x2:);