• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            風雨兼程

            ring my bells
            posts - 49, comments - 14, trackbacks - 0, articles - 0

            C程序設計_教案02

            Posted on 2008-04-22 13:09 silentneil 閱讀(250) 評論(0)  編輯 收藏 引用
            第4章    順序結構程序設計
            4.1  C語句概述
            1. C的程序結構
            一個C程序由若干個源程序文件組成;一個源程序由預處理命令、全局變量說明和若干個函數組成;一個函數由函數首部和函數體組成;一個函數體由局部變量聲明和執行語句組成。
            P67,圖4.1。
            2. C程序的語句
            C程序的語句的語句分為5類:
            (1)控制語句
            用來控制程序流程的語句。
            P68,①~⑨
                 P68,例。
                 注意:( )表示其中是一個條件,~表示內嵌語句。
            (2)函數調用語句
                 由一次函數調用加一個分號購成的語句。
                 P68,例。
                 注意:函數有庫函數與自定義函數兩種,自定義函數要先定義后調用。
            (3)表達式語句
                 由一個表達式加一個分號購成的語句。
                 P68,例。
                 注意:表達式語句與表達式的區別在于有無分號。
            (4)空語句
                 只由一個分號購成的語句。
                 P68,例。
                 注意:空語句不做任何事情。
            (5)復合語句
                 把多個語句用{ }括起來的語句。
                 P69,例。
                 注意:復合語句構成一個分程序,內可包含數據聲明和執行語句兩部分。
            4.2  賦值語句
            賦值語句是表達式語句的一種最常用的形式,與其它高級語言相比,C的賦值語句有其獨特之處:
            (1)在C中“=”是一個運算符;
            (2)在C中賦值語句可以包括在其它表達式中。
            P69,例。
            4.3  數據輸入輸出的概念及在C語言中的實現
            (1)把數據從外部設備送到計算機內存稱為輸入,把數據從計算機內存送到外部設備稱為輸出。外部設備有鍵盤、顯示器、磁盤等。
            (2)C本身沒有輸入輸出的語句,C的輸入輸出是由一批庫函數來實現的。這些庫函數有:scanf、printf、getchar、putchar、gets、puts等,它們放在名為stdio.h的庫函數文件中。
            (3)一般要使用這些庫函數時,要在程序頭加上
                     #include <stdio.h> 或 #include “stdio.h”
                 的預編譯命令,其作用是把這些庫函數包含到本程序中來。
                 P71,例。
            4.4  字符數據的輸入與輸出
            4.4.1 字符輸出函數putchar
            格式:putchar(字符變量);
            功能:把字符變量中的字符輸出到顯示器。
            注意:putchar函數一般作為一個語句來使用。
            P71,例4.1。見ex4-1.c。
            4.4.2 字符輸入函數getchar
            格式:getchar( )
            功能:從鍵盤輸入一個字符并通過函數名返回這個字符。
            注意:getchar函數一般在在表達式中使用。
            P72,例4.2。
            4.5  格式輸入與輸出
            4.5.1 格式輸出函數printf
            1. 一般格式
            格式:printf(格式控制,輸出表列);
            功能:按照“格式控制”中的格式要求輸出“輸出表列”的值。
            P72,例。
            (1)“格式控制”是一個用雙撇號括起來的字符串,它包括兩種信息:
            ①格式說明:由%和格式字符組成,不同的格式字符指明了不同的輸出方式。
            ②普通字符:即要原樣輸出的字符。
            P72,例。
            (2)“輸出表列”是要輸出的一些數據,可以是表達式。
            P73,例。
            2. 格式字符
            (1)d格式符:用來輸出十進制整數。
                 可有四種用法:%d,%md,%ld,%-d。
                 其中:m表示輸出寬度,l表示輸出長整數,-表示輸出左對齊。
            P73,例。
            (2)o格式符:用來輸出八進制整數。
                 同樣可以附加m,l,- 等。
                 注意:符號位當成數據輸出,不會輸出負數。
            P74,例。
            (3)x格式符:用來輸出十六進制整數。
                 同樣可以附加m,l,- 等。
                 注意:符號位當成數據輸出,不會輸出負數。
            P74,例。
            (4)u格式符:用來輸出無符號數據。
                 同樣可以附加m,l,- 等。
            P74,例4.3。
            (5)c格式符:用來輸出一個字符。
                 可以附加m,- 等。
            P74,例4.4。
            (6)s格式符:用來輸出一個字符串。
                 除了可以附加m,- 外,還可以寫成 %m.ns。
                 其中:m.n表示寬度為m,只輸出字符串左邊n個字符。
            P75,例4.5。
            (7)f格式符:用來小數形式輸出一個實數。
                 除了可以附加m,- 外,還可以寫成 %m.nf。
                 其中:m.n表示寬度為m,保留n位小數。
            P76,例4.6,例4.7,例4.8。
            (8)e格式符:用來指數形式輸出一個實數。
                 除了可以附加m,- 外,還可以寫成 %m.nf。
                 其中:m.n表示寬度為m,小(尾)數部分保留n位小數。
            P77,例。
            (9)g格式符:用來輸出一個實數,形式自動取小數和指數中的較短者。
            P77,例。
            P77,表4.1。
            4.5.2 格式輸入函數scanf
            1. 一般格式
            格式:scanf(格式控制,地址表列);
            功能:按照“格式控制”中的格式要求輸入數據到“地址表列”的相應變量中。
            (1)“格式控制”是一個用雙撇號括起來的字符串,它包括兩種信息:
            ①格式說明:由%和格式字符組成,不同的格式字符指明了不同的輸入方式。
            ②普通字符:即要原樣輸入的字符。
            P72,例。
            (2)“地址表列”是要輸入的變量的地址,一般用地址運算符&求得。
            P79,例4.9。
            2. 格式字符
            scanf函數的格式字符與printf函數類似,但有微小區別。
            P80,表4.3,表4.4。
            說明:P80,(1)~(4)。
            3. 使用scanf函數應請注意的問題
            (1)“格式控制”后面是變量的地址,而不是變量。
                P81,例。
            (2)如果在“格式控制”中有格式說明符外的其它字符,要原樣輸入。
                P81,例。
            (3)用%c輸入字符時,空格、回車符等都作為有效字符輸入。
                P82,例。
            (4)在輸入數據時,遇到空格、回車、跳格、限寬、非法等會結束輸入。
                P82,例。
            4.6  順序結構程序設計舉例
                P82,例4.10。見ex4-10.c。
                P83,例4.11。見ex4-11.c。
                P84,例4.12。見ex4-12.c。


             
            第5章    選擇結構程序設計
            5.1     關系運算符和關系表達式
            5.1.1 關系運算符及其優先次序
            (1)運算符:>、>=、<、<=、= =、!=
            (2)優先級:①>、>=、<、<= ②= =、!=
                         低于算術運算,高于賦值運算
            (3)結合方向:從左到右
            P88,例。
            5.1.2 關系表達式
            用關系運算符把兩個表達式連接起來的式子稱為關系表達式。
            關系表達式的值為真(1)或假(0)。
            P88,例。
            5.2     邏輯運算符和邏輯表達式
            5.2.1 邏輯運算符及其優先次序
            (1)運算符:&&、||、!
            (2)優先級:①!  ②&& ③||
                         !與單目+、-同級,&&、||低于關系運算
            (3)結合方向:! 從右到左,&&、|| 從左到右
            P89,例。
            5.2.2 邏輯表達式
            用邏輯運算符把兩個表達式連接起來的式子稱為邏輯表達式。
            邏輯表達式的值為真(1)或假(0),判斷時非0是真、0是假。
            P89,例。
            注意:(1)a&&b&&c的判斷,a為0則表達式為0,a為1、b為0則表達式為0,a為1、b為1、c為0則表達式為0,否則表達式為1。
                 (2)a||b||c的判斷,a為1則表達式為1,a為0、b為1則表達式為1,a為0、b為0、c為1則表達式為1,否則表達式為0。
            P91,例。
            5.3     If語句
            5.3.1  if語句的三種形式
            1. 單分支if語句
            格式1:if (表達式) 語句
            功能1:如果表達式為真,則執行語句。
            P91,例。
            2. 雙分支if語句
            格式2:if (表達式) 語句1
              else 語句2
            功能2:如果表達式為真,則執行語句1,否則執行語句2。
            P92,例。
            3. 多分支if語句
            格式3:if (表達式1)    語句1
                   else if (表達式2) 語句2
                   … …
                   else if (表達式n) 語句n
                   else 語句n+1
            功能3:如果直到表達式i為真,則執行語句i,否則表達式全為假,則執行語句n+1。
            P92,例。
            注意:(1)每個語句都是以分號結束的;
            (2)if或else后只能一個語句,如有多個語句要用{ }括起來。
            P93,例5.1,例5.2。
            5.3.2  if語句的嵌套
            if語句可以嵌套,原則是else與它最近的if配對,如果在內層嵌套中要使用單分支if語句,要用{ }把它括起來。
            P94,例,例5.3。
            5.3.3  條件運算符
            1    運算符:? :
            2    優先級:低于邏輯運算,高于賦值運算
            3    結合方向:從右向左
            (4) 條件表達式:
            格式:表達式1? 表達式2: 表達式3
            功能:若表達式1為真,則條件表達式取表達式2,否則取表達式3。
            P96,例。
            注意:表達式2與表達式3二者的類型取高的。P37。
            P98,例,例5.4。
            5.4     Switch語句
            格式:switch (表達式)
                  {case 常量表達式1:語句1
            case 常量表達式2:語句2
                    … …
            case 常量表達式n:語句n
             [default:語句n+1]
                   }
            功能:如果表達式的值等于常量表達式i,則執行語句i及其后面的語句,否則如果都不等,則執行語句n+1。
            P99,例。
            注意:(1)表達式可以是任何類型的;
                 (2)常量表達式的值不能相同;
                 (3)各case和default出現次序無關;
                 (4)可用break中斷執行后續語句;
            (5)多個case可共用一組執行語句。
            P99,例。

            5.5     程序舉例
            P100,例5.5。見ex5-5-1.c,ex5-5-2.c。
            P101,例5.6。
            P103,例5.7。見ex5-7。


             
            第6章    循環結構程序設計
            6.1     概述
            在C語言中,構成循環的語句有4種:
            1    用goto和if語句;
            2    用while語句;
            3    用do-while語句;
            4    用for語句。
            6.2     goto語句以及用goto語句構成循環
            格式:goto 語句標號;
            功能:無條件轉到語句標號指定的語句中去執行。
            注意:(1)語句標號應是合法的標識符,可放在任何語句的前面。
                 (2)用goto語句構成循環不是一種很好的方法。
            P106,例,例6.1。
            6.3     while語句
            格式:while (表達式)
                    循環體;
            功能:當表達式為真時執行循環體的語句,直到表達式為假時退出循環。
            P107,例6.2。
            注意:(1)循環體只能一個語句,如有多個語句要用{ }括起來。
                 (2)循環體內應有使循環趨于結束的語句,否則構成死循環。
            (3)循環體可能一次也沒執行到,當條件表達式為真時進入循環體,故也稱當型循環。
            6.4     do-while語句
            格式:do
                    循環體;
            while (表達式);
            功能:先執行一次循環體,然后當表達式為真時再執行循環體,直到表達式為假時退出循環。
            P108,例6.3,例6.4。
            注意:(1)循環體只能一個語句,如有多個語句要用{ }括起來。
                 (2)循環體內應有使循環趨于結束的語句,否則構成死循環。
            (3)循環體至少執行一次,直到條件表達式為假時退出循環,故也稱直到型循環。
            6.5     for語句
            格式:for (初值表達式;條件表達式;修正表達式)
                    循環體;
            功能:先執行一次初值表達式,再執行條件表達式,若為真則執行循環體,然后執行修正表達式,再次執行條件表達式進行判斷,直到條件表達式為假時退出循環。
            P110,例。
            注意:(1)循環體只能一個語句,如有多個語句要用{ }括起來。
                 (2)可以明顯看出循環體執行的次數,故也稱計數循環。
                 (3)三個表達式在一定的條件下都可省。
            P111,說明(1)~(7)。
            6.6     循環的嵌套
            四種循環可以互相嵌套,此時外層循環的每一取值,內層循環要轉一圈。但是循環嵌套不得交叉進行。
            P113,說明(1)~(6)。
            6.7     幾種循環的比較
            4    四種循環可以用來處理同一問題,但一般不用goto循環。
            5    while和do-while循環在循環體內應有使循環趨于結束的語句,for可用修正表達式來實現。
            6    while和do-while循環在循環前應有初始化的操作,for可用初值表達式來實現。
            7    while和do-while及for循環可用break語句跳出循環和用continue語句結束本次循環,而goto循環不可以用。
            6.8     break語句和continue語句
            6.8.1  break語句
            格式:break;
            功能:退出switch選擇或while、do-while、for循環結構。
            P114,例。
            6.8.2  contiune語句
            格式:contiune;
            功能:本次while、do-while、for循環提前結束,進入下次循環。
            P115,例。
            P115,例6.5。
            6.9     程序舉例
            P116,例6.6。見ex6-6。
            P116,例6.7。見ex6-7。
            P118,例6.8。
            P118,例6.9。見ex6-9。
            P119,例6.10。見ex6-10。


             
            第7章    數組
            數組是由相同類型的一組數據構成的。前面我們所學的類型都是基本類型,而本章所學的數組是一種構造類型。
            7.1     一維數組的定義和引用
            7.1.1 一維數組的定義
            格式:類型標識符 數組名[常量表達式],…;
            其中:數組名是標識符,常量表達式是元素個數。
            功能:定義一維數組,其數組名由其“數組名”指定,元素個數由“常量表達式”指定,元素類型由“類型標識符”指定。
            P122,例。
            注意:(1)C語言中數組的下標從0開始;
                 (2)常量表達式中可以有符號常量,但不能含有變量;
                 (3)數組一旦定義,系統為它分配一個連續的存儲空間。
            7.1.2 一維數組元素的引用
            格式:數組名[下標表達式]
            功能:引用已定義的數組元素
            P123,例,例7.1。
            注意:(1)下標可以是表達式。
                 (2)下標的取值為0~常量表達式-1,超出范圍可能有不可預料的后果。
            7.1.3 一維數組的初始化
            在定義一維數組時,可對數組進行初始化。
            方法:在定義數組時在數組名后加上={初始值,初始值,…,初始值}
            P123,例。
            注意:(1)可對部分元素初始化。
                 (2)數組有進行初始化時常量表達式可省。
            7.1.4 一維數組程序舉例
            P124,例7.2。
            P124,例7.3。見ex7-3.c。
            7.2     二維數組的定義和引用
            7.2.1 二維數組的定義
            格式:類型標識符 數組名[常量表達式][ 常量表達式],…;
            功能:定義二維數組,其數組名由其“數組名”指定,每維下標的取值范圍由該維的“常量表達式”指定,元素類型由“類型標識符”指定。
            P125,例。
            注意:(1)多維數組的定義與二維數組類似;
                 (2)二維數組常用來描述數學中的矩陣;
                 (3)對于一個m×n的二維數組,二維數組與一維數組元素的對應:
                      二維中第i,j個元素←→一維中第i×n+j個元素
            P126,例。
            7.2.2 二維數組的引用
            格式:數組名[下標表達式] [下標表達式]
            功能:引用已定義的二維數組元素
            P126,例。
            注意:設a是一個m×n二維數組;則
                 (1)a[i] (對任意固定的i=0,1,…,m-1)是一個長度為n的一維數組,它的數組名就是a[i],每個元素是a[i][j];
                 (2)a可認為是一個長度為m一維數組,它的數組名就是a,每個元素是a[i];
                 (3)由上可知,二維數組可認為是一個元素是一維數組的一維數組。
            7.2.3 二維數組的初始化
            在定義二維數組時,也可對數組進行初始化。
            方法:在定義數組時在數組名后加上={{初始值,…},{初始值,…},…,{初始值,…}}或者加上={初始值,初始值,…,初始值}
            P127,例。
            注意:(1)可對部分元素初始化;
                 (2)二維以上數組有進行初始化時第一維的常量表達式可省。
            P128,例。
            7.2.4 二維數組應用舉例
            P128,例7.4。
            P129,例7.5。見ex7-5.c。
            7.3     字符數組和字符串
            7.3.1 字符數組
            字符數組:元素類型為字符型的數組稱為字符數組。
            格式:char 數組名[常量表達式],…;
            P130,例。
            注意:長度為n的字符數組可用來存放n個字符。
            7.3.2 字符數組的初始化
            與普通數組一樣,可對字符數組進行初始化。
            方法:在定義數組時在數組名后加上={字符,字符,…,字符}
            P130,例。
            注意:初始化時元素個數可不寫。
            7.3.3 字符數組的引用
            字符數組的每個元素存放的是一個字符。
            格式:數組名[下標表達式]
            P131,例7.6,例7.7。
            7.3.4 字符串和字符串結束標志
            (1)字符串
            由若干個字符兩邊用雙撇號括起來的稱字符串。
            字符串存放時應在尾部加一個\0作為結束標志。
            長度為n的字符存儲時占用n+1個字節的存儲空間。
            P131,例。
            (2)用字符數組存放字符串
            長度為n的字符數組可用來存放一個長度為n-1的字符串。
            字符數組可用字符串進行整體初始化,且此時會自動在尾部加一個\0。
            P132,例。
            7.3.5 字符數組的輸入與輸出
            字符數組輸入輸出的方法有兩種:
            (1)逐個元素用scanf和printf函數輸入輸出
            格式:scanf(“%c”,&數組元素);
                  printf (“%c”,數組元素);
            功能:前者從鍵盤上取得一個字符送給相應的數組元素;
            后者把數組元素中的字符輸出到顯示器上。
            P131,例7.6。
            (2)整個字符數組用scanf和printf函數輸入輸出
            格式:scanf(“%s”,數組名);
            printf (“%s”,數組名);
            功能:前者從鍵盤上取得一個字符串送給相應的數組;
            后者把數組中的整個字符串輸出到顯示器上。
            P133,例。
            注意:(1)整個字符數組中的字符串輸出時,\0本身不輸出, 且輸出不換行;
            (2)整個字符數組中的字符串輸出時,是從首地址逐一輸出的,直到遇到第一個\0為止;
            (3)C語言中數組名表示該數組的首地址,故整個字符數組輸入時不能在數組名前加&;
                (4)整個字符數組輸入時遇空格而停止,且會自動在尾部加一個\0。
            P133,例。
            7.3.6 字符串處理函數
            1. 字符串輸出函數puts
            格式:puts(字符數組名);
            功能:輸出字符數組中的字符串。
            P135,例。
            2. 字符串輸入函數gets
            格式:gets(字符數組名);
            功能:從鍵盤輸入一個字符串到字符數組中。
            P135,例。
            注意:(1)gets與puts一次只能輸入輸出一個字符串;
                 (2)gets輸入時不會遇空格而停止,而是遇換行符而停止,也會在尾部自動加上一個\0;
            (3)puts輸出時也是到\0為止,還會把\0轉成換行符輸出。
            3. 字符串連接函數strcat
            格式:strcat(字符串1, 字符串2);
            功能:把字符串2的內容連接到字符串1之后,函數返回字符串1。
            注意:連接時把第二個字符串的第一個字符覆蓋到第一個字符串的\0上
            P136,例。
            4. 字符串拷貝函數strcpy
            格式:strcpy(字符串1,字符串2);
            功能:把字符串2的內容拷貝到字符串1中,函數返回字符串1。
            注意:(1)拷貝時也是到第一個\0為止,連同\0一起拷貝;
                 (2)對字符串不可有賦值語句:字符串1=字符串2;
            P136,例。
            5. 字符串比較函數strcmp
            格式:strcmp(字符串1,字符串2);
            功能:比較字符串1與的字符串2內容:如果字符串1= =字符串2,則返回0;如果字符串1>字符串2,則返回正整數;如果字符串1<字符串2,則返回負整數。
            注意:比較時是以字符的ASCII值進行的。
            P137,例。
            6. 測字符串長度函數strlen
            格式:strlen(字符串)
            功能:返回字符串的實際字符數。
            注意:(1)測字符串長度包括空格,但不包括\0;
            (2)遇到\開頭的特殊字符也當一個字符對待。
            P138,例。
            7. 字符換小寫函數strlwr
            格式:strlwr(字符串)
            功能:把字符串中的大寫字母換成小寫字母。
            8. 字符換大寫函數strupr
            格式:strupr(字符串)
            功能:把字符串中的小寫字母換成大寫字母。
            7.3.7 字符數組應用舉例
            P138,例7.8。見ex7-8.c。
            P140,例7.9。見ex7-9.c。
            亚洲va久久久噜噜噜久久天堂| 久久国产精品免费一区| 久久中文字幕精品| 久久久久亚洲精品天堂| 久久99精品久久久久久hb无码| 97精品依人久久久大香线蕉97| 精品无码久久久久久午夜| www亚洲欲色成人久久精品| 中文字幕无码久久人妻| 精品久久人人爽天天玩人人妻| 国产精品久久久久蜜芽| 91精品国产91热久久久久福利| 亚洲欧美国产日韩综合久久 | 久久精品国产亚洲av瑜伽| 狠狠色综合网站久久久久久久高清| 久久亚洲国产欧洲精品一 | 无码任你躁久久久久久老妇App| 国产毛片欧美毛片久久久| 国产精品99久久久久久猫咪| 久久久久亚洲av综合波多野结衣| 亚洲一区中文字幕久久 | 国产精品gz久久久| 精品久久无码中文字幕| 午夜精品久久久久久影视riav| 久久久久久狠狠丁香| 国产精品久久久久国产A级| 波多野结衣久久一区二区| 久久久久久A亚洲欧洲AV冫| 国产精品丝袜久久久久久不卡| 久久久久人妻精品一区 | 久久免费香蕉视频| 国产精品热久久毛片| 久久免费美女视频| .精品久久久麻豆国产精品| 色欲综合久久中文字幕网| 久久久久国产精品人妻| 亚洲精品tv久久久久久久久 | 精品国产热久久久福利| 狠狠色丁香婷婷综合久久来| 久久久久AV综合网成人| 国产精品久久久久aaaa|