标签:
C语言中的程序结构有三种,分别是顺序结构、选择结构和循环结构。
一、按照语句的先后顺序执行的程序结构,称为顺序结构。
下面以一个求三角形面积的例子进行说明,其代码如下:
例1.1
1 #include<stdio.h>
2 int main()
3 {
4 int width,height,s;
5 printf("请输入三角形的底宽:\n");
6 scanf("%d",&width);
7 printf("请输入三角形的高:\n");
8 scanf("%d",&height);
9 s=width*height/2;
10 printf("三角形的面积为:s=%d\n",s);
11 return 0;
12 }
程序在执行时,需先输入三角形的底宽(6行),再输入高(8行),程序往下执行,计算三角形的面积(9行),最后将面积显示出来(10行)。这是按照语句的先后顺序执行的。
二、根据某种条件的成立与否而采用不同的程序段进行处理的程序结构,称为选择结构。
通常选择结构有两个分支,条件为真,执行甲程序段,否则执行乙程序段。有时,两个分支还不能完全描述实际问题(例如将学生成绩根据分数高低分成A,B,C,D,E等多个等级),需要分成多个分支,这样的程序结构称为多分支选择结构。
1、if简单语句
其语法形式如下:
if(表达式)
{语句1}
功能:计算表达式的值,若为“真”,则执行语句1,否则将跳过语句1,执行if语句的下一条语句。
例2.1
1 #include<stdio.h>
2 int main()
3 {
4 int age;
5 scanf("%d",&age);
6 if(age>18)
7 {
8 printf("您已经是成年人了!");
9 }
10 re&turn 0;
11 }
上述程序中,首先定义了整型变量age,在输入age的值之后,根据age的值的大小,来判断是否为成年人。运行代码时,假如输入的数值大于18岁,则输出”您已经是成年人了!“,否则直接退出程序。
2、if—else语句
其语法形式如下:
if(表达式)
{语句1}
else
{语句2}
功能:计算表达式的值,若表达式的值为”真“执行语句1,并跳过语句2,继续执行if—else语句的下一条语句,若表达式为假,跳过语句1,执行语句2,然后继续执行if—else语句 的下一条语句。
例2.2
1 #include<stdio.h>
2 int main()
3 {
4 int age;
5 scanf("%d",&age);
6 if(age>18)
7 {
8 printf("您已经是成年人了!");
9 }
10 else
11 {
12 printff("您还是未成年人了!");
13 }
14 re&turn 0;
15 }
上述程序与例2.1相比,多了一条语句。在运行代码时,假如输入的数值大于18岁,则输出”您已经是成年人了!“,否则输出”您还是未成年人!“。
3、嵌套的if语句
在if语句和if—else语句形式中,语句1或语句2可以是任意合法语句。若它们也是if语句,就构成嵌套的if语句。嵌套形式有多种,下面介绍几种。
嵌套形式1 嵌套形式2 嵌套形式2
if(表达式1) if(表达式1) if(表达式1)
{ { {语句1}
if(表达式2) if(表达式2) else if(表达式2)
{语句1} {语句1} {语句2}
else } else
{语句2} else {语句3}
} {语句2}
else
{语句3}
例2.3:求下列分段函数
当x>0时,y=x+1;当x=0时,y=x;当x<0时,y=x-1;
利用嵌套形式1:
1 #include<stdio.h>
2 int main()
3 {
4 int x,y;
5 scanf("%d",&x);
6 if(x>=0)
7 {
8 if(x>0)
9 {
10 y=x+1;
11 }
12 else
13 {
14 y=x;
15 }
16 }
17 else
18 {
19 y=x-1;
20 }
21 printf("x=%d,y=%d\n",x,y);
22 return 0;
23 }
利用嵌套形式2:
1 #include<stdio.h>
2 int main()
3 {
4 int x,y;
5 scanf("%d",&x);
6 y=x;
7 if(x>=0)
8 {
9 if(x>0)
10 {
11 y=x+1;
12 }
13 }
14 else
15 {
16 y=x-1;
17 }
18 printf("x=%d,y=%d\n",x,y);
19 return 0;
20 }
利用嵌套形式3:
1 int main()
2 {
3 int x,y;
4 scanf("%d",&x);
5 if(x>0)
6 {
7 y=x+1;
8 }
9 else if(x=0)
10 {
11 y=x;
12 }
13 else
14 {
15 y=x-1;
16 }
17 printf("x=%d,y=%d\n",x,y);
18 return 0;
19 }
4、switch语句
其形式如下:
switch()
{
case 常量表达式1:语句1
case 常量表达式2:语句2
……
case 常量表达式n:语句n
default: 语句n+1
}
主意:switch语句常与break连用,break的功能为终止它所在的switch语句。
例2.4根据学生成绩的高低划分等级,代码如下:
1 #include<stdio.h>
2 int main()
3 {
4 int x;
5 printf("请输入学生成绩:\n");
6 scanf("%d",&x);
7 switch(x/10)
8 {
9 case 10:
10 case 9:
11 printf("A");
12 break;
13 case 8:
14 printf("B");
15 break;
16 case 7:
17 printf("C");
18 break;
19 case 6:
20 printf("D");
21 break;
22 case 5:
23 case 4:
24 case 3:
25 case 2:
26 case 1:
27 case 0:
28 printf("E");
29 break;
30 default:
31 printf("无效数据!");
32 }
33 return 0;
34 }
上述程序中,先定义一个整型变量x,在输入x的值后,根据x所在的范围,确定成绩的等级。运行代码时,假如输入85,则输出"B",这表示该学生成绩等级为B。若该switch语句中,没有break语句,则程序会继续执行下面语句,输出B、C、D、E。
三、控制一个代码块多次执行,知道某个条件被满足的程序结构,称为循环结构。
C语言中,while语句、do—while语句和for语句是直接控制循环过程的循环语句。
1、while语句
其语法形式如下:
while(表达式)
{循环体语句}
功能:首先计算表达式的值,若为”真“,则执行循环体语句,执行完毕后,再计算表达式的值,若仍为”真“,则重复执行循环体语句。直到表达式的值为”假“时,结束while语句的执行,继续执行while语句后面的语句。
下面以求1+2+3+……+100的和为例,说明while循环语句的用法。
例3.1
1 #include<stdio.h>
2 int main()
3 {
4 int s,i;
5 s=0;
6 i=1;
7 while(i<=100)
8 {
9 s=s+i;
10 i++;
11 }
12 return 0;
13 }
2、do—while语句
其语法形式如下:
do
{循环体语句}
while(表达式);
功能:首先执行循环体语句,然后检测循环控制条件表达式的值,若为”真“,则重复执行循环体语句,否则退出循环。
下面以求1+2+3+……+100的和为例,说明do—while循环语句的用法。
例3.2
1 #include<stdio.h>
2 int main()
3 {
4 int s,i;
5 s=0,i=1;
6 do
7 {
8 s=s+i;
9 i++;
10 }while(i<=100);
11 return 0;
12 }
3、for语句
其语法形式如下:
for(表达式1;表达式2;表达式3)
{循环体语句}
功能:首先计算表达式1的值,然后检测表达式2的值,若其为“真”,则执行循环体语句,执行完毕后,在计算表达式3。然后,再测试表达式2的值是否为“真”,若为“真”,继续执行循环体语句,若为“假”,则终止循环。
下面以求1+2+3+……+100的和为例,说明for循环语句的用法。
例3.3
1 #include<stdio.h>
2 int main()
3 {
4 int i,s;
5 s=0;
6 for(i=1;i<=100;i++)
7 {
8 i++;
9 }
10 return 0;
11 }
从例3.1、3.2和3.3可以看出三种循环语句可以相互转化。但是它们也有各自的侧重点,应当根据不同的需求,选取适宜的语句。
4、循环嵌套
循环结构的循环体语句可以是任何合法的C语句。若一个循环结构的循环体中包含了另一个循环语句,则构成了循环嵌套,称为多重循环。
下面以用*输出一个矩形为例,说明循环嵌套的用法。
例3.4
1 #include<stdio.h>
2 int main()
3 {
4 int i,j;
5 int width,height;
6 printf("输入矩形的长和宽:\n");
7 scanf("%d%d",&width,&height);
8 for(i=1;i<=width;i++) //i控制矩形的长
9 {
10 for(j=1;j<=height;j++) //j控制矩形的宽
11 {
12 printf("*");
13 }
14 printf("\n"); //一行*输出后换行
15 }
16 return 0;
17 }
上述程序中,首先申请四个变量,分别为i,j,width和height。i和j均作为循环控制变量,分别控制矩形的宽和高,当输入width和height的值时,矩形的宽和高就确定了,最后利用for语句将矩形输出来。
假如width=5,height=2,则输出结果如下:
*****
*****
标签:
原文地址:http://www.cnblogs.com/yddlvo/p/4440352.html