程序流程圖又稱程序框圖,是用統(tǒng)一規(guī)定的標(biāo)準(zhǔn)符號(hào)描述程序運(yùn)行具體步驟的圖形表示。程序框圖的設(shè)計(jì)是在處理流程圖的基礎(chǔ)上,通過(guò)對(duì)輸入輸出數(shù)據(jù)和處理過(guò)程的詳細(xì)分析,將計(jì)算機(jī)的主要運(yùn)行步驟和內(nèi)容標(biāo)識(shí)出來(lái)。程序框圖是進(jìn)行程序設(shè)計(jì)的最基本依據(jù),因此它的質(zhì)量直接關(guān)系到程序設(shè)計(jì)的質(zhì)量。
一、語(yǔ)句概述
C語(yǔ)句:以“;”作分隔符,編譯后產(chǎn)生機(jī)器指令。
C語(yǔ)句分類:
表達(dá)式語(yǔ)句:表達(dá)式加分號(hào)構(gòu)成。
空語(yǔ)句:;
復(fù)合語(yǔ)句:用 {…}括起來(lái)的一組語(yǔ)句
一般形式:{ [數(shù)據(jù)說(shuō)明部分;]
執(zhí)行語(yǔ)句部分;
}
說(shuō)明:
“}”后不加分號(hào)
語(yǔ)法上和單一語(yǔ)句相同
復(fù)合語(yǔ)句可嵌套
二、程序的三種結(jié)構(gòu)
結(jié)構(gòu)化程序設(shè)計(jì)
基本思想:任何程序都可以用三種基本結(jié)構(gòu)表示,限制使用無(wú)條件轉(zhuǎn)移語(yǔ)句(goto)
結(jié)構(gòu)化程序:由三種基本結(jié)構(gòu)反復(fù)嵌套構(gòu)成的程序叫~
優(yōu)點(diǎn):結(jié)構(gòu)清晰,易讀,提高程序設(shè)計(jì)質(zhì)量和效率
三種基本結(jié)構(gòu)
順序結(jié)構(gòu)
選擇結(jié)構(gòu)
循環(huán)結(jié)構(gòu)
注:A,B,A1….An可以是一個(gè)簡(jiǎn)單語(yǔ)句,也可以是一個(gè)基本結(jié)構(gòu)
三、if選擇設(shè)計(jì)
if語(yǔ)句(條件選擇語(yǔ)句)
if語(yǔ)句的三種形式
形式一:
格式:if (expression) statement
執(zhí)行過(guò)程:
if (x>y)
printf(“%d”,x);
形式二:
格式:
if (expression) statement
else statement2
執(zhí)行過(guò)程:
if (x>y) max=x;
else max=y;
形式三:
格式:
if ( expr1 ) statement1
else if (expr2 ) statement2
else if (expr3 ) statement3
…...
[ else statementn ]
執(zhí)行過(guò)程:
例:if (salary>1000) index=0.4;
else if (salary>800) index=0.3;
else if (salary>600) index=0.2;
else if (salary>400) index=0.1;
else index=0;
說(shuō)明:
if后面的表達(dá)式類型任意
語(yǔ)句可以是復(fù)合語(yǔ)句
if(x) <->if(x!=0)
if(!x) <->if(x==0)
例如:if(a==b&&x==y) printf(“a=b,x=y”);
if(3) printf(“OK”);
if(‘a(chǎn)’) printf(“%d”,’a’);
例 考慮下面程序的輸出結(jié)果:
#include
main()
{ int x,y;
scanf(“%d,%d”,&x,&y);
if(x>y)
x=y; y=x;
else
x++; y++;
printf(“%d,%d\\n”,x,y);
}
運(yùn)行結(jié)果:
Compile Error!
if語(yǔ)句嵌套
if (expr1)
if (expr2)
statement1
else
statement2
if (expr1)
if (expr2)
statement1
else
statement3
if (expr1)
statement1
else
if(expr3)
statement3
else
statement4
if (expr1)
if (expr2) statement1
else statement2
else
if(expr3) statement3
else statement4
例 輸入兩數(shù)并判斷其大小關(guān)系
#include
main()
{ int x,y;
printf("Enter integer x,y:");
scanf("%d,%d",&x,&y);
if(x!=y)
if(x>y) printf("X>Y\\n");
else printf("X);
else
printf("X==Y\\n");
}
運(yùn)行結(jié)果:
Enter integer x,y:12,23
XEnter integer x,y:12,6
X>Y
Enter integer x,y:12,12
X==Y
if ~ else 配對(duì)原則:缺省{ }時(shí),else總是和它上面離它最近的未配對(duì)的if配對(duì)
if(……)
if(……)
if(……)
else…...
else…...
else…...
例如:
if (a==b)
if(b==c)
printf(“a==b==c”);
else
printf(“a!=b”);
修改后
if (a==b)
{ if(b==c)
printf(“a==b==c”);
}
else
printf(“a!=b”);
實(shí)現(xiàn)if~ else 正確配對(duì)方法:加{ }
四、switch語(yǔ)句
一般形式:
switch( 表達(dá)式)
{ case E1:
語(yǔ)句組 1;
break;
case E2:
語(yǔ)句組 2;
break;
…….
case En:
語(yǔ)句組 n;
break;
[default:
語(yǔ)句組 ;
break;]
}
執(zhí)行過(guò)程:
說(shuō)明:
E1,E2,…En是常量表達(dá)式,且值必須互不相同
語(yǔ)句標(biāo)號(hào)作用,必須用break跳出
case后可包含多個(gè)可執(zhí)行語(yǔ)句,且不必加{ }
switch可嵌套
多個(gè)case可共用一組執(zhí)行語(yǔ)句
例如:
switch(score)
{ case 5: printf(“Very good!”);
case 4: printf(“Good!”);
case 3: printf(“Pass!”);
case 2: printf(“Fail!”);
default : printf(“data error!”);
}
運(yùn)行結(jié)果:score為5時(shí),輸出:
Very good! Good! Pass! Fail! data error!
-
流程圖
+關(guān)注
關(guān)注
2文章
63瀏覽量
18747 -
程序設(shè)計(jì)
+關(guān)注
關(guān)注
3文章
261瀏覽量
30395 -
程序框圖
+關(guān)注
關(guān)注
0文章
8瀏覽量
8399
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論