C語言程序設(shè)計-第1章-緒論_第1頁
C語言程序設(shè)計-第1章-緒論_第2頁
C語言程序設(shè)計-第1章-緒論_第3頁
C語言程序設(shè)計-第1章-緒論_第4頁
C語言程序設(shè)計-第1章-緒論_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

課程提要

第一章緒論第二章C語言基礎(chǔ)第三章結(jié)構(gòu)化程序設(shè)計第四章選擇結(jié)構(gòu)第五章循環(huán)結(jié)構(gòu)程序設(shè)計第六章函數(shù)第七章編譯預處理第八章數(shù)組第九章結(jié)構(gòu)體、共用體和枚舉類型第十章指針第0章課程說明教科書

[1]黃保和、江弋,《C語言程序設(shè)計(第3版)》,清華大學出版社,2011.參考書[1]譚浩強,《C程序設(shè)計題解與上機指導》,清華大學出版社.[2]譚浩強,《C程序設(shè)計試題匯編》,清華大學出版社.[3]譚浩強,《C程序設(shè)計(第二版)》,清華大學出版社.[4]張基溫,《新概念C語言程序設(shè)計》,清華大學出版社,2012.特別提醒:

由于這門課程課堂講授學時數(shù)偏小,“C語言程序設(shè)計”對于許多低年級大學生有相當難度和壓力,而且一些專業(yè)面臨專業(yè)基礎(chǔ)課程壓力,學生需要非常嚴肅、認真地對待。一定要跟上教學進度,上課認真聽講,實驗中從編制小程序起步,還要利用周末大量編程、練習,才能逐步達到要求。第0章課程說明了解軟件開發(fā)的一般過程,軟件開發(fā)和運行平臺,軟件工程最初步的基本概念。掌握C語言的基本語法,能靈活應用C語言編寫中等難度的程序。掌握結(jié)構(gòu)化程序設(shè)計方法,理解模塊的概念,能熟練進行函數(shù)的定義和調(diào)用,熟練掌握順序、分支和循環(huán)三種基本程序控制結(jié)構(gòu)。熟練掌握VC平臺,掌握程序調(diào)試和測試的一般方法。課程目標第0章課程說明學習方法和注意事項認真聽講,及時復習注重實際操作認真完成作業(yè)和上機作業(yè)多利用課外時間上機實踐兩條主線程序設(shè)計包括程序閱讀、程序設(shè)計和程序調(diào)試學習一些基本的數(shù)據(jù)類型、控制結(jié)構(gòu)、語法規(guī)則等循序漸進閱讀/分析程序→摹仿編程→掌握常見程序模塊→簡單程序編程→復雜編程第0章課程說明課程考核課程結(jié)束考核方式:閉卷機考課堂考試時間:100分鐘考試命題:考試題目從題庫中隨機抽取。選擇題23題,46分;程序調(diào)試題2題12分;程序閱讀題3題18分;程序設(shè)計題4題24分。其中程序閱讀題和程序設(shè)計題中基本、中等和較難的題目各一題。隨堂監(jiān)考授權(quán):公共計算機教學部實驗考核的方式:和理論考試合卷期中考試:無口試:無

參考平時成績:有,比重很小第1章緒論1.0計算機的硬件和軟件1.1程序設(shè)計語言1.2程序設(shè)計的概念1.3C語言的發(fā)展和C++簡介1.4C語言程序的基本結(jié)構(gòu)1.5算法1.6VisualC++開發(fā)環(huán)境1.0計算機的硬件和軟件1.顯示器2.主板3.CPU(微處理器)4.主要存儲器(內(nèi)存)5.適配器(聲卡、網(wǎng)卡、電視卡等)6.電源供應器7.軟驅(qū)

/光盤驅(qū)動器8.次要存儲器

(硬盤)9.鍵盤I/O:外部世界信息?計算機算術(shù)邏輯單元控制器10.鼠標1.0計算機的硬件和軟件計算機的特點:可編程自動計算軟件程序和相關(guān)的文檔資源計算機如何存儲指令和數(shù)據(jù)?10110000地址:1256內(nèi)存CPU中的寄存器:register指令類型:數(shù)據(jù)移動算術(shù)運算控制轉(zhuǎn)移條件驗證1.1程序設(shè)計語言就發(fā)展歷程來看,程序設(shè)計語言一般可分為機器語言、匯編語言和高級語言機器語言是二進制代碼組成的代碼序列可以由計算機直接執(zhí)行需要程序設(shè)計者對硬件有充分的了解機器語言的描述和人們的習慣思維方式有較大差異由于不同機器的機器指令不同,程序的可移植性差程序可讀性差,軟件維護比較困難011001000110111.1程序設(shè)計語言匯編語言用助記符號來代表機器語言中的01代碼指令匯編語言指令與機器語言指令一般是1-1對應的;需要“匯編程序”的翻譯,才能執(zhí)行可讀性稍好一些與硬件密切相關(guān),一般不能完全通用描述問題及其計算方式與人們思維方式相距甚遠MOVA,3ADDA,61.1程序設(shè)計語言高級語言為了提高程序開發(fā)的效率,針對機器語言和匯編語言的缺點,各種高級語言相繼涌現(xiàn)。高級語言的特點如下:接近于人類自然語言的表述習慣,可讀性高;不依賴于計算機的具體型號,具有良好的可移植性;一條語句通常對應于多條機器指令;MOVA,3ADDA,6A=5,B=4C=B+A*2/B01100100011011目標程序高級語言源程序匯編語言源程序匯編程序編譯程序解釋程序可執(zhí)行程序連接程序翻譯一句執(zhí)行一句計算機發(fā)展while(b!=0)/*采用輾轉(zhuǎn)相除法求最大公約數(shù)*/{temp=a%b;a=b;b=temp;}三種語言的對比1.1程序設(shè)計語言1.2程序設(shè)計的概念程序設(shè)計的步驟:1.系統(tǒng)分析(需求分析)——做什么(任務書)2.系統(tǒng)設(shè)計——怎樣做?支持環(huán)境選擇、總體設(shè)計、算法設(shè)計、數(shù)據(jù)結(jié)構(gòu)設(shè)計、程序設(shè)計等3.程序設(shè)計(編碼)——用計算機語言描述問題的處理過程4.程序調(diào)試、程序測試調(diào)試:檢查和改正程序的錯誤測試:驗證程序的功能5.程序運行與維護維護:完善和擴充程序的功能。1.3C語言的發(fā)展和C++簡介C語言發(fā)展過程60年63年67年70年72年貝爾78年ALGOL60→CPL→BCPL→B語言→C語言→可移植(標準C)83年87年90年─→ANSIC─→87ANSIC─→ISOCC語言在2012年1月的編程語言排名請參考附件。不同版本的C語言普遍遵守兩個重要標準:(1)BrianW.Kernighan和DenisM.Ritchie于1978年合著的名著《TheCProgrammingLanguage》,被稱為“標準C”。(2)

美國國家標準化協(xié)會(ANSI)于1983年開始制定,并于1988年最終完成的ANSI標準,即“ANSIC”。程序簡潔、緊湊,語言使用方便、靈活。32個關(guān)鍵字、9種控制語句功能完整,程序形式自由,但一些成分比較瑣碎,特別是輸出。運算符豐富。34種運算符,但有些運算帶來了閱讀的不便。數(shù)據(jù)類型豐富,具有現(xiàn)代語言的各種數(shù)據(jù)結(jié)構(gòu)。具有結(jié)構(gòu)化的控制語句,完全模塊化和結(jié)構(gòu)化。語法限制不太嚴格,程序設(shè)計自由度大,但也容易埋下錯誤隱患。允許直接訪問物理地址,能進行按位操作,能實現(xiàn)匯編語言的大部分功能,可直接對硬件進行操作。兼有高級和低級語言的特點。目標代碼質(zhì)量高,程序執(zhí)行效率高。只比匯編程序生成的目標代碼效率低10%-20%。與匯編語言相比,程序可移植性好?;旧喜蛔鲂薷木湍苡糜诟鞣N型號的計算機和各種操作系統(tǒng)。1.3C語言的發(fā)展和C++簡介C語言特點C語言自然語言函數(shù)語句詞匯基本字符集段落句子單詞字母C語言程序的基本單位是函數(shù)每個函數(shù)是具有獨立功能的程序模塊函數(shù)是由語句組成的1.3C語言的發(fā)展和C++簡介C語言特點1.3C語言的發(fā)展和C++簡介C++是C語言的超集,由兩部分組成:過程性語言部分:遵守ANSIC標準;類和對象部分:它是面向?qū)ο蟪绦蛟O(shè)計的主體。C++充分保持了與C語言的兼容性,絕大多數(shù)C語言程序都可以不經(jīng)修改,直接在C++環(huán)境中運行C++仍然支持面向過程的程序設(shè)計,是一種理想的結(jié)構(gòu)化程序設(shè)計語言VisualC++:簡稱VC,Microsoft公司,windows系統(tǒng)。VC平臺:是一個集C源程序編輯、編譯、調(diào)試和運行為一體的集成環(huán)境。C++簡介1.4C語言程序的基本結(jié)構(gòu)程序舉例#include<stdio.h>//把標準的庫函數(shù)包括進來//#definepi3.14159

//定義常數(shù)//voidmain(){ floatr,s; scanf(“%f”,&r); s=pi*r*r;/*求出圓的面積s*/ printf(“s=%f\n”,s);}1.4C語言程序的基本結(jié)構(gòu)C程序:由若干個函數(shù)組成,必須有一個函數(shù)名為main。main函數(shù)稱為主函數(shù),程序如果包含多個函數(shù),必定從主函數(shù)開始執(zhí)行。函數(shù):由函數(shù)首部和函數(shù)體組成,函數(shù)體用于描述函數(shù)的功能。函數(shù)體由一系列語句組成。C語句:包括數(shù)據(jù)描述語句(如floatr,s;)和數(shù)據(jù)處理語句(如s=pi*r*r;)兩類,以分號作為語句結(jié)束標志。單詞:語句由單詞組成。單詞包括關(guān)鍵字、標識符、運算符、常量等。1.5算法(與程序)算法概念泛指解決某一個問題的方法和步驟是一種解決問題的策略,是人們對問題進行分析和抽象的結(jié)果是解決做什么和怎么做的問題數(shù)學公式和計算機程序,都屬于算法的具體表現(xiàn)1.5算法(與程序)例1.5.1求6!樸素算法:步驟1:先求1×2,得到結(jié)果2;步驟2:將步驟1得到的乘積2,再乘以3,得到結(jié)果6;步驟3:將6再乘以4,得到24;步驟4:將24再乘以5,得到120;步驟5:將120再乘以6,得到720。這樣就得到了最后的結(jié)果。1.5算法(與程序)例1.5.1求階乘6!改進算法:設(shè)兩個變量,一個變量代表被乘數(shù),一個變量代表乘數(shù)。乘積結(jié)果不再設(shè)定新變量存放,而是直接將每一步驟的乘積放在被乘數(shù)變量中。如:設(shè)m為被乘數(shù),i為乘數(shù),算法如下:

S1:使m=1;

S2:使i=2;

S3:使m×i,乘積仍放在變量m中,可表示為m×i→m;

S4:使i的值增加1,即i+1→I;

S5:如果i不大于6,返回重新執(zhí)行步驟S3以及其后的步驟S4和S5;否則,轉(zhuǎn)到步驟S6;

S6:輸出m的值,算法結(jié)束。1.5算法(與程序)例1.5.2對一個大于或等于3的正整數(shù),判斷它是不是一個素數(shù)方法:將一個數(shù)n作為被除數(shù),將2到n-1各個整數(shù)輪流作為除數(shù),如果都不能整除n,則n為素數(shù)。算法如下:S1:輸入n的值;S2:2→i(i作為除數(shù));S3:n被i除,得余數(shù)r;S4:如果r

=

0,表示n能夠被i整除,則打印“n不是素數(shù)”,算法結(jié)束,否則,執(zhí)行S5;S5:i

+1→i;S6:如果i≤n

-

1,返回S3;否則,打印“n是素數(shù)”,算法結(jié)束。1.5算法(與程序)算法(定義)算法是對特定問題求解本質(zhì)步驟的一種描述。算法的規(guī)則序列須滿足如下五個重要特性:(1)有窮性。算法必須總是在執(zhí)行有窮步之后結(jié)束;(2)確定性。算法的每一個步驟必須是確切地定義的;(3)輸入。算法有零個或多個輸入;(4)輸出。算法有一個或多個輸出,即與輸入有某個特定關(guān)系的量;(5)能行性。算法中有待執(zhí)行的運算和操作必須是相當基本的,即是說,它們原則上都是能夠精確地進行的,而且用筆和紙做有窮次運算就可以完成。1.5算法(與程序)算法描述與表示方法用自然語言(包括數(shù)學語言)表示算法用流程圖(框圖)表示算法用N-S流程圖表示算法用PAD圖描述算法用偽代碼描述算法例.

求1+2+……+100之和,下面的程序反映了這樣一種方法。如果采用高斯計算法,那么,由于計算方法不同,算法就不一樣。1.5算法(與程序)算法或程序的框圖表示開始sum=0i=1i<100sum=sum+ii=i+1打印1.5算法(與程序)程序一般地說,對任何一個問題,如果有了解決該問題的算法,就可以編制相應的程序。所謂程序,是一種事先編制好了具有特殊功能的指令序列。其中,指令既可以是機器指令,匯編語言指令,也可以是高級語言的語句命令,甚至未來還可能是用自然語言描述的運算、操作命令。對同一個問題的求解,不同的人可能編寫出不同的程序,這是為什么呢?決定程序本質(zhì)的因素:算法!計算方法、算法、程序設(shè)計語言、程序設(shè)計方法計算方法有時就是算法,有時候離算法還有一段距離。1.5算法(與程序)sum=0i=1i<=100sum=sum+ii=i+1輸出sum算法的N-S圖描述:1.6VisualC++開發(fā)環(huán)境參見文檔“-C程序上機與實踐.ppt”將在上機實踐課介紹附件:2012年1月編程語言排名TIOBE編程語言社區(qū)排行榜是編程語言流行趨勢的一個指標,每月更新。這份排行榜排名基于互聯(lián)網(wǎng)上有經(jīng)驗的程序員、課程和第三方廠商的數(shù)量。排名使用著名的搜索引擎(諸如Google、MSN、雅虎)以及Wikipedia和YouTube進行計算。請注意這個排行榜只是反映某個編程語言的熱門程度,并不能說明一門編程語言好不好,或者一門語言所編寫的代碼數(shù)量多少。TIOBE公布了2012年1月編程語言排行榜。前三的位置有變動,正如上期的標題所言(C#快取代C++的第三名),第三位置已經(jīng)易主。Objective-C在獲得第二名的兩年后,終于贏得了TIOBE2011年度編程語言。這個獎項是頒發(fā)給在2011年中市場份額增長最多的編程語言。Objective-C的目前市場份額增比2011年1月份高出3.91%。這主要歸功于iPhone和iPad的持續(xù)成功

溫馨提示

  • 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

提交評論