版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、C語言程序設計課程設計報告姓名:楊鈞翔 學號:20138110254區(qū)隊:四第一部分C語言程序設計知識點梳理(注 c語言程序設計所涉及到的重要知識點及對這些知識點的理解)一、程序設計1、計算機語言(1)機器語言用二進制表示的,能被計算機識別、接受的代碼稱為機器指令。機器指令的集合就是計算機語言(如:10110110000000(2 )匯編語言為客服機器語言的缺點,用符號語言來表示指令(英文字母、數(shù)字)的符號語言為符號匯編語言(又稱低級語言)。一條符號語言指令對應轉(zhuǎn)換為一條機器指令;轉(zhuǎn)換的過程稱為“代真”或“匯編”(3 )咼級語言客服低級語言的缺點,接近人們習慣用的自然語言和數(shù)學語言;用英語單詞
2、表示的指 令及語句。功能性強,不依賴于具體機器,對任何型號計算機都適用(或做很少修改)。C語言、FORTRAN、QBASICC語言特點語言簡潔、緊湊,使用方便、靈活運算符豐富數(shù)據(jù)類型豐富具有 結(jié)構(gòu)化的控制語句語法限制不太嚴格,程序設計自由度大C語言允許直接訪問物理地址,能進行位(bit)操作,能實現(xiàn)匯編語言的大部分功能,可以直接對硬件進行操作用C語言編寫的程序可移植性好生成目標代碼質(zhì)量高,程序執(zhí)行效率高2、運行C程序的步驟及方法 上機輸入和編輯源程序,以文件形式存檔。.c作為后綴,生成源程序文件f.c 對源程序進行編譯。進行預處理,連接其它部分組成完整的、可進行正式編譯的源程 序(檢查、轉(zhuǎn)換皿
3、i F細業(yè) I所有編譯后得到的目標庫想連接成一個整體,生 的目標程序得到運行結(jié)果。 進行連接處理。把 模塊連接裝配,與函數(shù) 成一個可供計算機執(zhí)行 運行可執(zhí)行程序, 二、算法1、算法的概念一個問題所采用的方法樂譜)計算機算法分為兩大類:廣義的說是 解決 和步驟(太極拳動作圖解、1數(shù)值運算算法(求數(shù)值解)2非數(shù)值運算算法(常用于事務管理領域)2、算法的特性 有窮性:一個算法應包含有限的操作步驟 確定性:算法中的每一個步驟都應當是確定的,而不是含糊的、模棱兩可的(算法的 含義應當是唯一的,而不應當產(chǎn)生“歧義性”) 有零個或多個輸入:在執(zhí)行算法時需要從外界取得必要的信息 有一個或多個輸出: 有效性:算
4、法中的每一個步驟都應當有效的執(zhí)行,并得到確定的結(jié)果3、算法描述 (1 )自然語言即人們?nèi)粘J褂玫恼Z言。用自然語言表示通俗易懂,但文字冗長,有歧義。在描述 包含分支和循環(huán)時不方便(2)流程圖流程圖是用一些圖框來表示各種操作。用圖形法表示算法,直觀形象,易于理解。流程圖包括:表示操作的框帶剪頭的流程線(流程線不要忘記畫箭頭,反應流程 的先后)框內(nèi)外必要的文字說明美國國家標準化協(xié)會ANSI (AmericanNational Standard Institute)規(guī)定了一 些常用的流程圖特號:O起止框判斷框 口處理框輸入/輸出框注釋框流向線連接點流程圖三種基本結(jié)構(gòu): 順序結(jié)構(gòu) 選擇結(jié)構(gòu) 循環(huán)結(jié)構(gòu):
5、i當型While)循環(huán);ii直到(until)型循環(huán)N-S流程圖表示算法:全部算法寫在一個矩形框內(nèi)N-S流程圖用以下的流程圖符號:AB(1)順序結(jié)構(gòu)(2)選擇結(jié)構(gòu)順序結(jié)構(gòu)選擇結(jié)構(gòu)(3)循環(huán)結(jié)構(gòu)特點:比文字描述直觀、形象、易于理解;比傳統(tǒng)流程圖緊湊易畫,廢除了流程線,算 法由各個基本結(jié)構(gòu)按順序組成;流程圖中的上下順序就是執(zhí)行時的順序;表示的算法都是結(jié)構(gòu)化的算法。結(jié)構(gòu)化的算法是由一些基本結(jié)構(gòu)順序組成的;在基本結(jié)構(gòu)之間不存在向前或 向后的跳轉(zhuǎn),流程的轉(zhuǎn)移只存在于一個基本結(jié)構(gòu)范圍之內(nèi)三種基本結(jié)構(gòu)的圖示:循環(huán)結(jié)構(gòu)的圖示:當型(While型)循環(huán)結(jié)構(gòu)(b)直到型(Until型)循環(huán)int基本類型V字符型c
6、har(3)偽代碼:介于自然語言和計算機語言之間的文字和符號來描述算法。它不用圖形符號書寫方便,格式緊湊,修改方便,容易看懂,便于向計算機語言算法過渡。偽代碼寫算法并無固定的、嚴格的語法規(guī)則,可以用多種語言。只需把意思表達清楚, 便于書寫和閱讀,書寫的格式要寫成清晰易讀的格式用偽代碼寫的算法易于修改設計算法的目的是為了實現(xiàn)算法,所以不僅要考慮如何設計一個算法,也要考慮如何 實現(xiàn)一個算法。在用流程圖或偽代碼描述一個算法后還要轉(zhuǎn)換成C語句。三、基本數(shù)據(jù)類型及 C語句§3.1 C的數(shù)據(jù)類型C語言提供了以下一些數(shù)據(jù)類型。實型(浮點型)r單精度實型float廠數(shù)組類型數(shù)據(jù)類型構(gòu)造類型Y結(jié)構(gòu)類型
7、struct聯(lián)合類型union指針類型 枚舉類型enum*空類型(無值類型)L雙精度實型doublevoid整型§ 3.3 整型數(shù)據(jù)?整數(shù)類型的有關數(shù)據(jù):類型類型說明符長度數(shù)的范圍基本型int2字節(jié)-3276832767短整型short2字節(jié)-215 215-1;- - - -長整型long4字節(jié)-231 231-1無符號整型un sig ned2字節(jié)065535無符號短整型un sig ned short -II;2字節(jié)0655351 _,,-tr_.l無符號長整型un sig ned long. . . . ! . . .:S. .1. : .1. .,4字節(jié)0(232- 1)&
8、#167; 3.4浮點型數(shù)據(jù)(2)浮點型變量的分類 浮點型變量分為單精度(float型)、雙精度(double型)和長雙精度型(long double )三類 形式。類型位數(shù)數(shù)的范圍有效數(shù)字float3210-37 103867位double 型6410- 3071°3081516位long double128 1(0-4931 1。49321819位§4.1 C語句概述C程序源程序文件1廠源程序文件2 源程序文件n預處理命令數(shù)據(jù)聲明函數(shù)1函數(shù)n函數(shù)首部函數(shù)體數(shù)據(jù)聲明執(zhí)行語句C語句分為以下5類控制語句 if ()else for () while () do while c
9、ontiune break switch return goto函數(shù)調(diào)用語句。do! ”);表達式語句。在表達式語句由一個表達式加一個分號構(gòu)成, 成一個賦值語句。女口: a=3是一個賦值表達式()(條件語句)(循環(huán)語句)(循環(huán)語句)(循環(huán)語句)(結(jié)束本次循環(huán)語句)(終止執(zhí)行switch或循環(huán)語句)(多分支選擇語句)(從函數(shù)返回語句)(轉(zhuǎn)向語句,在結(jié)構(gòu)化程序中基本不用goto語句)函數(shù)調(diào)用語句由一個函數(shù)加一個分號構(gòu)成,如:printf (“ how do you最典型的是,由賦值表達式構(gòu)而 a=3;是一個賦值語句一個表達式的最后加一個分號就成了一個語句空語句。什么也沒有。用來作為流程的轉(zhuǎn)向點,也
10、可以用來作為循環(huán)語句中的循環(huán)體復合語句。用”把一些語句和聲明括起來成為復合語句 一個C程序可以有若干個源程序文習 一個源文件可以有若干個函數(shù)和預: 以及全局變量聲明部分組成一個函數(shù)有函數(shù)首部和函數(shù)體組成函數(shù)體由數(shù)據(jù)聲明和執(zhí)行語句組成 C語句分為5類控制語句 函數(shù)調(diào)用語句 表達式語句 空語句復合語句四、結(jié)構(gòu)化程序設計1、順序結(jié)構(gòu):各語句是按從上到下的順序執(zhí)行的,執(zhí)行完上一個語句就自動執(zhí)行下一個語句,是五 條件的,不必作任何判斷。2、選擇結(jié)構(gòu):需要根據(jù)某個條件是否滿足來判斷是否執(zhí)行指定的操作任務,或者從給定的兩種或多種操作選擇其一。(1) If語句【1】if (表達式)語句 1明有else句子部分
11、【2 if (表達式)語句1Else語句2【3 if (表達式)語句 1Else if (表達式2) 語句2Else if (表達式3) 語句3Else if (表達式 m) 語句 mElse語句 m+1(2) Switch 語句(3) Switch (表達式)Case 常量1 : 語句1Case 常量2 : 語句2Case 常量n : 語句nDefault :語句 n+13、循環(huán)結(jié)構(gòu)4、模塊化程序設計一一函數(shù)在前面已經(jīng)介紹過,C源程序是由函數(shù)組成雖然在前面各章的程序中大都只有一個主函數(shù)main(),但實用程序往往由多個函數(shù)組成。數(shù)是C源程序的基本模塊,通過對函數(shù)模塊的調(diào) 用實現(xiàn)特定的功能。C
12、語言中的函數(shù)相當于其它 高級語言的子程序。C語言不僅提供了極為豐富的庫函數(shù)(如 Turbo C , MS C都提供了三百多個庫 函數(shù)),還允許用戶建立自己定義的函數(shù)。把自己的算法編成一個個相對獨立的函數(shù)模塊,然后用調(diào)用的方法來使用函數(shù)??梢哉fC程序的全部工作都是由各式各樣的函數(shù)完成的,所以也把C語言稱為函數(shù)式語言。由于采用了函數(shù)模塊式的結(jié)構(gòu),C語言易于 實現(xiàn)結(jié)構(gòu)化程序設計。 使程序的層次結(jié)構(gòu)清晰,便于程序的編寫、閱讀、調(diào)試。在C語言中可從不同的角度對函數(shù)分類。從函數(shù)定義的角度看,函數(shù)可分為庫函數(shù)和用戶定義函數(shù)兩種。1)庫函數(shù):由C系統(tǒng)提供,用戶無須定義,也不必在程序中作類型說明,只需在程序前包
13、含有該函數(shù)原型的頭文 件即可在 程序中直接調(diào)用。 在前面各章的例題中 反復用到printf、scanf、getchar、putchar、 gets、puts、strcat等函數(shù)均屬此類。2)用戶定義函數(shù):由用戶按需要寫的函數(shù)。對于用戶自定義函數(shù),不僅要在程序中 定義函數(shù)本身,而且在主調(diào)函數(shù)模塊中還必須對該被調(diào)函數(shù)進行類型說明,然 后才能使用。C語言的函數(shù)兼有其它語言中的函數(shù)和過程兩種功能,從這個角度看,又可把函數(shù)分為有返回值函數(shù)和無返回值函數(shù)兩種。1)有返回值函數(shù):此類函數(shù)被調(diào)用執(zhí)行完后將向調(diào)用者返回一個執(zhí)行結(jié)果,稱為函數(shù) 返回值。如數(shù)學函數(shù)即屬于此類函數(shù)。用戶定義的這種要返回函數(shù)值的函數(shù),必
14、須在函數(shù)定義和函數(shù)說明中明確返回值的類型。無返回值函數(shù):此類函數(shù)用于完成某項特定的處理任務,執(zhí)行完成后不向調(diào)用者返回函數(shù)值。這類函數(shù)類似于其它語言的過 程。由于函數(shù)無須返回值, 用戶在定義此 類函數(shù)時可 指定它的返回為“空類 型”,空類型的說明符為“ void ”。從主調(diào)函數(shù)和被調(diào)函數(shù)之間數(shù)據(jù)傳送的角度看又可分為無參函數(shù)和有參函數(shù)兩種。1)無參函數(shù):函數(shù)定義、函數(shù)說明及函數(shù)調(diào)用中均不帶參數(shù)。主調(diào)函數(shù)和被調(diào)函數(shù)之 間不進行 參數(shù)傳送。此類函數(shù)通常用來完 成一組指定的功能,可以返回或不返回函數(shù)值。2)有參函數(shù):也稱為帶參函數(shù)。在函數(shù)定義 及函數(shù)說明時都有參數(shù), 稱為形式參數(shù) (簡稱為形參)。 在函
15、數(shù)調(diào)用時也必須給出 參數(shù),稱為實際參數(shù)(簡稱為實參)。進行 函數(shù)調(diào)用時,主調(diào)函數(shù)將把實參的值傳送給形參,供被調(diào)函數(shù)使用。C語言提供了極為豐富的庫函數(shù),這些庫函數(shù)又可從功能角度作以下分類。1)字符類型分類函數(shù):用于對字符按 ASCII碼 分類:字母,數(shù)字,控制字符,分隔符,大小寫字母等。 2)轉(zhuǎn)換函數(shù):用于字符或字符串的轉(zhuǎn)換;在字符量和各類數(shù)字量(整型,實型等)之間 進行轉(zhuǎn)換;在大、小寫之間進行轉(zhuǎn)換。3)目錄路徑函數(shù):用于文件目錄和路徑操作。4)診斷函數(shù):用于內(nèi)部錯誤檢測。圖形函數(shù):用于屏幕管理和各種圖形功5)能。6)輸入輸出函數(shù):用于完成輸入輸出功能。7)接口函數(shù):用于與 DOS,BIOS和硬
16、件的接 口。8)字符串函數(shù):用于字符串操作和處理。9)內(nèi)存管理函數(shù):用于內(nèi)存管理。10)數(shù)學函數(shù):用于數(shù)學函數(shù)計算。11) 日期和時間函數(shù):用于日期,時間轉(zhuǎn)換操 作。12)進程控制函數(shù):用于進程管理和控制。13)其它函數(shù):用于其它各種功能。§ 8.1概述main一個較大的程序可分為 若干個程序模塊,每一 個模塊用來實現(xiàn)一個特 定的功能。在高級語言 中用子程序?qū)崿F(xiàn)模塊的 功能。子程序由函數(shù)來 完成。一個C程序可由 一個主函數(shù)和若干個其 他函數(shù)構(gòu)成。調(diào)用關系目由主函數(shù)調(diào)用其他函數(shù),其他函數(shù)也可以互相調(diào)用 同一個函數(shù)可以被一個或多個函數(shù)調(diào)用任意多次。五、派生數(shù)據(jù)類型1、數(shù)組:一批具有同名的
17、同屬性的數(shù)據(jù)組成一個數(shù)組。一維數(shù)組類型符數(shù)組名常量表達式數(shù)組名的命名規(guī)則和變量名相同,遵循標識符命名規(guī)則在定義數(shù)組時,需要指定數(shù) 組中元素的個數(shù),""中的常量表達式用來表示元素個數(shù),即數(shù)組長度。常量表達式中可 以包括常量和符號常量。如:int a : 4+5:引用數(shù)組名下標定義數(shù)組時用到的”數(shù)組名常量表達式”和引用數(shù)組元素時用的數(shù)組名下標形式相同,但含義不同。初始化時給數(shù)組中的一部分元素賦值,系統(tǒng)會給其余 元素賦值為0。二維數(shù)組:類型說明符,數(shù)組名常量表達式常量表達式;行列用矩陣行式表示二維數(shù)組,是邏輯上的概念,能形象地表示出行列關系,而在內(nèi)存中,各元素是連續(xù)存放的,不是二
18、維的,是線性的。引用數(shù)組名下標下標。如果對所有元素賦初值(即提供全部初始數(shù)據(jù)),則定義數(shù)組時對第一組的長度可以不指定,但第二維的長 度不能省。字符數(shù)組(用來存放字符數(shù)據(jù)的數(shù)組)如果初值個數(shù)小于數(shù)組長度,則只將這些字符賦給數(shù)組中前面那些元素,其余的元自動定為空字符(即0')如果提供的初值個數(shù)與預定的數(shù)組長度相同,在定義時可以省略數(shù)組長度,系統(tǒng)會自動根 據(jù)初值個數(shù)確定數(shù)組長度。在C語言中,是將字符串作為字符數(shù)組來處理的。以字符0'作為結(jié)束標志,用字符常量可使字符數(shù)組初始化字符數(shù)組的輸入輸出:i.逐個字符輸入輸出;ii 將整個字符串一次輸入或輸出。 系統(tǒng)把空 格字符作為輸入的字符串之
19、間的的分隔符scanf函數(shù)中的輸入項如果是字符數(shù)組名,不要再加地址符&gets字符串處理函數(shù) puts(字符數(shù)組)用puts函數(shù)輸出的字符串可以包含轉(zhuǎn)義字符(字符數(shù)組)從終端輸入一個字符串到字符數(shù)組,并且得到一個函數(shù)值,該涵數(shù)值是字符數(shù)組的起始地址。用 puts和gets函數(shù)只能輸出或輸入一個字符串字符串連接函數(shù)strcat (字符數(shù)組1字符數(shù)組2)把兩個字符數(shù)組中的字符串連接起來,把字符串2接到字符串1的后面,結(jié)果放在字符數(shù)組1中,函數(shù)調(diào)用后得到一個函數(shù)值字符數(shù)組1的地址strcp(字符數(shù)組1,字符串2)將字符串2復制到字符數(shù)組1中去。不能用賦值語句將一個字符串常量或字符數(shù)組直接給一
20、 個字符數(shù)組??梢杂?strncpy函數(shù)將字符串2中前幾個字符復制到字符數(shù)組1中去,但復制的字符數(shù)n不應多余str1中原有的字符(不包括0')strcmp (字符串,字符串2)如全部相同,則認為兩個字符串相;若出現(xiàn)不相同的字符,則以第一對不相同的字符比較結(jié)果為準,在英文字典中位置在后面的"大” strlen(字符數(shù)組)測試字符串的長度 strlur(字符串)將字符串中大寫字母換成小寫字母 strupr(字符串)將字符串中小寫字母換成大寫字母在使用字符串處理函數(shù)時,應當在程序文件的開頭用#include“ string.h”2、指針指針是一個地址,而指針變量是存放地址的變量“*
21、”表示“指向”類型名*指針變量名。指針變量中只能存放地址(指針),不要將一個整數(shù)賦給一個指針變量指針變量作為函數(shù)參數(shù)函數(shù)的調(diào)用可以(只可以)得到一個返回值(即函數(shù)值)而使用指針變量作參數(shù)可以得到多個變化了的值。通過指針引用數(shù)組:p+1指向同一數(shù)組中的下一個元素;p-1指向同一數(shù)組中的上一個元素。直接用p2-p1就可以知道他們所指元素的相對距離* (p-)相當于先對p進行“ * ”運算,在使p自減二維數(shù)組a的有關指針* (: 1 +2), * (* (a+1) +2) ,a : 1 : 2表示 1 行 2 列元素的值。注意:不要把&a :i簡單地理解為a i元素的物理地址,因為并不存在a
22、 i這樣一個實際的數(shù)據(jù)存儲單元。它只是一種地址的計算方法,能得到第i行的首地址。&a :i和ai的值是一樣的,但他們的含義是不相同的。&a i或a+i指向行,而a :i或* :a+i指向列。當列下標為 0時,&a i和a i(即a i +j)值相同,即他們表示同一地址,但應 注意他們所指的對象是不同的,即指針的基類型是不同的,* (a+i)只是a i的另一種表示形式,不要簡單的認為* (a+i)是“ a+i ”所指單元中的內(nèi)容。在一維數(shù)組中a+i所指的是一個數(shù)組元素的存儲單元,在該單元中有具體值。 對二維數(shù)組a+i不是指向具體存儲單元而是指向行。在二維數(shù)組中a+i;a i ;* (a+i) ;&a : i ;&a : i : 0的值相同通過指針引用字符串。在C語言中,字符串是存放在字符數(shù)組中的。用字符數(shù)存放一個字符串,可以通過數(shù)組名和下標引用字符串一個字符,也可以通過數(shù)組名和格式聲明“ s”輸出該字符串用字符指針變量指向一個字符串常量,通過字符指針變量引用字符串常量?!?while(*from!=0 ) ”和“ whi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高考對聯(lián)題(對聯(lián)知識、高考真題及答案、對應練習題)
- 業(yè)務操作-房地產(chǎn)經(jīng)紀人《業(yè)務操作》押題密卷2
- 房地產(chǎn)交易制度政策-《房地產(chǎn)基本制度與政策》真題匯編1
- 會計辭職報告
- 二零二五版CAD技術員設計修改與勞務合同3篇
- 四川省攀枝花市第三高級中學2024-2025學年高二上學期第三次月考數(shù)學試卷(含答案)
- 云南省昆明市部分學校2024-2025學年七年級上學期期末地理試卷(含答案)
- 煙臺科技學院《公共建筑設計Ⅲ》2023-2024學年第一學期期末試卷
- 二零二五年度綠色環(huán)保型社區(qū)保潔服務專項合同
- 學 校 節(jié) 約 糧 食 主 題 班 會
- 玻璃體腔注藥術
- 中國超大直徑鉆埋鋼管空心樁講義
- 藝術課程標準(2022年版)
- 一年級語文雨點兒-教學課件【希沃白板初階培訓結(jié)營大作業(yè)】
- 替格瑞洛藥物作用機制、不良反應機制、與氯吡格雷區(qū)別和合理使用
- GB/T 20920-2007電子水平儀
- 如何提高教師的課程領導力
- 企業(yè)人員組織結(jié)構(gòu)圖
- 日本疾病診斷分組(DPC)定額支付方式課件
- 實習證明模板免費下載【8篇】
- 復旦大學用經(jīng)濟學智慧解讀中國課件03用大歷史觀看中國社會轉(zhuǎn)型
評論
0/150
提交評論