程式可以分為三種基本結構:順序結構,分支結構,迴圈結構
c程式的執行部分是由語句組成的,程式的功能也是由執行語句實現的,
c語句可以分為以下五大類:
表示式語句,函式呼叫語句,控制語句,復合語句,空語句
表示式語句:表示式加上分號
函式呼叫語句:由函式名,實際引數加上分號 ,一般形式為:函式名(引數);
控制語句:
條件判斷語句: if switch
迴圈執行語句 do while,while,for
轉向語句:break,goto,continue,return
賦值表示式只是個表示式,沒有分號 x = y + 5
賦值語句:x = y + 5;
putchar函式是字元輸出函式,
getchar從鍵盤輸入乙個字元
printf (「」);scanf(「」,&a);
scanf(「%d ,%d ,%d」,&a,&b,&c);輸入的時候也要有,
sqrt();開平方根
printf(「%.2f」,a);保留兩位小數
double %lf
分支:
關係運算子:比較兩個量的運算子
= < <=== !=
上面的四個的優先順序高於後兩個,關係運算子的優先順序低於算術運算子
關係表示式的值是「真」和「假」假0,非零為真
邏輯運算子 ! && || 優先順序順序逐漸降低,右結合性
! 算術運算子 關係運算子 && ||
左結合性,自左向右
右結合型 ,自右向左
if語句三種形式
形式1:
if(表示式){
語句 }
形式2:
if(表示式){
}else{
} 形式3:
if(表示式1){
}else if(表示式2){
}else if (表示式3){
}else{
if語句的巢狀
為了避免這種二義性,c語言guising,else總是與它就近的if配對,if巢狀最好不要超過5個
條件運算子,條件表示式,三目運算子 表示式1 ? 表示式2 :表示式3;
算術運算子(+-*/) 關係運算子(> < >= <=) 邏輯運算子(&& ||) 條件運算子(? :)
switch語句
switch(表示式)
case(常量表示式1): 語句1;break;
case(常量表示式2): 語句2;break;
default:語句3;break;
(1)其中常量表示式不能相同,
(2)各個case後允許有多個語句,可以不用{}括起來(最好括起來)
(3)各個case後必須要有break
迴圈
迴圈結構是程式中一種很重要的結構,
特點:
再給定條件成立時反覆執行某程式段,知道田間不成立為止,
給定過的條件成為迴圈條件
反覆執行的程式段稱為迴圈體
迴圈語句:
goto,if;while;do—while;for;
(1)用goto和if構成迴圈
goto語句是一種無條件轉移語句,goto語句通常不用,因為它使得程式層次不清不宜讀。
例題:計算1+…..100
int i = 1,sum = 0;
//loop為語句標號,自己隨便起名字
loop:if(i <= 100)
printf(「%d」,sum);
(2)while
while(表示式){
語句;
} 例題:同上
int i = 1,sum = 0;
while(i <= 100)
printf(「%d」,sum);
例題:統計從鍵盤輸入的字元的個數
int n = 0;
while(getchar() != 『\n』)
printf(「%d」,n);
//以下兩段為錯誤**,
char a ;
int n = 0;
printf(「請輸入乙個字元:」);
a = getchar();
while(a != 『\n』)
printf(「%d」,n);
//上面那一段**會死迴圈,原因是:
char a,b,c,d ;int n = 0;
printf(「請輸入字元:」);
a = getchar();
b = getchar();
c = getchar();
d = getchar();
printf(「a是多少呢%c b是多少呢%c c是多少呢%c d是多少呢%c\n」,a,b,c,d);
// char a ;int n = 0;
printf(「請輸入字元:」);
// scanf(「%c」,&a);
a = getchar();
printf(「a是多少呢%c\n」,a);
while (a!= 『\n』)
printf(「%d」,n);
printf(「寫最後試試%c\n%c\n%c\n%c\n」,a,getchar(),getchar(),getchar());
(3)do-while
int i = 1;sum = 0;
dowhile(i < 101);
do-while語句先執行一次迴圈體再判斷是否滿足條件
(4)for迴圈
int sum = 0;
for(int i = 0,i<101,i++)
nslog(@」%d」,sum);
for中的三個表示式都是選擇項,即可以預設,但是分號不能省
省略第一次代表不對其賦初值;省略二代表沒有結束迴圈的條件,容易變成死迴圈;省略三代表不對迴圈變數做操作,可以寫在循壞體中;
表示式可以用逗號隔開
for(int i = 0,sum = 0;i< 200,i++,sum ++)
break和continue
break語句可以提前結束迴圈,只能用在迴圈語句和switch語句中,不能用於if等語句中
break只能跳出乙個迴圈
int r = 1,pi = 3.14,area;
for(int r = 1,r< 10,r++)
} contiune跳出本次迴圈,break跳出整個迴圈
double pi = 3.14,area;
for(int r = 1;r< 10;r++)
}double pi = 3.14,area;
for(int r = 1;r< 10;r++)
}例題:顯示輸入的字元,如果按的是esc則退出迴圈,如果是enter鍵就不做處理,接著輸入
//enter 13 esc 27
char c;
while(1)
if(c == 27)
}
C語言程式設計
輸入乙個字串其中包含一鐘特殊的字元 其餘都是數字比如 12?32 設這個數字為w 再輸入乙個同一長度的整形數字x 要求計算w大於x的個數 include include include include void main int detect char s return counter int co...
c語言程式設計
1.輸入乙個整數,把該整數分別按照八進位制 十進位制 十六進製制形式輸出 include stdio.h main 2.輸入乙個小數 整數部分3位 小數部分5位 把該小數分別按照以下格式輸出 小數部分4位寬度,整個數字8位寬度 include stdio.h main 小數部分3位寬度,整個數字9位...
c語言程式設計
problem a 簡要題意 輸入乙個百分制的成績t,將其轉換成對應的等級,具體轉換規則如下 90 100為a 80 89為b 70 79為c 60 69為d 0 59為e 解題思路 運用switch語句,將各個成績劃分成不同的階段,最終結束演算法。解題細節 對於每組輸入資料,輸出一行。如果輸入資料...