资源描述:
《c语言程序设计实验参考答案(6)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验六循环结构程序设计(上)1.改错题(请纠正程序中存在错误,使程序实现其功能)⑴下列程序的功能为:求1~100之和(和值为5050)并输出。#include#includevoidmain()voidmain(){inti=1,sum=0;{inti,sum=0;while(i<100)i=1;sum=sum+i;while(i<=100)i++;{sum=sum+i;printf("Sum=%d",sum);i++;}}printf(“Thesumfrom1to100is%d”,sum);}⑵下列程序的功能为:倒序打印26个英文字母,每行输出
2、5个字母。#include#includevoidmain()voidmain(){charx;{charx;x='Z';x='Z';while(x!='A')while(x>='A'){printf("%3d",x);{printf("%3c",x);if(('Z'-x)%5==0)printf("");x--;x++;}}}}2.程序填空(请填写适当的符号或语句,使程序实现其功能)⑴火柴棍游戏:假设有21根火柴棍,两人轮流拿取,每次可以取1-4根,不能多拿,也不能少拿。谁拿最后一根,谁就认输。#includevoidmain()
3、{intn=21,i;while(n>0){printf("Youtake...");scanf("%d",&i);if(i<1
4、
5、i>4)printf("Don'ttrytocheatme,take1,2,3,or4,please!");else{printf("Itake%d",5-i);n=n-5;//剩下的火柴棍根数}}printf("Nowtakethelastone,please!Haha^-^,youloss!)");}⑵下列程序的功能为:计算1020个西瓜几天后能卖完(第一天卖了一半多两个,以后每天卖剩的一半多两个)。#includevoi
6、dmain(){intday,x1,x2;day=0;x1=1020;while(x1>0){x2=x1/2-2;x1=x2;day++;}printf("day=%d",day);}⑶下列程序的功能为:输入一个整数,求取该数的位数及倒序数(1234的倒序数为4321)。#includevoidmain(){longx,m,y=0;intgw,count=0;printf("inputx=");scanf("%ld",&x);m=x;do{gw=m%10;y=y*10+gw;m=m/10;count++;}while(m>0);printf("x=%ld,count=
7、%d,recycle=%ld",x,count,y);}3.编程题(编写程序,并上机调试运行)⑴有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13,...,编写程序求这个数列的前20项之和。解法1:#include"stdio.h"voidmain(){intk;doublea=1,b=2,c,sum=0;for(k=1;k<=20;k++){sum=sum+b/a;c=a+b;//前一个数的分子与分母之和a=b;//前一项的分子作为下一项的分母b=c;//去一个数的分子与分母之和作为下一项的分子}printf("sum=%lf",sum);}解法2:#includ
8、e"stdio.h"voidmain(){intk;doublea=1,b=2,c,sum=0;for(k=1;k<=20;k++){sum=sum+b/a;b=a+b;//前一个数的分子与分母之和a=b-a;//前一项的分子作为下一项的分母}printf("sum=%lf",sum);}⑵求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值,其中a是一个数字。例如:2+22+222+2222+22222(n=5),n由键盘输入。解法1:#include"stdio.h"voidmain(){inta,n,k;longsum=0,sa=0;printf("输入a,n:");sca
9、nf("%d,%d",&a,&n);for(k=1;k<=n;k++){sa=sa*10+a;//得到第k个数据项:aaa...sum+=sa;}printf("sum=%ld",sum);}解法2:#include"stdio.h"voidmain(){inta,n,k;longsum=0,sa=0,s10;printf("输入a,n:");scanf("%d,%d",&a,&n);for(k=1,s10=1;k<