C程序設(shè)計演示稿前一至八_第1頁
C程序設(shè)計演示稿前一至八_第2頁
C程序設(shè)計演示稿前一至八_第3頁
C程序設(shè)計演示稿前一至八_第4頁
C程序設(shè)計演示稿前一至八_第5頁
已閱讀5頁,還剩79頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、C程序設(shè)計第章第章1第1章C語言概述 “高級語言” 匯編語言:優(yōu)點:可以充分發(fā)揮機器硬件的功能,并提高質(zhì)量。缺點:必須熟悉機器的指令系統(tǒng),而指令系統(tǒng)又是和具體機器的內(nèi)部結(jié)構(gòu)密切相關(guān)的,所以所編寫的程序依賴于計算機硬件,可讀性和可移植性比較差。 一般高級語言:優(yōu)點:可讀性和可移植性比較好。缺點:難以對硬件進行操作,如內(nèi)存地址、位操作等。1.1 介紹 :2C語言:具有一般高級語言的特性,也具有匯編語言的優(yōu)點,所以有人稱為“中級語言”高級語言有的:高級語言沒有的: 算術(shù)運算關(guān)系運算邏輯運算 位運算單目、三目運算復合運算 31、語言簡潔、緊湊,使用方便、靈活。32個關(guān)鍵字、9種控制語句。 2、運算符豐

2、富34種運算符 3、數(shù)據(jù)類型和數(shù)據(jù)結(jié)構(gòu)豐富?;绢愋停ㄕ汀⒆址?、實型)構(gòu)造類型(數(shù)組、結(jié)構(gòu)體、共用體)指針、文件、空類型 數(shù)據(jù)結(jié)構(gòu)(鏈、表、樹、棧等)1.2 C語言的特點44、具有結(jié)構(gòu)化控制語句5、語法不嚴格松散結(jié)構(gòu),即語法檢查不嚴格,編程時必須控制好。6、C語言允許直接訪問物理地址,能進行位操作。7、目標代碼質(zhì)量高,程序執(zhí)行效率高。8、輸入輸出采用函數(shù)而無輸入輸出語句,可移植性好51.3 用C庫函數(shù)組裝程序 用庫函數(shù)必須注意包含相應(yīng)的頭文件 #include #include #include 61.4 程序格式和特點1、main()函數(shù)必須有且唯一 2、函數(shù)是C語言程序的基本單位3、大

3、小寫敏感4、無行概念(1)、語句以分號結(jié)束 (2)、以號開頭的編譯預處理語句無分號(3)、/*/加在C語言任何部分作注釋說明采用小寫,大寫有特殊意義(宏,常量等)71.5 程序執(zhí)行從main函數(shù)開始Turbo C 是一個集成環(huán)境,編輯、編譯、連接、執(zhí)行。1、源程序擴展名.c2、Turbo C 的使用 TC選擇工作目錄建立工作環(huán)境建立工作環(huán)境F9編譯、連接。運行Alt+R.3、建立工作環(huán)境8例題例1例3講解、說明9上機題:1、建立一個自己的工作環(huán)境2、熟悉Turbo C環(huán)境3、輸入并調(diào)試運行例1-例34、自己編寫C程序習題1.5、1.610第2章數(shù)據(jù)描述和基本操作 程序 2.1 C的數(shù)據(jù)類型 :

4、對數(shù)據(jù)的描述 (數(shù)據(jù)結(jié)構(gòu)) 對操作的描述 (算法) 1、不同的數(shù)據(jù)占用的空間不同2、對應(yīng)的運算不同數(shù)據(jù)類型(P38)112.2 基本數(shù)據(jù)類型 :1、整型 shout 2字節(jié)int機器字長(2字節(jié)) -215(215-1)long 4字節(jié)2、無符號類型只對整型;也包含字符型,存放正數(shù)的范圍擴大一倍Unsigned 整型x;122.2 基本數(shù)據(jù)類型 :3、實型 float 單精度 4字節(jié)double雙精度8字節(jié)long double 長雙精度16字節(jié)132.2 基本數(shù)據(jù)類型 :4、字符型存貯形式,按ASCII碼值;占一字節(jié);與整型通用,相當一個字節(jié)整數(shù)。 142.2 基本數(shù)據(jù)類型 :5、類型長度運

5、算符sizeof(類型 )用途:測試動態(tài)分配存貯空間 例如Asizeof(int); 152.3 常量和變量 :1、常量(1)、數(shù)值常量整型常量實型常量十進制 自然表示八進制零打頭十六進制ox打頭指數(shù)形式E(e)前面有數(shù),后面是整數(shù)小數(shù)形式 .必須有“.”16(2)、字符型常量用單引號包圍的單一字符a A字符常量沒有結(jié)束標志(3)、字符串型常量用雙引號包圍的0個或多個字符序列“china” 有結(jié)束標志17(4)、特殊常量(一)符號常量如:宏定義#define PI 3.14(二)轉(zhuǎn)義字符(換碼序列)字母表示動作 見P(48)182、變量(1)、變量的定義int x,y;先定義每個變量被指定為一

6、確定類型便于編譯系統(tǒng)檢查如a%b19(2)、變量標識符C語言規(guī)定標識符只能由字母、數(shù)字和下劃線三種字符組成,且第一個字符必須是字母或下劃線。用來標識變量名、符號常量名、函數(shù)名、數(shù)組名、類型名、文件名的有效字符序列。保留關(guān)鍵字預定義標識符用戶自定義20(3)、變量的初始化定義變量的同時給變量賦值如: int x=3,y=5;212.4 表達式運算 :1、說明例如表達式b=(a=x)*5運算符的功能與運算量的關(guān)系優(yōu)先級結(jié)合方向結(jié)果類型222、算術(shù)運算符雙目運算符5%3=2 -5%3=? 5%-3=?、/、(模運算符或求余運算符)a%b 這里a、b必須是整型數(shù)5/3=1 -5/3=-1(-2)舍入的

7、方向不因定,“向零取整原則”符號同左邊的操作數(shù)233、算術(shù)表達式用算術(shù)運算符和括號將運算對象(也稱操作數(shù))連接起來,符合C語法規(guī)則的式子稱C算術(shù)表達式。如:a*b/c-1.5+a同級時“從左到右”的結(jié)合原則244、復合的賦值運算+=、-=、*=、/=、%=、=、&=、=、|=只要有賦值號優(yōu)先級較低,只比逗號運算符高如:a+=b a=a+b 累加器,注意a一定是變量b可以是表達式或變量,結(jié)合規(guī)律從右到左A+=3 a=a+3X*=y+8 x=x*(y+8)255、自增減運算+、-a+ , +a 自增a=a+1a- , -a 自減a=a-1后置運算、前置運算只能用于變量,不能用于常量或表達式;結(jié)合方

8、向是從右至左266、關(guān)系運算 =!=If(x=y) 真(非0為真)假(0為假)277、邏輯運算(與)(或)!(非)(1)實型數(shù)不比較相等的1.0/3.0*3.0=1.0 x=-y就是小到一定形式就行了 106或10828e1?e2:e3 (e為表達式)8、條件運算(三目)33,68逗號表達式,又稱順序求值運算符9、逗號運算符和逗號表達式292.5 類型轉(zhuǎn)換 :1、隱式轉(zhuǎn)換(1)必然轉(zhuǎn)換(2)由低向高轉(zhuǎn)換,一次到位轉(zhuǎn)換P54(3)賦值轉(zhuǎn)換2、顯示轉(zhuǎn)換強制類型運算(類型)30第3章簡單的C程序設(shè)計 順序結(jié)構(gòu)3.1 C語句 :1、表達式語句2、控制語句3、函數(shù)調(diào)用語句4、空語句5、復合語句313.2

9、 格式化輸入輸出函數(shù) :(一)、格式輸出Printf(“格式控制”,輸出項序列);(二)、格式輸入scanf(“格式控制”,地址序列);323.3 字符輸入輸出函數(shù) :(一)、輸入字符getchar()(二)、輸出一個字符Putchar(c);333.4 順序結(jié)構(gòu)程序設(shè)計舉例34第4章邏輯運算和判斷選取控制4.1 條件分支 :1、if語句的三種形式(1)、if(表達式)語句(2)、if(表達式) 語句1; else 語句2;(3) if(表達式1) 語句1; else if(表達式2)語句2; else if(表達式3)語句3; 35if語句的說明:(1)表達式一般為邏輯表達式或關(guān)系表達式,但

10、可以是任意表達式,是任意的數(shù)值類型(整型、實型、字符型、指針型數(shù)據(jù))(2)else 前面的分號不可缺少,它是if語句內(nèi)嵌語句所要求的,缺少時語法錯誤。(3) if和else后面可以是一個操作語句,也可以是多個操作語句,若為多個語句必須用復合語句。362、if語句的嵌套: if語句中又包含一個或多個if語句。if(表達式1) if(表達式2)語句1; else 語句2;else if(表達式3)語句3; else 語句4;373、條件運算符: 在if語句中執(zhí)行一個賦值語句且給同一個變量。(1)條件運算符 ? :(2)條件運算符優(yōu)先于賦值運算符,低于關(guān)系運算符和算術(shù)運算符。(3)條件運算符的結(jié)合方

11、向“從右至左”(4)條件運算符不能取代一般的if語句(5)表達式1的類型可以與表達式2和表達式3的類型不同。384.2 開關(guān)分支switch語句 :是多分支選擇語句格式:Switch(表達式) case 判斷值1:語句組1;break; case 判斷值2:語句組2;break; default :語句組n;break;39switch語句的說明:(1) switch后面的表達式應(yīng)是整型、字符型或是枚舉。(2)若表達式的值與某個case后面的判斷值相等時就執(zhí)行case后面的語句組,沒有匹配值時執(zhí)行default后面的語句組。(3) case后面的判斷值不能重復。(4)case和 default

12、出現(xiàn)的次序不影響執(zhí)行結(jié)果。(5)執(zhí)行完一個case后面的語句,則轉(zhuǎn)到下一個case繼續(xù)執(zhí)行,所以必須用break語句跳出。40第5章循環(huán)控制5.1 循環(huán)結(jié)構(gòu) :循環(huán)結(jié)構(gòu)是結(jié)構(gòu)化程序設(shè)計的三種基本結(jié)構(gòu)之一(1)當型循環(huán)結(jié)構(gòu),當條件成立時反復執(zhí)行操作,直到條件為假時才停止循環(huán)。(2)直到型循環(huán)結(jié)構(gòu):先執(zhí)行操作,再判斷條件是否為假,若條件為假,再執(zhí)行。如此反復,直到條件為真為止。415.2 C語言中循環(huán)語句 :1.while2.for3.do while當型循環(huán),先判斷后執(zhí)行直到型循環(huán),先執(zhí)行后判斷1.while和do while語句(1)while(條件) 語句; 如: 421.while和do

13、while語句(2)do 語句; while(條件);如: 需要注意: (1)循環(huán)前的初始值 (2)循環(huán)體內(nèi)必須改變循環(huán)條件,使其趨于結(jié)束 (3)循環(huán)體如果包含一個以上語句,應(yīng)以復合語句出現(xiàn) (4)當while后面的表達式第一次值為真時,二者等價,否則二者不同。循環(huán)次數(shù)不確定,只給結(jié)束條件。432.for語句“靈活”循環(huán)次數(shù)確定或不確定(只給結(jié)束條件)for(初值表達式;條件;修正表達式) 語句;如: s=0;for(i=1;i=100;i+) s+=i;44for語句的說明:(1)條件為真,則執(zhí)行for語句中指定的內(nèi)嵌語句(2)初值表達式和修正表達式可以是逗號表達式(3) e1,e2,e3

14、均可缺少,但分號保留(4)可以取代while語句(5)初值表達式可以和循環(huán)變量無關(guān)455.3 輔助控制 :1.break語句 (1)跳出switch結(jié)構(gòu) (2)用于循環(huán)體內(nèi),結(jié)束本層循環(huán),一次退出一層循環(huán)2.continue語句 僅用于循環(huán)體內(nèi),使本次循環(huán)結(jié)束3.goto語句 goto 語句標號; 標號:用標識符表示,規(guī)則同變量 退出多重循環(huán),從內(nèi)到外465.4 循環(huán)的嵌套 :一個循環(huán)體內(nèi)又包含另一個完整的循環(huán)結(jié)構(gòu)三種循環(huán)結(jié)構(gòu)可以互相嵌套。例題分析:47例題分析:例1 輸入字符顯示之。#include Main() char c; while(c=getchar()!=EOF) putchar

15、(c);48例題分析:例2 打印ASCII碼0-255的字符。49第6章數(shù)組6.1 一維數(shù)組的定義和引用 :1 定義 類型說明符 數(shù)組名常量表達式 如 int a10;說明: (1)數(shù)組名 (2)用方括號 (3)數(shù)組長度,元素個數(shù) (4)不能含變量數(shù)組:是有序數(shù)據(jù)的集合,數(shù)組中的元素應(yīng)是同一類型。502 引用 先定義,后使用的原則C規(guī)定:逐個引用數(shù)組元素,不能一次引用整個數(shù)組數(shù)組元素的表示形式:數(shù)組名下標規(guī)定:下標是整型常量或整型表達式 如 a5 或 a2*3等513 初始化 (1)在定義數(shù)組時對數(shù)組元素賦以初值規(guī)定:只有靜態(tài)存貯數(shù)組和外部存貯數(shù)組才能初始化 static -靜態(tài) extern

16、-外部 (2)只給部分元素賦值 (3)使數(shù)組中全部元素為0 (4)在對全部數(shù)組元素初始化時,可以不指定數(shù)組長度。526.2 二維數(shù)組的定義和引用 :1 定義 類型說明符 數(shù)組名常量表達式 常量表達式 如 int a34;是特殊的一維數(shù)組 存貯順序:按行存貯,多維數(shù)組同理532 引用 數(shù)組元素的表示形式: 數(shù)組名下標下標 如 a00 或 a01等3 初始化546.3 字符數(shù)組 :用來存放字符數(shù)據(jù)的數(shù)組是字符數(shù)組,字符數(shù)組中每個元素存放一個字符。1 定義 類型說明符 數(shù)組名常量表達式 如:char a10; int a10;552 初始化static char c5=c,h,i,n,a;注(1)如

17、果字符個數(shù)大于數(shù)組長度則語法錯 (2)如果字符個數(shù)小于數(shù)組長度則將字符賦給數(shù)組前面的元素,其余元素為空格 (3)字符個數(shù)等于數(shù)組長度時可以省略數(shù)組長度3 引用 可以引用字符數(shù)組中的一個元素,得到一個字符。564 字符串和字符串結(jié)束標志字符數(shù)組長度:實際長度0;有效長度字符串結(jié)束標志 0表示“china” 共有5個字符,但占6個字節(jié)可以用字符串常量來初始化字符數(shù)組Static char c=“china”;也可寫成static char c=“china”; 在C中將字符串作為字符數(shù)組來處理,為了測定字符串的實際長度0作為結(jié)束標志。575 字符數(shù)組輸入、輸出(1)getchar()/putcha

18、r()(2)用格式符%c輸入、輸出(3)將整個字符串一次輸入、輸出,用格式符%s如Static char c=“china”;Printf(“%s”,c);58注(1)輸出字符不包括結(jié)束符0; (2) 用%s時輸出項是數(shù)組名; (3) 長度大于實際長度時也到、0結(jié)束; (4)用scanf函數(shù)輸入一個字符串,利用一個scanf函數(shù)輸入多個字符串時,以空格分隔。 static char c6; scanf(“%s”,c); printf(“%s”,c);所以一維字符數(shù)組可以看作是“字符串變量”596 字符串輸入、輸出(1)gets(str) 輸入一個字符串到字符數(shù)組(2)puts(str) 可以包

19、含轉(zhuǎn)義字符,如0,n等607 字符串函數(shù) #include (1)拷貝 strcpy(str1,str2); 目的 源注:str1長度str2長度str1是數(shù)組名形式,str2可以是字符串常量,不能用賦值語句將字符串常量或字符數(shù)組賦給一個字符數(shù)組。如:str1=“china”; str1=str2;61(2)字符串連接 strcat(str1,str2); 目的 源注:作用是把字符2連到字符1后面,結(jié)果放在字符數(shù)組1中,所以字符數(shù)組1必須足夠大,初始化時不能省略長度;連接時第一個0取消。(3)字符串比較strcmp(str1,str2);(4)測試字符串長度函數(shù)strlen(str)(5)將字

20、符串中大寫字母轉(zhuǎn)成小寫字母函數(shù)strlwr(str)(6)將字符串中小寫字母轉(zhuǎn)成大寫字母函數(shù)strupr(str) 62第8章模塊化程序設(shè)計8.1 函數(shù)定義:在C中子程序的作用是由函數(shù)來完成的, 使用的角度函數(shù)有兩種(1)系統(tǒng)函數(shù)(2)用戶定義函數(shù);從函數(shù)的形式上分(1)無參函數(shù)(2)有參函數(shù)格式: 函數(shù)類型 函數(shù)名(形式參數(shù)) 函數(shù)體; 模塊化設(shè)計;結(jié)構(gòu)化編程。63說明: 函數(shù)類型-返回值的類型 如:float aver(成績表) void-無返值 main() 就應(yīng)是void類型 默認時為int型形參: (int a,int b,float r) 或 (a,b,r) int a,b; fl

21、oat r; 函數(shù)類型 函數(shù)名() 稱為“空函數(shù)”648.2 函數(shù)參數(shù)和函數(shù)值:1、形式參數(shù)和實際參數(shù)定義函數(shù)時函數(shù)名后面括號中的變量形參調(diào)用函數(shù)時函數(shù)名后面括號中的表達式實參通過函數(shù)調(diào)用使兩個函數(shù)中的數(shù)據(jù)發(fā)生聯(lián)系說明:(1)形參變量在函數(shù)調(diào)用前無分配存貯空間(2)實參可以是常量、變量、表達式或數(shù)組名(3)在被定義的函數(shù)中,必須指定形參類型(4)實參和形參類型應(yīng)一致,否則類型不匹配錯誤(5)形參和實參間的傳遞是單向的“值傳遞”,不同單元。652、函數(shù)的返值(1)函數(shù)的返值是通過return語句獲得的,return后面可以是一個表達式。(2)函數(shù)值的類型,在定義函數(shù)時指定函數(shù)值類型,如果不指定,

22、按整型處理,函數(shù)類型決定返值類型。(3)如果被調(diào)函數(shù)中沒有return語句,則返值不確定。(4)如果不帶回值,應(yīng)將函數(shù)定義為void類型。668.3 函數(shù)的調(diào)用:1、函數(shù)調(diào)用的一般形式函數(shù)名(實參表列);說明: 對實參表的求值順序并不是確定的,一般是從右至左,這種情況在printf函數(shù)中也同樣存在如:i=2;Printf(“%d %dn”,i,+i);結(jié)果:3 3672、函數(shù)的調(diào)用方式函數(shù)在程序中出現(xiàn)的位置;(1)函數(shù)語句(2)函數(shù)表達式(3)函數(shù)參數(shù)683、被調(diào)函數(shù)的說明在一個函數(shù)中調(diào)用另一個函數(shù)所具備的條件是:(1)被調(diào)函數(shù)是已經(jīng)存在的函數(shù)(庫函數(shù)、自定義)(2)如果是庫函數(shù)則 #incl

23、ude 命令相關(guān)頭文件(3)如果是用戶自定義函數(shù),在主調(diào)函數(shù)中對被調(diào)函數(shù)聲明: 函數(shù)類型 函數(shù)名(參數(shù)表); 特例: (1)函數(shù)的返值是整型或字符型 (2)被調(diào)函數(shù)的定義在主調(diào)函數(shù)之前 (3)在所有函數(shù)定義之前,說明了函數(shù)類型698.4 函數(shù)的嵌套調(diào)用:關(guān)系:自身可調(diào)用,相互之間可調(diào)用,即在調(diào)用一個函數(shù)的過程中,又調(diào)用另一個函數(shù)。如圖8.5函數(shù)1函數(shù)2函數(shù)3例8.6 P155708.5 函數(shù)的遞歸調(diào)用:1、直接遞歸2、間接遞歸函數(shù)A函數(shù)A函數(shù)B718.6 數(shù)組作為函數(shù)參數(shù):數(shù)組元素作參數(shù)同變量相同,數(shù)組名作為參數(shù)時傳遞整個數(shù)組。當用數(shù)組名作函數(shù)參數(shù)時,實參和形參都應(yīng)用數(shù)組名(或指針變量)。例8

24、.11 P16572說明(1)主調(diào)函數(shù)和被調(diào)函數(shù)分別定義數(shù)組(2)實參數(shù)組和形參數(shù)組類型應(yīng)一致(3)實參數(shù)組和形參數(shù)組大小可以不一致,C編譯對形參數(shù)組大小不作檢查,只是將實參首址傳遞給形參數(shù)組。如:例8.12(4)不是“傳值”而是“傳址”例:8.13(5)也可以用多維數(shù)組名作函數(shù)參數(shù),同上。例:8.14738.7 局部變量和全局變量:1、局部變量在函數(shù)內(nèi)定義的變量例:float f1(int a) int b,c; . 74說明(1)主函數(shù)main中定義的變量只在主函數(shù)中有效(2)不同函數(shù)中可以使用相同的變量(3)形參也是局部變量(4)在一個函數(shù)內(nèi)部,可以在復合語句中定義變量,這些變量只在復合

25、語句中有效,離開復合語句該變量就無效。758.7 局部變量和全局變量:2、全局變量在函數(shù)之外定義的變量稱為外部變量,外部變量是全局變量,全局變量可以為本文件中其它函數(shù)所共用,它的有效范圍為“從定義的位置開始到文件結(jié)束”。例:8.1576說明(1)設(shè)全局變量的作用是增加了函數(shù)間數(shù)據(jù)聯(lián)系,可以從函數(shù)得到一個以上的返值,是“雙向傳遞的”。(2)不要輕易使用全局變量在程序執(zhí)行過程中都占用存貯單元;通用性降低;不清晰。(3)在定義點之前引用外部變量要用關(guān)鍵字extern作“外部變量說明”(4)在同一源文件中,外部變量與局部變量同名,則在局部變量的作用范圍內(nèi),外部變量不起作用。778.8 動態(tài)存貯變量與靜態(tài)存貯變量:1、變量的存貯類別 以上是從變量的作用域角度分;從變量值生存期角度分靜態(tài)存貯變量和動態(tài)存貯變量。靜態(tài)存貯區(qū)存放:全局變量動態(tài)存貯區(qū)存放: (1)函數(shù)形參變量 (2)局部變量(未加static說明的) (3)函數(shù)調(diào)用時的現(xiàn)場保護和返回地址程序區(qū)

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論