C語言,程序設計

程序可以分爲三種基本結構:順序結構,分支結構,循環結構
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){
sum += i;
i++;
goto:loop;//核心一句
}
printf(“%d”,sum);
(2)while
while(表達式){
語句;

例題:同上
int i = 1,sum = 0;
while(i <= 100){
sum += i;
i++;
}
printf(“%d”,sum);
例題:統計從鍵盤輸入的字符的個數
int n = 0;
while(getchar() != ‘\n’){
n++;
}
printf(“%d”,n);
//以下兩段爲錯誤代碼,
char a ;
int n = 0;
printf(“請輸入一個字符:”);
a = getchar();
while(a != ‘\n’){
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’) {
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;
do{
sum += i;
i++;
}while(i < 101);
do-while語句先執行一次循環體再判斷是否滿足條件
(4)for循環
int sum = 0;
for(int i = 0,i<101,i++){
sum += 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++){
area = PI * r * r;
printf(“r=%d,area=%d”,r,area);
if(area > 100){
break;
}
}
contiune跳出本次循環,break跳出整個循環
double PI = 3.14,area;
for(int r = 1;r< 10;r++){
area = PI * r * r;
printf(“r=%d,area=%f\n”,r,area);
if(area > 100){
continue;
}
}

double PI = 3.14,area;
for(int r = 1;r< 10;r++){
area = PI * r * r;
printf(“r=%d,area=%f\n”,r,area);
if(area > 100){
break;
}
}

例題:顯示輸入的字符,如果按的是ESC則退出循環,如果是enter鍵就不做處理,接着輸入
//enter 13 esc 27
char c;
while(1){
c = gerchar()
printf(“%c\n”,c);
if(c == 13){
continue;
}
if(c == 27){
break;
}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章