




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、第一章C語言及程序設計概述本章要求:了解C語言的特點、C語言與其它高級語言相比有什么異同;了解C程序在PC機上的建立、編譯和運行過程;了解C語言程序設計思想的基本篇; 重點:C語言的主要特點;c語言在pm上的運行過程及上機操作過程;常用算法的應用難點:無、C語百概述C語言是目前國際上在各種計算機運行較為廣泛流行的一種高級語C語言:適合于作為系統(tǒng)描述語言一一可用來寫系統(tǒng)軟件。具有高級語言的特點,又有低級語言(匯編語言)的特點。C 語言:是AT&TR爾實當室的Dennis Ritchie 在1972年發(fā)明的。C 語言:是在B語言的基礎上發(fā)展起來的。(ALGOL 60C語言:最早開始是用于U
2、NIX操作系統(tǒng)。(C語言和UNIX是相輔相成 的)DBASE 、 Microsoft Exel 、 Microsoft Word 、 PC-DOS等,貝U 是用C語言加上若干匯編子程序編寫的。1983 年:一一制定的新標準,稱為(美國國家標準化協(xié)會)ANSI C1987 年: Turbo C1.0 (Borland) 1988 年:TC 1.5(圖形和 文本窗口)1989 年:Turbo C2.0( DOS®作系統(tǒng)、查錯、Tiny模式生成com文件)1991 年: Turbo C+(3.0) 支持 windows 3.X說明:Turbo C語言可以在程序的任何地方嵌入?yún)R編代碼,提高速
3、 度,可以直接使用存儲器和寄存器。二.C語言的特點1 .語言簡潔、緊湊、使用方便、靈活C語言:一一共有32個關鍵字,9種控制語句;程序書寫自由,主要用小寫字母表示;2 .運算符豐富C 語言的運算符包含的范圍很廣泛,共有 34種運算符;即:把括號、賦值、強制類型轉(zhuǎn)換都作為運算符處理3 .有豐富的數(shù)據(jù)類型整型、實型、字符型、數(shù)據(jù)類型、指針類型、結(jié)構(gòu)體類型、共用體(聯(lián) 合)類型等。實現(xiàn)復雜的數(shù)據(jù)結(jié)構(gòu)(鏈表、樹、棧、圖)的運算。4,具有結(jié)構(gòu)化的功能,用函數(shù)作為程序模塊,實現(xiàn)程序的模塊化5.語法限制不太嚴格,程序設計自由度大。(放寬了語法檢查)例:1)對數(shù)組下標越界不作檢查,由程序編寫者自己保證程序的正
4、確;2)整型數(shù)據(jù)、字符型數(shù)據(jù)、邏輯型數(shù)據(jù)可以通用。6 .能直接訪問物理地址,能進行位(bit )操作,能實現(xiàn)匯編語言的大 部分功能,可以直接對硬件進行操作。7 .生成目標代碼質(zhì)量高,程序執(zhí)行效率高。8 .用C語言編寫的程序,移植性較好。說明:C 語言比其它高級語言難掌握,對編程人員要求較高程序員使用C語言編寫程序會感到限制少、靈活性大,功能強,可以編寫出任何類型的程序。三.C程序的構(gòu)成例:主函數(shù)*/*定義變量*/main( )/*int a, b, sum;a=123 ; b=456;sum=a+b ;printf( "n",sum); /* 輸出變量 */說明:1 )程序
5、一般用小寫字母書寫;2 )每個程序必須要有一個 main ()(只能一個),稱主函數(shù);注:C程序是由函數(shù)構(gòu)成的,函數(shù)是 C程序的基本單位 函數(shù):系統(tǒng)提供的庫函數(shù);用戶設計的函數(shù)。3 )程序體必須在 之間;4 )每個語句的結(jié)尾,必須要有 “;”作為終止符。5 )用/* */作注釋四、C程序的上機過程1 .演示書:P5程序2 .上機步驟書:P7注:C語言是一種編譯語言,編譯語言的特點:C編譯程序Link 程序3 . windows下C語言的運行目前DOST運行C語言軟件為:visual C+ 6.0 的特點:是一個把編輯編譯連接運行等全部操作集中在一個界 面上。(2) visual C+ 6.0的
6、操作及運行書:P8五、算法的概念1 .算法的概念 書:P13算法:程序的操作步驟。程序中的數(shù)據(jù)在程序設計中:操作步驟有:程序=數(shù)據(jù)結(jié)構(gòu)+算法 沃思Nikiklaus Wirth|程序=算法跋據(jù)結(jié)構(gòu)+ 程序設計方法+語言工具和環(huán)境2.計算機算法分為兩大類:數(shù)值運算算法 非數(shù)值運算算法(1)數(shù)值運算算法:求數(shù)值解;通過運算得出一個具體值,如求方程的根等注:數(shù)值運算一般有現(xiàn)成的模型,算法較成熟。(2)非數(shù)值運算算法:用于事務管理,如圖書檢索、人事管理等。3、常用簡單算法(1)累乘 即:1 X2X3X4X5X 1001 X2 一 S (結(jié)果)S X3 一 S (結(jié)果)S X4 一 S (結(jié)果)1 1
7、IS X100 一 S (結(jié)果)(2)累力口即:1+2+3+4+5+1001+2-S(結(jié)果)S+3-S(結(jié)果)S+4-S(結(jié)果)1 1 IS+100 一 S (結(jié)果)(3)找最大值 5 , 2, 4, 12, 95 一 max (max放最大值,后面的數(shù)都和它比較)2 > max不成立4 > max不成立12 > max成立:12 一 max9 > max不成立注:該算法可擴展為在一批數(shù)據(jù)中,找某一個數(shù)(4)其它算法P15例2.2 例2.3 例2.4 例2.5 課余自學(必須)4、算法的表小常用的有:自然語言傳統(tǒng)流程圖結(jié)構(gòu)化流程圖偽代碼PAD圖(1)傳統(tǒng)流程圖CZ) 口
8、 <0> 二 一 Q起止框 輸入輸出框 判斷框 處理框 流程線 連接點表示方法:P19例 注:傳統(tǒng)流程圖對流程線的使用沒有嚴格限制, 難以實現(xiàn)結(jié)構(gòu)化程序設計為了限制流程線的濫用,提出三種基本結(jié)構(gòu):順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)“直到型”結(jié)構(gòu)(2) N-S流程圖特點:去掉了帶箭頭的流程線,全部算法寫在一個矩形框內(nèi)。稱N-S結(jié)構(gòu)化流程圖順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)作業(yè):p37 2.4上機:熟悉 visual C+ 6.0的操作及運行第三章數(shù)據(jù)類型、運算符與表達式本章要求:本章是C語言的基本概念開篇,所介紹的概念是學習 C語言的基礎;要求熟練掌握數(shù)據(jù)類型、運算符與表達式。重點:C語言數(shù)據(jù)類
9、型定義的方法和分類。C語言運算符、表達式的使用以及它們的主要特點。難點:自增、自減運算符、賦值運算符、逗號運算符及它們的混合使用一.數(shù)據(jù)類型概念:算法處理的對象一一是數(shù)據(jù),而數(shù)據(jù)是以某種特定的形式出現(xiàn)。在C語言中,數(shù)據(jù)有:常量、變量;一般它們都有一定的數(shù)據(jù)類型。(C語言的數(shù)據(jù)結(jié)構(gòu)是以數(shù)據(jù)類型形式出現(xiàn)的)1 .數(shù)據(jù)類型分類:整型intf基本類型 . 字符型單精度型float實型(浮點型)枚舉類型雙精度型double數(shù)據(jù)類型 yr數(shù)組類型構(gòu)造類型,結(jié)構(gòu)體類型struct共用體(聯(lián)合)類型union指針類型 *空類型 void說明:在程序中對用到的所有數(shù)據(jù)都必須指定其數(shù)據(jù)類型。2 .C語言中的常量和
10、變量常量:一一在程序運行過程中,具值不能被改變的量。變量:一一在程序運行過程中,其值可以改變的量。說明:1)常量和變量,都要有一個名字表示它;習慣上,符號常量(別名)名用大寫,變量用小寫。符號常量的定義為:#define P 30其它常量:直接用數(shù)據(jù)表示例:23 45.5'e' 3e+22 )在C語言中,對變量要先定義,后使用。3 )如果一個變量被指定為一確定類型后,在 C語言編譯時,就變量名 變量值-存儲單元能為其分配相應的存儲單元。a存儲地址)2000地址的概念3 .常用的基本數(shù)據(jù)類型(1)整型1 )整型常量:十進制整數(shù) 123 ,-11,0 非0開頭八進制整型 0123
11、, -0110開頭十六進制整型0x110x20 0x0D 0XFF 0x4e0x/0X開頭說明:在一個整常量后面加一個字母:0xae4l2 )整型變量:l或L,是長整型常量。22L 0733L定義基本型int x短整型 short int x長整型 long-2,147,483,648 2,147,483,647無符號型unsigned int x unsigned short xunsignedlong存儲字節(jié)(2字節(jié))(2字節(jié))int x(2字節(jié))(2字節(jié))(4字節(jié))數(shù)的范圍-32768 32767-32768 32767(4字節(jié))0 655350 65535 4,294,967,295存
12、儲結(jié)構(gòu)見P44圖3.5例 3.2、3.3(2)實型(浮點數(shù))1)實型常量:十進制整數(shù) 1.23 .0123指數(shù)形式2)實型變量:表 3.2 _單精度3.4x10-383.4x 1038TC默認 雙精度1.23e3, 1.00e-3數(shù)的表示范圍P46floatx(4 字節(jié))doublex( 8 字節(jié))注:數(shù)據(jù)在內(nèi)存中是以:二進制形式存放如:9 為 00001001例:x=13; x=015; x=0xD注:數(shù)據(jù)超過數(shù)據(jù)范圍,會發(fā)生數(shù)據(jù)溢出1.7x10 -3081.7x 10308說明:實型常量 不分float和double ,只有十進制表達方式有的C編譯系統(tǒng)64位存儲方式,如尾加f或F可表示32
13、位:324.567f例:x=1.23; x=123e3P47例 3.4(存儲精度)(3)字符型1 )字符常量:書P48表水平制表a) 用單引號括起來的一個字符a' 'A'b) 轉(zhuǎn)義字符(由“專用字母”)3.3 例 3.50字符串結(jié)束符 n 換行 tddd八進制數(shù)xdd十六進制數(shù)char c2 )字符變量:(1字節(jié))實際是把該常量的ASCII (字符變量)c= 'B' +2 為 68書P50有符號數(shù)在TC中是說明:一個字符變量,只能放一個字符常量 值,送入字符變量中。即:'B' (66) c書 P374ASCII 表 p50 例 3.6-7
14、c='B' c的內(nèi)容為66故:字符數(shù)據(jù)可以進行算術(shù)運算;即: 字符數(shù)據(jù)在內(nèi)存中的存儲方式unsigned char 0-255 char -128-127用補碼表示的127(0x7f) 0111 1111128(0x80) 1000 0000復習:補碼的規(guī)定:正數(shù):其原碼、反碼、補碼相同負數(shù):最高位為1,其余各位為原碼的反碼(原碼的相應位取反),然 后對整個數(shù)加1。140(0x8c) 1000 1100 1111 0011 + 1(取反力口 1) 一 1111 0100f-0x74-0x74 1000 1011 + 1( 取反加 1) 一 1000 1100 0x8c(0x80
15、 為負數(shù)-74高位為1)3 )字符串常量用雙引號括起來的字符“a","ABFD "a” =" 0" <> 'A'說明:C規(guī)定,在每一個字符串的結(jié)尾應加一個“字符串結(jié)束標志” (0),以便系統(tǒng)判斷字符串是否結(jié)束。4 .各類數(shù)值間的混合運算1 )整型、字符型、單精度型、雙精度型數(shù)據(jù)一一可以混合運算2 )字符型、整型一一可以通用規(guī)則: 高 double floatlongunsigned低;int char , short例如 10+' a' +1.5 -8765.1234b'-858873.593
16、200 (TC默認6位小數(shù))10+97+1.5-8765.1234*98二.運算符和表達式C表達式:由變量、常量、函數(shù)等運算對象和運算符組成的式子C運算符作用:1 )能把一些基本運算模塊用單一的運算符處理2 )使用豐富的運算符,構(gòu)成多種表達式C 運算符有優(yōu)先級,優(yōu)先級高的先執(zhí)行,同級的由結(jié)合規(guī)則決定其處理規(guī)則C運算符有兩種結(jié)合規(guī)則:1 )從左到右的結(jié)合運算順序;即:a=5+x10;運算對象與左邊運算符結(jié)合2 )從右到左的結(jié)合運算順序;即:x=y=7;運算對象與右邊運算符結(jié)合C運算符分類書P551 .基本運算符(算術(shù)運算符)C語言有7個基本運算符1)單目運算符:(表示符號) 正號“+”負號“-”
17、2)雙目運算符:+、-、*、/、(模運算,求余運算,兩側(cè)為整數(shù)) 說明:a )運算順序的結(jié)合方向從左到右b )求余(取模)運算符是對兩個整數(shù)相除的余數(shù),計算結(jié)果的 符 號與第一個數(shù)的符號 相同。即:-5%3值為-2、-5%-3 值為-2、5%-3 值為22 .自增、自減運算符(優(yōu)先級高于算術(shù),右結(jié)合)作用:一一使變量的值增1或減1+i(-i )在使用i之前,先使i的值加1 (減1),然后再使用i oi+(i-)先使用i的值,然后再使i加1 (減1)。例:i =4;j=+i; i值為5,值為5;j=i+; i值為5, j值為4說明:1)自增、自減運算符+(-),只能用于變量,不能用于常量或表 達
18、式即:5+ 、(a+b) +不合法2)運算順序的結(jié)合方向從 右到左例:(不是 3+4+5=12例main()int i=3 z,x,y;z=(i+)+(i+)+(i+)x=y=3;/結(jié)果:z值為9 i值為6z=x+y;/變量x右結(jié)合運算符+printf("z=%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ōu)先級低于算術(shù),右結(jié)合)(1) “二” 賦值運算符作用:將一個數(shù)據(jù)賦給一個變量即:x=21注意:如果賦值運算符兩側(cè)的類型不一
19、致,在賦值時,要進行類型轉(zhuǎn)換。P61 例 3.9即:float f ; f=23 f值為23.0000符號位擴展(2)復合的賦值運算符“+=、_=、*=、/=、在賦值符“二”之前加上其它運算符稱復合運算符(也稱為自反運算符)例:a+=3等價于 a=a+3x*=y+8等價于 x=x*(y+8)y/=4等價于 y=y/4m%=3等價于 m=m%3說明:C 語言采用這種復合運算符:為了簡化程序,使程序精練;提高編譯效率。(3)賦值表達式格式:變量=表達式表達式:可以是1 )常量、變量、算術(shù)表達式;2)賦值表達式即:a=(b=5) 或a=b=5 (運算順序的結(jié)合方向從右到 左)例:a=b=c=6 ;
20、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+-6a為:-12結(jié)果值為:-124 .逗號運算符和逗號表達式(優(yōu)先級最低,左結(jié)合) 用“,”將兩個表達式連接起來。格式:表達式1,表達式2即:3+5 , 6*9 ;例:3+5, 6*9; 值為 54(先求解表達式1,再求解表達式2,最后逗號表達式的值為表達式 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é)果值
21、為:14說明:使用逗號表達式的目的,只是為了得到各個表達式的值(常用于循 環(huán)語句)解表達式1的結(jié)果可能影響解表達式2的值5 .強制類型轉(zhuǎn)換運算符(優(yōu)先級高于算術(shù),右結(jié)合) 在要轉(zhuǎn)換的數(shù)據(jù)前,用小括號括上要轉(zhuǎn)換的數(shù)據(jù)類型 即: (int ) x;(int ) (a+b)(int ) x+y格式:(類型名)表達式C 一般會自動進行數(shù)據(jù)類型轉(zhuǎn)換 P56例3.8,用于不能自動轉(zhuǎn)換的地 方 x%3(float f)6 .關系運算符和關系表達式(書P87)(優(yōu)先級低于算術(shù),左結(jié)合,高于賦值)(1) 6種關系運算符< <= > >=(優(yōu)先級高)=!=(優(yōu)先級低)(2)關系表達式表達式
22、關系運算符表達式即:a>b a+b>=b+c (a=4)<(b=8),x,= = ,y,說明:關系表達式值:是一個邏輯值,即:“真”或“假”C 語言:1 代表“真”0 代表“假”7 .邏輯運算符和邏輯表達式(書 P88)(優(yōu)先級低于關系,左結(jié)合)(1) 3種邏輯運算符 p89表5.1&&(與)| |(或)?。ǚ牵?)邏輯表達式表達式邏輯運算符表達式 p89即:(a>b) | | (a+b>=b+c)(a=4)&&(b=8)1| | 00 (1)'x' && 7 值為 11說明:邏輯表達式值:是一個邏
23、輯值,即:“真”或"假”p90優(yōu)先次序(由高到低):!(非)算術(shù)運算符 關系運算符 &&和| |賦值運算符求值短路:5>3&&2|8<4-!01|oo(結(jié)果 1)0&& oo (結(jié)果 0) 如:a&&b&&c a<>0 才判斷 a&&b8 .條件運算符(書P97)格式:表達式1 ? 表達式2:表達式3執(zhí)行:先求解表達式1,為真(非零),求表達式2為假(為0),求表達式3例:y= ( a>b ) ? a : b;說明:a)條件運算符要求有三個操作對象(稱三目元運
24、算符)b )條件運算符優(yōu)先于賦值運算符y= ( a>b ) ? a : b;先求(a>b ) ? a : b后賦值c )條件運算符的結(jié)合方向為“自右至左”(a>b ) ? a : b可寫為:a>b ? a : ba>b ? a : b+5相當于:a>b ? a : (b+5)a>b ? a : c> d ? c : d相當于:a>b ? a : ( c>d ? c : d )* 9 .位運算符 (書P298)(一般掌握)位運算:一一 是對字節(jié)或字中的實際位進行檢測、設置、屏蔽、移位。位運算符:&-一位邏輯與 |一一位邏輯或 A
25、 位一位邏輯異或位邏輯反 >> 右移 <<左移三、運算符小結(jié)1 .左結(jié)合方向的運算符主要有:算術(shù)運算符、關系運算符、邏輯運算符、逗號運算符2 .右結(jié)合方向的運算符主要有:自增、自減運算符、賦值運算符(復合的賦值運算符)、條件運算符例:1) i=3 ; printf("%d , %d”, i, i+); 輸出:4, 32) a=1; b=1; c=2; 求: a=b + = c* = 5; 輸出: a 為 11 b 為11 c 為103) a>b ? a> c?a : c : b>c ? b : c 相當于: a>b ? (a> c
26、?a : c) : (b>c ? b : c)( 求最大值,如 a=2, b=8, c=5 結(jié)果為: 8)3.運算符的優(yōu)先次序(書 P375 附錄出)() 、 ! +/-/- 轉(zhuǎn)移、算術(shù)、關系 (<<=>>=) 、關系 (= = !=) 、 &&、 | 、條件(?) 、賦值、逗號例: 1) -a+ 相當于 -(a+)2) x=4,y=7求:y+=+x-3x的值5y的值93) x=4,y=7求:y=y+x-3x的值4y的值94) a=7,x=2.5,y=4.7 求: s=x+a%3*(int)(x+y)%*2/4 s 的值2.500000a%3*(i
27、nt)(x+y)%*2 = 1( 整型 ) / 4 (整型 ) = 0.25 = 0(整型)5) a%3 && a%5 | a+>+b如: a=7, b=5 a 的值 8 b 的值 6 結(jié)果值 11|1如:a=15,b=15a的值16b的值16結(jié)果值01|0如:a=15,b=14a的值16b的值15結(jié)果值00|0如:a=15,b=13a的值16b的值14結(jié)果值10|1四、該章的主要例題數(shù): P39 例 3.1 P44 例 3.2 P44 例 3.3字符: P49 例 3.5 P50 例 3.6 P51 例 3.7五、該章的主要習題P65 3.5 3.6 3.83.9 3.
28、103.12六、該章的主要上機內(nèi)容P39 例 3.1P44 例 3.2 P44 例 3.3 P51 例 3.7P653.6 3.83.10第四章 簡單的C程序設計(順序程序設計)知識點:1、賦值語句;2、字符數(shù)據(jù)的輸入/輸出;3、格式輸入/輸出語句printf 和scanf及其格式控制符;%g %f、d(輸 出寬度、對齊方式、其它格式控制符只作了解)4、程序的結(jié)構(gòu)框架。重點:1 .賦值語句;2 .基本輸入/輸出語句printf和scanf及其格式控制符g %f、的的 意義。難點:無一、C程序結(jié)構(gòu)C程序源程序文件1源程序文件2 ,源程序文件n預編譯命令函數(shù)1函數(shù)n說明部分執(zhí)行部分(語句)語句的分
29、類P67 P681、控制語句條件: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、函數(shù)調(diào)用語句printf( "a=%d ,a);函數(shù)調(diào)用也可以認3、表達式語句i=i+1 表達式 i=I+1; 表達式語句為是表達式語句4、空語句:一個“;”5、復合語句(用竹:分程序) x=3; x=x+1;print("x=%x ,x )二.賦值語句變量名=表達式注:是組成順序結(jié)構(gòu)的主要語句。a=b ; if ( max<= x )
30、max =x ;三.基本輸入/輸出語句C語言本身不提供輸入輸出語句,輸入輸出操作是由函數(shù)來實現(xiàn)。即:printf putchar scanf getchar注:(1)這些函數(shù)構(gòu)成一個標準的I/O函數(shù)庫(放在“ stdio.h ”中)(2)如果要使用C語言庫函數(shù),要用預編譯命令“ #include ”將有 關“頭文件”包括到用戶源文件中。#include <stdio.h> #include“stdio.h "當前目錄當前定義的目錄中尋找1 . printf函數(shù)格式輸出函數(shù)格式:printf(格式控制,輸出表列)格式控制:一一用雙引號括起來的字符串,也稱為“轉(zhuǎn)換控制字符串”
31、printf 的格式字符書P77表4. 1輸出表列:一一 需要輸出的數(shù)據(jù)、表達式即:printf( "x=%5.1f, y=%d, z=%c”, x, y, z )d,i帶符號十進制形式u無符號十進制形式例3-3c字符形式s字符串形式f實數(shù)(小數(shù))形式默認6位小數(shù)說明:1) printf(y=%-4d輸出數(shù)據(jù)左對齊(默認為右對齊)2)數(shù)據(jù)輸出長度的修正;l輸出長整型或雙精度數(shù)據(jù)即:printf("ld, %lf ” ,1 , y )h輸出短型數(shù)據(jù) 即:printf( "hu ” , a )-m.n m最小寬度n小數(shù)(實數(shù))-左對齊2 . putchar函數(shù)字符輸出
32、函數(shù)向終端輸出一個字符格式:putchar (變量)putchar(x)putchar(“n" )輸出一個換行符3 . scanf函數(shù)格式輸入函數(shù)格式:scanf (格式控制,地址表列)格式控制:一一用雙引號括起來的字符串,也稱為“轉(zhuǎn)換控制字符串”scanf的格式字符書 P80表4. 3地址表列:一一 由若干個地址組成的表列,有:變量地址&x字符串的首地址&地址運算符功能:求變量的地址(只能用于變量)&X表示x變量值的內(nèi)存單元的地址即:scanf( "d, %4d' , &a, &b )說明:1)不帶分隔字符的方式,系統(tǒng)將自動
33、按格式說明截取數(shù)據(jù)例:scanf (" 4d%*3d%f ” , &I , &p );輸入:12345678.93 時 得 I=1234 , p=8.93“* ” 一一作用是“虛讀”,跳過相應的數(shù)據(jù)2)帶分隔字符的方式(分隔字符:空格、tab、回車、逗號)即:scanf( "d, %d , &a, &b )4 . getchar函數(shù)字符輸入函數(shù)從終端輸入一個字符格式:getchar () 即:c=getchar ()函數(shù)值是從輸入設備得到的字符四、該章的主要例題1已知矩形的兩邊長,求矩形的面積、周長2大小寫字母互相轉(zhuǎn)化3教材P83的例子五、該
34、章的主要習題P84 4.54.9第五章選擇結(jié)構(gòu)程序設計知識點:1、關系、邏輯運算符、邏輯真/假;2、關系表達式、邏輯表達式;3、分支的概念及其算法描述;4、三種IF分支語句;5、條件運算符;6、SWITC陋旬。(了解)重點:1、關系、邏輯運算符、邏輯真/假;2、關系表達式、邏輯表達式;3、三種IF分支語句。難點:1、邏輯真/假;2、關系、邏輯運算優(yōu)先級。一、關系表達式及邏輯表達式在分支選擇結(jié)構(gòu)的作用在程序設計中,表示一些復雜的條件1、關系運算符及關系表達式(第三章)2、邏輯運算符及邏輯表達式(第三章)3、條件運算符(第三章).分支語句(書P91)(用if 語句或switch語句來實現(xiàn))(1)C
35、語言提供三種形式的if語句從一個條件表達式中,選擇語句的執(zhí)行1) if (表達式)語句例:if (x>y ) printf ("d , x ); 注意“;”位置2 ) if (表達式)語句1 else語句2例:if (x>y )printf ("d , x );elseprintf ("d , y );注意分號“;”3) if ( 表達式1)語句1else if (表達式2)語句2else if (表達式3)語句3else if (表達式n) 語句nelse語句 n+1例:p92 圖 5.6(2) if ()和else后的執(zhí)行語句可以使用復合語句什例5
36、.1、5.2 p93 if 結(jié)構(gòu)將輸入的三個數(shù)從大到小排列輸出例5.3 p95 if嵌套結(jié)構(gòu)計算函數(shù)值(3)用條件運算符代替if語句例:if ( a>b )y=a;條件運算符else可以用:y= ( a>b ) ? a : b;y=b ;例5.4 p98條件運算符代替if結(jié)構(gòu)將輸入字符中的大寫轉(zhuǎn)換成小寫輸出2 . switch 語句(了 解)switch語句是多分支選擇語句break;case常量表達式2 :語句2;break;case常量表達式3 :語句3;break;1 1 Icase常量表達式 n : 語句 n;break;default:語句 n+1;例:四級(ABCD轉(zhuǎn)化
37、成百分制#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("<60'n");break;defa
38、ult:printf("errorn");例:百分制成績轉(zhuǎn)化成五級(ABCDE五級記分5-4-1三、程序舉例例5.7 p103運費計算(自學)p101例5.6 求一元二次方程根(自學)p100例5.5判斷某一年是否是閏年(自學)五、該章的主要習題P104 5.35.10該章的主要上機內(nèi)容P91 例 5.2、P100 例 5.5 , P101 例 5.6P104習題5.5、5.6、5.9 其他:上機實驗指導書中內(nèi)容第六章循環(huán)結(jié)構(gòu)程序設計知識點:1、循環(huán)的概念及其算法描述;3、while循環(huán);重點6、for循環(huán);重點難點2、goto 循環(huán);4、dowhile 循環(huán);7、brea
39、k、continue8、各種循環(huán)結(jié)構(gòu)中的執(zhí)行循環(huán)體、判斷循環(huán)條件的順序;9、各種循環(huán)結(jié)構(gòu)在一定條件下的轉(zhuǎn)化。重點難點重點語句;重點、循環(huán)結(jié)構(gòu)的概念循環(huán)語句主要用于:重復執(zhí)行的操作1. C語言在實現(xiàn)循環(huán)過程一一可使用以下語句:a) 用goto語句和if語句構(gòu)成循環(huán)c) 用 dowhile 語句d)2.循環(huán)可分為二種類型結(jié)構(gòu):a) “當型”結(jié)構(gòu) b)b) 用while語句用for語句“直到型”結(jié)構(gòu)二.循環(huán)語句1 .用goto語句和if語句構(gòu)成的循環(huán)(1) goto語句無條件轉(zhuǎn)向語句格式:goto 語句標號語句標號:用標識符表示例:goto next ;如: goto 123法)(2) goto和i
40、f語句構(gòu)成循環(huán)一般較少使用(不符合結(jié)構(gòu)化原則)50例:求 2 nmain()i int i , sum=0 ;i=1 ;loop: if ( i<=50 ) sum=sum+2*i ;i+ ; goto loop ; printf (“dn” , sum );2 . while語句一一實現(xiàn)“當型”循環(huán)結(jié)構(gòu)格式:while ( 表達式)語句 50例:求 2 nmain()i int i , sum=0 ;i=1 ;while (i<=50 )說明: sum=sum+2*i ; i+ ; printf (“dn” , sum );語句可為復合語句(用 構(gòu)成)3 . do-while語句
41、一一實現(xiàn)“直到型”循環(huán)結(jié)構(gòu)格式:do 語句while (表達式);50例:求 2n main() i int i , sum=0 ;i=1 ; do sum=sum+2*i ; i+ ; while (i<=50 );printf (“dn” , sum );do while 和 while 比較 p109 例 6.44 . for語句可以用于循環(huán)次數(shù)已知 和循環(huán)次數(shù)不確定(可以代替while語句)(應用廣泛,而且使用較活)格式:for ( 表達式1 ;表達式2 ;表達式3 ) 語句 過程:表達式1 1賦初值條件增值說明:表達式1表達式2表達式3循環(huán)變量循環(huán)結(jié)束循環(huán)變量即:for (50
42、例:求循環(huán)變量賦初值,循環(huán)結(jié)束條件,循環(huán)變量增值) 語句2nifor ( i=1 ; i<=50 ; i+ ) sum=sum+2*i;for語句的其它表示用while 來表示while (表達式1表達式2 )語句表達式3;a)i=1for ( b);i<=50 ; i+ ) sum=sum+2*i省略表達式2for ( i=1產(chǎn)生死循環(huán);i+ ) sum=sum+2*i表達式可以省略,但分號不能省略 省略表達式1c)省略表達式3for ( i=1; i<=50 ;) sum=sum+2*i;i+;d) i=1 for (省略表達式1 ,省略表達式3i=1;i<=50
43、;)while ( i<=50 ) sum=sum+2*i;相當于 sum=sum+2*i;i+; i+; (3) 表達式 1,表達式 3 可以是: a) 簡單的表達式b) 逗號表達式表達式 2:一般是關系表達式或邏輯表達式即 :for ( sum=0 , i=1 ; i<=50 ; i+,i+)sum=sum+2*i;或: for ( sum=0, i=1 ; i<=50 ; i=i+2 ) sum=sum+2*i(4) 循環(huán)體語句可使用 break 和 continue 語句break : 可以用來從循環(huán)體內(nèi)跳出循環(huán)體(提前結(jié)束循環(huán))continue : 用于跳過循環(huán)體中
44、下面尚未執(zhí)行的語句,接著重新執(zhí)行循環(huán)的判斷.p115 例 6.5 將 100-200 間不能被 3整除的數(shù)輸出三 、程序舉例用多種循環(huán)方法實現(xiàn)1 由泰勒展式計算sin(x) 的近似值2 .p115例 6.6 求兀的近似值 1-1/3+1/5-1/7+3 .p115 例 6.7 求 Fibonacci( 斐波納契 )數(shù)列 40 個數(shù)F 1=1(n=1)F 2=1(n=2)F n=Fn-1+Fn-2 (n>=3)4 .p115 例6.8判斷m是否是素數(shù)5 .p115 例 6.9 求 100-200 間的所有素數(shù)6 . 例 求任意輸入 10 個數(shù)中的最大數(shù)6-max四、該章的主要習題P120
45、6.16.15五、該章的主要上機內(nèi)容P115 例 6.5 、例 6.6 、例 6.7 、例 6.9P120 習題 6.4 、 6.7、 6.9 、 6.11 、 6.14其他:上機實驗指導書中內(nèi)容 作業(yè)解答:5-8 利潤提成:類似所得稅第七章數(shù)組1 、數(shù)組的概念及數(shù)組的定義;2 、在程序設計中的如何使用數(shù)組;3 、字符數(shù)組是C語言存放字符串的主要方法,并注意字符串結(jié)束標 志的規(guī)定。重點:數(shù)組的組成和特點。一維數(shù)組和二維的定義、賦值。字符串與字符數(shù)組的關系以及數(shù)組在程序中的使用。難點:數(shù)組元素存儲格式對程序設計的使用。字符串在數(shù)組中的組成以及字符串操作語句的使用。c基本類型數(shù)組類型C語言:數(shù)據(jù)類
46、型 j構(gòu)造類型結(jié)構(gòu)體類型、L共用體類型指針類型構(gòu)造類型:是由基本類型按一定規(guī)則組成的類型一.數(shù)組的概念數(shù)組:一-i)是一一組I有序數(shù)據(jù)I的集合2 )這個集合用一個|數(shù)組名|來表示3 )數(shù)組的元素序號用一個下標值|來表示如:a0 , a1 , a2 , a3 b11, b12, b21,b22注意:a)數(shù)組名后,用方括號;下標從 0開始。b )下標值一一可以是常量表達式常量表達式:包括常量和符號常量(用#de巾ne定義的),但 不能包含變量。C 語言:不允許數(shù)組進行動態(tài)定義。即:int n ;scarf( "d ,&n);int xn;/*定義數(shù)組*/c )數(shù)組分為:一維、二維
47、等,主要由下標值的多少來確定。二.一維數(shù)組1 .定義格式:類型說明符數(shù)組名常量表達式類型說明符:一一表示數(shù)組的類型int, short , long , unsigned , float ,double , char 等數(shù)組名:一一表示各數(shù)組元素的統(tǒng)一名字,定義方法和變量名相同常量表達式:一一表示數(shù)組的長度即:int a10注意:C語言不提供數(shù)組下標越界的保護,設計時要注意。2 .數(shù)組元素的初始化數(shù)組在定義的時候,同時,可對數(shù)組元素進行初始化格式:static int a10=0,0,0,0,0,0,0,0,0,0靜態(tài)定義a10=0,1,234,5,6,7,8,9說明:1 ) static數(shù)組
48、不賦初值,系統(tǒng)會對所有數(shù)組元素自動賦以0值。即:int a10=0,0,0,0,0,0,0,0,0,0;等價于:static inta10;2 )對全部數(shù)組元素賦初值,可以不指定數(shù)組長度。即: static int a =0,1,2,3,4,5;等價于: static int a6=0,1,2,3,4,5;3 )可以部分賦初值即:int a5=1,3;3 .數(shù)組元素的引用C 語言規(guī)定:只能逐個引用數(shù)組元素,而不能一次引用整個數(shù)組。4 .程序舉例書 P124 例 7.2 例 7.3三.二維數(shù)組和多維數(shù)組1 .定義格式:類型說明符數(shù)組名常量表達式常量表達式類型說明符:一一表示數(shù)組的類型int, s
49、hort , long , unsigned , float ,double , char 等數(shù)組名:一一表示各數(shù)組元素的統(tǒng)一名字常量表達式:一一表示數(shù)組的長度即:int a5 6說明:a )每一維的下標從0開始,整個數(shù)組元素為:5X6=30個 b ) C語言中,二維數(shù)組中元素排列的順序是按彳亍存放。即:先存放第一行的元素,再存放第二行的元素a= 6 7 8存儲單元 對應表:3 a4 a015 a026 a1 7 a118 a12 1 a22 a219 a22c)可以計算數(shù)組元素在數(shù)組中的序號 假設m x n的數(shù)組a,計算aij 序號的公式:如:a010a12的序號是:i x n+jX3+1=
50、1(第二個)1 X3+2=5如3X 3a222X 3+2=8d )多維數(shù)組的定義格式:類型說明符 表達式即:類型說明符數(shù)組名常量表達式常量表達式常量數(shù)組名長度1長度2長度3int a2 342 .二維數(shù)組初始化1)兩種基本方法:(a)分行給二維數(shù)組賦初值static int a23=1,2,3,5,6,7(b)所有數(shù)據(jù)寫在一個化括弧內(nèi)static int a23=1,2,3,5,6,72)可以對部分元素賦初俏static int a23=1,3即: 1 0 03 0 bstatic int a34=1,3,1,0,0,93)定義數(shù)組時,第一維的長度可以不指定,但第二維的長度要指定(編譯系統(tǒng)自動
51、計算)。static int a 3=1,2,3,4,5,6,7,8,9等價于:-static int a33=1,2,3,4,5,6,7,8,9static int a 4=1,3,1,0,0,9等價于:I static int a34=1,3,1,0,0,94 .程序舉例書P128例7.4二維數(shù)組行列轉(zhuǎn)換例7.5 3 X 4矩陣求最大元素及行列號四.字符數(shù)組存放字符數(shù)據(jù)的數(shù)組;每一個元素存放一個字符1 .定義char數(shù)組名常量表達式即:char c10;定義。'd' , ;'d',也'(正確)后'd' ,'e' ;說明
52、:由于字符與整型是互相通用的,可使用 int c10;'b' , 'b' ,'b' ,'c,;'b' ,'c',2 .字符數(shù)組的初始化1 )staticcharc5='a注意:staticcharc5='a'f' ;( 錯誤,多一個元素)staticcharc5='a面元素自動定為空格2 ) static char c = 'a'系統(tǒng)自動根據(jù)初值個數(shù)確定數(shù)組長度3 .字符數(shù)組的引用一個字符數(shù)組元素,代表一個字符。即:x=c2 x 的值為“ c”4 .字
53、符串的使用C 語言中,將字符串作為字符用來處理規(guī)定:一個“字符串結(jié)束標志”,以字符0',在遇到字符'0'時,表示字符串結(jié)束1)使用字符串常量進行數(shù)組初始化static char c = 或 static char c=I am happy “I am happy” ;等價于 static char c ='I' ,' ','a' , 'M ,'h','a' ,'p' ,'p' ,'y' ,'0' ;注:(a)系統(tǒng)對字符串常量自動加一個0'(b)字符數(shù)組并不要求它的最后一個字符為0 '2)數(shù)組長度始終保證大于字符串實際長度static char c10= "ABCDE ; (第 5 個元素 0 ,第 6 個開始為空字符asch為0)static char c10= 'A' ,'B' ,'C' ,'D' ,'E' ;(后面5個元素為空字符ASCH為0)例7-6 P131 :字符數(shù)組引用例子打印圖形 (J5_1.C)#define NL printf("n")main
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45223-2025電力廠站低壓用電系統(tǒng)信息架構(gòu)及接口技術(shù)規(guī)范
- 合肥小型商鋪出租合同樣本
- 公司并購合同管理與風險防范
- 心理康復師實習勞動合同
- 設計師合作開發(fā)合同模板專業(yè)版
- 標準版勞動合同范本合同
- 國際倉儲業(yè)務合作合同范本
- 度中國員工境外工作勞務合同
- 供應鏈合作協(xié)議合同法全文
- 中小學教師職務合同范本
- 《管理統(tǒng)計學》課件
- 教師的挑戰(zhàn):寧靜的課堂革命
- 新能源材料與器件導論緒論
- 市政工程監(jiān)理實施細則(完整版)
- 量具能力準則Cg-Cgk評價報告
- 旅游管理-我國老年旅游市場現(xiàn)狀及開發(fā)策略
- 五年級人教版上冊數(shù)學應用題解決問題專題練習(含答案)100解析試題
- 【幼兒教師與家長溝通現(xiàn)狀、問題及優(yōu)化建議分析7000字(論文)】
- 2023新時代解決臺灣問題的總體方略PPT
- 甘蔗渣制備木聚糖的研究
- 電化學儲能電站運行維護規(guī)程
評論
0/150
提交評論