第1章 計(jì)算機(jī)語(yǔ)言程序設(shè)計(jì)_第1頁(yè)
第1章 計(jì)算機(jī)語(yǔ)言程序設(shè)計(jì)_第2頁(yè)
第1章 計(jì)算機(jī)語(yǔ)言程序設(shè)計(jì)_第3頁(yè)
第1章 計(jì)算機(jī)語(yǔ)言程序設(shè)計(jì)_第4頁(yè)
第1章 計(jì)算機(jī)語(yǔ)言程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

Tel-mail:Y.Q.Cheng@163.com計(jì)算機(jī)語(yǔ)言程序設(shè)計(jì)

主講:材料與能源學(xué)院程永奇Page2課程的主要內(nèi)容和目的

主要內(nèi)容是結(jié)合C語(yǔ)言介紹計(jì)算機(jī)語(yǔ)言的基本概念、理論和設(shè)計(jì)方法,程序設(shè)計(jì)的基本算法和數(shù)據(jù)結(jié)構(gòu)以及運(yùn)用C語(yǔ)言進(jìn)行程序設(shè)計(jì)的方法和技術(shù)等。

學(xué)習(xí)目的是通過本課程的學(xué)習(xí),掌握計(jì)算機(jī)高級(jí)語(yǔ)言的基本知識(shí),了解程序設(shè)計(jì)基本算法和數(shù)據(jù)結(jié)構(gòu),能夠運(yùn)用C語(yǔ)言進(jìn)行初步的程序設(shè)計(jì),為今后進(jìn)行相關(guān)專業(yè)知識(shí)的學(xué)習(xí)打下必要的基礎(chǔ)。Page3教材與參考書?教材

譚浩強(qiáng)

著,《C程序設(shè)計(jì)(第四版)》,清華大學(xué)出版社,2010?參考書

[1]譚浩強(qiáng)編著,《C程序設(shè)計(jì)題解與上機(jī)指導(dǎo)(第四版)》,清華大學(xué)出版社,2010[2]譚浩強(qiáng)著,《C程序設(shè)計(jì)試題匯編(第二版)》,清華大學(xué)出版社,1998[3]BrianW.Kernighan,DennisM.Ritchie著,《C程序設(shè)計(jì)語(yǔ)言(第2版新版)》,機(jī)械工業(yè)出版社,2004[4]教育部考試中心,《全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)教程—C語(yǔ)言程序設(shè)計(jì)》,高等教育出版社,2004Page4課時(shí)安排課時(shí)安排理論課:20學(xué)時(shí)實(shí)驗(yàn)(上機(jī))課:12學(xué)時(shí)上機(jī)安排時(shí)間:第4-10周地點(diǎn):實(shí)驗(yàn)教學(xué)部計(jì)算機(jī)房?jī)?nèi)容:見實(shí)驗(yàn)前所發(fā)指導(dǎo)書作業(yè)及實(shí)驗(yàn)報(bào)告:上交時(shí)間和地點(diǎn):下次上課前具體實(shí)驗(yàn)課前通知Page5要求課前請(qǐng)做好預(yù)習(xí)課內(nèi)認(rèn)真聽講,積極思考認(rèn)真、獨(dú)立、按時(shí)完成并提交作業(yè)重視上機(jī)實(shí)踐,有效利用寶貴的上機(jī)時(shí)間課外勤于動(dòng)手,加強(qiáng)程序設(shè)計(jì)與調(diào)試練習(xí)Page6目錄第1章程序設(shè)計(jì)和C語(yǔ)言第2章算法——程序的靈魂第3章最簡(jiǎn)單的C程序設(shè)計(jì)——順序程序設(shè)計(jì)第4章選擇結(jié)構(gòu)程序設(shè)計(jì)第5章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)第6章利用數(shù)組處理批量數(shù)據(jù)第7章用函數(shù)實(shí)現(xiàn)模塊化程序設(shè)計(jì)第8章善于利用指針第9章用戶自己建立數(shù)據(jù)類型第10章對(duì)文件的輸入輸出第11章常見錯(cuò)誤分析附錄A在VisualC++6.0環(huán)境下運(yùn)行C程序的方法Page7第1章程序設(shè)計(jì)和C語(yǔ)言本章主要內(nèi)容:1.1什么是計(jì)算機(jī)程序1.2什么是計(jì)算機(jī)語(yǔ)言1.3C語(yǔ)言的發(fā)展及其特點(diǎn)1.4最簡(jiǎn)單的C語(yǔ)言程序1.5運(yùn)行C程序的步驟與方法1.6程序設(shè)計(jì)的任務(wù)Page8什么是計(jì)算機(jī)程序和語(yǔ)言程序:一組計(jì)算機(jī)能識(shí)別和執(zhí)行的指令只要讓計(jì)算機(jī)執(zhí)行這個(gè)程序,計(jì)算機(jī)就會(huì)自動(dòng)地、有條不紊地進(jìn)行工作計(jì)算機(jī)的一切操作都是由程序控制的,離開程序,計(jì)算機(jī)將一事無成計(jì)算機(jī)語(yǔ)言:人和計(jì)算機(jī)交流信息的、計(jì)算機(jī)和人都能識(shí)別的語(yǔ)言Page9什么是計(jì)算機(jī)程序和語(yǔ)言程序設(shè)計(jì)語(yǔ)言的發(fā)展機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言面向過程面向?qū)ο驝PU指令系統(tǒng),由0、1序列構(gòu)成的指令碼組成用助記符號(hào)描述的指令系統(tǒng)面向機(jī)器的語(yǔ)言客觀世界可以分類,對(duì)象是類的實(shí)例對(duì)象是數(shù)據(jù)和方法的封裝對(duì)象間通過發(fā)送和接受消息發(fā)生聯(lián)系程序設(shè)計(jì)關(guān)鍵是定義類,并由類派生對(duì)象程序設(shè)計(jì)是數(shù)據(jù)被加工的過程馮.諾依曼結(jié)構(gòu):計(jì)算機(jī)運(yùn)算器控制器存儲(chǔ)器主機(jī):I/O設(shè)備:鍵盤、顯示器等中央處理器CPUPage101.3C語(yǔ)言的發(fā)展及其特點(diǎn)

C語(yǔ)言是國(guó)際上廣泛流行的高級(jí)語(yǔ)言。作為系統(tǒng)描述語(yǔ)言,既可以用來編寫系統(tǒng)軟件,也可用來編寫應(yīng)用軟件。C語(yǔ)言的發(fā)展歷史:565860626466687072747678808284868890929496ALGOL60ALGOL68PascalModula-2CPLBCPLBCJavaSimula67Smalltalk80C++面向問題英國(guó)劍橋大學(xué)美國(guó)貝爾實(shí)驗(yàn)室Page111.3C語(yǔ)言的發(fā)展及其特點(diǎn)1977年出現(xiàn)了《可移植C語(yǔ)言編譯程序》,推動(dòng)了UNIX在各種機(jī)器上實(shí)現(xiàn),C語(yǔ)言也得到推廣,其發(fā)展相輔相成。1978年影響深遠(yuǎn)的名著《TheCProgrammingLanguage》由BrianW.Kernighan和DennisM.Ritchie合著,被稱為標(biāo)準(zhǔn)C。之后,C語(yǔ)言先后移植到大、中、小、微型計(jì)算機(jī)上,已獨(dú)立于UNIX和PDP,風(fēng)靡世界,成為最廣泛的幾種計(jì)算機(jī)語(yǔ)言之一。Page121.3C語(yǔ)言的發(fā)展及其特點(diǎn)1983年,美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)(ANSI)根據(jù)C語(yǔ)言各種版本對(duì)C的發(fā)展和擴(kuò)充,制定了新的標(biāo)準(zhǔn)ANSIC

,比標(biāo)準(zhǔn)C有了很大的發(fā)展。1988年K&R按照ANSIC修改了他們的《TheCProgrammingLanguage》。1987年,ANSI公布了新標(biāo)準(zhǔn)——87ANSIC。1990年,國(guó)際標(biāo)準(zhǔn)化組織接受了87ANSIC為ISOC的標(biāo)準(zhǔn)(ISO9899—1990)。1994年,ISO又修訂了C語(yǔ)言標(biāo)準(zhǔn)。目前流行的C語(yǔ)言編譯系統(tǒng)大多是以ANSIC為基礎(chǔ)進(jìn)行開發(fā)的。Page131.3C語(yǔ)言的發(fā)展及其特點(diǎn)(1)語(yǔ)言簡(jiǎn)潔、緊湊,使用方便、靈活。

32個(gè)關(guān)鍵字(附錄B)、9種控制語(yǔ)句(附錄D),程序形式自由。autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhileif()~else~for()~while()~do~while()~continuebreakswitchgotoreturnPage141.3C語(yǔ)言的發(fā)展及其特點(diǎn)(2)

運(yùn)算符豐富。34種運(yùn)算符(附錄C)。算術(shù)運(yùn)算符:+-*/%++--關(guān)系運(yùn)算符:<<===>>=!=邏輯運(yùn)算符:!&&||位運(yùn)算符:<<>>~|^&賦值運(yùn)算符:=及其擴(kuò)展條件運(yùn)算符:?:逗號(hào)運(yùn)算符:,指針運(yùn)算符:*&求字節(jié)數(shù):sizeof強(qiáng)制類型轉(zhuǎn)換:(類型)分量運(yùn)算符:.->下標(biāo)運(yùn)算符:[]其它:()-Page151.3C語(yǔ)言的發(fā)展及其特點(diǎn)(3)數(shù)據(jù)類型豐富,具有現(xiàn)代語(yǔ)言的各種數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)類型基本類型空類型void指針類型*構(gòu)造類型數(shù)值類型字符類型char自定義類型typedef整型浮點(diǎn)型基本整型長(zhǎng)整型短整型單精度型float雙精度型double數(shù)組[]結(jié)構(gòu)體struct共用體union枚舉類型enum有符號(hào)短整型[singed]short[int]無符號(hào)短整型unsingedshort[int]有符號(hào)基本整型[singed]int無符號(hào)基本整型unsingedint有符號(hào)長(zhǎng)整型[singed]long[int]無符號(hào)長(zhǎng)整型unsingedlong[int]Page161.3C語(yǔ)言的發(fā)展及其特點(diǎn)(4)具有結(jié)構(gòu)化的控制語(yǔ)句,是完全模塊化和結(jié)構(gòu)化的語(yǔ)言。(5)語(yǔ)法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大。(6)允許直接訪問物理地址,能進(jìn)行位操作,能實(shí)現(xiàn)匯編語(yǔ)言的大部分功能,可直接對(duì)硬件進(jìn)行操作。兼有高級(jí)和低級(jí)語(yǔ)言的特點(diǎn)。(7)目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。只比匯編程序生成的目標(biāo)代碼效率低10%-20%。(8)程序可移植性好(與匯編語(yǔ)言比)。Page17/*Example1.1*/#include<stdio.h>void

main(){

printf(“ThisisaCprogram!\n”);}1.4

最簡(jiǎn)單的C語(yǔ)言程序例1.1編譯預(yù)處理主函數(shù)輸出語(yǔ)句函數(shù)開始標(biāo)志函數(shù)結(jié)束標(biāo)志運(yùn)行結(jié)果:注釋空類型輸出函數(shù)main(){}Page181.4

最簡(jiǎn)單的C語(yǔ)言程序#include<stdio.h>int

main(){int

a,b,sum;

a=123;b=456;

sum=a+b;

printf("sumis%d\n",sum);

return0;}例1.2運(yùn)行結(jié)果:聲明部分賦值語(yǔ)句使函數(shù)返回值為0Page191.4

最簡(jiǎn)單的C語(yǔ)言程序#include<stdio.h>int

main(){

intmax(intx,inty);

inta,b,c;

scanf("%d,%d",&a,&b);c=max(a,b);

printf("max=%d",c);return0;}例1.3運(yùn)行結(jié)果:intmax(intx,inty){

intz;

if(x>y)z=x;

elsez=y;

return(z);}子函數(shù)主函數(shù)返回值輸入語(yǔ)句被調(diào)用函數(shù)聲明取地址輸入函數(shù)子函數(shù)名子函數(shù)類型子函數(shù)形參定義Page201.4

最簡(jiǎn)單的C語(yǔ)言程序C語(yǔ)言程序的結(jié)構(gòu)特點(diǎn):(1)C程序由函數(shù)構(gòu)成。一個(gè)C源程序至少且僅包含一個(gè)main函數(shù);(2)函數(shù)由函數(shù)首部和函數(shù)體(包括聲明部分和執(zhí)行部分)組成;(3)一個(gè)C程序總是從main函數(shù)開始執(zhí)行;(4)C程序書寫自由;(5)語(yǔ)句必須以分號(hào)(;)作結(jié)束標(biāo)志;(6)由“/*”與“*/”之間的內(nèi)容構(gòu)成C語(yǔ)言程序的注釋部分(C++編譯器可用“//”來表示注釋部分);(7)printf(“普通字符或用%開頭或用\開頭”,輸出內(nèi)容);(8)scanf("輸入數(shù)據(jù)格式",&輸入變量);(9)

“{”,“}”是每一個(gè)函數(shù)體的開始與結(jié)束標(biāo)志。(10)用預(yù)處理命令#include可以包含有關(guān)文件的信息。C語(yǔ)言輸入輸出操作由函數(shù)來完成Page21voidmain(){

inti,j,sum;sum=0;for(i=1;i<10;i++){for(j=1;j<10;j++){sum+=i*j;}}printf(“%d\n”,sum);}優(yōu)秀程序員的素質(zhì)之一:使用TAB縮進(jìn){}對(duì)齊有足夠的注釋有合適的空行1.4

最簡(jiǎn)單的C語(yǔ)言程序

格式特點(diǎn)習(xí)慣用小寫字母,大小寫敏感不使用行號(hào),無程序行概念可使用空行和空格常用鋸齒形書寫格式Page221.5運(yùn)行C程序的步驟與方法1.5.1運(yùn)行C程序的步驟上機(jī)輸入與編輯源程序?qū)υ闯绦蜻M(jìn)行編譯與庫(kù)函數(shù)連接運(yùn)行目標(biāo)程序開始結(jié)束編輯編譯連接執(zhí)行有錯(cuò)?結(jié)果正確?有無不正確正確源程序f.c目標(biāo)程序f.obj庫(kù)函數(shù)和其他目標(biāo)程序可執(zhí)行目標(biāo)程序f.exePage231.4運(yùn)行C程序的步驟與方法1.5.2上機(jī)運(yùn)行C程序的方法目前使用的大多數(shù)C編譯系統(tǒng)都是集成環(huán)境(IntegratedDevelopmentEnvironment,IDE)的??梢杂貌煌木幾g系統(tǒng)對(duì)C程序進(jìn)行操作。常用的有TurboC2.0、TurboC++3.0、VisualC++等。VisualC++:也可以用VisualC++對(duì)C程序進(jìn)行編譯。附錄A中有VisualC++6.0中編輯、編譯、連接和運(yùn)行C程序的方法Page241.6程序設(shè)計(jì)的任務(wù)1.問題分析2.設(shè)計(jì)算法3.編寫程序4.對(duì)源程序進(jìn)行編輯、編譯和連接5.運(yùn)行程序,分析結(jié)果

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論