欢迎来到天天文库
浏览记录
ID:1118578
大小:49.50 KB
页数:6页
时间:2017-11-07
《循环结构程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
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++;}printf("Thesumfrom1to1
2、00is%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)下列程序的功能为:输出如下的图形,要求顶端的*定位在第21字符位置,请纠正程序中存在错误,使程序实现其功能,程序以
3、文件名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;j++)printf("");for(j=0;j<2*i+1;j++)printf("*");printf("");}}2.程序填空
4、(1)下列程序的功能为:用辗转相除法求两个正整数的最大公约数;请填写适当的符号或语句,使程序实现其功能,程序以文件名sy4_4.c存盘。提示:“辗转相除法”求两个正整数的最大公约数的算法如下:①将两数中大的那个数放在m中,小的放在n中。②求出m被n除后的余数r。③若余数为0则执行步骤(7);否则执行步骤(4)。④把除数作为新的被除数;把余数作为新的除数。⑤求出新的余数r。⑥重复步骤(3)到(5)。⑦输出n,n即为最大公约数。#includemain(){intr,m,n,t;scanf("%d%d",&m,&n);if(m5、}r=m%n;while(r){m=n;n=r;r=m%n;}printf("%d",n);}(2)下列程序的功能为:计算1020个西瓜几天后能卖完(第一天卖了一半多两个,以后每天卖剩的一半多两个);请填写适当的符号或语句,使程序实现其功能,程序以文件名sy4_5.c存盘。#includemain(){intday,x1,x2;day=0;x1=1020;while(x1>0){x2=x1/2-2;x1=x2;day++;}printf(“day=%d”,day);}(3)下列程序的功能为:输出100以内能被3整除且个位数为6的所有整数;请填写适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~100之间所有含8的数之和(程序以文件名sy4_7.c存盘)。参考程序:#includemain(){inti,sum=0;for(i=1;i<=100;i++)if(i%10==87、8、i/10==8)sum+=i;printf("sum=%d",su9、m);}(2)编写一个程序实现如下功能:用下列近似公式计算e值,误差应小于10-5(程序以文件名sy4_8.c存盘)。…参考程序:#includemain(){inti=0;longn=1;floate=0,t=1;while(t>1e-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。要求:程序对每个输入的自然数计算并输出相应
5、}r=m%n;while(r){m=n;n=r;r=m%n;}printf("%d",n);}(2)下列程序的功能为:计算1020个西瓜几天后能卖完(第一天卖了一半多两个,以后每天卖剩的一半多两个);请填写适当的符号或语句,使程序实现其功能,程序以文件名sy4_5.c存盘。#includemain(){intday,x1,x2;day=0;x1=1020;while(x1>0){x2=x1/2-2;x1=x2;day++;}printf(“day=%d”,day);}(3)下列程序的功能为:输出100以内能被3整除且个位数为6的所有整数;请填写适
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~100之间所有含8的数之和(程序以文件名sy4_7.c存盘)。参考程序:#includemain(){inti,sum=0;for(i=1;i<=100;i++)if(i%10==8
7、
8、i/10==8)sum+=i;printf("sum=%d",su
9、m);}(2)编写一个程序实现如下功能:用下列近似公式计算e值,误差应小于10-5(程序以文件名sy4_8.c存盘)。…参考程序:#includemain(){inti=0;longn=1;floate=0,t=1;while(t>1e-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。要求:程序对每个输入的自然数计算并输出相应
此文档下载收益归作者所有