版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
參考書與課時(shí)安排
參考書C程序設(shè)計(jì)(第四版)譚浩強(qiáng)清華大學(xué)出版社全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)教程——C語(yǔ)言程序設(shè)計(jì)……
課時(shí)安排授課:36學(xué)時(shí)上機(jī):28學(xué)時(shí)
上機(jī)安排上機(jī)地點(diǎn):計(jì)算中心機(jī)房上機(jī)實(shí)驗(yàn)題目:隨上課進(jìn)度布置要求:上機(jī)實(shí)驗(yàn)題目要事先做在紙上課程要求
課前做好預(yù)習(xí)保持課堂安靜,認(rèn)真聽(tīng)講、思考上課、上機(jī)考勤上機(jī)實(shí)驗(yàn)題目、作業(yè)必須獨(dú)立、按時(shí)完成,且經(jīng)上機(jī)調(diào)試重視上機(jī)實(shí)踐,有效利用寶貴的上機(jī)時(shí)間考核期末:全校統(tǒng)一考試、閉卷、筆試平時(shí)成績(jī)10%+實(shí)驗(yàn)成績(jī)10%+期末考試80%第1章C語(yǔ)言概述
為什么要學(xué)習(xí)C語(yǔ)言
C語(yǔ)言發(fā)展歷史
C語(yǔ)言特點(diǎn)
C程序格式和結(jié)構(gòu)特點(diǎn)(重點(diǎn))
C程序的開(kāi)發(fā)過(guò)程(重點(diǎn))為什么要學(xué)習(xí)C語(yǔ)言本課程是向?qū)W習(xí)者介紹結(jié)構(gòu)化(模塊化)程序設(shè)計(jì)的基本思想和方法,了解用計(jì)算機(jī)解決問(wèn)題的一般方法,掌握程序設(shè)計(jì)的思路和基本方法,掌握編寫和調(diào)試簡(jiǎn)單應(yīng)用程序的方法,使學(xué)習(xí)者養(yǎng)成利用計(jì)算機(jī)解決工作、生活中的實(shí)際問(wèn)題的習(xí)慣,提高計(jì)算機(jī)方面的能力和素質(zhì)。程序設(shè)計(jì)語(yǔ)言C語(yǔ)言是一種程序設(shè)計(jì)語(yǔ)言。那么什么是程序設(shè)計(jì)語(yǔ)言?是用來(lái)編寫計(jì)算機(jī)程序的語(yǔ)言C語(yǔ)言程序:#include<math.h>main(){floatx;x=56+2*sqrt(24)/(85-34);printf("%f",x);}
算式:舉例CPU指令系統(tǒng),由0、1序列構(gòu)成的指令碼組成如:10000000加
10010000減用助記符號(hào)描述的指令系統(tǒng)如ADDA,B面向機(jī)器的語(yǔ)言機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言面向過(guò)程面向?qū)ο蟪绦蛟O(shè)計(jì)是數(shù)據(jù)被加工的過(guò)程1.1
C語(yǔ)言的發(fā)展史程序設(shè)計(jì)語(yǔ)言的發(fā)展
產(chǎn)生背景產(chǎn)生過(guò)程時(shí)間:1972~1973地點(diǎn):美國(guó)貝爾實(shí)驗(yàn)室目的:UNIX操作系統(tǒng)設(shè)計(jì)人:Ken.Thompson和Dennis.M.RitchieC標(biāo)準(zhǔn)標(biāo)準(zhǔn)C:K&R合著《TheCProgrammingLanguage》ANSIC:1983年87ANSIC:1987年1990年國(guó)際標(biāo)準(zhǔn)的ANSICC語(yǔ)言發(fā)展過(guò)程語(yǔ)言簡(jiǎn)潔、緊湊、靈活運(yùn)算符和數(shù)據(jù)類型豐富程序設(shè)計(jì)結(jié)構(gòu)化、模塊化生成目標(biāo)代碼質(zhì)量高可移植性好>>>>>>1.2
C語(yǔ)言特點(diǎn)32個(gè)關(guān)鍵字:(由系統(tǒng)定義,不能重作其它定義)autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhile<9種控制語(yǔ)句:
if()~else~for()~while()~do~while()continuebreakswitchgotoreturn<34種運(yùn)算符:算術(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)算符:[]其它:()-<<C數(shù)據(jù)類型基本類型構(gòu)造類型指針類型空類型void定義類型typedef數(shù)值類型字符類型char枚舉類型enum整型實(shí)型單精度型float雙精度型double短整型short長(zhǎng)整型long整型int數(shù)組結(jié)構(gòu)體struct共用體union<結(jié)構(gòu)化程序設(shè)計(jì)的三種基本結(jié)構(gòu):順序結(jié)構(gòu):按語(yǔ)句的書寫順序依次執(zhí)行分支結(jié)構(gòu):根據(jù)條件有選擇地執(zhí)行某部分語(yǔ)句循環(huán)結(jié)構(gòu):循環(huán)條件+循環(huán)體程序設(shè)計(jì)結(jié)構(gòu)化、模塊化例1.1第一個(gè)程序,打印Hello,Howdoyoudo!/*example1.1ThefirstCProgram*/#include<stdio.h>main(){
printf("Hello,Howdoyoudo!");}注釋編譯預(yù)處理命令主函數(shù)輸出:Hello,Howdoyoudo!1.3
簡(jiǎn)單的C語(yǔ)言程序、結(jié)構(gòu)和書寫格式輸出語(yǔ)句例1.2計(jì)算兩個(gè)數(shù)的和,并在顯示器上輸出結(jié)果。#include<stdio.h>main(){floatx,y,sum;/*定義變量*/x=4.6,y=7.85;sum=x+y;printf("x+y=%.2f",sum);
}注釋編譯預(yù)處理命令主函數(shù)輸出:x+y=12.45輸出語(yǔ)句賦值語(yǔ)句例1.3/*example1.3calculatethesumofaandb*/#include<stdio.h>/*Thisisthemainprogram*/main(){inta,b,sum;a=10;b=24;sum=add(a,b);printf("sum=%d\n",sum);}/*Thisfunctioncalculatesthesumofxandy*/intadd(intx,inty){intz;z=x+y;return(z);}運(yùn)行結(jié)果:sum=34函數(shù)編譯預(yù)處理命令語(yǔ)句注釋例1.2計(jì)算兩個(gè)數(shù)的和,并在顯示器上輸出結(jié)果。#include<stdio.h>main(){floatx,y,sum;/*定義變量*/x=4.6,y=7.85;sum=x+y;printf("x+y=%.2f",sum);
}注釋編譯預(yù)處理命令主函數(shù)輸出:x+y=12.45輸出語(yǔ)句賦值語(yǔ)句解析:#include預(yù)處理命令
預(yù)處理命令以“#”開(kāi)頭,一般放在最前面。
#include<stdio.h>stdio.h表示標(biāo)準(zhǔn)輸入輸出頭文件(standardinput/outputheader)。main()函數(shù)程序由一個(gè)或多個(gè)函數(shù)組成。函數(shù)是C程序的基本單位。必須有且只能有一個(gè)主函數(shù)main()。程序執(zhí)行從main開(kāi)始,在main中結(jié)束,其它函數(shù)通過(guò)調(diào)用得以執(zhí)行。
語(yǔ)句
C程序由語(yǔ)句組成,每一個(gè)語(yǔ)句用“;”作為終止符。
花括號(hào){…}
注釋/**/
在“/”和“*”之間不能有空格,且“/*”和“*/”必須配對(duì)使用。注釋是供人閱讀的,并不參與編譯和運(yùn)行。注釋可以出現(xiàn)在程序的任何地方。一個(gè)較長(zhǎng)的注釋可以單放一行,或者是多行。添加必要的注釋可以提高程序的可讀性。
結(jié)構(gòu)特點(diǎn)程序由一個(gè)或多個(gè)函數(shù)組成。函數(shù)是C程序的基本單位。
必須有且只能有一個(gè)主函數(shù)main()。
程序執(zhí)行從main開(kāi)始,在main中結(jié)束,其它函數(shù)通過(guò)調(diào)用得以執(zhí)行。
main函數(shù)可以程序的放在任何位置。main(){
……………….………………
…………..
……………….
……………
………………..}main(){
inti,j,sum;sum=0;for(i=1;i<10;i++)
{for(j=1;j<10;j++)
{sum+=i*j;
}
}printf("%d\n",sum);}
書寫格式
習(xí)慣用小寫字母,字母大小寫不同。語(yǔ)句以分號(hào)(;)結(jié)束。程序的書寫格式靈活。
{}必須成對(duì)出現(xiàn)。
/*注釋信息*/
常用縮進(jìn)(鋸齒形)格式書寫。編輯鏈接編譯執(zhí)行1.4
C程序的開(kāi)發(fā)過(guò)程及開(kāi)發(fā)環(huán)境程序代碼的錄入,生成源程序*.c語(yǔ)法分析查錯(cuò),翻譯生成目標(biāo)程序*.obj與其它目標(biāo)程序或庫(kù)鏈接裝配,生成可執(zhí)行程序*.exe一、C程序開(kāi)發(fā)過(guò)程
開(kāi)始
編輯
編譯
連接
執(zhí)行
有錯(cuò)?
結(jié)果正確?
結(jié)束
有
源程序File.c目標(biāo)程序file.obj庫(kù)函數(shù)和其它目標(biāo)程序可執(zhí)行目標(biāo)程序file.exe無(wú)
正確
不正確
語(yǔ)法錯(cuò)誤(SyntaxError)如何檢測(cè)程序的語(yǔ)法錯(cuò)誤:編譯前瀏覽程序的源代碼看是否有明顯的錯(cuò)誤;編譯時(shí),當(dāng)編譯程序發(fā)現(xiàn)語(yǔ)法錯(cuò)誤時(shí),會(huì)把這些錯(cuò)誤的位置指出,并告訴您錯(cuò)誤的原因,即可以根據(jù)編譯程序所給予的信息更正錯(cuò)誤。二、常見(jiàn)錯(cuò)誤分析注意:某位置上一個(gè)真正的語(yǔ)法錯(cuò)誤可能導(dǎo)致編譯器誤認(rèn)為它發(fā)現(xiàn)了其他錯(cuò)誤。
例如,示例程序中未能正確聲明n2,n3,當(dāng)后面用到這些變量時(shí),編譯器可能會(huì)發(fā)現(xiàn)更多錯(cuò)誤。實(shí)際上不用立刻試圖改正所有發(fā)現(xiàn)的錯(cuò)誤,只是修改前一個(gè)或前兩個(gè),然后重新編譯,其余的某些錯(cuò)誤就可能會(huì)消失。一直這樣做直到程序能夠運(yùn)行為止。發(fā)現(xiàn)的錯(cuò)誤位置比真正的錯(cuò)誤要滯后一行。
例如,編譯器要編譯下一行時(shí)才發(fā)現(xiàn)上一行缺少了一個(gè)分號(hào),因此如果編譯器指出某行少了一個(gè)分號(hào)請(qǐng)檢查上一行。語(yǔ)義錯(cuò)誤(SemanticError)
如何檢測(cè)程序的語(yǔ)義錯(cuò)誤:比較程序?qū)嶋H得到的結(jié)果和你預(yù)期的結(jié)果;按照程序的執(zhí)行順序通過(guò)手工方式一步一步跟蹤程序,并記錄每個(gè)變量,從而可以監(jiān)視程序狀態(tài)以便發(fā)現(xiàn)是否存在語(yǔ)義錯(cuò)誤,但注意一定要按照你實(shí)際所寫的代碼去執(zhí)行而不要按照你期望的那樣去執(zhí)行。二、常見(jiàn)錯(cuò)誤分析當(dāng)問(wèn)題規(guī)模太大時(shí),可以選擇跟蹤其中的一小部分在程序的關(guān)鍵處加入額外的printf()語(yǔ)句以監(jiān)視所選的變量的值,使用完后再去掉printf()語(yǔ)句;利用調(diào)試器,調(diào)試器是一種程序,它能夠運(yùn)行另一個(gè)程序并檢查該程序的變量。
編譯器的警告消息
警告表明盡管代碼正確,但有可能不是程序員所需要的。警告不終止編譯。二、常見(jiàn)錯(cuò)誤分析三、VisualC++6.0集成開(kāi)發(fā)環(huán)境及其使用1.啟動(dòng)VisualC++6.0Windows2000(/Windowsxp)/開(kāi)始/程序/MicrosoftVisualStudio6.0/MicrosoftVisualC++6.0VisualC++6.0集成開(kāi)發(fā)環(huán)境及其使用1.啟動(dòng)VisualC++6.0啟動(dòng)后VisualC++6.0集成開(kāi)發(fā)環(huán)境及其使用2.在指定位置D:\創(chuàng)建C源程序文件文件\新建\“文件”選項(xiàng)卡\C++sourceFile\xxx.c與目錄VisualC++6.0集成開(kāi)發(fā)環(huán)境及其使用3.輸入C源程序VisualC++6.0集成開(kāi)發(fā)環(huán)境及其使用4.編譯,將C源程序文件翻譯成目標(biāo)文件.obj編譯\編譯xxx.cVisualC++6.0集成開(kāi)發(fā)環(huán)境及其使用4.編譯,將C源程序文件翻譯成目標(biāo)文件.obj
編譯前提示是否創(chuàng)建默認(rèn)的項(xiàng)目工作區(qū)(workspace)?VisualC++6.0集成開(kāi)發(fā)環(huán)境及其使用4.編譯,將C源程序文件翻譯成目標(biāo)文件.obj每創(chuàng)建一個(gè)c程序,VC都會(huì)創(chuàng)建一個(gè)相應(yīng)的工作區(qū)(workspace)。所謂“工作區(qū)”是一種管理C程序的方法。一個(gè)C程序通常包含源代碼文件(.c)、工作區(qū)文件(.dsw)、工作區(qū)配置文件(.opt)等,還有調(diào)試子文件夾(debug)。程序員通常只需創(chuàng)建源代碼文件,其他文件在編譯期間自動(dòng)生成。VisualC++6.0集成開(kāi)發(fā)環(huán)境及其使用4.編譯,將C源程序文件翻譯成目標(biāo)文件.obj編譯結(jié)果VisualC++6.0集成開(kāi)發(fā)環(huán)境及其使用4.編譯,將C源程序文件翻譯成目標(biāo)文件.obj編譯通過(guò)時(shí),可以在工作區(qū)視圖中看到目前創(chuàng)建的模塊和文件結(jié)構(gòu)。VisualC++6.0集成開(kāi)發(fā)環(huán)境及其使用5.連接,將目標(biāo)文件.obj與系統(tǒng)文件連接成可執(zhí)行文件xxx.exe編譯\構(gòu)件xxx.exeVisualC++6.0集成開(kāi)發(fā)環(huán)境及其使用6.執(zhí)行,將可執(zhí)行文件xxx.exe裝載到內(nèi)存并執(zhí)行編譯\執(zhí)行xxx.exeVisualC++6.0集成開(kāi)發(fā)環(huán)境及其使用6.執(zhí)行,將可執(zhí)行文件xxx.exe裝載到內(nèi)存并執(zhí)行執(zhí)行的結(jié)果VisualC++6.0集成開(kāi)發(fā)環(huán)境及其使用此時(shí),在位置D:\創(chuàng)建了一個(gè)C程序\debuga.exea.dswa.c······D:\VisualC++6.0集成開(kāi)發(fā)環(huán)境及其使用7.關(guān)閉工作區(qū),創(chuàng)建下一個(gè)C程序。\debuga.exeb.exea.dswa.c······b.dswb.c······D:\VisualC++6.0集成開(kāi)發(fā)環(huán)境及其使用如何運(yùn)行之前創(chuàng)建的C程序?文件\打開(kāi)工作區(qū)\***.dsw文件四、TurboC集成開(kāi)發(fā)環(huán)境及其使用(一)啟動(dòng)Turbo.c:有兩種方法。在WINDOS下,雙擊我的電腦在c盤或其它盤上找到TurboC或TC圖標(biāo)并雙擊它,再雙擊TC.exe文件。在DOS提示符下鍵入:TC(二)建立一個(gè)新文件
1.按F10,進(jìn)入主菜單,控制光標(biāo)選中FILE2.回車,進(jìn)入FILE的子菜單
3.按光標(biāo)控制鍵↓,選中“NEW”4.回車,進(jìn)入編輯窗口,文件名被自動(dòng)命名為“noname.c”TurboC集成開(kāi)發(fā)環(huán)境及其使用(三)編輯源程序逐個(gè)輸入字符刪除一個(gè)字符:按delete鍵插入字符插入一行:Ctrl+n刪除一行:Ctrl+y刪除一個(gè)單詞:Ctrl+t定義塊首:Ctrl+kb;定義塊尾:Ctrl+kk刪除一個(gè)塊:Ctrl+ky復(fù)制一個(gè)塊:Ctrl+kc移動(dòng)一個(gè)塊:Ctrl+kv(四)存盤不改文件名:F10FILESave(F2)回車改文件名:F10
FILE
WriteTo
回車輸入新的文件名(五)調(diào)入原有的文件1.F10→FILE→Load(F3)顯示的是上次打開(kāi)的文件名,在其中輸入所需的文件名即可。2.選擇文件名 …Load(F3)→*.c→回車3.從本次用過(guò)的文件名中查找 FILE→Pick:顯示的是本次上機(jī)剛剛調(diào)用過(guò)的文件名,縮小了查找范圍。4.不僅輸入文件名,而且搜索所有類型文件。*.*(六)暫時(shí)脫離TurboC,進(jìn)入DOS環(huán)境
F10→File→DOSShell
在DOS下進(jìn)行文件管理在DOS提示符下輸入exit返回TurboC(七)編譯:按
F9
鍵(八)運(yùn)行:Ctrl+F9(九)看運(yùn)行結(jié)果:Alt+F5(十)程序調(diào)試:
F8---StepoverF7---TraceintoF4---GotoCursorCtrl+F7---AddWatchCtrl+F8---ToggleBreakpointCtrl+F2---ProgramReset
TC的使用的演示:小結(jié):
C語(yǔ)言歷史/特點(diǎn)/書寫格式/開(kāi)發(fā)過(guò)程(一)算法1.什么是算法?簡(jiǎn)單地理解,算法是指為解決某個(gè)問(wèn)題所使用的操作步驟。
算法的特性
正確的算法應(yīng)該滿足5個(gè)特性:有窮性確定性有效性有零個(gè)或多個(gè)輸入有一個(gè)或多個(gè)輸出
1.5*算法和結(jié)構(gòu)化(模塊化)程序設(shè)計(jì)(選講)2.算法的評(píng)價(jià)標(biāo)準(zhǔn)
正確的算法應(yīng)該滿足4個(gè)標(biāo)準(zhǔn):正確性一個(gè)好算法必須達(dá)到預(yù)先規(guī)定的功能和性能要求??勺x性算法應(yīng)當(dāng)思路清晰、層次分明、易讀易懂,易于調(diào)試程序、發(fā)現(xiàn)錯(cuò)誤。健壯性好的算法能夠?qū)φ`操作和非法的輸入做出適當(dāng)?shù)姆磻?yīng)和合理的處理。高效率和低存儲(chǔ)量高效率是指算法的執(zhí)行速度快、運(yùn)行時(shí)間短。低存儲(chǔ)量是指占用的存儲(chǔ)空間少。3.算法的表示流程圖符號(hào)用圖框表示各種類型的操作,用箭頭表示這些操作的順序。數(shù)據(jù)輸入框或輸出框數(shù)據(jù)處理框開(kāi)始框或結(jié)束框判斷框流程線連接點(diǎn)開(kāi)始定義標(biāo)識(shí)符x、y、sum為變量sum=x+y輸出sum的值結(jié)束x=4.6,y=7.85#include<stdio.h>main(){floatx,y,sum;x=4.6,y=7.85;sum=x+y;printf("x+y=%.2f",sum);
}例如N-S圖:去掉流程圖中的流線,把整個(gè)算法描述在一個(gè)矩形框中。順序
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 回收利用行業(yè)壓濾機(jī)安裝方案
- 秋湖路施工方案(新)
- 汽車車衣定做服務(wù)行業(yè)營(yíng)銷策略方案
- 國(guó)慶節(jié)活動(dòng)方案活動(dòng)目的
- 廚房設(shè)備配置與安裝方案
- 小學(xué)落實(shí)“五育并舉”工作實(shí)施方案
- XXX會(huì)議室裝修工程施工方案
- 2022年小學(xué)六一兒童節(jié)活動(dòng)方案7篇
- 北京中建樂(lè)孚裝飾工程地坪漆施工方案
- 2024-2025高中數(shù)學(xué)第二章平面向量2.2.2向量減法運(yùn)算及其幾何意義課時(shí)作業(yè)含解析新人教A版必修4
- 國(guó)家開(kāi)放大學(xué)《財(cái)政與金融(農(nóng))》形考任務(wù)1-4參考答案
- 2023銀行網(wǎng)點(diǎn)年度工作總結(jié)
- 工廠反騷擾虐待強(qiáng)迫歧視政策
- 計(jì)算機(jī)教室(微機(jī)室)學(xué)生上機(jī)使用記錄
- FAI首件檢驗(yàn)報(bào)告
- 生活滿意度量表(SWLS)
- 細(xì)胞生物學(xué)主題知識(shí)講座
- 小作坊食品安全管理制度(3篇)
- 孕期焦慮測(cè)評(píng)
- 光伏電站施工組織設(shè)計(jì)
- 全人教版四年級(jí)英語(yǔ)上冊(cè)期中考試知識(shí)點(diǎn)匯總-必背的重點(diǎn)
評(píng)論
0/150
提交評(píng)論