計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)(C)_第1頁
計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)(C)_第2頁
計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)(C)_第3頁
計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)(C)_第4頁
計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)(C)_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)(計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)(C)王王 虎虎2幾個(gè)基本概念程 序 一系列遵循一定規(guī)則并正確完成一定功能的代碼或指令序列 通常包括數(shù)據(jù)結(jié)構(gòu)與算法兩部分程序設(shè)計(jì) 按照任務(wù)需要,設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)與算法,編寫代碼并測試其正確性,得到正確運(yùn)行結(jié)果的過程3幾個(gè)基本概念算 法 問題的求解方法與步驟 不允許存在二義性 算法設(shè)計(jì)過程是逐步求精的 常使用流程圖描述算法數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)對象、相互關(guān)系及構(gòu)造方法 與算法關(guān)系密切4C 語言程序示例編寫顯示字符串“Hello World!”的C程序5C 語言程序示例編寫程序,計(jì)算三個(gè)實(shí)數(shù)的平均值6C 語言程序示例語言程序示例編寫程序,找出兩個(gè)整數(shù)中的較小者7C 語言程

2、序的結(jié)構(gòu)特點(diǎn)語言程序的結(jié)構(gòu)特點(diǎn)由一個(gè)或多個(gè)函數(shù)組成,且具有惟一一個(gè)主函數(shù)main()程序執(zhí)行由主函數(shù)開始,其他函數(shù)由主函數(shù)調(diào)用或間接調(diào)用程序執(zhí)行流程與函數(shù)定義順序無關(guān)每個(gè)函數(shù)包含函數(shù)頭與函數(shù)體兩部分8字符集:ASCII字符集 大小寫英文字母、數(shù)字、部分特殊符號(hào)標(biāo)識(shí)符 以下劃線或字母開頭,由下劃線、字母、數(shù)字組成,表示常量、變量、函數(shù)、類型等名稱 保留字:系統(tǒng)專用的具有特定意義的標(biāo)識(shí)符 C89定義31個(gè),C99新增5個(gè) 預(yù)定義標(biāo)識(shí)符:編譯命令與庫函數(shù)名,具有特定意義,一般不能重新定義 用戶定義標(biāo)識(shí)符:用戶根據(jù)需要定義,主要是為了使程序容易閱讀、理解與維護(hù)C 語言的基本標(biāo)識(shí)符標(biāo)識(shí)符應(yīng)該“見名知意見

3、名知意”,如,如 total , maxtotal , max標(biāo)識(shí)符應(yīng)該“不宜混淆不宜混淆”,如,如 l l與與1 , O1 , O與與0 09數(shù)據(jù)類型的一般概念確定了以值為元素的數(shù)據(jù)集 值的可能范圍,即定義域確定了操作(運(yùn)算)集 不同數(shù)據(jù)類型具有不同的操作集,不同數(shù)據(jù)類型間也可以進(jìn)行混合運(yùn)算規(guī)定了值的存儲(chǔ)格式 不同類型數(shù)據(jù)在計(jì)算機(jī)中存儲(chǔ)格式不同,相同類型數(shù)據(jù)在不同計(jì)算機(jī)與編譯器下的存儲(chǔ)格式也可能不同數(shù)據(jù)處理的基本對象 常量與變量,均屬于某種數(shù)據(jù)類型10C 語言數(shù)據(jù)類型關(guān)系圖 基本數(shù)據(jù)類型基本數(shù)據(jù)類型 構(gòu)造數(shù)據(jù)類型構(gòu)造數(shù)據(jù)類型 字符型字符型 數(shù)值型數(shù)值型 空值型空值型 整型整型 整整 型型 無

4、符號(hào)整型無符號(hào)整型 有符號(hào)整型有符號(hào)整型 短整型短整型 無符號(hào)短整型無符號(hào)短整型 有符號(hào)短整型有符號(hào)短整型 長整型長整型 無符號(hào)長整型無符號(hào)長整型 有符號(hào)長整型有符號(hào)長整型 實(shí)型實(shí)型 單精度實(shí)型單精度實(shí)型 雙精度實(shí)型雙精度實(shí)型 結(jié)構(gòu)結(jié)構(gòu) 聯(lián)合聯(lián)合 數(shù)組數(shù)組 枚舉枚舉 指針指針 數(shù)據(jù)類型數(shù)據(jù)類型 11常量常量,是指程序運(yùn)行過程中,其值不能改變的量。C語言中,常量可分為: 整型常量(int) 實(shí)型常量(float) 字符常量(char)等多種12整型常量十進(jìn)制表示 以數(shù)字19開頭的09序列,如9、876、55八進(jìn)制表示 以0開頭的07序列,如055 0558 = 4510 ,注意不要與十進(jìn)制混淆!

5、十六進(jìn)制表示 以“0 x”或“0X”開頭的09、A/aF/f序列,如0 x55、0 x1F、0 x2a 0 x5516 = 851013實(shí)型常量一般形式:小數(shù)表示法 由整數(shù)部分、小數(shù)點(diǎn)與小數(shù)部分組成 例:3.1416、2.718281828指數(shù)形式:科學(xué)計(jì)數(shù)法 一般形式為: a E na E n (a為十進(jìn)制數(shù),n為十進(jìn)制整數(shù)) (表示的值為 a10n ) 由尾數(shù)部分、字符E/e與指數(shù)部分組成 例:3.14e3=3.14103、2.7E2=2.7102只使用十進(jìn)制只使用十進(jìn)制14字符型常量字符型常量 以單引號(hào)括起來的單一字符,如A、c 字符常量按照其在字符集(一般為 ASCII)中的編碼值存儲(chǔ)

6、并參與運(yùn)算 例如:6+2 6+2a a, ,A A, , 1 1abcabc、 ” a a”15ASCII 碼表01234567890000001002003004005006abt10nvfr0160170200210220232002402502602703003103203303403530036037space!#$%&40()*+,./015023456789:;60?ABCDE70FGHIJKLMNO80PQRSTUVWXY90Z_abc100defghijklm110nopqrstuvw120 xyz|17716反斜杠字符常量反斜杠字符常量 以開頭,后跟字符或數(shù)字,用于表

7、示一個(gè)特定含義的字符,例如n表示換行字符,稱為轉(zhuǎn)義字符序列 常與普通字符混雜于某個(gè)字符串中17轉(zhuǎn)義序列及其意義轉(zhuǎn)義序列 功能與意義 a響鈴b退格f換頁n換行r返回到當(dāng)前行首t水平制表鍵v垂直制表鍵0ASCII碼0字符自身字符(僅在字符常數(shù)中需要)“字符“(僅在字符串常數(shù)中需要)ddd“ddd”表示八進(jìn)制的該字符ASCII碼值18轉(zhuǎn)義字符示例Ex_02main() int x=16,y=2008; printf(y=%drx=%dn,y,x); printf(%c%c%cb%.1fn,C,+,+,6.0); 19格式化輸出函數(shù) printf()功能 將各數(shù)據(jù)項(xiàng)以指定的格式,輸出到標(biāo)準(zhǔn)輸出設(shè)備上調(diào)

8、用格式 printf(“輸出格式描述字符串”, 輸出項(xiàng)列表); 例:printf(“age = %dn”, age); printf(“%d %d %dn”, a, 15, a+5); printf(“%dn”, xmin(a,b);20轉(zhuǎn)換說明符轉(zhuǎn)換說明符 說明 %d以有符號(hào)十進(jìn)制整數(shù)形式輸出,正數(shù)不輸出符號(hào)%u以無符號(hào)十進(jìn)制整數(shù)形式輸出%x, %X以無符號(hào)十六進(jìn)制整數(shù)形式輸出%o以無符號(hào)八進(jìn)制整數(shù)形式輸出%f以浮點(diǎn)數(shù)(實(shí)數(shù))形式輸出,缺省精度為6位小數(shù)%e, %E以指數(shù)形式輸出單、雙精度實(shí)數(shù)%g, %G以%f或%e中較短的輸出寬度輸出單、雙精度實(shí)數(shù)%c以單一字符形式輸出,以此為ASCII碼

9、輸出一個(gè)字符%s以字符串形式輸出,直到遇到0或達(dá)到指定寬度21格式化輸出示例指出下述程序的運(yùn)行結(jié)果22字符串常量字符串:以雙引號(hào)括起來的一串字符 例:“Tsinghua”、“Programming in C”字符串的長度:其中的字符數(shù)目 長度n,占用n+1字節(jié),最后一個(gè)字節(jié)存儲(chǔ)NULL字符0 例:“Tsinghua”占用9個(gè)字節(jié)字符串常量與字符常量不同字符串至少占用一個(gè)字節(jié),為什么?8411510511010310411797023變量程序運(yùn)行過程中,其值可改變的量稱為變量定義變量的一般形式為: 類型名 變量名;C規(guī)定: 變量定義語句要在所有執(zhí)行語句之前 變量必須在使用前定義不同類型變量,系統(tǒng)

10、進(jìn)行編譯時(shí)會(huì)為其分配不同大小的存儲(chǔ)空間。24變量名和變量值有不同的含義 變量實(shí)際代表一塊內(nèi)存存貯區(qū)域 變量名實(shí)為這個(gè)區(qū)域的標(biāo)識(shí) a3例例 變量的使用變量的使用main() int a; a=3; printf(“a=%d,a);變量名變量值存儲(chǔ)區(qū)域變量25基本數(shù)據(jù)類型 基本數(shù)據(jù)類型的分類 字符型:char;整型:int;浮點(diǎn)型:float;雙精度浮點(diǎn)型:double;無型:void 基本數(shù)據(jù)類型的長度(位數(shù))和取值范圍與計(jì)算機(jī)和 C 編譯器有關(guān) 整型二進(jìn)制位數(shù)與CPU字長相同;字符單字節(jié);浮點(diǎn)型4字節(jié);雙精度浮點(diǎn)型8字節(jié) 修飾符 有符號(hào):signed;無符號(hào):unsigned;短型:short

11、;長型:long 修飾除void之外的其他四種基本數(shù)據(jù)類型26共六種共六種有符號(hào)基本整型有符號(hào)短整型有符號(hào)長整型無符號(hào)基本整型無符號(hào)短整型無符號(hào)長整型(signed)int (signed)short (int )(signed) long (int)unsigned intunsigned short (int)unsigned long (int) 注意:注意:括號(hào)表示其中的內(nèi)容是可選的.整型變量的分類27 整型變量的分類28定義整型變量的一般形式: 類型說明符 變量名,變量名,.; 在定義變量的同時(shí)給變量賦值稱為變量初始化。變量初始化的格式為:類型說明符 變量名=,變量名=,.; 整型變

12、量的定義29變量的定義與使用示例運(yùn)行結(jié)果:運(yùn)行結(jié)果: a+b=12,x+y=2147483629,c=1 z=用戶輸入的值用戶輸入的值變量定義須在可執(zhí)變量定義須在可執(zhí)行語句之前行語句之前30格式化輸入函數(shù) scanf()功能 以指定的格式從標(biāo)準(zhǔn)輸入設(shè)備上接收一個(gè)或多個(gè)數(shù)據(jù)的輸入,并將其保存到指定的變量調(diào)用格式 scanf(“輸入格式描述字符串”, 輸入項(xiàng)列表); 例: scanf(“%d,%c”, &age, &c);31格式化輸入函數(shù) scanf()說 明 輸入格式轉(zhuǎn)換說明符與輸出格式轉(zhuǎn)換說明符相同 用戶在終端輸入的數(shù)據(jù)逐一存放到輸入項(xiàng)列表中變量所在的地址空間;對于普通變量,

13、變量名前需添加取址操作符 多個(gè)輸入項(xiàng)的分隔:格式描述串中其他字符需在輸入數(shù)據(jù)時(shí)一并輸入;未分隔的兩個(gè)輸入項(xiàng)在輸入數(shù)據(jù)時(shí)使用空格、Tab或回車鍵分隔32格式化輸入示例33轉(zhuǎn)換說明符轉(zhuǎn)換說明符 說明 %d以有符號(hào)十進(jìn)制整數(shù)形式輸入%u以無符號(hào)十進(jìn)制整數(shù)形式輸入%x, %X以無符號(hào)十六進(jìn)制整數(shù)形式輸入%o以無符號(hào)八進(jìn)制整數(shù)形式輸入%f以浮點(diǎn)數(shù)(實(shí)數(shù))形式輸入%e以指數(shù)形式輸入單、雙精度實(shí)數(shù)%s以字符串形式輸入%c以單一字符形式輸入34格式化輸入示例不同類型變量的輸入,必須使用相應(yīng)的格式輸入符 7 4.6 7.9 結(jié)果?35格式化輸入示例要學(xué)會(huì)單步調(diào)試36分析以下程序的運(yùn)行結(jié)果本例中,變量本例中,變量

14、i i是整型變量,在內(nèi)存中占四個(gè)字節(jié)。是整型變量,在內(nèi)存中占四個(gè)字節(jié)。6553565535在內(nèi)存中存放形式在內(nèi)存中存放形式為:為:0000000000000000 0000000000000000 1111111111111111 1111111111111111變量是變量是j j 是短整型變量,在內(nèi)存中只占兩個(gè)字節(jié),因此在將是短整型變量,在內(nèi)存中只占兩個(gè)字節(jié),因此在將i i賦給賦給j j時(shí),只將時(shí),只將低端的兩個(gè)字節(jié)賦給低端的兩個(gè)字節(jié)賦給j j中內(nèi)容為:中內(nèi)容為: 1111111111111111 1111111111111111 (-1-1的補(bǔ)碼)的補(bǔ)碼)所以輸出的所以輸出的i i為為65

15、53565535,j j 為為-1-1。變量的定義與使用示例37 浮點(diǎn)型變量分為單精度(float型)、雙精度(double型) 浮點(diǎn)型數(shù)據(jù)在內(nèi)存中的存放形式是用科學(xué)記數(shù)法(即指數(shù)的方式)存放的,在占用相同的存儲(chǔ)空間時(shí),浮點(diǎn)型數(shù)據(jù)可以存儲(chǔ)更大范圍的數(shù)據(jù), 但浮點(diǎn)型數(shù)據(jù)有有效位限制(精度)浮點(diǎn)型變量的分類類型標(biāo)識(shí)符位數(shù)有效位最小值最大負(fù)值最小正值最大值float3273.40e381.18e381.18e383.40e38double64151.80e3082.23e3082.23e3081.80e308long double80191.19e49323.36e49323.36e49321.19

16、e493238變量的定義與使用示例Ex_05程序的運(yùn)行結(jié)果為:程序的運(yùn)行結(jié)果為: x=101235344.000000,y=422222222345.11224039變量的初始化在定義變量時(shí)設(shè)定初始值未初始化變量 并不意味空值 保持原先的位序列不變,可以參與運(yùn)算,但沒有意義,往往導(dǎo)致錯(cuò)誤結(jié)果40在內(nèi)存中存放字符時(shí),所存放的是該字符的二進(jìn)制代碼(ASCII碼) 字符十進(jìn)制代碼八進(jìn)制十六進(jìn)制二進(jìn)制換行換行1012A00001010回車回車1315D00001101空格空格32402000010000字符字符0 09 94857607130390011000000111001字符字符A AZ Z65

17、90101132415A0100000101011010字符字符a az z97122141172617A0110000101111010字符型41字符型變量可用來存放字符常量,注意只能放一個(gè)字符,如:字符變量的定義形式如下:char c1,c2;一個(gè)字符變量在內(nèi)存中占一個(gè)字節(jié)。字符型變量42分析以下程序的運(yùn)行結(jié)果。 程序的運(yùn)行結(jié)果為:66,B65,A字符型變量43以下程序?qū)崿F(xiàn)大小寫字母轉(zhuǎn)換。程序的運(yùn)行結(jié)果為:X, y字符型變量44一對雙引號(hào)括起來的字符序列合法的字符串常量:可以輸出一個(gè)字符串,如字符串型45如:假設(shè)被指定為字符變量 : 結(jié)論:結(jié)論:不能把一個(gè)字符串常量賦給一個(gè)字符變量字符與字

18、符串46分析以下程序的運(yùn)行結(jié)果。 程序的運(yùn)行結(jié)果為:4,5 strlen是用來計(jì)算字符串的長度,這是一個(gè)庫函數(shù) sizeof是用來計(jì)算字符串所占存儲(chǔ)空間的大小,這是一個(gè)運(yùn)算符。 字符串型47編程時(shí),要在程序中寫一些算式,這些算式就是表達(dá)式表達(dá)式;一個(gè)表達(dá)式可能包含一個(gè)或多個(gè)操作,而連接這些操作對象的是運(yùn)算符運(yùn)算符。如:就是一個(gè)C語言表達(dá)式。特殊的,在程序設(shè)計(jì)語言中,單個(gè)常量、單個(gè)變量、單個(gè)函數(shù)也算表達(dá)式。C語言運(yùn)算符有:算術(shù)運(yùn)算符、關(guān)系與邏輯運(yùn)算符、賦值運(yùn)算符、條件運(yùn)算符、逗號(hào)運(yùn)算符等。 運(yùn)算符和表達(dá)式48算術(shù)運(yùn)算符與算術(shù)表達(dá)式基本算術(shù)運(yùn)算符 加(+)、減()、乘(*)、除(/)、余(%) 結(jié)

19、合方向:從左向右 優(yōu)先級(jí): - - -* * / % / % - + -+ - (2) (3) (4) “-”可為單目運(yùn)算符時(shí),右結(jié)合性49算術(shù)運(yùn)算符與算術(shù)表達(dá)式除法運(yùn)算符“/” 參與運(yùn)算的量均為整型時(shí),結(jié)果舍去小數(shù),也為整型。若運(yùn)算量中有一個(gè)是實(shí)型,則結(jié)果為雙精度實(shí)型例 5/2 = -5/2.0 =例 5/2 = 2 -5/2.0 = -2.550算術(shù)運(yùn)算符與算術(shù)表達(dá)式求余運(yùn)算符(模運(yùn)算符)“%” 要求參與運(yùn)算的量均為整型 當(dāng)運(yùn)算量為負(fù)數(shù)時(shí),所得結(jié)果的符號(hào)隨機(jī)器而不同,在VC+中,符號(hào)與被除數(shù)相同例 5%2 = -5%2 = 1%10 = 5%1 = 5.5%2例 5%2 = 1 -5%2

20、= -1 1%10 = 1 5%1 = 0 5.5%2 ()51算術(shù)運(yùn)算符與算術(shù)表達(dá)式遞增遞減運(yùn)算符 前綴:先遞增遞減,再參與運(yùn)算 后綴:先參與運(yùn)算,再遞增遞減52算術(shù)運(yùn)算符與算術(shù)表達(dá)式幾點(diǎn)說明: + - 不能用于常量和表達(dá)式,如 5+,(a+b)+ + - 結(jié)合方向: 自右向左 優(yōu)先級(jí):- + - + - -* * / % / % -+ -+ - (2) (3) (4)(2) (3) (4) 該運(yùn)算符常用于循環(huán)語句中,使循環(huán)變量加減153賦值語句與賦值表達(dá)式 賦值表達(dá)式 賦值操作符:優(yōu)先級(jí)較低 賦值表達(dá)式的值:賦值操作符賦給目標(biāo)變量的值 例: 右結(jié)合: 賦值語句 以分號(hào)結(jié)束的賦值表達(dá)式 格式

21、:變量名 = 表達(dá)式;例: 賦值語句對左邊變量名或等價(jià)的數(shù)組元素名實(shí)施寫操作 右邊的表達(dá)式結(jié)果若與左邊的類型不同,則先轉(zhuǎn)換再賦值,此時(shí)可能導(dǎo)致數(shù)據(jù)精度的損失54復(fù)合賦值操作符 注意事項(xiàng) 賦值操作符右邊的子表達(dá)式作為整體參與運(yùn)算 例: y *= x + 1 等價(jià)于 y = y * (x + 1) 復(fù)合賦值操作符名稱示例等價(jià)于+=加賦y += x;y = y + x;=減賦y = x;y = y x;*=乘賦y *= x;y = y * x;/=除賦y /= x;y = y / x;%=余賦y %= x;y = y % x;55復(fù)合賦值表達(dá)式 注意:函數(shù)參數(shù)執(zhí)行順序56關(guān)系運(yùn)算符與關(guān)系表達(dá)式 關(guān)系運(yùn)算符 大于()、等于(=)、小于()、不大于(=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論