第一章、第二章_c語言_第1頁
第一章、第二章_c語言_第2頁
第一章、第二章_c語言_第3頁
第一章、第二章_c語言_第4頁
第一章、第二章_c語言_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第一章第一章 C語言概述語言概述Hello, everyone!1.1 C語言出現(xiàn)的歷史語言出現(xiàn)的歷史 自學(xué)1.2 C語言的特點(diǎn)語言的特點(diǎn)C語言的主要特點(diǎn)如下:語言的主要特點(diǎn)如下:1. 語言表達(dá)能力強(qiáng)語言表達(dá)能力強(qiáng) 運(yùn)算符豐富,表達(dá)式類型多樣化運(yùn)算符豐富,表達(dá)式類型多樣化2. 結(jié)構(gòu)化好結(jié)構(gòu)化好 while語句結(jié)構(gòu)化語句等,函數(shù)為單位語句結(jié)構(gòu)化語句等,函數(shù)為單位3. 具有較強(qiáng)的數(shù)據(jù)類型構(gòu)造能力具有較強(qiáng)的數(shù)據(jù)類型構(gòu)造能力 4. 語言精練語言精練 i+=2 (i=i+2); if (e) s ;5. 可移植性好可移植性好6. 生成的代碼質(zhì)量高,程序的執(zhí)行效率高生成的代碼質(zhì)量高,程序的執(zhí)行效率高 i+

2、=2 (i=i+2); 7.能實(shí)現(xiàn)匯編語言的大部分功能,可以直接對硬件能實(shí)現(xiàn)匯編語言的大部分功能,可以直接對硬件進(jìn)行操作。進(jìn)行操作。(可寫系統(tǒng)軟件(可寫系統(tǒng)軟件UNIX及應(yīng)用軟件)及應(yīng)用軟件)1.3 簡單的簡單的C程序介紹程序介紹例例1.1 main( ) printf(“Hello, everyone!n”);程序的運(yùn)行結(jié)果程序的運(yùn)行結(jié)果: Hello, everyone!1.3 簡單的簡單的C程序介紹程序介紹例例1.2 main( ) int a,b,sum; /* 這是定義變量這是定義變量 */ a=123; b=456; /* 以下以下3行為行為C語句語句 */ sum=a+b; pr

3、intf(“Sum is %d n”,sum); 程序的運(yùn)行結(jié)果程序的運(yùn)行結(jié)果: Sum is 5791.3 簡單的簡單的C程序介紹程序介紹例例1.3:從鍵盤輸入兩個整數(shù)從鍵盤輸入兩個整數(shù),并將最大的數(shù)顯示出來。并將最大的數(shù)顯示出來。 #include “stdio.h”/*包含預(yù)處理語句包含預(yù)處理語句*/main( ) int a,b,c; printf(“Please input two integers:n”) ; scanf(“%d,%d” , &a, &b); c=max(a,b); printf(“max= %dn”, c); int max(int x,int y

4、) int z; if(xy) z=x; else z=y; return(z ); 程序運(yùn)行情況:Please input two integers:8,5max=8通過以上例子可以看出:通過以上例子可以看出:1.C程序是由函數(shù)構(gòu)成的。每個程序由一個或多個函數(shù)組成,其程序是由函數(shù)構(gòu)成的。每個程序由一個或多個函數(shù)組成,其中必須中必須有且僅有一個有且僅有一個主函數(shù)主函數(shù)main( )。函數(shù)容易實(shí)現(xiàn)程序的模。函數(shù)容易實(shí)現(xiàn)程序的模塊化塊化.2.一個可執(zhí)行的一個可執(zhí)行的C語言程序總是從語言程序總是從main函數(shù)開始執(zhí)行,而不論函數(shù)開始執(zhí)行,而不論其在整個程序中的位置如何。其在整個程序中的位置如何。3.

5、每條語句和數(shù)據(jù)定義的最后必須有一個分號;。每條語句和數(shù)據(jù)定義的最后必須有一個分號;。 說明:在以下三種情況下不允許有分號:說明:在以下三種情況下不允許有分號: a.所定義的函數(shù)的名稱后面不使用分號;所定義的函數(shù)的名稱后面不使用分號; b.在右花括號在右花括號“”后面不使用分號;后面不使用分號; c.預(yù)處理語句后面不使用分號。預(yù)處理語句后面不使用分號。sum( ) ; while(total0) num1=num1+1; else num2=num2+1; scanf(%d,&x); printf(Positive num is: %dn,num1); printf(Negative n

6、um is: %dn,num2); 2 3 4 5 10 89 20 66 0請讀出該程序的功能main() int num1=0,num2=0; printf(input num); scanf(%d,&x); while(x!=0) if(x0) num1=num1+1; else num2=num2+1; scanf(%d,&x); printf(Positive num is: %dn,num1); printf(Negative num is: %dn,num2); x程序有錯嗎?main( ) printf(“* n”); printf(“n”); printf(“

7、 Very good!n”); printf(“ n”); printf(“* n”);運(yùn)行 結(jié)果:* Very good!*main( ) int a,b,c,max; printf(“input number a,b,c: n”); scanf(“%d,%d,%d”,&a,&b,&b); max=a; if(maxb) max=b; if(maxc) max=c; printf(“MAX:%d”,max);運(yùn)行結(jié)果:input number a,b,c:6,5,1MAX:6在Turbo C 運(yùn)行C程序的步驟我的電腦我的電腦/Holly/compilers/tc2.0

8、文件夾復(fù)制到文件夾復(fù)制到D盤,并重新命名為盤,并重新命名為TC.2.運(yùn)行運(yùn)行TC. 進(jìn)入進(jìn)入TC文件夾,雙擊文件夾,雙擊tc.exe (d:tctc )第二章第二章 算法簡介及程序的基本結(jié)構(gòu)算法簡介及程序的基本結(jié)構(gòu)本章要點(diǎn): 了解算法的基本概念 掌握程序的基本結(jié)構(gòu)算法(algorithm)是對特定問題求解步驟的一種描述。程序=數(shù)據(jù)結(jié)構(gòu)+算法+程序設(shè)計(jì)方法+編程語言2.1 算法的概念算法的概念例例1. 有有50個學(xué)生個學(xué)生 ,要求將他們之中成績在,要求將他們之中成績在80分以上者打印出來。分以上者打印出來。用用n表示學(xué)號,表示學(xué)號,n1代表第一個學(xué)生學(xué)號,代表第一個學(xué)生學(xué)號,ni代表第代表第i個

9、學(xué)生學(xué)號。個學(xué)生學(xué)號。用用g代表學(xué)生成績,代表學(xué)生成績, gi 代表第代表第i個學(xué)生成績,算法可表示如下:個學(xué)生成績,算法可表示如下:S1:1i S2:如果:如果gi 80 ,則打印,則打印 ni 和和gi ,否則不打印,否則不打印S3: i+1 i S4: 如果如果 i 50, 返回返回S2, 繼續(xù)執(zhí)行;繼續(xù)執(zhí)行; 否則,算法結(jié)束。否則,算法結(jié)束。 2.2 簡單算法舉例簡單算法舉例 (用自然語言描述法)用自然語言描述法)例例2 將學(xué)生百分成績按分?jǐn)?shù)段分級的程序。將學(xué)生百分成績按分?jǐn)?shù)段分級的程序。 該算法的核心部分是對輸入的每一個數(shù)進(jìn)行比較判斷,該算法的核心部分是對輸入的每一個數(shù)進(jìn)行比較判斷,

10、以確定屬于的級別。若學(xué)生成績分布是均勻的,算法描述以確定屬于的級別。若學(xué)生成績分布是均勻的,算法描述如下:如下:S1:1i S2: a60 a70 a80 a90 不及格不及格中等中等良好良好優(yōu)秀優(yōu)秀及格及格YNYNYNYN輸入輸入10000個數(shù)據(jù),則需個數(shù)據(jù),則需進(jìn)行進(jìn)行31500次比較。次比較。S3: i+1 iS4:如果如果i 10000, 返回返回S2; 否則,算法結(jié)束。否則,算法結(jié)束。轉(zhuǎn)S3轉(zhuǎn)S3轉(zhuǎn)S3轉(zhuǎn)S3轉(zhuǎn)S3分?jǐn)?shù)分?jǐn)?shù)0596069707980899099比例比例0.050.150.40.30.10 不及格不及格Y a90 a80 a70 aii50輸出gi 和 nii+1=ii

11、50結(jié)束YNN輸入ni和和gi i+1=igi=80N1=iY2.4.3 2.4.3 程序的三種基本結(jié)構(gòu)和程序的三種基本結(jié)構(gòu)和改進(jìn)的流程圖(改進(jìn)的流程圖(N-SN-S結(jié)構(gòu)流程圖)結(jié)構(gòu)流程圖)一、順序結(jié)構(gòu)一、順序結(jié)構(gòu) BA (a)AB (b)先執(zhí)行A操作,再執(zhí)行B操作,兩者是順序執(zhí)行關(guān)系。N-S結(jié)構(gòu)流程圖二、選擇結(jié)構(gòu)二、選擇結(jié)構(gòu)當(dāng)P條件為真時,執(zhí)行A模塊,否則執(zhí)行B模塊。APB真假(a)P真假AB(b)三、循環(huán)結(jié)構(gòu)三、循環(huán)結(jié)構(gòu)當(dāng)P條件成立時,反復(fù)執(zhí)行A,直到P為假。1. .當(dāng)型循環(huán)結(jié)構(gòu)當(dāng)型循環(huán)結(jié)構(gòu)PA假真(a)當(dāng)P為真A(b)當(dāng)P為真2.2.直到型循環(huán)結(jié)構(gòu)直到型循環(huán)結(jié)構(gòu)先執(zhí)行A操作,再判斷P是否

12、為假,若P為假,再執(zhí)行A,直到P為真為止。AP假真 (a) A直到P為真 (b)開始1=ii50輸出gi 和 nii+1=ii50結(jié)束YNN輸入ni和和gi i+1=igi=80N1=iY2.4.5 用偽代碼表示算法:用介于自然語言和計(jì)算機(jī)語言之間用偽代碼表示算法:用介于自然語言和計(jì)算機(jī)語言之間的文字和符號來描述算法的文字和符號來描述算法 BEGIN 1 =i while(i 50) input ni和和gi i+1=I 1 =i while(i 50) if (gi =80) print ni和和gi i+1=i END 2.4.6 用計(jì)算機(jī)語言表示算法 例4:求 1-1/2 + 1/3 1

13、/4 + 1/99 1/100。S1: 1 signS2: 1 sumS3: 2 denoS4: (-1)*sign signS5: sign*(1/deno) termS6: sum+term sumS7: deno+1 denoS8: 若若deno 100 返回返回S4;否則算法結(jié)束;否則算法結(jié)束。main() int sign=1; float deno=2.0 , sum=1.0, term; while (deno=100) sign= -sign; term=sign/deno; sum=sum+term; deno=deno+1; printf(“%f”,sum); 2.4 結(jié)構(gòu)化程序設(shè)計(jì)方法1. 自頂向下2. 逐步細(xì)化3. 模塊化設(shè)計(jì)4. 結(jié)構(gòu)化編碼產(chǎn)生最佳解產(chǎn)生最佳解得到好輸入得到好輸入讀輸入讀輸入輸出結(jié)果輸出結(jié)果計(jì)算最佳解計(jì)算最佳解顯示結(jié)果顯示結(jié)果編輯輸入編輯輸入結(jié)果格式化結(jié)果格式化好輸入好輸入原始輸入原始輸入原始輸入原始輸入編輯輸入編輯輸入好好輸輸入入解解解解解解格式化解格式化解格式化解格式化解產(chǎn)生最佳解的一般結(jié)構(gòu)產(chǎn)生最佳解的一般結(jié)構(gòu)得到好輸入得到好輸入main()計(jì)算最佳解計(jì)算

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論