360717070.docx循环结构程序设计
关语句,从而完成程序。在调试程序时,一定要运用前面学过的方法。
(1)编一个C程序,计算并输出数列:1、3、5、…、2n-1、…的前n项之和,其中的n由键盘输入。(要求分别用for、while、do-while语句来完成) 方法一:用for语句实现 (源文件名为for_c.c)
main()
{long s,n,k, i;
scanf(\,&n); k=2*n-1;
_____________________;
for(i=1;i<=k;i++,_________________) s+=i; printf(\+3+…+%ld=%ld\n\,k,s) }
方法二:用while语句实现(源文件名while_c.c)
main()
{ long s________________________,n,i=1; scanf(\,&n);
while(_______________________) { s+=i;
_____________________; }
printf(\+3+…+%ld=%ld\n\, 2*n-1,s); }
方法三:用do while语句实现 (源文件名do_while.c)
main()
{ long s=0,n,i=___________________; scanf(\,&n);
do
{ s+=i_____________________; i++;
} while(____________________);
printf(\+3+…+%ld=%ld\n\,2*n-1,s); }
(2)以下两个程序的功能均是:求出200以内的整数中能同时被3和7整除的最大数。请填空,并调试验证结果。 1)解法一: main( ) {int i;
for( ; ; ) if( ) break; printf(\
第6页共11页
360717070.docx循环结构程序设计
}
将填空后完整的程序以文件名为aliquot1.c保存
2)解法二:main( ) {int i,n;
for( ; ;i++) if( ) n=i;
printf(\}
将填空后完整的程序以文件名为aliquot2.c保存
编程练习2:
(1) 以下程序完成的功能是输出如下所示的图形,通过模仿此程序的功能,完成下面两道题。
程序清单:
#include “stdio.h” void main() {
int i, j;
for(i=1; i<=9; i++) {
for (j=1; j<=i; j++)
printf(“%d”, i); printf(“\\n”); } }
请编写两个程序分别输出下列两个图形:
第7页共11页
360717070.docx循环结构程序设计
将编写好的程序以文件名为picture1.c保存。 数字之间有一个空格
将编写好的程序以文件名为picture2.c保存。
(2) 以下程序打印如下图案,程序运行后,输入4给变量n,请填空。
【说明】:该程序完成的功能只是打印“*”图案,图中的“10个空格”字样是说明第四行
的第一个“*”离屏幕的第一列之间的距离有10个空格。
#include \#define S '' void main() { int n, i, j;
printf(\ scanf(___________________); for( i=1; i<=n; i++)
{ for(j=1; j<=10; j++) putchar(S); /* 说明图案从屏幕的第10列开始处打印输出 */ for(j=1; __________; j++) putchar(S);
第8页共11页
360717070.docx循环结构程序设计
for(j=1; __________; j++) putchar('*'); ________________________; }
for(i=1; i<=n-1; i++)
{ for(j=1; j<=10; j++) putchar(S); for(j=1;_____________; j++) putchar(S); for(j=1;____________;j++) putchar('*'); ________________________; } }
将填空好的完整程序以文件名star.c保存。
编程练习3:
将下面用for循环实现的程序改为while循环结构和do-while循环结构。并将改写好的程序依次以文件名while2.c和until.c保存。
【程序清单:】
#include “stdio.h” void main() { int i, j;
for(i=1; i<=5; i++) {
for(j=1; j<=20; j++) printf(“%d “, j); printf(“\\n”); } }
该程序的功能是:在一行内输出整数1到20,并连续输出5行。 该程序的运行结果是:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
第9页共11页
360717070.docx循环结构程序设计
编程练习4:
(1)有1、3、5、7四个数字,能组成多少个互不相同且无重复数字的三位数?分别是几?要求每行输出6个数。
将编写好的程序以文件名zuhe.c保存。
(2)用for循环和逗号运算符输出下列字符串:
a z b y c x d w e v f u g t h s i r j q k p l o m n
将编写好的程序以文件名comma.c保存。
编程练习5:
实验教材:(P11-18:实验4循环结构程序设计)
二、实验内容 第14题
其中第(1)、(3)、(4)、(7)、(8)、(10)为必做题,其余为选做题
★ 为了方便本人使用,不妨将源程序备份到网盘或可移动存储器上(如U盘、手机卡等)
三、课外练习(源程序名可依实验总体要求及本人的习惯确定,可不上交)
A、实验教材
第1部分:C语言上机实验
实验4循环结构程序设计
未做过的但需要上机操作才能理解的内容 第2部分:习题
习题5循环结构程序设计(P60-68)
需要上机操作才能理解的内容
B、理论教材
1。本章各知识点及例题中需要上机操作才能理解的内容和需要上机验证的内容 2.本章习题中需要上机操作才能理解的内容和需要上机验证的内容
第10页共11页
360717070.docx循环结构程序设计
注:1)以上程序题与实验教材的程序题要求是一样的
2)理论教材中习题与实验教材中的习题相同的题目只要求作一次
★强烈建议:
先理解消化例题及习题(书上提供了答案),然后再做编程题。因为这样效果会好些。
第11页共11页