C语言有哪些语法结构?

C语言有顺序结构、选择结构和循环结构及其组合所形成的语法结构。

(1)顺序结构

顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下依次执行。

例如,a=3,b=5,现交换a、b的值。这个问题就好像交换两个杯子水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为:c=a,a=b,b=c,执行结果是a=5,b=c=3。如果改变其顺序,写成:a=b,c=a,b=c,则执行结果就变成a=b=c=5,不能达到预期目的,初学者最容易犯这种错误。顺序结构可以独立使用构成一个简单的完整程序,常见的输入、计算、输出的程序就是顺序结构。例如,计算圆的面积,其程序的语句顺序就是输入圆的半径r,计算s=3.14159*r*r,输出圆的面积s。不过大多数情况下顺序结构都是作为程序的一部分,与其他结构一起构成一个复杂的程序,如选择结构中的复合语句、循环结构中的循环体等。

(2)选择结构

顺序结构的程序虽然能解决计算、输出等问题,但不能做判断再选择。对于要先做判断再选择的问题就要使用选择结构。选择结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。选择结构程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的选择语句。选择结构适合于带有逻辑或关系比较等条件判断的计算,设计这类程序时往往要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。程序流程图是根据解题分析所绘制的程序执行流程图。

(3)循环结构

循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构,C语言中提供四种循环,即goto循环、while循环、do…while循环和for循环。四种循环可以用来处理同一问题,一般情况下它们可以互相代替换,但一般不提倡用goto循环,因为强制改变程序的顺序经常会给程序的运行带来不可预料的错误。

特别要注意在循环体内应包含趋于结束的语句(即循环变量值的改变),否则可能成了一个死循环,这是初学者的一个常见错误。

三个循环的异同点:用while和do…while循环时,循环变量初始化的操作应在循环体之前,而for循环一般在语句1中进行的;while循环和for循环都是先判断表达式,后执行循环体,而do…while循环是先执行循环体后判断表达式,也就是说do…while的循环体最少被执行一次,而while循环和for就可能一次都不执行。另外还要注意的是,这三种循环都可以用break语句跳出,用continue语句结束本次循环,而goto语句与if构成的循环是不能用break和continue语句进行控制的。

顺序结构、选择结构和循环结构并不彼此孤立,在循环中可以有选择、顺序结构,选择中也可以有循环、顺序结构,其实不管哪种结构,均可广义地把它们看成一个语句。在实际编程过程中常将这三种结构相互结合以实现各种算法,设计出相应程序,但是若编程的问题较多,则编写出的程序往往很长、结构重复多,从而造成可读性差,难以理解,解决这个问题的方法是将C程序设计成模块化结构。

(4)具体内容

① for循环

for循环结构是C语言中最具有特色的循环语句,使用最灵活、方便,它的一般形式为:

for (表达式 1; 表达式 2; 表达式 )循环体语句(“;”不能省略)

表达式 为初值表达式,用于在循环开始前为循环变量赋初值。

表达式 为循环控制逻辑表达式,它控制循环执行的条件,决定循环的次数。

表达式 为循环控制变量修改表达式,它使for循环趋向结束。

循环体语句是在循环控制条件成立的情况下被反复执行的语句。

但是在整个for循环过程中,表达式1只计算一次,表达式2和表达式3则可能计算多次,也可能一次也不计算。循环体可能多次执行,也可能一次都不执行。

先执行表达式2,然后执行循环结构,最后执行表达式3,一直这样循环下去。

for循环语句是C语言中功能最强大的语句,甚至在一定程度上可以代替其他循环语句。

② do

do循环结构,do 1 while(2);的执行顺序是1→2→1……循环,2为循环条件。

③ while

while循环结构,while(1) 2;的执行顺序是1→2→1……循环,1为循环条件。

以上循环语句中,当循环条件表达式为真则继续循环,为假则跳出循环。

版权声明:本篇文章(包括图片)来自网络,由程序自动采集,著作权(版权)归原作者所有,如有侵权联系我们删除,联系方式(QQ:452038415)。http://www.apmygs.com/2140.html
返回顶部