




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1.4C語(yǔ)言程序的基本結(jié)構(gòu)
#include<stdio.h>voidmain()/*求兩數(shù)之和*/{inta,b,sum;/*這是定義變量*/a=123;b=456;sum=a+b;printf(“sumis%d\n”,sum);}函數(shù)是C程序的基本單位。一個(gè)C源程序至少包含一個(gè)函數(shù)(main函數(shù))。為增加程序的可讀性,源程序中應(yīng)當(dāng)加上必要的注釋。C程序中可用/*……*/對(duì)程序的任何部分作注釋。注釋對(duì)程序的執(zhí)行沒(méi)有任何影響。例1.7第1頁(yè)/共21頁(yè)C語(yǔ)言程序的基本結(jié)構(gòu)#include<stdio.h>voidmain()/*主函數(shù)*/{inta,b,c;
/*定義變量*/scanf(“%d,%d”,&a,&b);/*輸入變量a和b的值*/c=max(a,b);
/*調(diào)用max函數(shù),將得到的值賦給c*/printf(“max=%d”,c);
/*輸出c的值*/}intmax(intx,inty)/*定義max函數(shù),函數(shù)值為整型,x,y為形式參數(shù)*/{intz;
/*max函數(shù)中用到的變量z,也要加以定義*/if(x>y)z=x;
elsez=y;
return(z);
/*將z返回,通過(guò)max帶回調(diào)用處*/}C程序中必須有一個(gè)而且只能有一個(gè)main()函數(shù),不論main()函數(shù)處于程序中的什么位置,C程序執(zhí)行時(shí)總是從main()函數(shù)開(kāi)始。C程序的執(zhí)行與函數(shù)位置無(wú)關(guān)。
被調(diào)用的函數(shù)可以由系統(tǒng)提供(庫(kù)函數(shù)),也可以根據(jù)需要自己編制。
例1.8第2頁(yè)/共21頁(yè)通過(guò)以上幾個(gè)例子,我們對(duì)C程序的組成和形式有一個(gè)初步的了解:1.C程序是由函數(shù)構(gòu)成的。
main函數(shù)
printf和scanf
庫(kù)函數(shù)第3頁(yè)/共21頁(yè)2.一個(gè)函數(shù)由函數(shù)的首部和函數(shù)體兩個(gè)部分組成:(1)函數(shù)的首部包括函數(shù)名、函數(shù)類型、函數(shù)屬性、函數(shù)參數(shù)(形參)名、形式參數(shù)類型,例如例1.8中的max函數(shù)的說(shuō)明部分為:
intmax(intx,inty)
函數(shù)類型函數(shù)名參數(shù)類型參數(shù)名函數(shù)名后面必須跟一對(duì)圓括號(hào),但括號(hào)中的函數(shù)參數(shù)可以沒(méi)有,如main()。
(2)函數(shù)體。即函數(shù)說(shuō)明部分下面的花括弧{……
}內(nèi)的內(nèi)容。如果一個(gè)函數(shù)內(nèi)有多個(gè)花括弧,則最外層的一對(duì){}為函數(shù)體的范圍。第4頁(yè)/共21頁(yè)3.
一個(gè)C程序總是從main函數(shù)開(kāi)始執(zhí)行的,而不論main函數(shù)在整個(gè)程序中的位置如何。4.C程序書寫格式自由,一行內(nèi)可以寫多個(gè)語(yǔ)句,一個(gè)語(yǔ)句也可以分寫在多行上。5.
每個(gè)語(yǔ)句和數(shù)據(jù)定義的最后必須有一個(gè)分號(hào)。分號(hào)是C語(yǔ)句的必要組成部分。例如:
c=a+b;
非常重要的一點(diǎn)是什么是一個(gè)語(yǔ)句
第5頁(yè)/共21頁(yè)6.
C語(yǔ)言本身沒(méi)有輸入輸出語(yǔ)句。輸入和輸出操作都是由庫(kù)函數(shù)scanf和printf等函數(shù)來(lái)完成的。C對(duì)輸入輸出實(shí)行“函數(shù)化”。7.可以用/*……
*/對(duì)C程序中的任何部分作注釋。一個(gè)好的,有使用價(jià)值的源程序都應(yīng)當(dāng)加上必要的注釋,以增加程序的可讀性。第6頁(yè)/共21頁(yè)本章難點(diǎn)再分析
算法設(shè)計(jì)舉例問(wèn)題:開(kāi)發(fā)一個(gè)程序求全班學(xué)生某門課程的平均成績(jī)。要求程序每次運(yùn)行時(shí)班級(jí)人數(shù)可為任意。設(shè)計(jì)方法用結(jié)構(gòu)化程序設(shè)計(jì)方法(“自頂向下、逐步求精”的方法)來(lái)解決這個(gè)問(wèn)題并用偽代碼來(lái)表示求精過(guò)程中得到的算法。首先,頂層描述程序的整個(gè)功能,然后將其分解為一系列較小的任務(wù),并按照?qǐng)?zhí)行順序列出這些任務(wù)。每一步的求精都是一個(gè)完整的算法說(shuō)明,只是每層的細(xì)節(jié)在變化。重復(fù)上述求精過(guò)程直到表示每一任務(wù)的偽代碼能夠轉(zhuǎn)化為程序設(shè)計(jì)語(yǔ)言(如C)指令或程序段為止。第7頁(yè)/共21頁(yè)算法設(shè)計(jì)舉例問(wèn)題描述求未知人數(shù)班級(jí)的平均成績(jī)數(shù)據(jù)設(shè)計(jì)(數(shù)據(jù)及其存儲(chǔ))總成績(jī)(記為total)成績(jī)個(gè)數(shù)計(jì)數(shù)器(記為counter)每次輸入的成績(jī)(記為score)全班平均成績(jī)(記為average)
第8頁(yè)/共21頁(yè)算法設(shè)計(jì)舉例—逐步求精設(shè)計(jì)步驟1、初始化階段(對(duì)程序變量初始化);2、處理階段(輸入數(shù)據(jù)值并對(duì)程序中的變量作相應(yīng)調(diào)整);3、終止階段(計(jì)算和打印最終結(jié)果)。
任務(wù)分解初始化變量;輸入、求和及對(duì)輸入的成績(jī)計(jì)數(shù);計(jì)算并打印班級(jí)平均成績(jī);
初始化總成績(jī)total為0;初始化計(jì)數(shù)器counter為0;
讀入第一個(gè)成績(jī)放到score中;當(dāng)score不等于標(biāo)記值時(shí),重復(fù)以下工作:
{
將score加到total中;計(jì)數(shù)器值counter加1;讀入下一個(gè)數(shù)據(jù)放到score中;
}
如果counter≠0,那么執(zhí)行以下工作:
{
將total除以counter的結(jié)果放到average中;打印average;}
否則執(zhí)行打印信息“沒(méi)有輸入成績(jī)”
第9頁(yè)/共21頁(yè)算法設(shè)計(jì)舉例—C程序printf(“輸入下一個(gè)成績(jī),-1表示輸入結(jié)束”);/*屏幕提示*/scanf(“%d”,&score);}/*終止階段*/if(counter!=0){average=total/counter;printf(“全班平均成績(jī)?yōu)?.2f\n”,average);}elseprintf(“沒(méi)有輸入成績(jī)\n”);}/*用標(biāo)記值控制循環(huán)求全班平均成績(jī)*/#include<stdio.h>main(){floataverage,total;intcounter,score;/*初始化*/total=0.0;counter=0;/*處理階段*/printf(“輸入成績(jī),-1表示輸入結(jié)束”);/*屏幕提示*/scanf(“%d”,&score);while(score!=-1){total=total+score;counter++;
第10頁(yè)/共21頁(yè)1.5C程序的上機(jī)步驟第11頁(yè)/共21頁(yè)在紙上寫好一個(gè)程序后,要經(jīng)過(guò)以下幾個(gè)步驟:上機(jī)輸入與編輯源程序?qū)υ闯绦蜻M(jìn)行編譯與庫(kù)函數(shù)連接運(yùn)行目標(biāo)程序這樣幾個(gè)步驟。以上過(guò)程如圖1.1所示。其中實(shí)線表示操作流程,虛線表示文件的輸入輸出。例如,編輯后得到一個(gè)源程序文件f.c,然后在進(jìn)行編譯時(shí)再將源程序文件f.c輸入,經(jīng)過(guò)編譯得到目標(biāo)程序文件f.obj,再將目標(biāo)程序文件f.obj輸入內(nèi)存,與系統(tǒng)提供的庫(kù)函數(shù)等連接,得到可執(zhí)行的目標(biāo)程序文件f.exe,最后把f.exe調(diào)入內(nèi)存并使之運(yùn)行。在了解了C語(yǔ)言的初步知識(shí)后,讀者最好上機(jī)運(yùn)行一個(gè)C程序,以建立對(duì)C程序的初步認(rèn)識(shí)。第12頁(yè)/共21頁(yè)1.用TurboC運(yùn)行C程序的步驟TurboC是在微機(jī)上廣泛使用的編譯程序。它具有方便、直觀、易用的界面和豐富的庫(kù)函數(shù)。它向用戶提供一個(gè)集成環(huán)境,把程序的編輯、編譯、連接和運(yùn)行等操作全部集中在一個(gè)界面上進(jìn)行,使用十分方便。為了能使用TurboC,必須先將TurboC編譯程序裝入磁盤的某一目錄下,例如放在C盤根目錄下一級(jí)TC子目錄下。第13頁(yè)/共21頁(yè)圖1.2(1)調(diào)用TurboC程序。如果用戶的當(dāng)前目錄是TurboC編譯程序所在的子目錄(例如TC子目錄),只需從鍵盤鍵入“tc”命令即可:第14頁(yè)/共21頁(yè)8個(gè)菜單項(xiàng):FileEditRunCompileProjectOptionDebugbreak/watch用戶可以通過(guò)以上菜單項(xiàng)來(lái)選擇使用TurboC集成環(huán)境所提供的TurboC的各項(xiàng)主要功能。以上8個(gè)菜單項(xiàng)分別代表:文件操作、編輯、運(yùn)行、編譯、項(xiàng)目文件、選項(xiàng)、調(diào)試、中斷/觀察等功能。用鍵盤上的“←”和“→”鍵可以選擇菜單條中所需要的菜單項(xiàng),被選中的項(xiàng)以“反相”圖1.3形式顯示第15頁(yè)/共21頁(yè)
(例如主菜單中的各項(xiàng)原來(lái)以白底黑字顯示,被選中時(shí)改為以黑底白字顯示)。此時(shí)若按回車鍵,就會(huì)出現(xiàn)一個(gè)下拉菜單。例如在選中“File”菜單并按回車鍵后,屏幕上“File”下面出現(xiàn)下拉菜單,見(jiàn)圖1.3所示。它是一個(gè)子菜單,提供多項(xiàng)選擇??梢杂谩啊辨I選擇所需要的項(xiàng)。例如選擇“New”處,并按回車鍵,表示要建立一個(gè)新的C源程序。
圖1.3第16頁(yè)/共21頁(yè)如果選擇“Load”,并按回車鍵,表示要調(diào)入一個(gè)已有的源文件,此時(shí)屏幕上出現(xiàn)一個(gè)對(duì)話框(見(jiàn)圖1.4)。要求你輸入該文件的名字。用戶可輸入該文件名,例如:tc1.c,如果已存在此文件,則系統(tǒng)會(huì)將此文件調(diào)入內(nèi)存并顯示在屏幕上。此時(shí)自動(dòng)轉(zhuǎn)為編輯(Edit)狀態(tài)。如果原來(lái)不存在此文件名,則系統(tǒng)會(huì)建立一個(gè)以指定的名字命名的新文件。圖1.4第17頁(yè)/共21頁(yè)(2)編輯源文件。在編輯(Edit)狀態(tài)下可以根據(jù)需要輸入或修改源程序。(3)編譯源程序。選擇“Compile”菜單并在其下拉菜單中選擇“CompiletoOBJ”,則進(jìn)行編譯,得到一個(gè)后綴為.obj的目標(biāo)程序(為方便起見(jiàn),在一般書刊中,以上菜單的選擇以“Compile/CompiletoOBJ”表示)。然后再選菜單“Compile/LinkEXEfile”,進(jìn)行連接操作,可得到一個(gè)后綴為.exe的可執(zhí)行文件。也可以將編譯和連接合為一個(gè)步驟進(jìn)行。選菜單“Compile/MakeEXEfile”或按“F9”鍵,即可一次完成編譯和連接。在屏幕上會(huì)顯示編譯或連接時(shí)有無(wú)錯(cuò)誤和有幾個(gè)錯(cuò)誤,見(jiàn)圖1.5所示。此時(shí)按任何一個(gè)鍵,圖1.5所顯示的“編譯信息框”會(huì)第18頁(yè)/共21頁(yè)圖1.5
消失,屏幕上會(huì)恢復(fù)顯示源程序,光標(biāo)停留在出錯(cuò)之處。在屏幕的下半部分顯示出有錯(cuò)誤的行和錯(cuò)誤的原因。根據(jù)此信息修改源程序。修改完畢認(rèn)為無(wú)錯(cuò)后,再按“F9”,再次進(jìn)行編譯和連接,如此反復(fù)進(jìn)行到不顯示出錯(cuò)為止。第19頁(yè)/共21頁(yè)(4)執(zhí)行程序。按“F10”鍵,在窗口上部的主菜單中某一項(xiàng)處出現(xiàn)“反相”顯示(黑色亮塊)。FileEditRunCompileProjectOptionDebugBreak/watch用“→”鍵將亮塊移到“Run”,按回車鍵,在其下拉菜單中選擇“Run”項(xiàng),或直接按Ctrl+F9鍵,系統(tǒng)就會(huì)執(zhí)行已編譯好的目標(biāo)文件。此時(shí),TC集成環(huán)境窗口消失,屏幕上顯示出程序運(yùn)行時(shí)輸出的結(jié)果。如果程序需要輸入數(shù)據(jù)(如例1.3),則應(yīng)在此時(shí),從鍵盤輸入所需數(shù)據(jù),然后程序會(huì)接著執(zhí)行,輸出結(jié)果。如果發(fā)現(xiàn)運(yùn)行結(jié)果不對(duì),要重新修改源程序,可以再按“F10”鍵,并用“←”使亮塊移到“Edit”處,第20頁(yè)/共2
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年公務(wù)員省考之公務(wù)員申論高分通關(guān)題型題庫(kù)附解析答案
- 護(hù)理部培訓(xùn)體系建設(shè)計(jì)劃
- 出國(guó)留學(xué)咨詢合同樣本
- 出口螺桿驗(yàn)貨合同標(biāo)準(zhǔn)文本
- 偽造合同樣本量刑標(biāo)準(zhǔn)
- 上海牌照租賃合同標(biāo)準(zhǔn)文本
- 上下鋪床采購(gòu)合同標(biāo)準(zhǔn)文本
- 2025年五星級(jí)酒店餐廳外包合同
- 中粗砂采購(gòu)合同樣本
- 2025標(biāo)準(zhǔn)車輛租賃合同如何制定
- 消防安全隱患排查投標(biāo)方案(技術(shù)標(biāo))
- 提高患者口服藥服用的準(zhǔn)確率品管圈成果匯報(bào)ppt模板
- 22S803 圓形鋼筋混凝土蓄水池
- 能源中國(guó)學(xué)習(xí)通章節(jié)答案期末考試題庫(kù)2023年
- GB/T 28712.5-2023熱交換器型式與基本參數(shù)第5部分:螺旋板式熱交換器
- 無(wú)人機(jī)航拍技術(shù)理論考試題庫(kù)(附答案)
- 部編版《語(yǔ)文》三年級(jí)下冊(cè)全冊(cè)教案及反思
- 《照明線路的安裝與檢修》課程標(biāo)準(zhǔn)
- 設(shè)備人員三級(jí)安全教育考試題與答案
- 自考07887平面設(shè)計(jì)(12-19)真題試卷
- 2023年長(zhǎng)春醫(yī)學(xué)高等專科學(xué)校單招筆試職業(yè)技能考試題庫(kù)及答案解析
評(píng)論
0/150
提交評(píng)論