C語言,程式設計

2021-07-10 08:36:39 字數 3642 閱讀 1809

程式可以分為三種基本結構:順序結構,分支結構,迴圈結構

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語句,將各個成績劃分成不同的階段,最終結束演算法。解題細節 對於每組輸入資料,輸出一行。如果輸入資料...