资源描述:
《循环结构程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验四循环结构程序设计(解答)1.改错题(1)下列程序的功能为:求1~100之和(和值为5050)并输出。请纠正程序中存在错误,使程序实现其功能,程序以文件名sy4_1.c存盘。#includemain(){inti,sum=0;i=1;while(i<100)sum=sum+i;i++;printf(“Thesumfrom1to100is%d”,sum);}改正后的程序:#includemain(){inti,sum=0;i=1;while(i<=100){sum=sum+i;i++;
2、}printf("Thesumfrom1to100is%d",sum);}(2)下列程序的功能为:倒序打印26个英文字母。请纠正程序中存在错误,使程序实现其功能,程序以文件名sy4_2.c存盘。#includemain(){charx;x='z';while(x!='a'){printf("%3d",x);x++;}}改正后的程序:#includemain(){charx;x='z';while(x!='a'-1){printf("%3c",x);x--;}}(3)下列程序的功能为:输出
3、如下的图形,要求顶端的*定位在第21字符位置,请纠正程序中存在错误,使程序实现其功能,程序以文件名sy4_3.c存盘。****************#includevoidmain(){inti,j;for(i=0;i<4;i++){for(j=0;j<=20;j++)printf("");for(j=0;j<2*i+1;j++)printf("*");}}改正后的程序:#includevoidmain(){inti,j;for(i=0;i<4;i++){for(j=0;j<=20-i
4、;j++)printf("");for(j=0;j<2*i+1;j++)printf("*");printf("");}}2.程序填空(1)下列程序的功能为:用辗转相除法求两个正整数的最大公约数;请填写适当的符号或语句,使程序实现其功能,程序以文件名sy4_4.c存盘。提示:“辗转相除法”求两个正整数的最大公约数的算法如下:①将两数中大的那个数放在m中,小的放在n中。②求出m被n除后的余数r。③若余数为0则执行步骤(7);否则执行步骤(4)。④把除数作为新的被除数;把余数作为新的除数。⑤求出新的余数r。⑥重复步骤(3)到(
5、5)。⑦输出n,n即为最大公约数。#includemain(){intr,m,n,t;scanf("%d%d",&m,&n);if(mmain(){intday,x1,x
6、2;day=0;x1=1020;while(x1>0){x2=x1/2-2;x1=x2;day++;}printf(“day=%d”,day);}(3)下列程序的功能为:输出100以内能被3整除且个位数为6的所有整数;请填写适当的符号或语句,使程序实现其功能,程序以文件名sy4_6.c存盘。#includemain(){inti,j;for(i=0;i<10;i++){j=i*10+6;if(i%3!=0)continue;printf("%d",j);}}3.编程题(1)编写一个程序实现如下功能:计算1
7、~100之间所有含8的数之和(程序以文件名sy4_7.c存盘)。参考程序:#includemain(){inti,sum=0;for(i=1;i<=100;i++)if(i%10==8
8、
9、i/10==8)sum+=i;printf("sum=%d",sum);}(2)编写一个程序实现如下功能:用下列近似公式计算e值,误差应小于10-5(程序以文件名sy4_8.c存盘)。…参考程序:#includemain(){inti=0;longn=1;floate=0,t=1;while(t>1e-
10、5){e+=t;i++;n*=i;t=1.0/n;}printf("e=%f",e);}(3)编写一个程序实现如下功能:验证下列结论:任何一个自然数n的立方都等于n个连续奇数之和。例如:13=1;23=3+5;33=7+9+11。要求:程序对每个输入的自然数计算并输出相应