第五章 循环结构课后思考
本章重点、难点:
第五章主要讨论了3种循环结构语句-for语句、while语句以及do_while语句,另外还了解了一下if语句和goto语句组合构成的循环。
本章重点:对于for语句、while语句和do_while的熟悉在掌握以及应用;掌握break语句和continue语句在循环语句中的应用,明白break语句和continue语句在循环语句中各自的含义及作用。
本章难点:在编辑代码时条件语句和循环体结构的构建及描述避免发生运行不了或出现无限循环的结果;对于break语句和continue语句的掌握应用。
课后7个思考题我的选做结果分析如下:
1
#include<stdio.h>
main()
{
int a,b,c,d,e,f;
for(a=1;a<=5;a++)
for(b=4;b>=a;b--)
printf(" ");
for(c=1;c<=2*a-1;c++)
printf("*");
printf("
");
}
for(d=1;d<=4;d++)
{
for(e=1;e<=d;e++)
printf(" ");
for(f=1;f<=9-2*d;f++)
printf("*");
printf("
");
}
}
运行结果如下:
分析:我将这个图分为两个部分,一部分为前5行另一部分为后4行,应用数列的方法构建条件语句和循环体结构,将整个图形分为两个部分构建。
2
#include<stdio.h>
main()
{
int a,b,c,d;
for(a=1;a<=5;a++)
{
for(b=1;b<=2*a-1;b++)
printf("*");
printf("
");
}
for(c=1;c<=4;c++)
{
for(d=1;d<=9-2*c;d++)
printf("*");
printf("
");
}
}
运行结果:
分析:于第一个几何图形的代码构建差不多
4
#include<stdio.h>
main()
{
int a,b,c,d,e,f;
for(a=1;a<=5;a++)
{
for(b=1;b<=a-1;b++)
printf(" ");
for(c=1;c<=11-2*a;c++)
printf("*");
printf("
");
}
for(d=1;d<=4;d++)
{
for(e=1;e<=4-d;e++)
printf(" ");
for(f=1;f<=1+2*d;f++)
printf("*");
printf("
");
}
}
运行结果如下:
分析:分为两部分代码,前5行和后4行分为两段代码两个循环结构,应用数列的知识构建循环体结构和条件语句。
5
#include<stdio.h>
main()
{
int a,b,c,d,e,f;
for(a=1;a<=5;a++)
{
for(b=1;b<=a-1;b++)
printf(" ");
for(c=1;c<=7;c++)
printf("*");
printf("
");
}
for(d=1;d<=4;d++)
{
for(e=1;e<=4-d;e++)
printf(" ");
for(f=1;f<=7;f++)
printf("*");
printf("
");
}
}
运行结果:
分析:7个图形前六个都差不多,应用等差数列的方法构建条件语句和循环结构分为两部分打出代码。
7
#include<stdio.h>
main()
{
int a,b,c;
for(a=1;a<=5;a++)
{
for(b=a;b<5;b++)
printf(" ");
for(c=1;c<=(2*a-1);c++)
printf(" * ");
printf("
");
}
for(a=1;a<=2;a++)
{
for(b=1;b<=9;b++)
{
printf(" * ");
}
printf("
");
}
for(a=1;a<=4;a++)
{
for(b=a;b<5;b++)
printf(" * ");
for(c=1;c<=(2*a-1);c++)
printf(" ");
for(b=a;b<5;b++)
printf(" * ");
printf("
");
}
}
运行结果如下:
分析:我将该图型分为了三个部分来做,第一部分为前5行,第二部分为第6和第7行,最后4行为一部分,与前面不同的是之前的"*"号在这用" * "代替了;实质还是用数列来做。但我总觉得语书上的原图与运行结果有一定的差距,书上原图如下:
我觉得运行结果的上下距离与书上原图有差距;但我搞不定。