循环结构程序设计习题及答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第6章循环结构程序设计

6-1.比较while语句、do–while语句和for语句的异同。

答:(1)while语句、do-while语句用于条件循环,for语句用于计数循环。

(2)while语句、for语句是先判断循环条件,后执行循环体,如果循环条件一开始就不成立,则循环体一次也不被执行;而do-while语句是是先执行循环体,后判断循环条件,所以循环体至少被执行一次。

(3)知道循环的次数可选用for语句实现循环,不知道循环的次数可选用while语句或do-while语句实现循环.

(4)一般而言,三种循环语句可等价实现.

6-2 仔细阅读下面的程序,指出程序的运行结果.

#include<>

void main()

{ int i;

for(i=0;++i;i<5)

{ if(i==3)

{printf("%d\n",++i);

break;

}

printf("%d\n",++i);

}

}

答:2

4

思考:语句“for(“i=0;++i;i<5”)在编译时为何会给出语法警告错误当将其改为“for(i=0;i<5;++i)”时,运行结果又将如何6-3 仔细阅读下面的语的程序,指出程序的运行结果。

#include""

void main()

{ int i, a=0;

for(i=1;i<=5;i++)

{do

{i++;

a++;

} while(i<3);

}

i++;

printf("a=%d,i=%d",a,i);

}

答:a=3,i=7

思考:在for循环中嵌套着do-while循环,那么do-while循环中对i的修改会对for循环产生影响吗

6-4编写程序,用1000个单词”computer”填充屏幕,每行60个 .

解:#include<>

void main()

{ int i;

for(i=1;i<=1000;i++)

{ printf("computer.");

if(i%60==0)printf("\n");

}

}

思考:在for循环中,”if(i%60==0)printf(“\n”);”语句的作用是什么没有此语句将会是什么状况

6-5输入一行字符(以$结束),统计其中的数字字符、空格字符出现的次数。

解: #include<>

void main()

{ char c;

int d=0,s=0;

printf("请输入字符(当输入$时结束):");

while ((c=getchar())!='$')

{

if(c>='0'&&c<='9')s++;

if(c==' ') d++ ;

}

printf("数字字符出现的次数为%d\n",d);

printf("空格字符出现的次数为%d\n",s);

}

若输入字符:12 345 abcd 678 xyz$

则运行结果为:数字字符出现的次数为8

空格字符出现的次数为4

思考:此题中的循环次数是如何控制的有何特点

6-6编写程序,求1000以内的奇数之和及偶数之和。

解:#include<>

void main()

{long n=0,m=0;

int i;

for(i=1;i<1000;i++)

{if(i%2==0) n=n+i;

else m=m+i;

}

printf("奇数之和为%ld\n",m);

printf("偶数之和为%ld\n",n);

}

运行结果:奇数之和为250000

偶数之和为249500

思考:在此题中为何选用for循环进行控制用while循环或do-while循环是否也可以

6-7 计算π,计算公式π/4=1-1/3+1/5-1/7+…直到最后一项的

10 为止。

绝对值小于6

解:#include<>

#include<>

void main()

{ int s=1;

float n=,t=1,pi=0;

while(fabs(t)>1e-6)

{ pi=pi+t*s;

n=n+2;

s=-s;

t=1/n;

}

pi=pi*4;

printf("pi=%f\n",pi);

}

运行结果:pi=

思考:在此题中为何不选用for循环进行控制,而选用while 循环呢

6-8编写程序,求任意两个整数之间的所有素数。

解:#include<>

#include<>

void main()

{ int n,m,i,j,k,p=0;

printf("请输入两个整数m,n(m

scanf("%d,%d",&m,&n);

for(i=m;i<=n;i++);

{ k=sqrt(n);

for(j=2;j<=k;j++)

if(i%j==0) break;

if(j>=k+1) {printf("%d ",i);p=p+1;}

相关文档
最新文档