APP下载

C语言中循环结构程序学习探究

2022-05-30白宗辉

中国新通信 2022年13期
关键词:学习

摘要:C语言是中职校计算机专业的必修课,也是一门核心课程。C语言中循环结构程序设计,是C程序设计教学中的重点与难点。本文主要重点研究了循环结构程序重点及难点,包括重点分析与难点突破;运用实例探讨如何分析循环结构程序的方法,以及运用实例讲解编写循环结构程序的方法。

关键词:C语言;循环结构;学习

一、牢记C语言循环结构的内容

循环结构程序设计所涉及的知识点为三种类型的循环。即:while循环、do…while循环和for循环。这三个语句是循环结构程序的重点内容。

(一)while循环语句

1.while循环的一般形式

while(表达式)

循环体

2.学习while循环语句的重点

循环如果超过一条语句,应该用“{}”括起来,构成复合语句,否则循环体是while后的第一个分号前的那一条语句。

3.循环体结构程序四要素

(1)循环初始化

给循环变量赋初始值。

(2)循环条件

一般情况下是条件表达式、逻辑表达式或数值。

(3)循环体

需要反复执行的、处理问题的程序段。

(4)循环控制变量的调整

控制循环的条件。

(二)do …while循环语句

1. do…while循环语句形式

do

循环体

while(表达式)。

2. do…while 语句注意要点

要能区分do…while语句和while语句的不同。前者先执行循环体,后判断循环条件,后者是先判断后执行循环体。

(三)for循环语句

1.一般形式

for(表达式1;表达式2;表达式3)

循环体

2. for循环语句要点

表达式1是初始值,表达式2是控制条件,表达式3是循环变量的修改部分。

C循环结构程序中的break语句与continue语句是循环结构程序教学中的难点。

break语句是终止当前所在循环,continue语句是暂停本次循环,转而继续执行下次循环。

二、熟悉C语言循环结构的分类方法

(一)按名稱可分为while循环、do…while循环和for循环。

(二)按是否嵌套可分为单重循环与多重循环。

三、学会分析C语言循环结构程序流程

(一)在for循环中包含break,continue语句程序段

执行以下语句后的x值为__,y的值为___。

for(y=1,x=1;y<=50;y++)

{

if(x>=10)break;

if(x%2==1)

{x+=5;

continue;

}

x-=3;

}

依循环次数,程序流程分析:

第1次循环,因为初始值y=1,y<=50成立,x>=10不成立,x%2==1为真,执行语句x+=5;x=6;执行continue语句,转向首行执行y++;y=2,y<=50为真,程序进入第2次循环。

第2次循环,因为x=6,(x>=10)为假,(x%2= =1)为假;执行x-=3;x=3;执行y++;y=3;(y<=50)为真,程序进入第3次循环。

第3次循环,因为x=3,(x>=10)为假,(x%2==1)为真,执行x+=5;x=8;执行continue;语句,返回首行,执行y++;y=4;(y<=50)为真,程序进入第4次循环。

第4次循环,因为x=8,(x>=10)为假,(x%2==1)为假,执行语句x-=3;x=5;

返回首行for语句y++;y=5,y<=50为真;程序进入第5次循环。

第5次循环,因为x=5,(x>=10)为假,(x%2==1)为真,执行x+=5;x=10;执行continue;行后,返回首行,执行y++; y=6,y<=50为真;程序进入第6次循环。

第6次循环,(x>=10)为真,执行break语句,跳出循环,此时x=10,

y=6。

此程序为for循环程序 ,总循环次数为6次,展示了for循环语句中continue语句和break语句的用法特点。

(二)读程序,写出输出结果

#include

int main()

{

int i=0,a=0;

while(i<20)

{

for(;;)

{

if(i%10==0)break;

else i--;

}

i+=11;a+=i;

}

printf("%d\n",a);

return 0;

}

流程分析:

本程序为双重循环,外循环是while循环语句,内循环是for循环语句。

外循环执行前,i=0,a=0。

外循环第1次:

i=0,i<20,进入外循环,进入内循环。因为i=0,(i%10==0)为真,所以执行break;语句。跳出for循环(内循环)。执行i+=11;i=11;a+=i;a=11;返回外循环,因为i=11,i<20,外循环进入第2次循环。

外循环第2 次:

在for循环第1次循环,(i=11,i%10==0)为假,执行else后语句i--;即i=10,for循环第2次循环,i=10,(i%10==0)为真,执行break;语句,跳出本次for循环,执行i+=11;i=21。执行a+=i;a=a+i=11+21=32。

此时,i=21,i<20不成立,故外循环终止。双重循环终止,输出32。

程序盘点:

本程序为双重循环,程序中包含break语句,外循环执行2次,内循环共循环3次。

以上两个例子分别列举了单重循环、多重循环,并使用了break语句和continue语句来控制程序的流程。通过对程序的详细分析,详解了循环结构程序的执行过程和分析方法。

四、积极探究C语言循环结构程序编程实践方法

(一)学会使用算法:编写程序前先设计好程序的算法

算法是编写程序的灵魂,一个编程问题的算法设计好了,那么编程过程就可以按照算法,按部就班地完成。所以编写比较复杂的程序,使用流算法来设计算法是非常必要和可行的手段。

实践操作:求1!+2!+3!+……+10!的和,并输出计算结果。

根据编程任务,编写流程如下 :

程序的功能主要通过内循环的循环体来实现,用fact*=语句作为累乘器来求阶乘,用s+=fact作为累加器来求阶乘的和。

根据流程图,编写程序如下:

#include

int main()

{

int i,j,fact,s=0;

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

{

fact=1;

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

fact*=j;

s+=fact;

}

printf("%d",s);

return 0;

}

(二)一题多解,开阔思路

实践操作:使用循环语句编写一段程序生成下面的输出。

0 1

1 2

2 4

3 8

4 16

5 32

6 64

算法一:

分析可知,输出各行的第1列数是一个等差数列,首项是0,等差是1,共7项可用自增运算符来表示。各行第2项数组成一个指数函数,指数是2,指数是各行第一个数,故可使用数学函数pow()函数来求,所以在程序中需要使用一个#include预处理命令头文件。

程序如下:

#include

#include

int main()

{

int i,m;

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

{

m=pow(2,i);

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

}

return 0;

}

满足一个通项,即以2为底,前一个数是指数,后一个数是指数函数的值。

算法二:

巧用自增运算符来设置循环程序。

#include

int main()

{

int i,a,f;

a=0;

f=1;

for(i=1;i<=7;i++){

printf("%d %d",a++,f);

f*=2;

printf("\n");

}

return 0;

}

分析可以發现两种算法的各自特色,第一种方法使用函数,编写程序较容易;第二种方法没有使用函数,技巧性和思维能力考查要求比较高。

以上2个编程例子,第一个例子介绍了编写循环结构程序的方法与过程,利用流程图作为工具,来辅助编程, 就会让编程具有了目标和方向,编程变得有规可循。第二个例子,主要强调了在C循环结构编程时,要尝试多种算法来编写程序,通过不同算法进行比较,优化编程策略,开阔了编程的视野,让学生在算法设计上会具有更加灵活选择路径。

五、结束语

本文主要讲述了C循环结构程序所需掌握的内容,学会如何分类,熟练掌握单重循环、多重循环,while循环、do…while循环和for循环重点内容,并能灵活使用break语句和continue语句来控制程序的流程的语法规则。

通过读C循环结构程序,写出结果的三个案例,详细分析,讲解了循环结构程序的具体执行过程和细节处理技巧,让学生对读程序过程有了具体的认识,逐步建立了读循环结构程序的解题思路。

通过C循环程序编程实践第一个案例,要求学生能够学会使用算法来辅助编写程序的方法技巧,有了算法在编程时就具有了“灵魂”。通过第二个C循环编程实践,开拓了学生的编程算法视野,能用多种算法分析问题,解决问题,提高了学生的编程素养,培养了学生全面学习的核心素养。了解了循环结构程序的内容和种类,通过分析程序结构和程序执行过程,

经过不断地思考、实践和循序渐进学习过程, C语言学习者会逐步掌握循环结构程序的使用技巧,从而为学好C语言程序设计打下坚实的基础。

作者单位:白宗辉    江苏省车辐中等专业学校

参  考  文  献

[1]李红卫.C程序设计与训练[M].大连理工大学出版社,2018.

[2]谭浩强.《C程序设计》第五版[M].清化大学出版社,2017.

[3]黄婷.浅谈《C语言程序设计》实践教学[J].北京电力高等专科学校学报:社会科学版,2010,27(10):434-435.

[4]卢玲,刘恒洋.以计算思维为导引的程序设计实验教学模式研究[J].福建电脑,2012,28(5):164-166.

[5]冯玉芬,冯宁.C程序设计教学方法研究[J].教育探索, 2009(12):62-63.

展开全文▼
展开全文▼

猜你喜欢

学习
浅谈高中生英语口语学习的问题与对策
浸润式教学法在高职商务英语专业学习中的应用
浅谈怎样提高小学生学习数学的兴趣
如何培养学生小组合作学习的策略
高中生物教学中学生主动学习策略研究
小学生学习与生活分离的社工干预行动项目设计
茶叶浸提液对小鼠学习记忆能力影响的初步研究
试论在高校“产、学、研”中发展现代传统手工艺文化
小学数学学习兴趣的培养
家庭习得环境对初中学生英语学习的影响研究