版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告 姓名:楊鈞翔 學(xué)號(hào):20138110254 區(qū)隊(duì):四第一部分 C語言程序設(shè)計(jì)知識(shí)點(diǎn)梳理(注 C語言程序設(shè)計(jì)所涉及到的重要知識(shí)點(diǎn)及對(duì)這些知識(shí)點(diǎn)的理解)一、程序設(shè)計(jì)1、計(jì)算機(jī)語言(1)機(jī)器語言 用二進(jìn)制表示的,能被計(jì)算機(jī)識(shí)別、接受的代碼稱為機(jī)器指令。機(jī)器指令的集合就是 計(jì)算機(jī)語言(如:10110110000000)(2)匯編語言 為客服機(jī)器語言的缺點(diǎn),用符號(hào)語言來表示指令(英文字母、數(shù)字)的符號(hào)語言為符號(hào)匯編語言(又稱低級(jí)語言)。 一條符號(hào)語言指令對(duì)應(yīng)轉(zhuǎn)換為一條機(jī)器指令;轉(zhuǎn)換的過程稱為“代真”或“匯編”(3)高級(jí)語言 客服低級(jí)語言的缺點(diǎn),接近人們習(xí)慣用的自然語言和數(shù)學(xué)
2、語言;用英語單詞表示的指令及語句。功能性強(qiáng),不依賴于具體機(jī)器,對(duì)任何型號(hào)計(jì)算機(jī)都適用(或做很少修改)。C語言、FORTRAN、QBASIC C語言特點(diǎn)語言簡潔、緊湊,使用方便、靈活運(yùn)算符豐富數(shù)據(jù)類型豐富具有結(jié)構(gòu)化的控制語句語法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大C語言允許直接訪問物理地址,能進(jìn)行位(bit)操作,能實(shí)現(xiàn)匯編語言的大部分功能,可以直接對(duì)硬件進(jìn)行操作用C語言編寫的程序可移植性好生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高2、運(yùn)行C程序的步驟及方法 上機(jī)輸入和編輯源程序,以文件形式存檔。 .c作為后綴,生成源程序文件f.c 對(duì)源程序進(jìn)行編譯。進(jìn)行預(yù)處理,連接其它部分組成完整的、可進(jìn)行正式編譯的源程序
3、 (檢查、轉(zhuǎn)換) 進(jìn)行連接處理。把所有編譯后得到的目標(biāo)模塊連接裝配,與函數(shù)庫想連接成一個(gè)整體,生成一個(gè)可供計(jì)算機(jī)執(zhí)行的目標(biāo)程序 運(yùn)行可執(zhí)行程序,得到運(yùn)行結(jié)果。二、算法1、算法的概念 廣義的說是 解決一個(gè)問題所采用的方法和步驟(太極拳動(dòng)作圖解、樂譜) 計(jì)算機(jī)算法分為兩大類:1.數(shù)值運(yùn)算算法(求數(shù)值解) 2.非數(shù)值運(yùn)算算法(常用于事務(wù)管理領(lǐng)域)2、算法的特性 有窮性:一個(gè)算法應(yīng)包含有限的操作步驟 確定性:算法中的每一個(gè)步驟都應(yīng)當(dāng)是確定的,而不是含糊的、模棱兩可的(算法的含義應(yīng)當(dāng)是唯一的,而不應(yīng)當(dāng)產(chǎn)生“歧義性”) 有零個(gè)或多個(gè)輸入:在執(zhí)行算法時(shí)需要從外界取得必要的信息推薦精選 有一個(gè)或多個(gè)輸出: 有
4、效性:算法中的每一個(gè)步驟都應(yīng)當(dāng)有效的執(zhí)行,并得到確定的結(jié)果3、算法描述(1)自然語言 即人們?nèi)粘J褂玫恼Z言。用自然語言表示通俗易懂,但文字冗長,有歧義。在描述包含分支和循環(huán)時(shí)不方便(2)流程圖 流程圖是用一些圖框來表示各種操作。用圖形法表示算法,直觀形象,易于理解。 流程圖包括:表示操作的框帶剪頭的流程線(流程線不要忘記畫箭頭,反應(yīng)流程的先后)框內(nèi)外必要的文字說明 流程圖三種基本結(jié)構(gòu):順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu):當(dāng)型(while)循環(huán); 直到(until)型循環(huán) N-S流程圖 表示算法:全部算法寫在一個(gè)矩形框內(nèi)推薦精選 特點(diǎn):比文字描述直觀、形象、易于理解;比傳統(tǒng)流程圖緊湊易畫,廢除了流程線,算
5、法由各個(gè)基本結(jié)構(gòu)按順序組成;流程圖中的上下順序就是執(zhí)行時(shí)的順序;表示的算法都是結(jié)構(gòu)化的算法。 結(jié)構(gòu)化的算法是由一些基本結(jié)構(gòu)順序組成的;在基本結(jié)構(gòu)之間不存在向前或向后的跳轉(zhuǎn),流程的轉(zhuǎn)移只存在于一個(gè)基本結(jié)構(gòu)范圍之內(nèi)推薦精選(3)偽代碼:介于自然語言和計(jì)算機(jī)語言之間的文字和符號(hào)來描述算法。它不用圖形符號(hào),書寫方便,格式緊湊,修改方便,容易看懂,便于向計(jì)算機(jī)語言算法過渡。 偽代碼寫算法并無固定的、嚴(yán)格的語法規(guī)則,可以用多種語言。只需把意思表達(dá)清楚,便于書寫和閱讀,書寫的格式要寫成清晰易讀的格式 用偽代碼寫的算法易于修改 設(shè)計(jì)算法的目的是為了實(shí)現(xiàn)算法,所以不僅要考慮如何設(shè)計(jì)一個(gè)算法,也要考慮如何實(shí)現(xiàn)一個(gè)
6、算法。在用流程圖或偽代碼描述一個(gè)算法后還要轉(zhuǎn)換成C語句。三、基本數(shù)據(jù)類型及C語句推薦精選推薦精選C語句分為以下5類控制語句 if()else (條件語句) for() (循環(huán)語句) while() (循環(huán)語句) dowhile() (循環(huán)語句) contiune (結(jié)束本次循環(huán)語句) break (終止執(zhí)行switch或循環(huán)語句) switch (多分支選擇語句) return (從函數(shù)返回語句)goto (轉(zhuǎn)向語句,在結(jié)構(gòu)化程序中基本不用goto語句)函數(shù)調(diào)用語句。 函數(shù)調(diào)用語句由一個(gè)函數(shù)加一個(gè)分號(hào)構(gòu)成,如: printf(“how do you do!”);表達(dá)式語句。在表達(dá)式語句由一個(gè)表
7、達(dá)式加一個(gè)分號(hào)構(gòu)成,最典型的是,由賦值表達(dá)式構(gòu)成一個(gè)賦值語句。 如:a=3 是一個(gè)賦值表達(dá)式 而 a=3; 是一個(gè)賦值語句 一個(gè)表達(dá)式的最后加一個(gè)分號(hào)就成了一個(gè)語句空語句。什么也沒有。 用來作為流程的轉(zhuǎn)向點(diǎn),也可以用來作為循環(huán)語句中的循環(huán)體復(fù)合語句 。用“”把一些語句和聲明括起來成為復(fù)合語句推薦精選四、結(jié)構(gòu)化程序設(shè)計(jì)1、順序結(jié)構(gòu) :各語句是按從上到下的順序執(zhí)行的,執(zhí)行完上一個(gè)語句就自動(dòng)執(zhí)行下一個(gè)語句,是五條件的,不必作任何判斷。2、 選擇結(jié)構(gòu):需要根據(jù)某個(gè)條件是否滿足來判斷是否執(zhí)行指定的操作任務(wù),或者從給定的兩種或多種操作選擇其一。(1) If 語句 【1】if(表達(dá)式)語句 1 明有 els
8、e 句子部分 【2】if(表達(dá)式) 語句 1 Else 語句 2 【3】if(表達(dá)式)語句 1 Else if (表達(dá)式2) 語句2 Else if (表達(dá)式3) 語句3 Else if (表達(dá)式m) 語句m Else 語句m+1(2) Switch語句(3) Switch (表達(dá)式) 推薦精選 Case 常量1 : 語句1 Case 常量2 : 語句2 Case 常量n : 語句n Default : 語句n+1 3、循環(huán)結(jié)構(gòu)4、模塊化程序設(shè)計(jì)函數(shù)在前面已經(jīng)介紹過,源程序是由函數(shù)組成雖然在前面各章的程序中大都只有一個(gè)主函 數(shù)main(),但實(shí)用程序往往由多個(gè)函數(shù)組成。數(shù)是源程序的基本模塊,通
9、過對(duì)函數(shù)模塊的調(diào) 用實(shí)現(xiàn)特定的功能。語言中的函數(shù)相當(dāng)于其它 高級(jí)語言的子程序。語言不僅提供了極為豐富 的庫函數(shù)(如Turbo C,MS C都提供了三百多個(gè)庫 函數(shù)),還允許用戶建立自己定義的函數(shù)。把自己的算法編成一個(gè)個(gè)相對(duì)獨(dú)立的函數(shù)模塊, 然后用調(diào)用的方法來使用函數(shù)??梢哉f程序的 全部工作都是由各式各樣的函數(shù)完成的,所以也 把語言稱為函數(shù)式語言。 由于采用了函數(shù)模塊式的結(jié)構(gòu),語言易于 實(shí)現(xiàn)結(jié)構(gòu)化程序設(shè)計(jì)。使程序的層次結(jié)構(gòu)清晰, 便于程序的編寫、閱讀、調(diào)試。 在語言中可從不同的角度對(duì)函數(shù)分類。從函數(shù)定義的角度看,函數(shù)可分為庫函數(shù)和用 戶定義函數(shù)兩種。 1) 庫函數(shù):由系統(tǒng)提供,用戶無須定義, 也
10、不必在程序中作類型說明,只需在程 序前包含有該函數(shù)原型的頭文件即可在 程序中直接調(diào)用。在前面各章的例題中 反復(fù)用到printf、scanf、getchar、 putchar、gets、puts、strcat等函數(shù)均 屬此類。 2) 用戶定義函數(shù):由用戶按需要寫的函數(shù)。 對(duì)于用戶自定義函數(shù),不僅要在程序中 定義函數(shù)本身,而且在主調(diào)函數(shù)模塊中 還必須對(duì)該被調(diào)函數(shù)進(jìn)行類型說明,然 后才能使用。語言的函數(shù)兼有其它語言中的函數(shù)和過程兩 種功能,從這個(gè)角度看,又可把函數(shù)分為有返 回值函數(shù)和無返回值函數(shù)兩種。 1) 有返回值函數(shù):此類函數(shù)被調(diào)用執(zhí)行完后 將向調(diào)用者返回一個(gè)執(zhí)行結(jié)果,稱為函數(shù) 返回值。如數(shù)學(xué)函
11、數(shù)即屬于此類函數(shù)。用戶定義的這種要返回函數(shù)值的函數(shù),必 須在函數(shù)定義和函數(shù)說明中明確返回值的 類型。 無返回值函數(shù):此類函數(shù)用于完成某項(xiàng)特定的處理任務(wù),執(zhí)行完成后不向調(diào)用者返 回函數(shù)值。這類函數(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ù)之 間不進(jìn)行參數(shù)傳送。此類函數(shù)通常用來完 成一組指定的功能,可以返回或不返回函 數(shù)值。 2) 有參函數(shù):也稱為帶參函數(shù)。在函
12、數(shù)定義 及函數(shù)說明時(shí)都有參數(shù),稱為形式參數(shù) (簡稱為形參)。在函數(shù)調(diào)用時(shí)也必須給出 參數(shù),稱為實(shí)際參數(shù)(簡稱為實(shí)參)。進(jìn)行 函數(shù)調(diào)用時(shí),主調(diào)函數(shù)將把實(shí)參的值傳送 給形參,供被調(diào)函數(shù)使用。推薦精選語言提供了極為豐富的庫函數(shù),這些庫函數(shù) 又可從功能角度作以下分類。 1) 字符類型分類函數(shù):用于對(duì)字符按ASCII碼 分類:字母,數(shù)字,控制字符,分隔符, 大小寫字母等。 2) 轉(zhuǎn)換函數(shù):用于字符或字符串的轉(zhuǎn)換;在 字符量和各類數(shù)字量(整型,實(shí)型等)之間 進(jìn)行轉(zhuǎn)換;在大、小寫之間進(jìn)行轉(zhuǎn)換。 3) 目錄路徑函數(shù):用于文件目錄和路徑操 作。 4) 診斷函數(shù):用于內(nèi)部錯(cuò)誤檢測(cè)。 圖形函數(shù):用于屏幕管理和各種圖
13、形功 5) 能。 6) 輸入輸出函數(shù):用于完成輸入輸出功能。 7) 接口函數(shù):用于與DOS,BIOS和硬件的接 口。 8) 字符串函數(shù):用于字符串操作和處理。 9) 內(nèi)存管理函數(shù):用于內(nèi)存管理。 10) 數(shù)學(xué)函數(shù):用于數(shù)學(xué)函數(shù)計(jì)算。 11) 日期和時(shí)間函數(shù):用于日期,時(shí)間轉(zhuǎn)換操 作。 12) 進(jìn)程控制函數(shù):用于進(jìn)程管理和控制。 13) 其它函數(shù):用于其它各種功能。五、派生數(shù)據(jù)類型1、數(shù)組:一批具有同名的同屬性的數(shù)據(jù)組成一個(gè)數(shù)組。一維數(shù)組 類型符 數(shù)組名常量表達(dá)式 數(shù)組名的命名規(guī)則和變量名相同,遵循標(biāo)識(shí)符命名規(guī)則在定義數(shù)組時(shí),需要指定數(shù)組中元素的個(gè)數(shù), 中的常量表達(dá)式用來表示元素個(gè)數(shù),即數(shù)組長度
14、。常量表達(dá)式中可以包括常量和符號(hào)常量。如:int a4+5引用數(shù)組名下標(biāo)定義數(shù)組時(shí)用到的數(shù)組名常量表達(dá)式和引用數(shù)組元素時(shí)用的數(shù)組名下標(biāo)形式相同,但含義不同。初始化時(shí)給數(shù)組中的一部分元素賦值,系統(tǒng)會(huì)給其余元素賦值為0。推薦精選二維數(shù)組:類型說明符,數(shù)組名常量表達(dá)式常量表達(dá)式;行列用矩陣行式表示二維數(shù)組,是邏輯上的概念,能形象地表示出行列關(guān)系,而在內(nèi)存中,各元素是連續(xù)存放的,不是二維的,是線性的。引用數(shù)組名下標(biāo)下標(biāo)。如果對(duì)所有元素賦初值(即提供全部初始數(shù)據(jù)),則定義數(shù)組時(shí)對(duì)第一組的長度可以不指定,但第二維的長度不能省。字符數(shù)組(用來存放字符數(shù)據(jù)的數(shù)組) 如果初值個(gè)數(shù)小于數(shù)組長度,則只將這些字符賦給
15、數(shù)組中前面那些元素,其余的元自動(dòng)定為空字符(即0)如果提供的初值個(gè)數(shù)與預(yù)定的數(shù)組長度相同,在定義時(shí)可以省略數(shù)組長度,系統(tǒng)會(huì)自動(dòng)根據(jù)初值個(gè)數(shù)確定數(shù)組長度。在C語言中,是將字符串作為字符數(shù)組來處理的。以字符0作為結(jié)束標(biāo)志,用字符常量可使字符數(shù)組初始化字符數(shù)組的輸入輸出:.逐個(gè)字符輸入輸出;.將整個(gè)字符串一次輸入或輸出。系統(tǒng)把空格字符作為輸入的字符串之間的的分隔符scanf 函數(shù)中的輸入項(xiàng)如果是字符數(shù)組名,不要再加地址符 &字符串處理函數(shù) puts (字符數(shù)組)用puts函數(shù)輸出的字符串可以包含轉(zhuǎn)義字符gets(字符數(shù)組)從終端輸入一個(gè)字符串到字符數(shù)組,并且得到一個(gè)函數(shù)值,該涵數(shù)值是字符數(shù)組的起始地
16、址。用puts和gets函數(shù)只能輸出或輸入一個(gè)字符串字符串連接函數(shù) strcat(字符數(shù)組1,字符數(shù)組2)把兩個(gè)字符數(shù)組中的字符串連接起來,把字符串2接到字符串1的后面,結(jié)果放在字符數(shù)組1中,函數(shù)調(diào)用后得到一個(gè)函數(shù)值字符數(shù)組1的地址strcpy(字符數(shù)組1,字符串2)將字符串2復(fù)制到字符數(shù)組1中去。不能用賦值語句將一個(gè)字符串常量或字符數(shù)組直接給一個(gè)字符數(shù)組??梢杂胹trncpy函數(shù)將字符串2中前幾個(gè)字符復(fù)制到字符數(shù)組1中去,但復(fù)制的字符數(shù)n不應(yīng)多余str1中原有的字符(不包括0)strcmp(字符串,字符串2)如全部相同,則認(rèn)為兩個(gè)字符串相;若出現(xiàn)不相同的字符,則以第一對(duì)不相同的字符比較結(jié)果為
17、準(zhǔn),在英文字典中位置在后面的“大”strlen(字符數(shù)組)測(cè)試字符串的長度strlur(字符串)將字符串中大寫字母換成小寫字母strupr(字符串)將字符串中小寫字母換成大寫字母在使用字符串處理函數(shù)時(shí),應(yīng)當(dāng)在程序文件的開頭用#include“string.h”2、指針指針是一個(gè)地址,而指針變量是存放地址的變量 “*”表示“指向” 類型名 * 指針變量名。 指針變量中只能存放地址(指針),不要將一個(gè)整數(shù)賦給一個(gè)指針變量指針變量作為函數(shù)參數(shù) 函數(shù)的調(diào)用可以(只可以)得到一個(gè)返回值(即函數(shù)值)而使用指針變量作參數(shù)可以得到多個(gè)變化了的值。通過指針引用數(shù)組:p+1 指向同一數(shù)組中的下一個(gè)元素;p-1指向
18、同一數(shù)組中的上一個(gè)元素。直接用p2-p1 就可以知道他們所指元素的相對(duì)距離*(p-)相當(dāng)于先對(duì)p進(jìn)行“*”運(yùn)算,在使p自減二維數(shù)組a的有關(guān)指針*(1+2),*(*(a+1)+2),a12表示1行2列元素的值。注意:不要把&ai簡單地理解為ai元素的物理地址,因?yàn)椴⒉淮嬖赼i這樣一個(gè)實(shí)際的數(shù)據(jù)存儲(chǔ)單元。它只是一種地址的計(jì)算方法,能得到第i行的首地址。&ai和ai的值是一樣的,但他們的含義是不相同的。&ai或a+i 指向行,而ai或*a+i指向列。當(dāng)列下標(biāo)為0時(shí),&ai和ai(即ai+j)值相同,即他們表示同一地址,但應(yīng)注意他們所指的對(duì)象是不同的,即指針的基類型是不同的,*(a+i)只是ai的另一
19、種表示形式,不要簡單的認(rèn)為*(a+i)是“a+i”所指單元中的內(nèi)容。在一維數(shù)組中a+i所指的是一個(gè)數(shù)組元素的存儲(chǔ)單元,在該單元中有具體值。對(duì)二維數(shù)組a+i不是指向具體存儲(chǔ)單元而是指向行。在二維數(shù)組中 a+i;ai;*(a+i);&ai;&ai0的值相同推薦精選通過指針引用字符串。在C語言中,字符串是存放在字符數(shù)組中的。用字符數(shù)存放一個(gè)字符串,可以通過數(shù)組名和下標(biāo)引用字符串一個(gè)字符,也可以通過數(shù)組名和格式聲明“%s”輸出該字符串用字符指針變量指向一個(gè)字符串常量,通過字符指針變量引用字符串常量。 “while(*from!=0)”和“while(*from)”是等價(jià)的數(shù)組可以在定義時(shí)對(duì)各元素賦初值,但不能用賦值語句對(duì)字符數(shù)組中全部元素整體賦值。字符數(shù)組中各元素的值是可以改變的(可以對(duì)他們?cè)儋x值),到字符指針變量指向的字符串常量中的內(nèi)容是不可以被取代的3、結(jié)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度LNG運(yùn)輸車輛改裝與安全檢測(cè)合同3篇
- 2024年食品行業(yè)社會(huì)保險(xiǎn)管理與代繳合同
- 2025年度物流車輛智能系統(tǒng)升級(jí)合同4篇
- 2025年度醫(yī)療健康公司股權(quán)轉(zhuǎn)讓與產(chǎn)業(yè)鏈合作合同3篇
- 2025年度商業(yè)大廈車位包銷及物業(yè)管理合同4篇
- 2025年度智能倉儲(chǔ)物流系統(tǒng)建設(shè)承包經(jīng)營協(xié)議4篇
- 2024石材行業(yè)石材應(yīng)用技術(shù)研究采購合同2篇
- 2025年度網(wǎng)絡(luò)直播個(gè)人勞務(wù)合同范本3篇
- 2025年度嬰幼兒專用牛奶采購合作協(xié)議書3篇
- 2025年電動(dòng)自行車品牌代理銷售合同標(biāo)準(zhǔn)版2篇
- 教育系統(tǒng)后備干部面試題目
- 40篇短文搞定高中英語3500單詞
- 高分子材料完整版課件
- DB37∕T 5118-2018 市政工程資料管理標(biāo)準(zhǔn)
- 大氣紅色商務(wù)展望未來贏戰(zhàn)集團(tuán)年會(huì)PPT模板課件
- T∕CAWA 002-2021 中國疼痛科專業(yè)團(tuán)體標(biāo)準(zhǔn)
- 住宅工程公共區(qū)域精裝修施工組織設(shè)計(jì)(217頁)
- 冷卻塔技術(shù)要求及質(zhì)量標(biāo)準(zhǔn)介紹
- (完整版)項(xiàng)目工程款收款收據(jù)
- 井點(diǎn)降水臺(tái)班記錄表
- 奇瑞汽車4S店各類表格模板
評(píng)論
0/150
提交評(píng)論