第五章课后作业Word文件下载.docx

上传人:b****1 文档编号:3632607 上传时间:2023-05-02 格式:DOCX 页数:23 大小:359.48KB
下载 相关 举报
第五章课后作业Word文件下载.docx_第1页
第1页 / 共23页
第五章课后作业Word文件下载.docx_第2页
第2页 / 共23页
第五章课后作业Word文件下载.docx_第3页
第3页 / 共23页
第五章课后作业Word文件下载.docx_第4页
第4页 / 共23页
第五章课后作业Word文件下载.docx_第5页
第5页 / 共23页
第五章课后作业Word文件下载.docx_第6页
第6页 / 共23页
第五章课后作业Word文件下载.docx_第7页
第7页 / 共23页
第五章课后作业Word文件下载.docx_第8页
第8页 / 共23页
第五章课后作业Word文件下载.docx_第9页
第9页 / 共23页
第五章课后作业Word文件下载.docx_第10页
第10页 / 共23页
第五章课后作业Word文件下载.docx_第11页
第11页 / 共23页
第五章课后作业Word文件下载.docx_第12页
第12页 / 共23页
第五章课后作业Word文件下载.docx_第13页
第13页 / 共23页
第五章课后作业Word文件下载.docx_第14页
第14页 / 共23页
第五章课后作业Word文件下载.docx_第15页
第15页 / 共23页
第五章课后作业Word文件下载.docx_第16页
第16页 / 共23页
第五章课后作业Word文件下载.docx_第17页
第17页 / 共23页
第五章课后作业Word文件下载.docx_第18页
第18页 / 共23页
第五章课后作业Word文件下载.docx_第19页
第19页 / 共23页
第五章课后作业Word文件下载.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

第五章课后作业Word文件下载.docx

《第五章课后作业Word文件下载.docx》由会员分享,可在线阅读,更多相关《第五章课后作业Word文件下载.docx(23页珍藏版)》请在冰点文库上搜索。

第五章课后作业Word文件下载.docx

\n"

}

提示:

本例中如果去掉语句i++;

,就会出现死循环。

5.2实现循环结构的语句

C语言提供了三种实现循环结构的语句:

while语句、do-while语句和for语句。

虽然3个语句的语法规则不同,但在使用上很相似,一般情况下可以相互转换。

当然它们有各自的特点,在实际应用中还是要根据具体情况选择恰当的循环语句。

5.2.1while语句

while语句用于当型循环结构,其一般形式为:

while(表达式)

循环体语句

while语句的执行过程是:

首先计算表达式的值,若结果为“真”(非零),则执行循环体语句;

然后再计算表达式的值,重复上述过程,直到表达式的值为“假”(零)时结束循环,流程控制转到while语句的下一条语句。

小测验:

根据while语句的执行过程,下面程序的输出结果为:

intx=0,n=0;

while(x<

30)

x=(x+1)*(x+1);

n=n+1;

n=%d\n"

n);

【例5-2】显示1~10的平方。

=10)

%d*%d=%d\n"

i,i,i*i);

使用while循环结构时应注意以下几点:

(1)while循环的特点是先判断条件后执行循环体语句。

(2)while循环中的表达式一般是关系表达式或逻辑表达式,也可以是其他任何合法的表达式。

(3)循环体语句可以是一个语句,也可以是多个语句,当只有一个语句时,外层的大括号可以省略,如果循环体是多个语句时,一定要用花括号“{}”括起来,以复合语句的形式出现。

(4)循环体内一定要有改变循环条件的语句,使循环趋于结束,否则循环将无休止地进行下去,即形成“死循环”。

【例5-3】求1到100的自然数之和,即计算sum=1+2+…+100.

inti,sum=0;

i=1;

sum=0;

=100)

sum+=i;

sum=%d\n"

sum);

针对【例5-3】,思考下列问题:

(1)是否可以不给sum和i赋初值?

(2)是否可以将i++改成i=i+1?

(3)是否可以将i++放置在sum=sum+i之前?

(4)在循环结束后,i的值是多少?

(5)如果求1~100之间的奇数和,即计算sum=1+3+5+…+99,程序该如何修改?

(6)求sum=1-2+3-4+5-…-100,程序该如何修改?

5.2.3do-while语句

do-while语句属于直到型循环,其一般形式为:

do

}while(表达式);

例如:

下面是一个可以输出30个“*”的do-while语句:

i=1;

printf("

i++;

}while(i<

=30);

do-while语句的执行过程是:

首先执行一次循环体语句,然后计算表达式(循环条件)的值,若结果为“真”(非零),返回执行循环体语句,重复上述步骤,知道表达式的值为“假”(零)时结束循环,流程控制转到while语句的下一条语句。

【例5-4】把【例5-3】

(求1~100的和)用do-while语句改写。

inti=1,sum=0;

do

sum=sum+i;

}while(i<

=100);

使用do-while循环结构是应注意以下几点:

(1)do-while循环结构的特点是先执行循环体后判断条件,因此不管循环条件是否成立,循环体语句都至少被执行一次。

这是他与while循环的本质区别。

(2)不论循环体是一个语句还是多个语句,花括号“{}”都不要省略。

(3)避免出现“死循环”。

(4)注意do-while循环最后的分号“;

”不能省略。

【例5-5】求n!

,即求n的阶乘,n由键盘输入。

inti=1,n;

longs=1;

pleaseinputn:

"

scanf("

%d"

&

n);

s=s*i;

=n);

%d!

=%ld\n"

n,s);

针对【例5-5】,思考下列问题:

(1)为什么不给s赋初值0,而赋初值为1?

(2)为什么要把变量s定义为long?

(3)当输入的n值较大时,如20,程序会怎么样呢?

如何解决?

5.2.3for语句

for语句属于当型循环,其一般形式为:

for(表达式1;

表达式2;

表达式3)

循环体语句

下面是一个可以输出30个“*”的for语句:

for(i=1;

i<

=30;

i++)

for语句的执行过程是:

(1)首先进行表达式1的计算。

(2)判断表达式2的值,若值为“真”(非零),则执行循环体语句,然后转(3)执行;

若为“假”(零),循环结束。

(3)进行表达式3的计算,然后转至第

(2)步重复执行。

根据for语句的执行过程,写出下面程序段的输出结果。

(1)for(i=1;

=4;

%d\t"

i);

(2)for(x=15;

x>

10;

x-=2)

%d\n"

x);

【例5-6】把例5-3(求1~100的和)用for语句改写。

for(i=1;

=100;

本例中for语句的3个表达式实现了程序中的3个功能,即循环变量赋初值、循环条件和循环变量递增,因此写法更简洁。

针对上面实例,思考下列问题:

(1)如果将i=1放置在for循环之前,即在for循环外提前对循环变量赋初值,那么for语句该怎么书写?

(2)修改程序,计算1+3+5+……+99的值。

使用for语句时应注意以下几点:

(1)for循环相当于下面的while循环:

表达式1:

while(表达式2)

表达式3;

(2)for语句有3个表达式,它们之间由分号“;

”分隔,不能更换成其他分隔符号。

(3)有时根据需要可以将for语句格式中的部分或所有表达式省略,比如可以写成如下形式:

for(;

表达式2;

表达式3)

{循环体语句}

例5-6中代码可以改写为:

inti=1,sum=0;

sum=sum+I;

for语句还可以写成其他多种形式,不过建议最好还是使用规范的语句形式。

由于经常用表达式1进行循环变量的赋初值,用表达式2控制循环结束,用表达式3控制循环变量的递增或递减,所以规范的for语句形式为:

for(循环控制变量赋初值;

循环条件;

循环控制变量增/减值)

【例5-7】把100~200之间的不能被3整除的数输出。

intn;

for(n=100;

n<

=200;

n++)

if(n%3!

=0)

printf("

%d"

(1)例5-7中输出的数据比较多,如果要求每行只输出10个数,程序应该如何修改?

(2)在所有的两位数中,个位数比十位数大的两位数有多少个?

是哪些数?

编写程序完成。

【例5-8】判断正整数m是不是素数,m由键盘输入。

intm,i,flag=0;

m);

for(i=2;

=m-1;

if(m%i==0)

{

flag=1;

break;

}

if(flag==0)

%d是素数!

m);

else

%d不是素数!

\n"

 

本例中用到了break语句。

在switch语句中我们已经接触过break语句,它的功能是跳出switch语句,那么在循环结构中使用break语句,其作用是跳出循环语句。

需要注意的是:

一般只有在switch结构和循环结构中使用break语句,其作用是跳出该结构。

素数判断中能否不使用break语句?

【例5-9】程序预期输出半径为1~10的圆的面积,但是如果有面积值超过100时,则停止执行。

#definePI3.14

intr;

floatarea;

for(r=1;

r<

=10;

r++)

area=PI*r*r;

if(area>

100)

半径为%d的圆面积为:

%f\n"

r,area);

5.3循环嵌套

一个循环体内又包含了另一个完整的循环结构,这种循环称为循环的嵌套。

使用循环嵌套时,三种循环语句可以自身嵌套,也可以互相嵌套。

分析下面程序段,理解循环嵌套。

(1)for(k=1;

k<

=5;

输出结果为:

*****

(2)for(i=1;

=3;

for(k=1;

k++)

printf("

***************

显然,上面程序是for循环中又包含了一个for循环,属于两层循环结构。

外层循环用变量i控制,内循环用变量k控制,外循环i从1~3循环3次,外循环每执行一次,内循环k从1~5循环5次,所以输出结果为3*5=15个“*”。

(3)for(i=1;

{for(k=1;

可以看出,上面程序段仍然输出15个“*”,不过因为加入了换行操作,输出的是3行5列的“*”方阵。

如果要输出以下效果,循环该如何设计?

*

**

***

****

inti,j;

for(j=1;

j<

=i;

j++)

【例5-14】输出100~200之间(包括100和200)的所有素数。

intm,i,flag,n=0;

for(m=100;

m<

m++)

flag=0;

for(i=2;

m;

if(m%i==0)

{

flag=1;

break;

}

if(flag==0)

《C语言程序设计实验教程》

习题5

【课后作业2】《C语言程序设计实验教程》

page.102-103:

1,2,4

page.108:

(2)

page.109:

(5)

注意:

将作业放在一个文件名为“[2]学号+姓名”的word文档中后上交。

(数字2表示第2次大作业)

作业上交方式:

在机房的电脑上打开“计算机”,在地址栏输入:

ftp:

//10.120.87.100后回车,将word文档复制-粘贴到打开的窗口即可。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2