内容正文:
专题十二 循环结构程序设计
1、 编程题
1. 编程求1+2+3 + 4 + 5+……+ 100之和。(分别用while和do while实现)
2. 根据公式Π²/6≈1/1²+1/2²+1/3²+…+1/n²,求Π的近似值,直到最后一项的值小于10的负六次方为止。
3.有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天后可以卖完,请编程计算。
4.编程实现用“辗转相除法”求两个正整数的最大公约数,并计算最小公倍数。
5. 输入一个正整数,计算每个数字的和,如输入1234,输出10.
6.编写程序,输出以下图形
7.求解下面数学式:SUM=1-3+5-7+...-99+101
8. 有一分数序列,求出这个数列的前20项之和。
9. 用下面的公式求π的近似值,直到最后一项的绝对值小于0.0001为止:
10.【2018春考试题】一个数列是:,-,,-,……,求这个数列前20项的和.
原创精品资源学科网独家享有版权,侵权必究!
$$
专题十二 循环结构程序设计
1、 编程题
1. 编程求1+2+3 + 4 + 5+……+ 100之和。(分别用while和do while实现)
答案:(1)while循环
#include <stdio.h>
main()
{ int i,sum=0;
i=1;
while(i<=100)
{sum+=i;
i++; }
printf("%d",sum);
}
(2)do-while循环
#include <stdio.h>
main()
{ int i,sum=0;
i=1;
do
{sum+=i;
i++;
}while(i<=100);
printf("%d",sum);
}
解析:注意while循环和do-while循环的循环过程。
2. 根据公式Π²/6≈1/1²+1/2²+1/3²+…+1/n²,求Π的近似值,直到最后一项的值小于10的负六次方为止。
答案:
#include <stdio.h>
#include <math.h>
main()
{ int n=1;
double s=0;
while(1.0/(n*n)>1e-6)
{ s=s+1.0/(n*n);
n++;
}
s=sqrt(6*s);
printf("%f",s);
}
解析:本题考察循环结构程序设计,注意循环结束的条件,循环进行的条件为大于等于10的负六次方,即1.0/(n*n)>1e-6。
3.有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天后可以卖完,请编程计算。
答案:
#include <stdio.h>
main()
{ int n=1020,i=0;
while(n!=0)
{ n=n/2-2;
i++;
}
printf("%d",i);
}
解析:西瓜总数为n个,每一天卖一半多两个,即卖n/2+2个,剩n/2-2个,即n=n/2-2;依次循环。
4.编程实现用“辗转相除法”求两个正整数的最大公约数,并计算最小公倍数。
答案:
#include <stdio.h>
main( )
{ int m,n,r,s;
scanf(" %d,%d",&m,&n);
s=m*n;
while(n)
{ r=m%n; m=n; n=r;}
printf("%d,%d
" ,m,s/m);
}
解析:本题考查“辗转相除法”求两个正整数的最大公约数的程序执行过程。
5.输入一个正整数,计算每个数字的和,如输入1234,输出10.
答案:
#include <stdio.h>
main()
{ int n,s=0;
scanf("%d",&n);
while(n)
{ s+=n%10;
n=n/10;
}
printf("%d",s);
}
解析:本题考察循环结构程序设计,分析本题:第一步,先输入一个正整数n;第二步,计算最低位n%10,后求和,即s+=n%10,然后去掉最低位,即n=n/10;依次循环。
6.编写程序,输出以下图形
答案:
#include<stdio.h>
main()
{ int i,j,k;
for(i=1;i<=5;i++)
{ for(j=1;j<=i;j++)
printf(“ ”);
printf(“*”);
for(k=1;k<=10-2*i;k++)
printf(“ ”);
printf(“*”);
printf(“
”); }
}
解析:本题考察图形类的