循环结构的习题汇总
教材:C程序设计谭浩强(第五版)
【例5.1】
求1+2+3+4+……+100
编写程序:
【例1】
打印40-200之间所有偶数
编写程序:
【例2】
打印1-100之间能被3整除的数
编写程序:
【例5.2】
用do…while语句求1+2+3+…+100
编写程序:
#include<stdio.h>
int main( )
{
int i=1;//循环变量初始化
int sum=0;
do//循环结构开始
{
sum=sum+i;//循环体
i++;//循环变量迭代
}
while(i<=100);//循环条件
printf("sum=%d",sum);
}
【例3】
统计1-200之间可以被5整除但不被三整除的个数
编写程序:
【例4】
用for语句求1+2+3+……+100=?
编写程序:
#include<stdio.h>
int main( )
{
int sum=0,i;
for(i=1;i<=100;i++)
sum=sum+i;
printf("sum=%d",sum);
}
【例5】
得到以下
编写程序:
【例6】
统计三个班成绩情况,每个班有5名同学,求出各个班的平均分和所有班级的平均分,并统计三个班的及格人数;
思路:
【先死后活,先简单再复杂】
各个班的平均分
所有班级的平均分,得到所有班级的总分allclasstotalscore
定义变量表示 班级个数,定义变量表示 学生个数stunum
定义变量 classtotalscore每个班级的总分
定义变量score,接收学生成绩
使用两层for循环
定义变量count,保存及格人数
if 语句判断是否及格,若及格,累积到count
编写程序:
#include<stdio.h>
int main()
{
int classnum=3;
int stunum=5;
int i,j;
double score=0.0;
double classtotalscore=0.0;
double allclasstotalscore=0.0;
int count=0;
for(i=1;i<=classnum;i++)
{
classtotalscore=0.0;
for(j=1;j<=stunum;j++)
{
printf("\n请输入第%d个班第%d名同学的成绩:\n",i,j);
scanf("%lf",&score);
if(score>=60)
{
count++;
}
classtotalscore+=score;
}
allclasstotalscore+=classtotalscore;
printf("\n第%d个班级的平均分是:%.2f\n",i,classtotalscore/stunum);
}
printf("所有班级的平均分=%.2f\n",allclasstotalscore/(classnum*stunum));
printf("及格人数=%d",count);
}
【注意】大括号的使用
【例7】
打印九九乘法表
编写程序:
【说明】
先打印一列,再打印多列
注意分析,逐步完成
注意最后printf中先j后i
【习题3】
输入两个数m和n,求其最大公约数和最小公倍数
编写程序:
【习题5】
Sn=a+aa+aaa+aaa+......+aa..a(n个a)
a是一个数字,n是表示a的位数
例如a=2,n=5,2+22+222+2222+22222
求Sn
编写程序:
【习题8】
请输出水仙花数,水仙花数是一个三位数,其个位数立方和等于本身
例如153=1*1*1+5*5*5+3*3*3
编写程序:
【习题9】
找出1000以内的完数并按照下列个数输出
6 its factors 1,2,3
完数:一个数他的因子之和等于本身
编写程序: