




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第一章語(yǔ)言及程序設(shè)計(jì)概述本章要求: 了解C語(yǔ)言的特點(diǎn)、C語(yǔ)言與其它高級(jí)語(yǔ)言相比有什么異同; 了解C程序在PC機(jī)上的建立、編譯和運(yùn)行過(guò)程; 了解C語(yǔ)言程序設(shè)計(jì)思想的基本篇;重點(diǎn):C語(yǔ)言的主要特點(diǎn); C語(yǔ)言在PC機(jī)上的運(yùn)行過(guò)程及上機(jī)操作過(guò)程; 常用算法的應(yīng)用難點(diǎn):無(wú)一、C語(yǔ)言概述 C語(yǔ)言是目前國(guó)際上在各種計(jì)算機(jī)運(yùn)行較為廣泛流行的一種高級(jí)語(yǔ)言。 主要表現(xiàn)為: C語(yǔ)言:適合于作為系統(tǒng)描述語(yǔ)言可用來(lái)寫(xiě)系統(tǒng)軟件。 具有高級(jí)語(yǔ)言的特點(diǎn),又有低級(jí)語(yǔ)言(匯編語(yǔ)言)的特點(diǎn)。 C語(yǔ)言:是AT&T貝爾實(shí)驗(yàn)室的Dennis Ritchie在1972年發(fā)明的。 C語(yǔ)言:是在B語(yǔ)言的基礎(chǔ)上發(fā)展起來(lái)的。(ALGOL
2、60) C語(yǔ)言:最早開(kāi)始是用于UNIX操作系統(tǒng)。(C語(yǔ)言和UNIX是相輔相成的) DBASE 、Microsoft Exel 、 Microsoft Word、PC-DOS等,則是用C語(yǔ)言加上若干匯編子程序編寫(xiě)的。 1983年:制定的新標(biāo)準(zhǔn),稱為(美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì))ANSI C 1987年:Turbo C1.0 (Borland) 1988年:TC 1.5(圖形和文本窗口) 1989年:Turbo C2.0 (DOS操作系統(tǒng)、查錯(cuò)、Tiny模式生成com文件) 1991年:Turbo C+(3.0) 支持windows 3.X 說(shuō)明:Turbo C語(yǔ)言可以在程序的任何地方嵌入?yún)R編代碼,提高速
3、度,可以直接使用存儲(chǔ)器和寄存器。二C語(yǔ)言的特點(diǎn) 1語(yǔ)言簡(jiǎn)潔、緊湊、使用方便、靈活 C語(yǔ)言:共有32個(gè)關(guān)鍵字,9種控制語(yǔ)句; 程序書(shū)寫(xiě)自由,主要用小寫(xiě)字母表示; 2運(yùn)算符豐富 C語(yǔ)言的運(yùn)算符包含的范圍很廣泛,共有34種運(yùn)算符; 即:把括號(hào)、賦值、強(qiáng)制類(lèi)型轉(zhuǎn)換都作為運(yùn)算符處理 3有豐富的數(shù)據(jù)類(lèi)型 整型、實(shí)型、字符型、數(shù)據(jù)類(lèi)型、指針類(lèi)型、結(jié)構(gòu)體類(lèi)型、共用體(聯(lián)合)類(lèi)型等。實(shí)現(xiàn)復(fù)雜的數(shù)據(jù)結(jié)構(gòu)(鏈表、樹(shù)、棧、圖)的運(yùn)算。 4具有結(jié)構(gòu)化的功能,用函數(shù)作為程序模塊,實(shí)現(xiàn)程序的模塊化 5語(yǔ)法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大。(放寬了語(yǔ)法檢查) 例:1)對(duì)數(shù)組下標(biāo)越界不作檢查,由程序編寫(xiě)者自己保證程序的正確; 2
4、)整型數(shù)據(jù)、字符型數(shù)據(jù)、邏輯型數(shù)據(jù)可以通用。 6能直接訪問(wèn)物理地址,能進(jìn)行位(bit)操作,能實(shí)現(xiàn)匯編語(yǔ)言的大部分功能,可以直接對(duì)硬件進(jìn)行操作。 7生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。 8用C語(yǔ)言編寫(xiě)的程序,移植性較好。 說(shuō)明: C語(yǔ)言比其它高級(jí)語(yǔ)言難掌握,對(duì)編程人員要求較高 程序員使用C語(yǔ)言編寫(xiě)程序會(huì)感到限制少、靈活性大,功能強(qiáng),可以編寫(xiě)出任何類(lèi)型的程序。三C程序的構(gòu)成例: main( ) /*主函數(shù)*/ int a,b,sum; /*定義變量*/ a=123;b=456; sum=a+b; printf(“sum is %dn”,sum); /*輸出變量*/ 說(shuō)明: 1)程序一般用小寫(xiě)字母
5、書(shū)寫(xiě); 2)每個(gè)程序必須要有一個(gè)main ( ) (只能一個(gè)),稱主函數(shù); 注:C程序是由函數(shù)構(gòu)成的,函數(shù)是C程序的基本單位。 函數(shù):系統(tǒng)提供的庫(kù)函數(shù);用戶設(shè)計(jì)的函數(shù)。 3)程序體必須在 之間; 4)每個(gè)語(yǔ)句的結(jié)尾,必須要有“;”作為終止符。 5)用/*. */ 作注釋四、C程序的上機(jī)過(guò)程1演示 書(shū):P5 程序2上機(jī)步驟 書(shū):P7 注:C語(yǔ)言是一種編譯語(yǔ)言,編譯語(yǔ)言的特點(diǎn):連接編譯目標(biāo)程序 *.OBJ執(zhí)行程序 *.EXE源程序 *.C C編譯程序 Link程序 3DOS下C語(yǔ)言的運(yùn)行 目前DOS下運(yùn)行C語(yǔ)言軟件為:Turbo C 2.0 (1) Turbo C 2.0 的特點(diǎn): 是一個(gè)把 編輯
6、 編譯 連接 運(yùn)行 等全部操作集中在一個(gè)界面上。 (2) Turbo C 2.0的操作及運(yùn)行 書(shū):P8五、算法的概念 1算法的概念 書(shū):P13 算法:程序的操作步驟。 程序中的數(shù)據(jù) 在程序設(shè)計(jì)中: 操作步驟 有: 程序 = 數(shù)據(jù)結(jié)構(gòu) + 算法 沃思 Nikiklaus Wirth 程序=算法+數(shù)據(jù)結(jié)構(gòu)+程序設(shè)計(jì)方法+語(yǔ)言工具和環(huán)境 2 計(jì)算機(jī)算法分為兩大類(lèi): 數(shù)值運(yùn)算算法非數(shù)值運(yùn)算算法 (1)數(shù)值運(yùn)算算法:求數(shù)值解;通過(guò)運(yùn)算得出一個(gè)具體值,如求方程的根等 注:數(shù)值運(yùn)算一般有現(xiàn)成的模型,算法較成熟。 (2)非數(shù)值運(yùn)算算法:用于事務(wù)管理,如圖書(shū)檢索、人事管理等。 3、常用簡(jiǎn)單算法 (1)累乘 即:
7、1×2×3×4×5×100 1×2 S(結(jié)果) S×3 S(結(jié)果) S×4 S(結(jié)果) S×100 S(結(jié)果) (2)累加 即:1+2+3+4+5+100 1+2 S(結(jié)果) S+3 S(結(jié)果) S+4 S(結(jié)果) S+100 S(結(jié)果) (3)找最大值 5,2,4,12,9 5 max (max 放最大值,后面的數(shù)都和它比較) 2 > max 不成立 4 > max 不成立 12 > max 成立:12 max 9 > max 不成立注:該算法可擴(kuò)展為在一批數(shù)據(jù)中,找某一個(gè)數(shù) (
8、4)其它算法 P15 例 2.2 例 2.3 例 2.4 例 2.5 課余自學(xué)(必須) 4、算法的表示 常用的有:自然語(yǔ)言傳統(tǒng)流程圖結(jié)構(gòu)化流程圖偽代碼PAD圖(1)傳統(tǒng)流程圖 起止框 輸入輸出框 判斷框 處理框 流程線 連接點(diǎn)表示方法:P19 例注:傳統(tǒng)流程圖對(duì)流程線的使用沒(méi)有嚴(yán)格限制,難以實(shí)現(xiàn)結(jié)構(gòu)化程序設(shè)計(jì)為了限制流程線的濫用,提出三種基本結(jié)構(gòu): 順序結(jié)構(gòu) 選擇結(jié)構(gòu) 循環(huán)結(jié)構(gòu) 順序結(jié)構(gòu) 選擇結(jié)構(gòu) f t . f 語(yǔ)句 表達(dá)式 表達(dá)式 t 語(yǔ)句 語(yǔ) 句 語(yǔ) 句1 語(yǔ) 句2 循環(huán)結(jié)構(gòu) 表達(dá)式 語(yǔ) 句 語(yǔ) 句 表達(dá)式 a) “當(dāng)型”結(jié)構(gòu) b) “直到型”結(jié)構(gòu)(2)N-S流程圖 特點(diǎn):去掉了帶箭頭的
9、流程線,全部算法寫(xiě)在一個(gè)矩形框內(nèi)。 稱N-S結(jié)構(gòu)化流程圖 P A 成立 不成立 當(dāng)P1成立 A B A B A 直到P1成立 順序結(jié)構(gòu) 選擇結(jié)構(gòu) 循環(huán)結(jié)構(gòu)作業(yè):p37 2.4上機(jī):熟悉Turbo C 2.0的操作及運(yùn)行第三章 數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式本章要求: 本章是C語(yǔ)言的基本概念開(kāi)篇,所介紹的概念是學(xué)習(xí)C語(yǔ)言的基礎(chǔ); 要求熟練掌握數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式。重點(diǎn):C語(yǔ)言數(shù)據(jù)類(lèi)型定義的方法和分類(lèi)。 C語(yǔ)言運(yùn)算符、表達(dá)式的使用以及它們的主要特點(diǎn)。難點(diǎn):自增、自減運(yùn)算符、賦值運(yùn)算符、逗號(hào)運(yùn)算符及它們的混合使用一數(shù)據(jù)類(lèi)型概念:算法處理的對(duì)象是數(shù)據(jù),而數(shù)據(jù)是以某種特定的形式出現(xiàn)。在C語(yǔ)言中,數(shù)據(jù)有:常
10、量、變量;一般它們都有一定的數(shù)據(jù)類(lèi)型。 (C語(yǔ)言的數(shù)據(jù)結(jié)構(gòu)是以數(shù)據(jù)類(lèi)型形式出現(xiàn)的)1數(shù)據(jù)類(lèi)型分類(lèi): 整型 int 基本類(lèi)型 字符型 單精度型 float 實(shí)型(浮點(diǎn)型) 枚舉類(lèi)型 雙精度型 double 數(shù)據(jù)類(lèi)型 數(shù)組類(lèi)型 構(gòu)造類(lèi)型 結(jié)構(gòu)體類(lèi)型 struct 共用體(聯(lián)合)類(lèi)型 union 指針類(lèi)型 * 空類(lèi)型 void 說(shuō)明:在程序中對(duì)用到的所有數(shù)據(jù)都必須指定其數(shù)據(jù)類(lèi)型。 2C語(yǔ)言中的常量和變量常量:在程序運(yùn)行過(guò)程中,其值不能被改變的量。變量:在程序運(yùn)行過(guò)程中,其值可以改變的量。 說(shuō)明:1)常量和變量,都要有一個(gè)名字表示它; 習(xí)慣上,符號(hào)常量(別名)名用大寫(xiě),變量用小寫(xiě)。 符號(hào)常量的定義為:
11、 #define P 30 其它常量:直接用數(shù)據(jù)表示 例: 23 45.5 e 3e+2 2)在C語(yǔ)言中,對(duì)變量要先定義,后使用。 3)如果一個(gè)變量被指定為一確定類(lèi)型后,在C語(yǔ)言編譯時(shí),就能為其分配相應(yīng)的存儲(chǔ)單元。 a 變量名 存儲(chǔ)地址)2000 3 變量值 存儲(chǔ)單元 地址的概念 3常用的基本數(shù)據(jù)類(lèi)型(1)整型 1)整型常量:十進(jìn)制整數(shù) 123,-11,0 非0開(kāi)頭 八進(jìn)制整型 0123,-011 0開(kāi)頭 十六進(jìn)制整型 0x11 0x20 0x0D 0XFF 0x4e 0x/0X開(kāi)頭 說(shuō)明:在一個(gè)整常量后面加一個(gè)字母:l或L,是長(zhǎng)整型常量。22L 0733L 0xae4l 2)整型變量: 定義
12、 存儲(chǔ)字節(jié) 數(shù)的范圍 基本型 int x (2字節(jié)) -3276832767 短整型 short int x (2字節(jié)) -3276832767 長(zhǎng)整型 long int x (4字節(jié)) -2,147,483,6482,147,483,647 無(wú)符號(hào)型 unsigned int x (2字節(jié)) 065535 unsigned short x(2字節(jié)) 065535 unsigned long x (4字節(jié)) 04,294,967,295 注: 數(shù)據(jù)在內(nèi)存中是以:二進(jìn)制形式存放 如:9 為 00001001 例: x=13; x=015 ; x=0xD 存儲(chǔ)結(jié)構(gòu) 見(jiàn)P44 圖3.5 注:數(shù)據(jù)超過(guò)
13、數(shù)據(jù)范圍,會(huì)發(fā)生數(shù)據(jù)溢出 例3.2、3.3 (2)實(shí)型(浮點(diǎn)數(shù)) 1)實(shí)型常量: 十進(jìn)制整數(shù) 1.23 .0123 指數(shù)形式 1.23e3,1.00e-3 2)實(shí)型變量: 數(shù)的表示范圍P46表3.2 單精度 float x (4字節(jié))3.4x10-383.4x1038 TC默認(rèn) 雙精度 double x (8字節(jié))1.7x10-3081.7x10308 說(shuō)明:實(shí)型常量 不分float和double,只有十進(jìn)制表達(dá)方式 有的C編譯系統(tǒng)64位存儲(chǔ)方式,如尾加f或F可表示32位:324.567f 例:x=1.23; x=123e3 P47例3.4(存儲(chǔ)精度) (3)字符型 1)字符常量: a) 用單
14、引號(hào)括起來(lái)的一個(gè)字符 aA b) 轉(zhuǎn)義字符(由“專(zhuān)用字母” ) 書(shū)P48表3.3 例3.5 0字符串結(jié)束符 n換行 t水平制表 ddd八進(jìn)制數(shù) xdd十六進(jìn)制數(shù) 2)字符變量: char c (1字節(jié))說(shuō)明:一個(gè)字符變量,只能放一個(gè)字符常量。實(shí)際是把該常量的ASCII值,送入字符變量中。即:B(66) c (字符變量) 書(shū)P374ASCII表 p50例3.6-7 c=B c的內(nèi)容為66 故:字符數(shù)據(jù)可以進(jìn)行算術(shù)運(yùn)算;即:c=B+2 為68 字符數(shù)據(jù)在內(nèi)存中的存儲(chǔ)方式 書(shū)P50 unsigned char 0-255 char -128-127 有符號(hào)數(shù)在TC中是用補(bǔ)碼表示的 127(0x7f)
15、 0111 1111 128(0x80) 1000 0000 復(fù)習(xí):補(bǔ)碼的規(guī)定: 正數(shù):其原碼、反碼、補(bǔ)碼相同 負(fù)數(shù):最高位為1,其余各位為原碼的反碼(原碼的相應(yīng)位取反),然后對(duì)整個(gè)數(shù)加1。 140(0x8c) 1000 11001111 0011 + 1(取反加1)1111 0100-0x74 -0x74 1000 1011 + 1(取反加1) 1000 1100 0x8c (0x80為負(fù)數(shù)-74 高位為1) 3)字符串常量 用雙引號(hào)括起來(lái)的字符 “a” ,“ABFD” “a” =“a0” <> A說(shuō)明:C規(guī)定,在每一個(gè)字符串的結(jié)尾應(yīng)加一個(gè)“字符串結(jié)束標(biāo)志”(0), 以便系統(tǒng)判斷
16、字符串是否結(jié)束。 4各類(lèi)數(shù)值間的混合運(yùn)算 1)整型、字符型、單精度型、雙精度型數(shù)據(jù)可以混合運(yùn)算 2)字符型、整型可以通用 規(guī)則: 高 double float long unsigned 低 int char,short 例如 10+a+1.5-8765.1234*b -858873.593200 (TC默認(rèn)6位小數(shù)) 10+97+1.5-8765.1234*98 二運(yùn)算符和表達(dá)式 C表達(dá)式:由變量、常量、函數(shù)等運(yùn)算對(duì)象和運(yùn)算符組成的式子 C運(yùn)算符作用: 1)能把一些基本運(yùn)算模塊用單一的運(yùn)算符處理 2)使用豐富的運(yùn)算符,構(gòu)成多種表達(dá)式 C運(yùn)算符有優(yōu)先級(jí),優(yōu)先級(jí)高的先執(zhí)行,同級(jí)的由結(jié)合規(guī)則決定其
17、處理規(guī)則 C運(yùn)算符有兩種結(jié)合規(guī)則: 1)從左到右的結(jié)合運(yùn)算順序;即:a=5+x10;運(yùn)算對(duì)象與左邊運(yùn)算符結(jié)合 2)從右到左的結(jié)合運(yùn)算順序;即:x=y=7;運(yùn)算對(duì)象與右邊運(yùn)算符結(jié)合 C運(yùn)算符分類(lèi) 書(shū)P551基本運(yùn)算符(算術(shù)運(yùn)算符) C語(yǔ)言有7個(gè)基本運(yùn)算符1)單目運(yùn)算符:(表示符號(hào)) 正號(hào)“+” 負(fù)號(hào)“-”2)雙目運(yùn)算符:+、- 、*、/、%(模運(yùn)算,求余運(yùn)算,兩側(cè)為整數(shù)) 說(shuō)明: a)運(yùn)算順序的結(jié)合方向從左到右 b)求余(取模)運(yùn)算符是對(duì)兩個(gè)整數(shù)相除的余數(shù),計(jì)算結(jié)果的符號(hào)與第一個(gè)數(shù)的符號(hào)相同。即:-5%3 值為-2、 -5%-3 值為-2、 5%-3 值為2 2自增、自減運(yùn)算符(優(yōu)先級(jí)高于算術(shù),
18、右結(jié)合) 作用:使變量的值增1或減1 +i(-i)在使用i之前,先使i的值加1(減1),然后再使用i。 i+(i-)先使用i的值,然后再使i加1(減1)。例:i =4; j=+i; i 值為5,值為5; j=i+; i 值為5,j值為4 說(shuō)明:1)自增、自減運(yùn)算符+(-),只能用于變量,不能用于常量或表達(dá)式 即:5+ 、 (a+b)+ 不合法 2)運(yùn)算順序的結(jié)合方向從右到左例 例: main() int i=3 z,x,y; z=(i+)+(i+)+(i+)x=y=3; /結(jié)果:z值為9 i值為6 z=x+y; /變量x右結(jié)合運(yùn)算符+ (不是3+4+5=12) printf("z=%
19、d,x=%d,y=%d",z,x,y); 輸出結(jié)果:z=6 x=4 y=3如果:z= -x+y; 輸出結(jié)果:z=0 x=4 y=3 x先為-4,然后+y,最后x+ 3賦值運(yùn)算符和賦值表達(dá)式(優(yōu)先級(jí)低于算術(shù),右結(jié)合) (1)“=” 賦值運(yùn)算符 作用:將一個(gè)數(shù)據(jù)賦給一個(gè)變量 即:x=21 注意: 如果賦值運(yùn)算符兩側(cè)的類(lèi)型不一致,在賦值時(shí),要進(jìn)行類(lèi)型轉(zhuǎn)換。P61例3.9 即:float f ; f=23 f值為23.0000 符號(hào)位擴(kuò)展 (2)復(fù)合的賦值運(yùn)算符 “+=、-=、*=、/=、%=” 在賦值符“=”之前加上其它運(yùn)算符 稱復(fù)合運(yùn)算符(也稱為自反運(yùn)算符) 例:a+=3 等價(jià)于 a=a
20、+3 x*=y+8 等價(jià)于 x=x*(y+8) y/=4 等價(jià)于 y=y/4 m%=3 等價(jià)于 m=m%3說(shuō)明: C語(yǔ)言采用這種復(fù)合運(yùn)算符: 為了簡(jiǎn)化程序,使程序精練;提高編譯效率。 (3)賦值表達(dá)式格式:變量=表達(dá)式表達(dá)式: 可以是 1)常量、變量、算術(shù)表達(dá)式; 2)賦值表達(dá)式 即:a=(b=5) 或 a=b=5 (運(yùn)算順序的結(jié)合方向從右到左)例: a=b=c=6 ; a=5+(c=6) (結(jié)果a=11 c=6) 如果:a=3; 求:a+=a-=a*a; 有:1 a*a; 9 2)a= a-(a*a); -6 3) a+=-6 -6+-6 a為:-12 結(jié)果值為:-12 4逗號(hào)運(yùn)算符和逗號(hào)表
21、達(dá)式(優(yōu)先級(jí)最低,左結(jié)合) 用“,”將兩個(gè)表達(dá)式連接起來(lái)。 格式:表達(dá)式1,表達(dá)式2 即: 3+5,6*9; 例: 3+5,6*9; 值為54 (先求解表達(dá)式1,再求解表達(dá)式2,最后逗號(hào)表達(dá)式的值為表達(dá)式2的值) a=2*5,a*3; a值為10 結(jié)果值為:30 (先求:a=2*5,后求:a*3) x=(a=2*5,a*3),a+4 a值為10 x值為30 結(jié)果值為:14說(shuō)明: 使用逗號(hào)表達(dá)式的目的,只是為了得到各個(gè)表達(dá)式的值(常用于循環(huán)語(yǔ)句) 解表達(dá)式1的結(jié)果可能影響解表達(dá)式2的值 5強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算符(優(yōu)先級(jí)高于算術(shù),右結(jié)合) 在要轉(zhuǎn)換的數(shù)據(jù)前,用小括號(hào)括上要轉(zhuǎn)換的數(shù)據(jù)類(lèi)型 即: (int
22、)x; (int)(a+b) (int)x+y 格式:(類(lèi)型名)表達(dá)式 C一般會(huì)自動(dòng)進(jìn)行數(shù)據(jù)類(lèi)型轉(zhuǎn)換P56例3.8,用于不能自動(dòng)轉(zhuǎn)換的地方x%3(float f) 6關(guān)系運(yùn)算符和關(guān)系表達(dá)式(書(shū)P87)(優(yōu)先級(jí)低于算術(shù),左結(jié)合,高于賦值) (1)6種關(guān)系運(yùn)算符 < <= > >= (優(yōu)先級(jí)高) = = != (優(yōu)先級(jí)低) (2)關(guān)系表達(dá)式 表達(dá)式 關(guān)系運(yùn)算符 表達(dá)式 即:a>b a+b>=b+c (a=4)<(b=8) x= = y 說(shuō)明: 關(guān)系表達(dá)式值:是一個(gè)邏輯值,即:“真”或“假” C語(yǔ)言:1 代表“真” 0 代表“假” 7邏輯運(yùn)算符和邏輯表達(dá)式(
23、書(shū)P88)(優(yōu)先級(jí)低于關(guān)系,左結(jié)合) (1)3種邏輯運(yùn)算符 p89 表5.1 && (與) | | (或) ! (非) (2)邏輯表達(dá)式 表達(dá)式 邏輯運(yùn)算符 表達(dá)式 p89 即: (a>b) | | (a+b>=b+c) (a=4)&&(b=8) 1 | | (1) x&& y 值為1 1 說(shuō)明: 邏輯表達(dá)式值:是一個(gè)邏輯值,即:“真”或“假” p90 優(yōu)先次序(由高到低): ?。ǚ牵?算術(shù)運(yùn)算符 關(guān)系運(yùn)算符 &&和| | 賦值運(yùn)算符 求值短路:5>3&&2|8<4-!0 1| (結(jié)果1)
24、0&& (結(jié)果0) 如:a&&b&&c a<>0才判斷a&&b 8條件運(yùn)算符(書(shū)P97) 格式:表達(dá)式1 ? 表達(dá)式2:表達(dá)式3 執(zhí)行:先求解表達(dá)式1,為真(非零),求表達(dá)式2 為假(為0),求表達(dá)式3 例: y= ( a>b ) ? a : b; 說(shuō)明:a)條件運(yùn)算符要求有三個(gè)操作對(duì)象(稱三目元運(yùn)算符) b)條件運(yùn)算符優(yōu)先于賦值運(yùn)算符 y= ( a>b ) ? a : b; 先求 ( a>b ) ? a : b 后賦值 c)條件運(yùn)算符的結(jié)合方向?yàn)椤白杂抑磷蟆?( a>b ) ? a : b 可
25、寫(xiě)為: a>b ? a : b a>b ? a : b+5 相當(dāng)于: a>b ? a :(b+5) a>b ? a : c> d ? c : d 相當(dāng)于: a>b ? a : ( c> d ? c : d )* 9位運(yùn)算符 (書(shū)P298)(一般掌握)位運(yùn)算: 是對(duì)字節(jié)或字中的實(shí)際位進(jìn)行檢測(cè)、設(shè)置、屏蔽、移位。位運(yùn)算符:& 位邏輯與 | 位邏輯或 位邏輯異或 位邏輯反 >> 右移 << 左移三、運(yùn)算符小結(jié)1左結(jié)合方向的運(yùn)算符主要有:算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、逗號(hào)運(yùn)算符2右結(jié)合方向的運(yùn)算符主要有:自增、自減運(yùn)算符、
26、賦值運(yùn)算符(復(fù)合的賦值運(yùn)算符)、條件運(yùn)算符例:1) i=3; printf("%d,%d",i,i+); 輸出:4, 3 2) a=1;b=1;c=2; 求:a=b + = c* = 5; 輸出:a為11 b為11 c為10 3) a>b ? a> c?a:c:b>c ? b:c 相當(dāng)于:a>b ? (a> c?a:c):(b>c ? b:c) (求最大值,如a=2, b=8, c=5 結(jié)果為:8)3運(yùn)算符的優(yōu)先次序(書(shū) P375 附錄)()、!+/-/-轉(zhuǎn)移、算術(shù)、關(guān)系(<<=>>=)、關(guān)系(= = !=)、&a
27、mp;&、|、條件(?)、賦值、逗號(hào)例:1) -a+ 相當(dāng)于 -(a+) 2) x=4,y=7 求:y+=+x-3 x的值5 y的值9 3) x=4,y=7 求:y=y+x-3 x的值4 y的值9 4) a=7,x=2.5,y=4.7 求:s=x+a%3*(int)(x+y)%*2/4 s的值2.500000 a%3*(int)(x+y)%*2 = 1(整型) / 4 (整型) = 0.25 =0(整型) 5) a%3 && a%5 | a+>+b 如:a=7, b=5 a的值8 b的值6 結(jié)果值1 1|1 如:a=15, b=15 a的值16 b的值16 結(jié)果值
28、0 1|0 如:a=15, b=14 a的值16 b的值15 結(jié)果值0 0|0 如:a=15, b=13 a的值16 b的值14 結(jié)果值1 0|1 四、該章的主要例題 數(shù): P39 例3.1 P44 例3.2 P44 例3.3 字符: P49 例3.5 P50 例3.6 P51 例3.7五、該章的主要習(xí)題P65 3.5 3.6 3.8 3.9 3.10 3.12六、該章的主要上機(jī)內(nèi)容 P39 例3.1 P44 例3.2 P44 例3.3 P51 例3.7 P65 3.6 3.8 3.10 第四章 簡(jiǎn)單的C程序設(shè)計(jì)(順序程序設(shè)計(jì))知識(shí)點(diǎn):1、賦值語(yǔ)句; 2、字符數(shù)據(jù)的輸入/輸出;3、格式輸入/輸
29、出語(yǔ)句printf和scanf及其格式控制符;%c、%f、%d(輸出寬度、對(duì)齊方式、其它格式控制符只作了解)4、程序的結(jié)構(gòu)框架。重點(diǎn):1賦值語(yǔ)句;2基本輸入/輸出語(yǔ)句printf和scanf及其格式控制符%c、%f、%d等的意義。難點(diǎn): 無(wú)一、C程序結(jié)構(gòu) C程序 源程序文件1 源程序文件2 源程序文件n 預(yù)編譯命令 函數(shù)1 函數(shù)n 說(shuō)明部分 執(zhí)行部分 (語(yǔ)句)語(yǔ)句的分類(lèi)P67 P681、控制語(yǔ)句條件:if else循環(huán):for()循環(huán):while()循環(huán):do while()循環(huán)結(jié)束:continue終止循環(huán)或switch:break多分支:switch轉(zhuǎn)向:goto函數(shù)返回:return2、
30、函數(shù)調(diào)用語(yǔ)句 printf(“a=%d”,a);3、表達(dá)式語(yǔ)句 i=i+1 表達(dá)式 i=I+1; 表達(dá)式語(yǔ)句 函數(shù)調(diào)用也可以認(rèn)為是表達(dá)式語(yǔ)句4、空語(yǔ)句:一個(gè)“;”5、復(fù)合語(yǔ)句(用:分程序) x=3; x=x+1; print(“x=%x”,x) 二賦值語(yǔ)句 變量名=表達(dá)式 注:是組成順序結(jié)構(gòu)的主要語(yǔ)句。 a=b; if ( max<= x ) max =x ;三基本輸入/輸出語(yǔ)句 C語(yǔ)言本身不提供輸入輸出語(yǔ)句,輸入輸出操作是由函數(shù)來(lái)實(shí)現(xiàn)。 即:printf putchar scanf getchar 注:(1)這些函數(shù)構(gòu)成一個(gè)標(biāo)準(zhǔn)的I/O函數(shù)庫(kù)(放在“stdio.h”中) (2)如果要使
31、用C語(yǔ)言庫(kù)函數(shù),要用預(yù)編譯命令“#include”將有關(guān)“頭文件”包括到用戶源文件中。 #include <stdio.h> #include “stdio.h” 當(dāng)前目錄 當(dāng)前定義的目錄中尋找 1printf函數(shù) 格式輸出函數(shù) 格式:printf(格式控制,輸出表列) 格式控制: 用雙引號(hào)括起來(lái)的字符串,也稱為“轉(zhuǎn)換控制字符串” printf的格式字符 書(shū)P77 表41 輸出表列: 需要輸出的數(shù)據(jù)、表達(dá)式 即:printf( “x=%5.1f, y=%d, z=%c” , x, y, z ) d,i 帶符號(hào)十進(jìn)制形式 u 無(wú)符號(hào)十進(jìn)制形式 例3-3 c 字符形式 s 字符串形式
32、f 實(shí)數(shù)(小數(shù))形式 默認(rèn)6位小數(shù)說(shuō)明:1)printf( “ y=%-4d” , y ) 輸出數(shù)據(jù)左對(duì)齊(默認(rèn)為右對(duì)齊) 2)數(shù)據(jù)輸出長(zhǎng)度的修正; l 輸出長(zhǎng)整型或雙精度數(shù)據(jù) 即:printf( “%ld, %lf ” , i, y ) h 輸出短型數(shù)據(jù) 即:printf( “%hu ” , a ) -m.n m最小寬度 n小數(shù)(實(shí)數(shù)) -左對(duì)齊2putchar函數(shù) 字符輸出函數(shù)向終端輸出一個(gè)字符格式:putchar(變量) putchar(x) putchar(“n” ) 輸出一個(gè)換行符 3scanf函數(shù) 格式輸入函數(shù) 格式:scanf(格式控制,地址表列) 格式控制: 用雙引號(hào)括起來(lái)的字
33、符串,也稱為“轉(zhuǎn)換控制字符串” scanf的格式字符 書(shū)P80 表43 地址表列: 由若干個(gè)地址組成的表列,有:變量地址 &x 字符串的首地址 & 地址運(yùn)算符 功能:求變量的地址(只能用于變量) &x 表示x變量值的內(nèi)存單元的地址 即:scanf( “%d, %4d”, &a, &b )說(shuō)明:1)不帶分隔字符的方式,系統(tǒng)將自動(dòng)按格式說(shuō)明截取數(shù)據(jù) 例: scanf ( “ %4d%*3d%f ”, &I , &p ); 輸入:12345678.93 時(shí) 得 I=1234 , p=8.93 “*”作用是“虛讀”,跳過(guò)相應(yīng)的數(shù)據(jù) 2)帶分隔字符
34、的方式(分隔字符:空格、tab、回車(chē)、逗號(hào)) 即:scanf( “%d, %d”, &a, &b ) 4getchar函數(shù) 字符輸入函數(shù) 從終端輸入一個(gè)字符 格式:getchar ( ) 即:c=getchar ( ) 函數(shù)值是從輸入設(shè)備得到的字符四、該章的主要例題1已知矩形的兩邊長(zhǎng),求矩形的面積、周長(zhǎng)2大小寫(xiě)字母互相轉(zhuǎn)化3教材P83的例子五、該章的主要習(xí)題 P84 4.54.9第五章 選擇結(jié)構(gòu)程序設(shè)計(jì)知識(shí)點(diǎn):1、關(guān)系、邏輯運(yùn)算符、邏輯真/假;2、關(guān)系表達(dá)式、邏輯表達(dá)式;3、分支的概念及其算法描述;4、三種IF分支語(yǔ)句;5、條件運(yùn)算符;6、SWITCH語(yǔ)句。(了解)重點(diǎn):1、關(guān)
35、系、邏輯運(yùn)算符、邏輯真/假;2、關(guān)系表達(dá)式、邏輯表達(dá)式;3、三種IF分支語(yǔ)句。難點(diǎn):1、邏輯真/假;2、關(guān)系、邏輯運(yùn)算優(yōu)先級(jí)。一、關(guān)系表達(dá)式及邏輯表達(dá)式在分支選擇結(jié)構(gòu)的作用 在程序設(shè)計(jì)中,表示一些復(fù)雜的條件1、關(guān)系運(yùn)算符及關(guān)系表達(dá)式(第三章)2、邏輯運(yùn)算符及邏輯表達(dá)式(第三章)3、條件運(yùn)算符(第三章)二分支語(yǔ)句(書(shū)P91) 從一個(gè)條件表達(dá)式中,選擇語(yǔ)句的執(zhí)行 (用 if 語(yǔ)句或switch 語(yǔ)句來(lái)實(shí)現(xiàn)) f . t . f 表達(dá)式 表達(dá)式 t 語(yǔ) 句 語(yǔ) 句1 語(yǔ) 句2 1If 語(yǔ)句 (1)C語(yǔ)言提供三種形式的if語(yǔ)句 1)if (表達(dá)式) 語(yǔ)句 例: if (x>y ) printf
36、( “%d” , x ); 注意“;”位置 2) if (表達(dá)式) 語(yǔ)句1 else 語(yǔ)句2 例: if (x>y ) printf ( “%d” , x ); else printf ( “%d” , y ); 注意分號(hào)“;” 3) if (表達(dá)式1) 語(yǔ)句1 else if (表達(dá)式2) 語(yǔ)句2 else if (表達(dá)式3) 語(yǔ)句3 else if (表達(dá)式n) 語(yǔ)句n else 語(yǔ)句n+1 例:p92圖5.6 (2)if ()和else后的執(zhí)行語(yǔ)句可以使用復(fù)合語(yǔ)句 例5.1、5.2 p93 if結(jié)構(gòu) 將輸入的三個(gè)數(shù)從大到小排列輸出 例5.3 p95 if 嵌套結(jié)構(gòu) 計(jì)算函數(shù)值 (3
37、)用條件運(yùn)算符代替if語(yǔ)句 例: if ( a>b ) y=a; 條件運(yùn)算符 else 可以用: y= ( a>b ) ? a : b; y=b; 例5.4 p98 條件運(yùn)算符代替if 結(jié)構(gòu) 將輸入字符中的大寫(xiě)轉(zhuǎn)換成小寫(xiě)輸出 2switch語(yǔ)句(了解) switch語(yǔ)句是多分支選擇語(yǔ)句 表達(dá)式 語(yǔ)句1 語(yǔ)句2 語(yǔ)句3 語(yǔ)句 4 格式: switch (表達(dá)式) 表達(dá)式=常量表達(dá)式n 執(zhí)行語(yǔ)句n case 常量表達(dá)式1 :語(yǔ)句1; break; case 常量表達(dá)式2 :語(yǔ)句2; break; case 常量表達(dá)式3 :語(yǔ)句3; break; case 常量表達(dá)式n :語(yǔ)句n; br
38、eak; default :語(yǔ)句n+1; 例:四級(jí)(ABCD)轉(zhuǎn)化成百分制 #include <stdio.h> main() char grade; scanf("%c",&grade); switch(grade) case 'A':printf("85100n");break; case 'B':printf("7584n");break; case 'C':printf("6074n");break; case 'D':printf("<60n");bre
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 收納師職業(yè)道路的試題與答案
- 2024年調(diào)酒師考試實(shí)操要求試題及答案
- 編程教育設(shè)備回收行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 高純度氣體分離膜行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 用戶生成內(nèi)容(UGC)競(jìng)賽平臺(tái)企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 水球AI應(yīng)用行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 2024年統(tǒng)計(jì)師考試前沿動(dòng)態(tài)的試題及答案
- 高性能復(fù)合材料界面改性行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 收納師考試考前準(zhǔn)備建議試題及答案
- 物聯(lián)網(wǎng)工程培訓(xùn)企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 2025年漂浮式風(fēng)電市場(chǎng)現(xiàn)狀調(diào)研及前景趨勢(shì)預(yù)測(cè)報(bào)告
- 2024年裝卸作業(yè)規(guī)范試題及答案
- 建設(shè)工程臨時(shí)用電管理制度
- 如何撰寫(xiě)一份出色的學(xué)生會(huì)紀(jì)檢部申請(qǐng)書(shū)
- 人教版三年級(jí)美術(shù)教育教學(xué)計(jì)劃
- 《休閑農(nóng)業(yè)》課件 項(xiàng)目四 休閑農(nóng)業(yè)項(xiàng)目策劃
- 2024年高中化學(xué) 專(zhuān)題2 化學(xué)反應(yīng)速率與化學(xué)平衡 第一單元 化學(xué)反應(yīng)速率 第2課時(shí) 影響化學(xué)反應(yīng)速率的因素教學(xué)實(shí)錄 蘇教版選修4
- 山西省省直部分事業(yè)單位2025年公開(kāi)招聘工作人員(十四)歷年高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- (一模)哈三中2025屆高三第一次模擬考試 語(yǔ)文試題(含答案)
- 數(shù)學(xué)-浙江天域全國(guó)名校協(xié)作體2025屆高三下學(xué)期3月聯(lián)考試題+答案-2025-03-05-06-11-30
- 事故隱患內(nèi)部報(bào)告獎(jiǎng)勵(lì)制度
評(píng)論
0/150
提交評(píng)論