版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
C語言程序設(shè)計(jì)1.教材
C程序設(shè)計(jì)(第四版)
譚浩強(qiáng)清華大學(xué)出版社2.成績評定
平時作業(yè):20
實(shí)驗(yàn):20
筆試:603.課程目標(biāo)
(1)深入了解計(jì)算機(jī)工作原理
(2)掌握計(jì)算機(jī)語言,理解人機(jī)交互手段
(3)理解程序設(shè)計(jì)思想
(4)掌握計(jì)算機(jī)常用算法
(5)為進(jìn)一步學(xué)習(xí)計(jì)算機(jī)知識奠定基礎(chǔ)第1章C語言概述本章主要介紹C語言程序的結(jié)構(gòu)和書寫規(guī)則,以及TurboC的使用。主要內(nèi)容 計(jì)算機(jī)語言及程序
C語言的發(fā)展及特點(diǎn)
C語言程序的結(jié)構(gòu)
C語言的語句和關(guān)鍵字
TurboC的基本操作1.1計(jì)算機(jī)語言及程序1.程序的概念計(jì)算機(jī)每一個操作都是根據(jù)人們事先編好的指令完成的,為了使計(jì)算機(jī)完成一系列的操作,從而實(shí)現(xiàn)某個特定的目的,需要將一條條編好的指令輸入到計(jì)算機(jī)中。所謂程序就是一組計(jì)算機(jī)能夠識別和執(zhí)行的、采用計(jì)算機(jī)語言表達(dá)的指令。一個特定的指令序列可以完成一定的功能。2.機(jī)器語言為了使計(jì)算機(jī)能理解人的意圖,需要通過計(jì)算機(jī)語言進(jìn)行人機(jī)交流,機(jī)器語言是最原始的計(jì)算機(jī)語言。計(jì)算機(jī)的工作是基于二進(jìn)制的,也就是說,如果人們將操作意圖以二進(jìn)制形式表達(dá)并傳入到計(jì)算機(jī)系統(tǒng)中,它就可以理解并執(zhí)行這條指令。例如:可用16位二進(jìn)制編碼
10110110000000000000100100000111
代表“加法”運(yùn)算(指令后面是被加數(shù)和加數(shù)),計(jì)算機(jī)就會在這一串0和1的控制下完成一次加法運(yùn)算。這種計(jì)算機(jī)能夠直接識別和接受的二進(jìn)制代碼稱為機(jī)器指令,機(jī)器指令的集合就是該計(jì)算機(jī)的機(jī)器語言。顯然,機(jī)器語言難學(xué)、難記、難修改,無法推廣普及。3.符號語言為了克服機(jī)器語言的缺點(diǎn),人們創(chuàng)造出符號語言,即用英文字符和十進(jìn)制數(shù)表示一條指令。例如,指令
ADDA,B表示加法運(yùn)算,其意義是將寄存器A中的數(shù)與寄存器B中的數(shù)相加,然后將計(jì)算結(jié)果存放到寄存器A中。但是,這種符號語言計(jì)算機(jī)并不能直接識別,需要一個專門的翻譯程序,將符號語言翻譯成機(jī)器語言,然后再交給計(jì)算機(jī)執(zhí)行。這個翻譯程序稱之為“匯編程序”,因而符號語言又稱為“匯編語言”。顯然,符號語言比機(jī)器語言有了很大的進(jìn)步,但仍然不便于使用和普及,僅用于專業(yè)人員。機(jī)器語言和匯編語言都非常“貼近”計(jì)算機(jī),不同的計(jì)算機(jī)之間機(jī)器語言和匯編語言不能通用。有時也將它們稱為“低級語言”。4.高級語言為了進(jìn)一步提高程序編寫的效率、普及應(yīng)用,人們在上世紀(jì)五六十年代推出了高級語言。高級語言以英文單詞為指令,采用四則運(yùn)算和十進(jìn)行制數(shù)為運(yùn)算規(guī)則,可使得人們更容易編寫復(fù)雜的計(jì)算機(jī)程序。例如,如果想計(jì)算并輸出3.5×6×sin(π/3)
的值,可用如下語句實(shí)現(xiàn):
PRINT3.5×6×sin(3.14159/3)高級語言功能強(qiáng)大、通用性好、易讀、易寫、易修改,很快便得到了廣泛的應(yīng)用。當(dāng)然,高級語言也不能被計(jì)算機(jī)直接識別,因此需要一個將高級語言翻譯成機(jī)器語言的程序。這個翻譯程序有兩種類型:編譯程序:可將一個高級語言編寫的“源程序”翻譯成可被計(jì)算機(jī)執(zhí)行的機(jī)器語言代碼(稱為“目標(biāo)程序”),再交由計(jì)算機(jī)執(zhí)行;解釋程序:可將高級語言源程序逐句翻譯成若干機(jī)器代碼,交給計(jì)算機(jī)執(zhí)行,然后再翻譯下一句,直到程序結(jié)束。幾十年來,全世界涌現(xiàn)出了數(shù)千種高級語言,經(jīng)過不斷淘汰,僅有幾種高級語言得到了廣泛應(yīng)用。1.2C語言的歷史背景C語言誕生前,系統(tǒng)軟件主要用匯編語言編寫。由于匯編語言程序依賴于計(jì)算機(jī)硬件,其可讀性和可移植性差;但一般的高級語言又難以實(shí)現(xiàn)對硬件的直接操作(這正是匯編語言的優(yōu)勢)且代碼效率低,于是兼有匯編語言和高級語言特性的C語言應(yīng)運(yùn)而生。C語言是貝爾實(shí)驗(yàn)室于70年代初研制出來的,后來又被多次改進(jìn),并出現(xiàn)了多種版本。80年代初,美國國家標(biāo)準(zhǔn)化協(xié)會(ANSI)根據(jù)C語言問世以來各種版本對C語言的發(fā)展和擴(kuò)充,制定了ANSIC標(biāo)準(zhǔn)(1989年、1999年再次做了修訂)。語言簡潔(僅32個關(guān)鍵字)、程序緊湊;運(yùn)算符極其豐富,共有34種運(yùn)算符;數(shù)據(jù)結(jié)構(gòu)豐富,便于實(shí)現(xiàn)復(fù)雜的數(shù)據(jù)結(jié)構(gòu);具有結(jié)構(gòu)化的程序控制語句,以函數(shù)為程序模塊,便于結(jié)構(gòu)化程序設(shè)計(jì);語法限制較為寬松,程序設(shè)計(jì)自由;具有位操作功能,可以直接操縱硬件;生成的目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高;可移植性好(較之匯編語言)。
1.2C語言的特點(diǎn)1.3C語言程序的結(jié)構(gòu)1.C語言程序的結(jié)構(gòu)
一個完整的C語言程序由一個main()函數(shù)(主函數(shù))和若干其它函數(shù)組成,或僅有一個主函數(shù)。例1-1:顯示字符串。main(){printf(“ThisisaCprogram.\n”);}程序運(yùn)行結(jié)果: ThisisaCprogram.例1-2:鍵盤輸入兩個數(shù)據(jù),顯示其中較大數(shù)。
intmax(intx,inty)
{
return(x>y?x:y);
} main() {intnum1,num2;printf(“Inputthefirstintegernumber:”);scanf(“%d”,&num1);printf(“Inputthesecondintegernumber:”);scanf(“%d”,&num2);printf(“max=%d\n”,max(num1,num2));}程序運(yùn)行情況:
Inputthefirstintegernumber:6Inputthesecondintegernumber:9max=9交換main()函數(shù)和max()函數(shù)前后位置,運(yùn)行結(jié)果相同。由上述兩個例題可知C語言程序的結(jié)構(gòu):(1)函數(shù)是C語言程序的基本單位。
main()函數(shù)的作用,相當(dāng)于其它高級語言中的主程序;其它函數(shù)相當(dāng)于子程序。(2)C語言程序總是從main()函數(shù)開始執(zhí)行。一個C程序總是從main()函數(shù)開始執(zhí)行,不論其在程序中的位置。習(xí)慣上,將其放在最前面。當(dāng)主函數(shù)執(zhí)行完畢時,亦即程序執(zhí)行完畢。2.函數(shù)的結(jié)構(gòu)
任何函數(shù)(包括主函數(shù))都是由函數(shù)說明和函數(shù)體兩部分組成。其一般結(jié)構(gòu)如下:
[函數(shù)類型]函數(shù)名(函數(shù)參數(shù)表)函數(shù)說明部分
{
說明語句部分;執(zhí)行語句部分;函數(shù)體部分
}(1)使用的語法符號約定[...]
方括號表示可選(既可指定,也可缺?。弧?/p>
省略號表示前面的可以重復(fù);
|
多個選擇項(xiàng)中選擇一個。例如:[static|extern|..….]函數(shù)名(函數(shù)參數(shù)1,函數(shù)參數(shù)2,…)(2)函數(shù)說明由函數(shù)類型(可缺?。?、函數(shù)名和函數(shù)參數(shù)表三部分組成,其中函數(shù)參數(shù)表的格式為:
數(shù)據(jù)類型形參[,數(shù)據(jù)類型形參2,……]如例1-2:
函數(shù)類型函數(shù)名函數(shù)參數(shù)表
intmax(intx,inty)(3)函數(shù)體函數(shù)體位于函數(shù)說明部分下方一對大括號之間,一般由說明語句和可執(zhí)行語句兩部分構(gòu)成:說明語句部分:由變量定義、自定義類型定義、自定義函數(shù)說明、外部變量說明等組成;可執(zhí)行語句:一般由若干條可執(zhí)行語句構(gòu)成。
注意:①函數(shù)體中變量定義語句必須在所有可執(zhí)行語句之前;②也可沒有變量定義。函數(shù)體結(jié)構(gòu)示意圖
main()/*主函數(shù)main()*/{intnum1;intnum2;printf(“Inputthe1integernumber:”);scanf(“%d”,&num1);printf(“Inputthe2integernumber:”);scanf(“%d”,&num2);printf(“max=%d\n”,max(num1,num2));}可執(zhí)行語句部分變量定義部分函數(shù)體函數(shù)說明3.源程序書寫格式所有語句都以分號”;”結(jié)束,程序的最后一個語句也不例外;程序行的書寫格式自由,既允許一行內(nèi)寫幾條語句,也允許一條語句分寫在幾行上;可使用注釋來說明程序含義,以便閱讀,但程序編譯時忽略注釋部分。C的注釋格式為:
/*……*/注意:“/*”和“*/”必須成對使用,且“/”和“*”、以及“*”和“/”之間不能有空格,否則編譯時出錯;注釋可單占一行,也可跟在語句的后面;如果注釋內(nèi)容較多,可分作幾行寫;注釋中允許使用漢字。在非中文操作系統(tǒng)下,看到的是一串亂碼,但不影響程序運(yùn)行。1.4C語言的語句和關(guān)鍵字
1.C語言的語句C程序通過函數(shù)體中可執(zhí)行語句向計(jì)算機(jī)系統(tǒng)發(fā)出操作命令。按語句功能或結(jié)構(gòu)不同,C語句可分為:(1)控制語句控制程序流程,C有9條控制語句,分為三種:選擇結(jié)構(gòu)控制語句:if()~else~,switch()~循環(huán)結(jié)構(gòu)控制語句:do~while(),for()~,while()~,break,continue其它控制語句:goto,return(2)函數(shù)調(diào)用語句函數(shù)調(diào)用語句由一次函數(shù)調(diào)用加一個分號構(gòu)成。如:
printf("ThisisaCfunctionstatement.“);(3)表達(dá)式語句表達(dá)式語句由表達(dá)式后加一個分號構(gòu)成。典型的表達(dá)式語句是在賦值表達(dá)式后加分號構(gòu)成賦值語句。如:“num=5”是一個賦值表達(dá)式,而:“num=5;”卻是一個賦值語句。(4)空語句空語句僅由一個分號構(gòu)成,不執(zhí)行任何操作。例如,下面就是一個空語句:
;(5)復(fù)合語句復(fù)合語句是由大括號括起來的一組(也可是一條)語句構(gòu)成。例如:main(){……{……}/*復(fù)合語句。注意:右括號后無分號。*/……}注意:復(fù)合語句在語法上和單一語句相同,即單一語句可以出現(xiàn)的地方,也可以使用復(fù)合語句;復(fù)合語句可以嵌套,即復(fù)合語句中可再次出現(xiàn)復(fù)合語句。2.關(guān)鍵字關(guān)鍵字是系統(tǒng)用來表示特定含義的單詞,編程人員不能當(dāng)作其他字符串使用。C語言關(guān)鍵字共32個:數(shù)據(jù)類型關(guān)鍵字(12個):char,double,enum,float,int,long,short,signed,struct,union,unsigned,void控制語句關(guān)鍵字(12個):break,case,continue,default,do,else,for,goto,if,return,switch,while存儲類型關(guān)鍵字(4個):auto,extern,register,static其它關(guān)鍵字(4個):const,sizeof,typedef,volatile1.運(yùn)行一個C語言程序的一般過程TurboC是一個集源程序編輯、編譯、連接、運(yùn)行與調(diào)試于一體、用菜單驅(qū)動的集成軟件環(huán)境,專門用來編輯、編譯、執(zhí)行C程序的軟件。利用TurboC運(yùn)行一個C語言程序的一般過程為:1.5TurboC的基本操作①
啟動TC,進(jìn)入TC集成環(huán)境;②
編輯(或修改)源程序(編輯完成后最好先保存源文件);③
編譯,若編譯成功,則轉(zhuǎn)④;否則返回②;④
連接,若連接成功,則轉(zhuǎn)⑤;否則返回②;⑤
運(yùn)行,觀察程序運(yùn)行結(jié)果,驗(yàn)證程序的正確性。若出現(xiàn)邏輯錯誤,則返回②,直至程序正確;⑥
退出。2.TC的啟動、退出與命令菜單(1)啟動TurboC在命令行窗口運(yùn)行TC.EXE(首先要轉(zhuǎn)到tc.exe所在的目錄,或輸入tc命令時加上tc.exe的路徑),即可彈出TurboC的窗口界面。①主菜單:主菜單條橫向排列在屏幕頂端,并被激活,其中File主項(xiàng)成為當(dāng)前項(xiàng)。②編輯窗口:主菜單的下面,是Edit(編輯)窗口和Message(消息)窗口。兩個窗口中,頂端橫線為雙線顯示的,表示該窗口是活動窗口。③狀態(tài)行:編輯窗口的頂端為狀態(tài)行,其中:Line1Col1:顯示光標(biāo)所在的行號和列號,即光標(biāo)位置。Insert:表示編輯狀態(tài)處于“插入”。當(dāng)處于“改寫”狀態(tài)時,此處為空白。NONAME.C:顯示當(dāng)前正在編輯的文件名?!癗ONAME.C”表示用戶尚未給文件命名。屏幕底端是7個功能鍵說明及<NumLock>鍵狀態(tài)。(2)命令菜單的使用按下功能鍵<F10>,激活主菜單。如果主菜單已經(jīng)被激活,則直接轉(zhuǎn)下一步;用左、右方向鍵移動光帶,定位于需要的主項(xiàng)上,然后再按回車鍵,打開其子菜單(縱向排列);用上、下方向鍵移動光帶,定位于需要的子項(xiàng)上,回車即可選中執(zhí)行。執(zhí)行完選定的功能后,系統(tǒng)自動關(guān)閉菜單。注意:若菜單激活后不使用,可再按<F10>/<Esc>鍵關(guān)閉,返回原來狀態(tài)。(3)退出TurboC菜單法:File|Quit(先選擇File主項(xiàng),再選擇并執(zhí)行Quit子項(xiàng));快捷鍵法:<Alt>+“X”
。3.編輯并保存一個C語言源程序(1)激活主菜單選擇File|Load項(xiàng)(或<F3>);(2)文件命名在“LoadFileName”窗口輸入源程序文件名:直接輸入:直接輸入表示文件名的字符串;若文件已存在,則系統(tǒng)在編輯窗口顯示該文件內(nèi)容,可供編輯、修改;若是新文件,則給出一個空白編輯窗口,可供輸入新的源程序;若該文件不在當(dāng)前目錄下,則需冠以路徑名和盤符。選擇文件(僅適用于已經(jīng)存在的源程序文件):
--
空回車,顯示當(dāng)前目錄下所有后綴為.c
的文件;
--
用方向鍵光帶定位于所需的文件名上;
--
按回車鍵。(3)文件保存在編輯源程序過程中,隨時都可以按<F2>鍵(或File|Save),將當(dāng)前編輯的文件存盤。4.編譯、連接
選擇并執(zhí)行Compile|MakeEXEFile項(xiàng)(快捷鍵<F9>),則TC將自動完成對當(dāng)前正在編輯的源程
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東科學(xué)技術(shù)職業(yè)學(xué)院《地鐵保護(hù)與安全評價》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東酒店管理職業(yè)技術(shù)學(xué)院《機(jī)器人學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東交通職業(yè)技術(shù)學(xué)院《生物啟發(fā)性材料》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東工商職業(yè)技術(shù)大學(xué)《項(xiàng)目視覺出品與設(shè)計(jì)營銷》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東第二師范學(xué)院《中學(xué)化學(xué)實(shí)驗(yàn)教學(xué)研究和技能訓(xùn)練》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東潮州衛(wèi)生健康職業(yè)學(xué)院《稀土在金屬材料中的應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 《信貸風(fēng)險(xiǎn)評估手冊》課件
- 廣東白云學(xué)院《法語聽力Ⅱ》2023-2024學(xué)年第一學(xué)期期末試卷
- 共青科技職業(yè)學(xué)院《水力學(xué)與橋涵水文》2023-2024學(xué)年第一學(xué)期期末試卷
- 小學(xué)生思維導(dǎo)圖畫法課件
- 單體調(diào)試及試運(yùn)方案
- 2023-2024學(xué)年浙江省杭州市城區(qū)數(shù)學(xué)四年級第一學(xué)期期末學(xué)業(yè)水平測試試題含答案
- 網(wǎng)球技術(shù)與戰(zhàn)術(shù)-華東師范大學(xué)中國大學(xué)mooc課后章節(jié)答案期末考試題庫2023年
- 2023年35kV集電線路直埋施工方案
- 思政教師培訓(xùn)心得體會2021
- HLB值的實(shí)驗(yàn)測定方法
- 2023年《病歷書寫基本規(guī)范》年度版
- 防止電力生產(chǎn)事故的-二十五項(xiàng)重點(diǎn)要求2023版
- 代理記賬機(jī)構(gòu)代理記賬業(yè)務(wù)規(guī)范
- 建辦號建筑工程安全防護(hù)、文明施工措施費(fèi)用及使用管理規(guī)定
- GB/T 31227-2014原子力顯微鏡測量濺射薄膜表面粗糙度的方法
評論
0/150
提交評論