【持續(xù)更新】C語言 第四天學(xué)習(xí)筆記(完整版)

一判没、【掌握】復(fù)習(xí)昨天知識

1凛虽、程序的結(jié)構(gòu)

程序默認從上到下順序執(zhí)行(順序結(jié)構(gòu))
程序的結(jié)構(gòu):順序結(jié)構(gòu)、分支結(jié)構(gòu)偿短、循環(huán)結(jié)構(gòu)

2欣孤、if分支語句

程序執(zhí)行的過程中可以有多個選擇

格式:

if(表達式){

語句塊;

}

進行表達式的求值:如果表達式的值為非0(真)
會執(zhí)行語句塊 0 (假) 不會執(zhí)行語句塊,

3、if分支語句的幾種形式

·1)最簡單的,要不執(zhí)行,要不是不執(zhí)行

if(表達式){

語句塊;

}

·2)if.....else......


if(表達式){

語句塊1;

}else{

語句塊2;

}



進行表達式的求值:如果表達式的值為(真)
會執(zhí)行語句塊1昔逗; 0 (假) 會執(zhí)行語句塊2

注意:語句塊1和語句2只可能被執(zhí)行一次

3)if...else...的嵌套問題

if(表達式1){



if(表達式2){



//表達式1值為1,并且表達式2值為1
語句塊1;

}else{



 
語句塊2;
//表達式1值為1,但是表達式2的值為0 

}



}else{

語句塊3;
//表達式1為0的時候

 } 

4)if..... else if ......else....

if(表達式1){

語句塊1;
//表達式1為真



}else
if(表達式2){

語句塊2;
//當表達式1不成立,但是表達式2成立



}else{

語句塊3;
//當表達式1和表達式2都不成立的時候

}
4降传、if注意點

1)if(1)、if(-1)永真 if(0) 永假

2)if語句不要加分號勾怒!if(表達式);
表示判斷完了什么都不做

  1. if后面的大括號可以省略婆排,省略大括號后,if語句的作用域只可以接一條語句笔链,并且這條語句不能是申明變量的段只。

4)if(表達式){int num=10;} printf("%d",num);(錯誤的)

5)if語句塊內(nèi)可以接多條語句

5、switch分支語句

也是用于條件判斷,當表達是的結(jié)果有多種情況,用switch比較方便一些
格式:

switch(表達式){

case
整型常量或者字符常量: 語句; .....

default:
//如果上面的條件都不滿足,執(zhí)行default

}

計算表達式的值,用這個值和case后的常量進行比較,如果這個值等于了某個常量值,會執(zhí)行case對應(yīng)的分支語句,遇到break;才結(jié)束,如果沒有遇到break,程序一直會往下執(zhí)行,直到switch語句結(jié)束

6鉴扫、switch的注意點

1)switch(表達式)

表達式:返回值是整型

2)case

常量 必須是常量并且必須是整型或字符 ,不能是float case 2.3:

可以放常量表達式,但是不允許:a+3

3)作用域的問題
case 3: {
             int num=-1;
                          }

      
case
4:printf("%d\n",num); 這是不允許的 

4)case分支語句可以有多句,可以使用大括號,也可以不使用

赞枕,如果不使用大括號,則不能進行變量的申明

二、【理解】循環(huán)結(jié)構(gòu)的基本介紹

1炕婶、循環(huán)結(jié)構(gòu)簡介

實際生活中的循環(huán):印刷1萬份報紙姐赡,跑5000米

程序中的循環(huán):要打印999句老師很帥

那么,怎么用循環(huán)來實現(xiàn)上面的這個需求呢柠掂?


   int i = 0;

   while (i < 999)
{

    
 
      printf("老師好帥啊\n");

     
  i++;

    }

 

從上面的結(jié)果我們可以看到项滑,我們在程序中需要重復(fù)做什么事,就寫在大括號里就可以了陪踩,要重復(fù)多少次杖们,就改一改條件次數(shù)就改變了

循環(huán)結(jié)構(gòu)簡單來說就是:循環(huán)是一次又一次的執(zhí)行相同的代碼塊

2悉抵、構(gòu)成循環(huán)結(jié)構(gòu)的幾個條件:

一般來說一個循環(huán)需要以下幾部分構(gòu)成:

1)循環(huán)控制條件 進入循環(huán)以及退出循環(huán)的主要依據(jù),來控制是否需要進行循環(huán)

2)循環(huán)體 循環(huán)的過程中重復(fù)執(zhí)行的代碼段

3)能夠讓循環(huán)結(jié)束的語句(遞增肩狂、遞減、真姥饰、假等) 能夠讓循環(huán)條件為假的依據(jù),用來防止死循環(huán)

3傻谁、C語言中的循環(huán)語句
        while語句; 

        do-while語句; 

        for語句; 

三、【掌握】while循環(huán)結(jié)構(gòu)

1列粪、while循環(huán)的格式:

while
( 條件 )

{

語句1;

語句2;

....

}

2审磁、while循環(huán)使用方法:

1)while循環(huán)的特點:

    如果while中的條件一開始就不成立,那么循環(huán)體中的語句永遠不會被執(zhí)行 

2)while語句的語義是:

    如果條件成立,就會執(zhí)行循環(huán)體中的語句(“循環(huán)體”就是while后面大括號{}中的內(nèi)容)。

然后再次判斷條件,重復(fù)上述過程,直到條件不成立就結(jié)束while循環(huán)

如圖所示

2)while循環(huán)的執(zhí)行步驟:

第1步:判斷條件是否為真岂座,如果為真态蒂,則轉(zhuǎn)向第2步,如果條件為假則轉(zhuǎn)向第3部

第2步:執(zhí)行循環(huán)體费什,執(zhí)行完畢后再轉(zhuǎn)向第1步

第3步:跳出循環(huán)钾恢,循環(huán)結(jié)束

執(zhí)行步驟示意圖

避免使用死循環(huán)!

死循環(huán):循環(huán)條件永不變假

四鸳址、【理解】while循環(huán)的注意點

1瘩蚪、任何數(shù)值都真假性,注意防止死循環(huán)

while (-1) {

printf("死循環(huán)\n");

}

2稿黍、while

后如果只有一條語句它可以省略大括號

1)空語句它也是一條語句

2)while小闊號后面不可以直接寫分號

int
num = 0;

while
(num < 3)

{

printf("num
= %d\n",num); num++;

}

 
3)省略大括號時疹瘦,不能在下面直接寫申明變量的語句
while (1 < 3)

int
num = 5;

是錯誤的

3、作用域:內(nèi)部代碼塊中定義的變量不可以在外邊

代碼塊中訪問


while (1 < 3) {

int
a = 0;

}



printf("a =
%d\n",a);



4巡球、while語句后面不要加分號

while (1 < 3); 錯誤

五言沐、【理解】while循環(huán)課堂練習(xí)

習(xí)題一:計算1-100以內(nèi)(包含1和100)所有偶數(shù)的和

(能被2整除的數(shù)都叫偶數(shù))

習(xí)題二:請用戶輸入個任意整數(shù)N,打印出從1到這個整數(shù)N的所有平方表

例:用戶輸入4酣栈,那么則順序打印出1的平方的值為1呢灶,2的平方的值為4,3的平方的值為9钉嘹,4的平方的值為16

習(xí)題三:要求用戶輸入5個數(shù)字鸯乃,計算出這5個數(shù)字中最小的數(shù)字、最大的數(shù)字和平均數(shù)

習(xí)題四:讓用戶輸入一個數(shù)n和一個數(shù)m,計算從n到m之間的所有數(shù)之和

六缨睡、【掌握】do…while循環(huán)的基本介紹

1鸟悴、do ... while循環(huán)的基本格式
do{

語句1;

語句2;
....

    
}while ( 條件 ); 

 

注意:有分號!奖年!

2细诸、do...while語句用法
1)do...while語句的語義是:

當執(zhí)行到do-while循環(huán)時,首先會執(zhí)行一遍循環(huán)體中的語句(“循環(huán)體”就是do后面大括號{} 中的內(nèi)容)。接著判斷while中的條件,如果條件成立,就執(zhí)行循環(huán)體中的語句陋守。然后再次判
斷條件,重復(fù)上述過程,直到條件不成立就結(jié)束while循環(huán)

2)do-while循環(huán)的特點:

不管while中的條件是否成立,循環(huán)體中的語句至少會被執(zhí)行一遍

int   i = 0;

while(i<0){

i++;

}

 

int i =0;

do{

i++;

}
while(i<10);

 
```
 

#####3)do-while的執(zhí)行過程:

 

第1步:先執(zhí)行循環(huán)體震贵,再跳轉(zhuǎn)到第2步

第2步:判斷條件是否為真,如果為真水评,跳轉(zhuǎn)第1步猩系,如果為假,跳轉(zhuǎn)第3步

第3步:跳出循環(huán)中燥,循環(huán)結(jié)束

 

 

#####3寇甸、do...while和while的對比

 
```
while

    是先判斷再執(zhí)行 例:

int i=10; 

while(i<10){

printf(i);

i++;

}
```
結(jié)果是什么都不打印,最終i的值為10 

 
```
do-while
```
是先執(zhí)行再判斷 

 

例:
```
int i =10;

do{

printf(i);

 i++;

}while(i<10);

 
```
        
打印的是10,最終i=11 

 

 兩者的區(qū)別在于第一圈循環(huán)時,while是先判斷循環(huán)條件,再循環(huán).所以第一個程序什么都不打印. 而do-while則是先執(zhí)行后判斷.所以,第二個程序先打印10,然后i++然后跳出循環(huán). 

 
####七、【理解】do…while的課堂練習(xí)

習(xí)題一:小蒼明天就要上舞臺表演了疗涉,老師打算讓她先試著表演一次看看拿霉,如果滿意就讓她回家,不滿意就讓她繼續(xù)練咱扣,直到滿意為止绽淘。(表演就用打印一句話代替)

 

 

習(xí)題二:用do...while語句重寫一次求1加到100的總和

八、【掌握】for循環(huán)簡單介紹

#####1闹伪、for循環(huán)的語法格式

  C語言中的for語句使用最為靈活,不僅可以用于循環(huán)次數(shù)已經(jīng)確定的情況,而且可以用于循環(huán)次數(shù)不確定而只給出循環(huán)結(jié)束條件的情況,它完全可以代替while語句沪铭。

 

一般形式:

for(表達式1;表達式2;表達式3) {

 

循環(huán)體;

}


#####2、for循環(huán)執(zhí)行過程

 

   第1步: 先執(zhí)行表達式1祭往。

 

  第2步:執(zhí)行表達式2,若其結(jié)果值為真(值為非0),則跳轉(zhuǎn)到第3步伦意。若為假(值為0),轉(zhuǎn)到第5步。

 

  第3步:  執(zhí)行循環(huán)體硼补,再跳轉(zhuǎn)到第4步

 

  第4步:執(zhí)行表達式3驮肉。

 

  第5步:跳出循環(huán),循環(huán)結(jié)束



![求解表達式](http://upload-images.jianshu.io/upload_images/3899701-097a1ed0247a1e5a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

####3已骇、for循環(huán)的幾種形式 
1)for語句最簡單的形式: 

for(循環(huán)變量賦初值;
循環(huán)條件;
循環(huán)變量增值)

例如:
for(int i=1;i<=100;i++) sum=sum+i;

![if語句示意圖](http://upload-images.jianshu.io/upload_images/3899701-67e09dcac4aee69a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

2)表達式省略(三個表達式都可以省略)

如:for(; ;)
語句相當于while(1) 語句,即不設(shè)初值,不判斷條件(認為表達式2為真值),循環(huán)變量不增值离钝。無終止地執(zhí)行循環(huán)體。

 

 

3)循環(huán)控制無關(guān)的任意表達式

表達式1和表達式3可以是一個簡單的表達式,也可以是逗號表達式,即包含一個以上的簡單表達
式,中間用逗號間隔褪储。如:

for(sum=0,i=1;i<=100;i++)
sum=sum+i;

或
for(i=0,j=100;i<=j;i++,j--) k=i+j;

 

表達式1和表達式3都是逗號表達式,各包含兩個賦值表達式,即同時設(shè)兩個初值,使兩個變量增值.

 

 

在逗號表達式內(nèi)按自左至右順序求解,整個逗號表達
式的值為其中最右邊的表達式的值卵渴。如:

```for(i=1;i<=100;i++,i++) sum=sum+i; ```

相當于

```for(i=1;i<=100;i=i+2)  sum=sum+i; ```

####九、【理解】for循環(huán)課堂練習(xí)

習(xí)題一:讓用戶輸入一個數(shù)n和一個數(shù)m鲤竹,計算從n到m之間的所有數(shù)之和



習(xí)題二:求100到999之間的水仙花數(shù)

水仙花數(shù):abc = a*a*a +  b*b*b  +   c*c*c

如:153  =  1*1*1 + 5*5*5  +3*3*3

####十浪读、【掌握】for循環(huán)的嵌套
#####1、for循環(huán)的嵌套

   任何循環(huán)都如分支語句一樣,可以進行多層嵌套碘橘,但是在循環(huán)結(jié)構(gòu)中互订,用到最多的就是for循環(huán)的嵌套,并且在一般情況下,只有2層嵌套循環(huán)(主要用來控制行列)痘拆,不會超出3層仰禽。 



![for循環(huán)嵌套](http://upload-images.jianshu.io/upload_images/3899701-21abb25f2969a16f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

![for循環(huán)嵌套](http://upload-images.jianshu.io/upload_images/3899701-9e3510eae28fc732.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
#####2、利用for循環(huán)嵌套實現(xiàn)打印圖形 
思考&實現(xiàn)1: 

打印各種圖形

![圖形](http://upload-images.jianshu.io/upload_images/3899701-8208b2e3a38ed664.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
分析:
應(yīng)該打印5行
最多打印5列 每一行和每一列關(guān)系是什么? 
列數(shù)<=行數(shù) 

![示意圖](http://upload-images.jianshu.io/upload_images/3899701-b5164959c0d57920.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)



![示意圖](http://upload-images.jianshu.io/upload_images/3899701-375bf8bb62e9af1f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


![示意圖](http://upload-images.jianshu.io/upload_images/3899701-04c3290f082b9acb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


思考&實現(xiàn)2: 

用戶輸入一個整數(shù)N,輸出如下圖形,如:N= 5

思路:

1)列數(shù)要等于行數(shù) 

2)每一行的數(shù)字都是一樣的 

![示意圖](http://upload-images.jianshu.io/upload_images/3899701-467a5bce467d7184.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
#####思考&實現(xiàn)3: 

用戶輸入一個整數(shù)N,輸出如下圖形,如:N= 5

![示意圖](http://upload-images.jianshu.io/upload_images/3899701-36946150d2a62b60.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


![示意圖](http://upload-images.jianshu.io/upload_images/3899701-6948c448084d3270.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
  
####十一【掌握】循環(huán)的中斷語句
      break和continue語句都可以用在循環(huán)中,用來跳出循環(huán)(結(jié)束循環(huán));break語句還可以用在switch語句中,用來跳出switch語句纺蛆。

##### 1吐葵、break語句用法

        break語句通常用在循環(huán)語句和開關(guān)語句中。當break用于開關(guān)語句switch中時,可使程序跳
出switch而執(zhí)行switch以后的語句;break在switch 中的用法已在前面介紹開關(guān)語句時的例子中碰到,這里不再舉例桥氏。 

-

注意:

//
if(表達式)else{ ...... break;......}

1)break語句對if-else的條件語句不起作用;

2)在多層循環(huán)中,一個break語句只向外跳一層温峭。

 

#####思考&實現(xiàn)1: 

在圓中,當圓的半徑等于多少時识颊,圓的面積才會大于或等于100诚镰?(只考慮半徑為從1到10的情況) 

 

#####思考:

r從1變到10 判斷面積是否不是>100 如果大于>100 循環(huán)要終止 

面積 = 3.14*r*r; 


![如圖](http://upload-images.jianshu.io/upload_images/3899701-56773bcc083f86b6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)



#####2奕坟、continue 語句(結(jié)束本次循環(huán),繼續(xù)下次循環(huán)) 用法 
 continue語句的作用是跳過循環(huán)體中剩余的語句而繼續(xù)下一次祥款。continue語句只用在for、while月杉、do-while等循環(huán)體中,常與if條件語句一起使用,用來加速循環(huán)刃跛。 

對比一下break和continue。

```

break的用法: 

 

while(表達式1){

......

if(表達式2)  break; 

......

}

 

continue的用法: 

 

while(表達式1){

......

if(表達式2)  continue; 

......

}


```


#####思考&實現(xiàn)1: 

把100~200之間的不能被3整除的數(shù)輸出

![思考與實現(xiàn)](http://upload-images.jianshu.io/upload_images/3899701-20491c7fb003a9a4.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

####十二【掌握】for循環(huán)嵌套練習(xí)


第一題:打印九九乘法表

![乘法表](http://upload-images.jianshu.io/upload_images/3899701-884f9a4e3763a0a3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


第二題:讓用戶輸入一個數(shù)N苛萎,輸出類似如下圖的等腰三角形(下圖N為6)

![等腰三角形](http://upload-images.jianshu.io/upload_images/3899701-49ee0d344e29fd76.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末桨昙,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子腌歉,更是在濱河造成了極大的恐慌蛙酪,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件翘盖,死亡現(xiàn)場離奇詭異桂塞,居然都是意外死亡,警方通過查閱死者的電腦和手機馍驯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進店門阁危,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人汰瘫,你說我怎么就攤上這事狂打。” “怎么了混弥?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵趴乡,是天一觀的道長。 經(jīng)常有香客問我,道長晾捏,這世上最難降的妖魔是什么官辽? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮粟瞬,結(jié)果婚禮上同仆,老公的妹妹穿的比我還像新娘。我一直安慰自己裙品,他們只是感情好俗批,可當我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著市怎,像睡著了一般岁忘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上区匠,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天干像,我揣著相機與錄音,去河邊找鬼驰弄。 笑死麻汰,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的戚篙。 我是一名探鬼主播五鲫,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼岔擂!你這毒婦竟也來了位喂?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤乱灵,失蹤者是張志新(化名)和其女友劉穎塑崖,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體痛倚,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡规婆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了状原。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片聋呢。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖颠区,靈堂內(nèi)的尸體忽然破棺而出削锰,到底是詐尸還是另有隱情,我是刑警寧澤毕莱,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布器贩,位于F島的核電站颅夺,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蛹稍。R本人自食惡果不足惜吧黄,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望唆姐。 院中可真熱鬧拗慨,春花似錦、人聲如沸奉芦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽声功。三九已至烦却,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間先巴,已是汗流浹背其爵。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留伸蚯,地道東北人摩渺。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像朝卒,于是被迫代替她去往敵國和親证逻。 傳聞我的和親對象是個殘疾皇子乐埠,可洞房花燭夜當晚...
    茶點故事閱讀 45,066評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法抗斤,類相關(guān)的語法,內(nèi)部類的語法丈咐,繼承相關(guān)的語法瑞眼,異常的語法,線程的語...
    子非魚_t_閱讀 31,643評論 18 399
  • 個人學(xué)習(xí)批處理的初衷來源于實際工作棵逊;在某個迭代版本有個BS(安卓手游模擬器)大需求伤疙,從而在測試過程中就重復(fù)涉及到...
    Luckykailiu閱讀 4,725評論 0 11
  • 今天真正的思考了自己的時間顆粒度……應(yīng)該是以一天為單位的。這應(yīng)該就是老感覺自己忙忙碌碌但又效率不高的原因吧辆影。...
    柴慕怡閱讀 177評論 0 1
  • 交到一個閨蜜蛙讥,往往都是從某一方的主 動打招呼開始,然后認識旁涤,然后熟悉,然后 自然而然地成為朋友瞳遍,然后發(fā)現(xiàn):哎...
    薏蔦閱讀 451評論 0 0
  • 一直比較喜歡利用RSS進行資訊聚合閱讀掠械,下面就來總結(jié)下我一些我用過的在線RSS閱讀工具份蝴。 在線RSS閱讀工具匯總 ...
    來自西界閱讀 29,613評論 17 64