• <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程序設計_教案01

            Posted on 2008-04-19 23:41 silentneil 閱讀(414) 評論(0)  編輯 收藏 引用
            第1章    C語言概述
            1.1    C語言出現的歷史背景
            C語言是國際上廣泛流行的計算機高級語言,即可用來寫系統軟件,也可用來寫應用軟件。
            C語言是在B語言的基礎上發展起來的。
            早期的C語言運行在UNIX操作系統上,后來運行在DOS操作系統上,現在的C語言可運行在Windos操作系統上。
            C語言有許多版本,我們使用的是Turbo C 2.0。
            P1,說明。
            1.2    C語言的特點
            C語言有許多優于其它語言的特點:
            (1)語言簡潔、緊湊,使用方便、靈活。
            C語言一共只有32個關鍵字,9個控制語句,書寫形式自由。
            P2,表1.1。
            (2)運算符豐富。
                 C共有34種運算符,如+、-等。
            P2,說明。
            (3)數據結構豐富。
                 C有整型、實型等多種數據結構。
            P3,說明。
            (4)具有結構化的控制語句。
                 C有if…else、while等多種結構化的控制語句。
            P3,說明。
            (5)語法限制不太嚴格,程序設計自由度大。
                 如對數組下標越界不作檢查等。
            P3,說明。
            (6)C語言可進行位運算。
                 這是C區別于其它高級語言的主要特點。
            P3,說明。
            (7)生成目標代碼質量高。
                 這也是C的優于其它高級語言之處。
            P3,說明。
            (8)C程序可移植性好。
                 即C程序可基本不做修改移到不同的計算機上運行。
            P3,說明。
            1.3    簡單的C程序介紹
            P4,例1.1,見ex1-1.c。
            程序功能:打印一個字符串,并輸出一個換行符。
            P4,例1.2,見ex1-2.c。
            程序功能:求兩個數之和。
            P5,例1.3,見ex1-3.c。
            程序功能:求兩個數的較大者。
            分析這三個例子的執行過程。
            說明:
            4    C程序是由函數組成的。在上面的例子中的函數有:main、printf、scanf和max。其中main是主函數,printf、scanf是庫函 數,max是自定義函數。一個C程序一定要有一個主函數。庫函數是放在*.h的庫函數文件中,只要直接調用就可。自定義函數要由用戶先定義后調用。
            5    認識一下C函數
            C函數定義的一般格式為:
            函數類型  函數名(形參類型 形式參數,…)
            {
            數據聲明部分;
            函數執行部分;
            }
            C函數調用的一般格式為:
            函數名(實際參數,…)
            (3)一個C程序總是從main主函數開始執行的,而不論main函數在程序中的位置如何。主函數可以調用子函數,子函數還可以調用子子函數。因此C程序是層次結構的。
            (4)C程序一行可以寫多個語句,每個語句以“;”結束。C程序是區分大小寫字母的。C程序本身沒有輸入輸出語句,其輸入輸出是由庫函數printf和scanf來完成的。/*…*/是C的注釋語句。
            1.4    C程序的上機步驟
            C程序編寫好后,要經過編輯、編譯、連接與運行四個步驟,這四個步驟的作用分別是:
            編輯:把C語言源程序輸入計算機并進行修改存盤,生成*.c的源程序文件。
            編譯:用C編譯程序對*.c的源程序文件進行編譯,生成*.obj的二進制文件。
            連接:把*.obj的二進制文件與系統標準模塊進行連接,生成*.exe的可執行文件。
            運行:執行*.exe的可執行文件,輸出執行結果。
            以上步驟均可在Turbo C的工作平臺上進行,啟動Turbo C,就可以進行編輯,打命令Ctrl+F9,就可以進行編譯、連接和運行,打命令Alt+F5,就可看到執行結果。
            舉例說明,見ex1-1.c。
            1.5    Turbo C常用命令簡介
            1.    啟動和退出
            啟動:在DOS下打TC,或在Windows下創建快捷命令執行。
            退出:Alt+X
            2.    程序的編輯
            簡單編輯:Ins:插入/改寫           Backspace:刪除前一字符
                      Del:刪除當前字符       Ctrl+Y:刪除一行
            塊操作:Ctrl+KB、Ctrl+KK:定義塊首、尾
                    Ctrl+KC、Ctrl+KV、Ctrl+KY:塊復制、塊移動、塊刪除
                    Ctrl+KH:取消塊定義
            3.    程序載入與存盤
            F3:載入程序                   F6:切換窗口
            F2:存盤                       Alt+FN:新建程序
            4.    編譯和運行
            Ctrl+F9:編譯連接執行程序       Alt+F5:查看執行結果
            Ctrl+F7:添加監視表達式         F7:進入子函數單步執行
            F8:越過子函數單步執行         Ctrl+F2:取消單步執行

            舉例說明,見ex1-1.c。


             
            第2章    程序的靈魂-算法
             一個程序應包括兩個方面的內容:
            3    對數據的描述:即程序中的數據要指定它的類型和組織形式,也稱數據結構。
            4    對操作的描述:即程序中對要做的事要指明它的操作步驟,也稱算法。
            算法是程序的靈魂,也就是說,要計算機解決實際中的問題,“怎么解”是程序設計的關鍵。
            2.1    算法的概念
            (1)算法的定義
            計算機算法:就是要計算機解決問題的操作步驟。
            P13,例。
            (2)算法的分類
            計算機算法可分為兩類:數值算法和非數值算法。
            P14,例。
            2.2    簡單算法舉例
            P14,例2.1。
            注意:解決同一問題可有不同的算法,算法有優劣之分。
            P15,例2.2。
            注意:循環是算法中常用的手段。
            2.3    算法的特性
            算法具有如下特性:
            (1)有窮性
            即經過有限步就能夠完成。
            P14,例2.1。P15,例2.2。
            (2)確定性
            即每一步都是確定的。
            P14,例2.1。P15,例2.2。
            (3)有零個或多個輸入
            即一個算法必須輸入的數據可以是零個或多個。
            P14,例2.1。P15,例2.2。
            (4)有一個或多個輸出
            即一個算法可以輸出一個或多個數據。
            P14,例2.1。P15,例2.2。
            (5)有效性
            即算法中每一步驟都能有效地執行,并得到確定的結果。
            P14,例2.1。P15,例2.2。
            2.4    怎樣表示一個算法
            算法的表示法有多種,敘述如下:
            (1)用自然語言表示
            即把算法用人們日常使用的語言表示出來。
            P14,例2.1。P15,例2.2。
            特點:常常具有不確定性,不宜采用。
            (2)用流程圖表示
            即把算法用一些特定的符號和圖形表示出來。
            P20,例2.6,例2.7。
            特點:這是一種較好的表示法,經常采用。
            (3)用N-S圖表示
            即把算法用一些特定的符號和圖形表示出來。
            P26,例2.11,例2.12。
            特點:這也是一種較好的表示法,經常采用。
            (4)用偽代碼表示
            即把算法用一些稱為偽代碼的文字和符號表示出來。
            P29,例2.16,例2.17。
            特點:這也是一種較好的表示法,經常采用。
            (5)用計算機語言表示
            即把算法用某種計算機語言符號表示出來。
            P31,例2.20,例2.21。
            特點:這當然是一種很好的表示法,可以輸入計算機執行。
            2.5    結構化程序設計方法
            算法有三種基本結構,它們是:
            (1)順序結構:即算法的執行是按順序一步接著一步的執行。
            (2)選擇結構:即算法的執行是對某些步驟可有選擇的執行。
            (3)循環結構:即算法的執行是對某些步驟可有限次的重復執行。
            這三種基本結構的流程圖見P23,圖2.14,圖2.15,圖2.16,圖2.17。用這三種基本結構設計程序稱為結構化程序設計。
            結構化程序設計的方法指的是:
            1    自頂向下
            2    逐步細化
            3    模塊化設計
            4    結構化編碼
            P32,例。


             
            第3章    數據類型、運算符與表達式
            3.1     C的數據類型
            數據是程序的必要組成部分,也是程序處理的對象。C規定,在程序中使用的每一個數據必須屬于某一數據類型。
            C語言中所有的數據類型見P38。
            3.2    常量與變量
            在程序運行過程中,值保持不變的量稱為常量,值可能發生變化的量稱為變量。
            3.2.1 常量與符號常量
            1. 常量
            常量是日常所說的常數、字符、字符串等。
            P38,例。
            2. 符號常量
            用#define定義的用標識符來表示的常量。
            格式:#define 常量名 常量
            功能:定義一個符號常量
            P38,例3.1。
            說明:常量名必須是一個標識符。
            3.2.2 變量
            1. 標識符
            標識符是用來表示符號常量、變量、數組、函數、過程、類型及文件的名字的。
            標識符的命名規則:
            (1)以字母或下劃線開頭,由字母、數字和下劃線組成;
            (2)不能與關鍵字同名,最好不要與庫函數名同名;
            (3)長度無限定,但不同版本的C編譯時有自己的規定;
            (4)區分大小寫。
            P40,例。
            2. 變量的聲明
            格式:類型名 變量名,… ;
            功能:聲明變量。
            說明:(1)變量名必須是一個標識符,變量必須先聲明后使用;
            (2)變量一旦聲明,系統就為它開辟一個相應類型的存儲空間;
            (3)變量所占用的存儲空間的首地址稱為該變量的地址。
            P40,例。
            3. 變量的賦值
            格式:變量名=表達式;
            功能:把=號右邊表達式的值賦給=號左邊的變量。
            P40,例。
            3.3    整型數據
            3.3.1 整型常量的表示方法
            整型常量常用三種形式表示:
            (1)十進制:直接寫;
            (2)八進制:前加0;
            (3)十六進制:前加0X或0x。
            P41,例。
            3.3.2 整型變量
            1. 整型數據在內存中的存放形式
            整型數據在內存中采用定點表示。
            定點表示有原碼、反碼、補碼之分,一般在機內使用補碼。
            原碼:最高位為符號位,小數點定在最低位之后,數值用二進制表示。
            反碼:正數的反碼與原碼一樣,負數的反碼除符號位外各位取反。
            補碼:正數的補碼與原碼一樣,負數的補碼是反碼加1。
            例1:整數10的16位定點表示
                 因:(10)10=(1010)2
                 故:整數10的16位定點表示為
                 原碼:
            0    0    0    0    0    0    0    0    0    0    0    0    1    0    1    0
                 反碼:
            0    0    0    0    0    0    0    0    0    0    0    0    1    0    1    0
                 補碼:
            0    0    0    0    0    0    0    0    0    0    0    0    1    0    1    0
            例2:整數-10的16位定點表示
                 因:(-10)10=(-1010)2
                 故:整數-10的16位定點表示為
                 原碼:
            1    0    0    0    0    0    0    0    0    0    0    0    1    0    1    0
                 反碼:
            1    1    1    1    1    1    1    1    1    1    1    1    0    1    0    1
                 補碼:
            1    1    1    1    1    1    1    1    1    1    1    1    0    1    1    0
            現代計算機一般用補碼表示。
            2. 整型變量的分類
            (1)有三種整型變量
            整型:  int
            短整型:short [int]
            長整型:long [int]
            (2)整型變量的分類
            每種整型變量都可以是無符號的,無符號前加unsigned,有符號前加signed或省缺,于是可有6類整型變量。
            P42,例。
            (3)整型變量占用的存儲空間及取值范圍
            P43,表3.1。
            3. 整型變量的聲明
            格式:[unsigned] int|short|long 變量名,…;
            功能:聲明整型變量。
            P44,例,例3.2。
            4. 整型數據的溢出
            int型的取值范圍為-32768~32767(-215~215-1),超出這個范圍稱為溢出,此時可能輸出難以理解的結果。
            P44,例,例3.3。
            3.3.3 整型常量的類型
            整型常量一般按整型數據的取值范圍自動劃定,但也可強制規定它是什么類型,規則是:
            無符號整型后加u或U;
            長整型后加l或L。
            P45,(1)~(5)
            3.4    實型數據
            3.4.1 實型常量的表示方法
            實型常量常用二種形式表示:
            (1)十進制小數形式:直接寫,要有小數點,前或后至少要有一個數;
            (2)指數形式:用e或E的前后加數據表示,前面是一個小數,后面是一個整數。
            P45,例。
            3.4.2 實型變量
            1. 實型數據在內存中的存放形式
            實型數據在內存中采用浮點表示
            方法:設總位數為16,高12位為尾數,低4位為階碼。尾數與階碼最高位為符號位,尾數小數點定在最高位之后,階碼小數點定在最低位之后。
            例1:實數10.0的16位浮點表示
                  因:(10.0)10=(0.1)10×10(2)10=(0.1)2×10(10)2
                  故:實數10.0的16位浮點表示為
            0    1    0    0    0    0    0    0    0    0    0    0    0    0    1    0
            例2:實數-10.0的16位浮點表示
                  因:(-10.0)10=(-0.1)10×10(2)10=(-0.1)2×10(10)2
                  故:實數-10.0的16位浮點表示為
            1    1    0    0    0    0    0    0    0    0    0    0    0    0    1    0
            注意:(1)位數一般實數是32位,表示法類似;
            (2)階碼與尾數的位數不同的計算機有不同的規定。
            (3)數據進行轉化表示時,尾數表示為±0.a…的形式,且a不為0,故表示是唯一的。
            (4)以上階碼與尾數是原碼表示,實際上應轉成補碼。
            2. 實型變量的分類
            (1)有三種實型變量
            單精度:  float
            雙精度:  double
            長雙精度:long double
            (2)占用的存儲空間及取值范圍
            P46,表3.2。
            (3)實型變量的聲明
            格式:float | double |long double 變量名,…;
            功能:聲明實型變量。
            P46,例。
            3. 實型數據的舍入誤差
            由于單精度實型只保留7位有效數據,故實型數據超出7位時會造成舍入誤差。
            P47,例3.4。
            3.4.3 實型常量的類型
            實型常量一般按雙精度double來處理,但也可強制規定它是什么類型,規則是:
            單精度后加f或F;
            雙精度后加l或L。
            P47,例。
            3.5    字符型數據
            3.5.1 字符常量
            (1)一般字符常量
            是用單撇號括起來的一個字符。
            P48,例。
            (2)特殊字符常量
            是以反斜捍“\”開頭后跟一些字母或數字組成的字符。
            P48,表3.3。
            P49,例3.5。
            3.5.2 字符變量
            只有一種類型:char
            聲明格式:char變量名,…;
            字符變量可以用來存放一個字符。
            P49,例。
            3.5.3 字符數據在內存中的存放形式
            字符型數據在計算機內以ASCII碼的形式存放,每個字符占用一個字節。
            方法:查ASCII碼表,最高位填0。
            例:字符’a’的存儲形式
                  因:(a)字符=(97)10進ASCII碼=(1100001)2進ASCII碼
                  故:字符’a’的存儲形式為
            0    1    1    0    0    0    0    1
            P50,例3.6,例3.7。
            注意:一般字符的ASCII碼值范圍為0~127,無符號字符的ASCII碼值范圍為0~255。
            3.5.4 字符串常量
            (1)字符串常量
            是用雙撇號括起來的若干個字符。
            P52,例。
            (2)字符串常量的存儲
            字符串常量的存儲是每個字符占用一個字節,尾部再加一個\0作為結束符。于是長度為n的字符串占用n+1個字節的存儲空間。
            P52,例。
            3.6    變量賦初值
            格式:類型名 變量名=常量表達式,… ;
            功能:聲明變量并賦初值。
            P53,例。
            3.7    各類數值型數據間的混合運算
            各類數值型數據間的混合運算時會自動進行轉換。
            規則:(1)char,short型轉為int型;
                 (2)float型轉為double型;
                 (3)不同類型由低向高轉換,即int →unsigned →long →double
            P54,圖3.10。
            P54,例。
            3.8    算術運算符與算術表達式
            3.8.1 C的運算符簡介
            C語言的運算符有13類,P55。
            學習運算符注意如下幾點:
            (1)運算符的功能:如+號運算的意義。
            (2)與運算量的關系:如單目、雙目,運算量的類型等。
            (3)運算的優先級:如先* /后+-。
            (4)結合方向:如算術運算從左到右,賦值從右到左。
            (5)結果的類型:如兩個整型數相加還是整型數。
            3.8.2 算術運算符和算術表達式
            1. 基本的算術運算符
            基本的算術運算符有:+、-、*、/、%
            P55,例。
            注意:(1)+、-可作單目運算符,也可作雙目運算符。
                 (2)/ 運算對整形是封閉的,如5/3的值是1。
            2. 算術運算符的優先級和結合方向
            (1)優先級:①單目+、-②*、/、%③雙目+、-
            (2)結合方向:從左到右
            P55,例。
            3. 強制類型轉換運算符
            格式:(類型標識符)表達式
            功能:把表達式強制為類型標識符指定的類型。
            優先級:與單目+-相同。
            注意:(1)強制轉換是一種單目運算;
            (2)被強制轉換變量本身并未轉換。
            P56,例,例3.8。
            4. 自增、自減運算符
            (1)運算符:+ +、--
            (2)優先級:與單目+、-相同。
            (3)結合方向:從右到左
            P57,例。
            注意:(1)自增與自減運算符只能用于變量;
            (2)前+ +、--:先增值后引用;
            后+ +、--:先引用后增值。
            5. 有關表達式使用中的問題說明
            表達式是把常量、變量、函數用各種運算符連接起來的合法的式子。C中的表達式簡練、高效,但有時會出現岐義性,使得程序理解有一定的困難,不同版本的C對表達式的解釋也有所不同。
            P58,(1)~(3)
            3.9    賦值運算符和賦值表達式
            1. 賦值運算符
            (1)運算符:=
            (2)優先級:僅高于逗號“,”運算,低于其它運算。
            (3)結合方向:從右到左
            P59,例。
            2. 類型轉換
            當賦值運算兩邊的類型不一致,且都是數值類型或字符型時,會自動發生類型轉換,轉換以左邊變量的類型為準。
            轉換規則:
            (1)實型賦給整型:舍去小數。
            (2)整型賦給實型:值不變。
            (3)雙精度賦給單精度:取其前7位有效數字,反之值不變。P59,例。
            (4)字符型賦給整型:低8位照搬,高8位視符號位補0或1。P60,例。
            (5)整型賦給字符型:低8位照搬,高8位丟失。P60,例。
            (6)整型賦給長整型:值不變,反之低16位照搬。P60,例。
            (7)無符號型賦給有符號型:長度相同時最高位變為符號位,長度不同時高位補0或截去高位。P61,例。
            (8)有符號型賦給無符號型:長度相同時最高位失去符號位,長度不同時高位補0或截去高位。P61,例。
            P61,例3.9。
            3. 復合的賦值運算
            (1)運算符:+=、-=、*=、/=、%= 等
            (2)優先級:與賦值運算“=”相同;
            (3)結合方向:從右到左。
            P62,例。
            4. 賦值表達式
            由賦值語句購成的表達式稱為賦值表達式,這種表達式還可以嵌套,從右到左逐一進行賦值運算,表達式的值是最后一次賦值的值。
            P63,例。
            注意:(1)結合方向是從右到左的;
                 (2)復合的賦值運算也可購成賦值表達式;
                 (3)賦值表達式可出現在輸出的語句中。
            3.10    逗號運算符和逗號表達式
            1. 逗號運算符
            (1)運算符: ,
            (2)優先級:最低;
            (3)結合方向:從左到右。
            P63,例。
            2. 逗號表達式
            格式:表達式1,表達式2,… ,表達式n
            求解過程:從左到右逐一求表達式的值,整個表達式的值為最后一個表達式的值。
            P64,例。
            亚洲精品国精品久久99热一| 四虎国产精品免费久久5151| 久久午夜免费视频| 精品伊人久久大线蕉色首页| 无码超乳爆乳中文字幕久久| 久久99国产精一区二区三区| 久久99亚洲综合精品首页| 精品久久久无码人妻中文字幕| 9久久9久久精品| 国产精品久久久久久久app| 久久99精品久久久久久久久久| 国内精品久久久久久久涩爱| 精品国产青草久久久久福利| 精品久久久久久无码中文字幕| 欧美黑人激情性久久| 精品国产婷婷久久久| 久久综合狠狠综合久久| 久久人人爽人爽人人爽av| 国产精品久久久福利| 久久精品国产AV一区二区三区| 久久久久久久久久久免费精品 | 久久婷婷五月综合色高清| 久久精品国产72国产精福利| 激情伊人五月天久久综合| 怡红院日本一道日本久久 | 久久精品国产2020| 久久精品国产一区二区三区| 国产高潮国产高潮久久久| 久久久久亚洲av成人网人人软件 | 99久久精品国产一区二区| 四虎影视久久久免费| 久久99精品久久久久久不卡| 97超级碰碰碰碰久久久久| 久久青青草原综合伊人| 91精品日韩人妻无码久久不卡| 久久99精品国产麻豆| 久久久一本精品99久久精品66| 精品免费久久久久久久| 久久无码人妻一区二区三区| 日产精品99久久久久久| 高清免费久久午夜精品|