C語言程序的基本結(jié)構(gòu)及上機(jī)步驟_第1頁
C語言程序的基本結(jié)構(gòu)及上機(jī)步驟_第2頁
C語言程序的基本結(jié)構(gòu)及上機(jī)步驟_第3頁
C語言程序的基本結(jié)構(gòu)及上機(jī)步驟_第4頁
C語言程序的基本結(jié)構(gòu)及上機(jī)步驟_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1.4C語言程序的基本結(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程序的基本單位。一個C源程序至少包含一個函數(shù)(main函數(shù))。為增加程序的可讀性,源程序中應(yīng)當(dāng)加上必要的注釋。C程序中可用/*……*/對程序的任何部分作注釋。注釋對程序的執(zhí)行沒有任何影響。例1.7第1頁/共21頁C語言程序的基本結(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返回,通過max帶回調(diào)用處*/}C程序中必須有一個而且只能有一個main()函數(shù),不論main()函數(shù)處于程序中的什么位置,C程序執(zhí)行時總是從main()函數(shù)開始。C程序的執(zhí)行與函數(shù)位置無關(guān)。

被調(diào)用的函數(shù)可以由系統(tǒng)提供(庫函數(shù)),也可以根據(jù)需要自己編制。

例1.8第2頁/共21頁通過以上幾個例子,我們對C程序的組成和形式有一個初步的了解:1.C程序是由函數(shù)構(gòu)成的。

main函數(shù)

printf和scanf

庫函數(shù)第3頁/共21頁2.一個函數(shù)由函數(shù)的首部和函數(shù)體兩個部分組成:(1)函數(shù)的首部包括函數(shù)名、函數(shù)類型、函數(shù)屬性、函數(shù)參數(shù)(形參)名、形式參數(shù)類型,例如例1.8中的max函數(shù)的說明部分為:

intmax(intx,inty)

函數(shù)類型函數(shù)名參數(shù)類型參數(shù)名函數(shù)名后面必須跟一對圓括號,但括號中的函數(shù)參數(shù)可以沒有,如main()。

(2)函數(shù)體。即函數(shù)說明部分下面的花括弧{……

}內(nèi)的內(nèi)容。如果一個函數(shù)內(nèi)有多個花括弧,則最外層的一對{}為函數(shù)體的范圍。第4頁/共21頁3.

一個C程序總是從main函數(shù)開始執(zhí)行的,而不論main函數(shù)在整個程序中的位置如何。4.C程序書寫格式自由,一行內(nèi)可以寫多個語句,一個語句也可以分寫在多行上。5.

每個語句和數(shù)據(jù)定義的最后必須有一個分號。分號是C語句的必要組成部分。例如:

c=a+b;

非常重要的一點是什么是一個語句

第5頁/共21頁6.

C語言本身沒有輸入輸出語句。輸入和輸出操作都是由庫函數(shù)scanf和printf等函數(shù)來完成的。C對輸入輸出實行“函數(shù)化”。7.可以用/*……

*/對C程序中的任何部分作注釋。一個好的,有使用價值的源程序都應(yīng)當(dāng)加上必要的注釋,以增加程序的可讀性。第6頁/共21頁本章難點再分析

算法設(shè)計舉例問題:開發(fā)一個程序求全班學(xué)生某門課程的平均成績。要求程序每次運(yùn)行時班級人數(shù)可為任意。設(shè)計方法用結(jié)構(gòu)化程序設(shè)計方法(“自頂向下、逐步求精”的方法)來解決這個問題并用偽代碼來表示求精過程中得到的算法。首先,頂層描述程序的整個功能,然后將其分解為一系列較小的任務(wù),并按照執(zhí)行順序列出這些任務(wù)。每一步的求精都是一個完整的算法說明,只是每層的細(xì)節(jié)在變化。重復(fù)上述求精過程直到表示每一任務(wù)的偽代碼能夠轉(zhuǎn)化為程序設(shè)計語言(如C)指令或程序段為止。第7頁/共21頁算法設(shè)計舉例問題描述求未知人數(shù)班級的平均成績數(shù)據(jù)設(shè)計(數(shù)據(jù)及其存儲)總成績(記為total)成績個數(shù)計數(shù)器(記為counter)每次輸入的成績(記為score)全班平均成績(記為average)

第8頁/共21頁算法設(shè)計舉例—逐步求精設(shè)計步驟1、初始化階段(對程序變量初始化);2、處理階段(輸入數(shù)據(jù)值并對程序中的變量作相應(yīng)調(diào)整);3、終止階段(計算和打印最終結(jié)果)。

任務(wù)分解初始化變量;輸入、求和及對輸入的成績計數(shù);計算并打印班級平均成績;

初始化總成績total為0;初始化計數(shù)器counter為0;

讀入第一個成績放到score中;當(dāng)score不等于標(biāo)記值時,重復(fù)以下工作:

{

將score加到total中;計數(shù)器值counter加1;讀入下一個數(shù)據(jù)放到score中;

}

如果counter≠0,那么執(zhí)行以下工作:

{

將total除以counter的結(jié)果放到average中;打印average;}

否則執(zhí)行打印信息“沒有輸入成績”

第9頁/共21頁算法設(shè)計舉例—C程序printf(“輸入下一個成績,-1表示輸入結(jié)束”);/*屏幕提示*/scanf(“%d”,&score);}/*終止階段*/if(counter!=0){average=total/counter;printf(“全班平均成績?yōu)?.2f\n”,average);}elseprintf(“沒有輸入成績\n”);}/*用標(biāo)記值控制循環(huán)求全班平均成績*/#include<stdio.h>main(){floataverage,total;intcounter,score;/*初始化*/total=0.0;counter=0;/*處理階段*/printf(“輸入成績,-1表示輸入結(jié)束”);/*屏幕提示*/scanf(“%d”,&score);while(score!=-1){total=total+score;counter++;

第10頁/共21頁1.5C程序的上機(jī)步驟第11頁/共21頁在紙上寫好一個程序后,要經(jīng)過以下幾個步驟:上機(jī)輸入與編輯源程序?qū)υ闯绦蜻M(jìn)行編譯與庫函數(shù)連接運(yùn)行目標(biāo)程序這樣幾個步驟。以上過程如圖1.1所示。其中實線表示操作流程,虛線表示文件的輸入輸出。例如,編輯后得到一個源程序文件f.c,然后在進(jìn)行編譯時再將源程序文件f.c輸入,經(jīng)過編譯得到目標(biāo)程序文件f.obj,再將目標(biāo)程序文件f.obj輸入內(nèi)存,與系統(tǒng)提供的庫函數(shù)等連接,得到可執(zhí)行的目標(biāo)程序文件f.exe,最后把f.exe調(diào)入內(nèi)存并使之運(yùn)行。在了解了C語言的初步知識后,讀者最好上機(jī)運(yùn)行一個C程序,以建立對C程序的初步認(rèn)識。第12頁/共21頁1.用TurboC運(yùn)行C程序的步驟TurboC是在微機(jī)上廣泛使用的編譯程序。它具有方便、直觀、易用的界面和豐富的庫函數(shù)。它向用戶提供一個集成環(huán)境,把程序的編輯、編譯、連接和運(yùn)行等操作全部集中在一個界面上進(jìn)行,使用十分方便。為了能使用TurboC,必須先將TurboC編譯程序裝入磁盤的某一目錄下,例如放在C盤根目錄下一級TC子目錄下。第13頁/共21頁圖1.2(1)調(diào)用TurboC程序。如果用戶的當(dāng)前目錄是TurboC編譯程序所在的子目錄(例如TC子目錄),只需從鍵盤鍵入“tc”命令即可:第14頁/共21頁8個菜單項:FileEditRunCompileProjectOptionDebugbreak/watch用戶可以通過以上菜單項來選擇使用TurboC集成環(huán)境所提供的TurboC的各項主要功能。以上8個菜單項分別代表:文件操作、編輯、運(yùn)行、編譯、項目文件、選項、調(diào)試、中斷/觀察等功能。用鍵盤上的“←”和“→”鍵可以選擇菜單條中所需要的菜單項,被選中的項以“反相”圖1.3形式顯示第15頁/共21頁

(例如主菜單中的各項原來以白底黑字顯示,被選中時改為以黑底白字顯示)。此時若按回車鍵,就會出現(xiàn)一個下拉菜單。例如在選中“File”菜單并按回車鍵后,屏幕上“File”下面出現(xiàn)下拉菜單,見圖1.3所示。它是一個子菜單,提供多項選擇??梢杂谩啊辨I選擇所需要的項。例如選擇“New”處,并按回車鍵,表示要建立一個新的C源程序。

圖1.3第16頁/共21頁如果選擇“Load”,并按回車鍵,表示要調(diào)入一個已有的源文件,此時屏幕上出現(xiàn)一個對話框(見圖1.4)。要求你輸入該文件的名字。用戶可輸入該文件名,例如:tc1.c,如果已存在此文件,則系統(tǒng)會將此文件調(diào)入內(nèi)存并顯示在屏幕上。此時自動轉(zhuǎn)為編輯(Edit)狀態(tài)。如果原來不存在此文件名,則系統(tǒng)會建立一個以指定的名字命名的新文件。圖1.4第17頁/共21頁(2)編輯源文件。在編輯(Edit)狀態(tài)下可以根據(jù)需要輸入或修改源程序。(3)編譯源程序。選擇“Compile”菜單并在其下拉菜單中選擇“CompiletoOBJ”,則進(jìn)行編譯,得到一個后綴為.obj的目標(biāo)程序(為方便起見,在一般書刊中,以上菜單的選擇以“Compile/CompiletoOBJ”表示)。然后再選菜單“Compile/LinkEXEfile”,進(jìn)行連接操作,可得到一個后綴為.exe的可執(zhí)行文件。也可以將編譯和連接合為一個步驟進(jìn)行。選菜單“Compile/MakeEXEfile”或按“F9”鍵,即可一次完成編譯和連接。在屏幕上會顯示編譯或連接時有無錯誤和有幾個錯誤,見圖1.5所示。此時按任何一個鍵,圖1.5所顯示的“編譯信息框”會第18頁/共21頁圖1.5

消失,屏幕上會恢復(fù)顯示源程序,光標(biāo)停留在出錯之處。在屏幕的下半部分顯示出有錯誤的行和錯誤的原因。根據(jù)此信息修改源程序。修改完畢認(rèn)為無錯后,再按“F9”,再次進(jìn)行編譯和連接,如此反復(fù)進(jìn)行到不顯示出錯為止。第19頁/共21頁(4)執(zhí)行程序。按“F10”鍵,在窗口上部的主菜單中某一項處出現(xiàn)“反相”顯示(黑色亮塊)。FileEditRunCompileProjectOptionDebugBreak/watch用“→”鍵將亮塊移到“Run”,按回車鍵,在其下拉菜單中選擇“Run”項,或直接按Ctrl+F9鍵,系統(tǒng)就會執(zhí)行已編譯好的目標(biāo)文件。此時,TC集成環(huán)境窗口消失,屏幕上顯示出程序運(yùn)行時輸出的結(jié)果。如果程序需要輸入數(shù)據(jù)(如例1.3),則應(yīng)在此時,從鍵盤輸入所需數(shù)據(jù),然后程序會接著執(zhí)行,輸出結(jié)果。如果發(fā)現(xiàn)運(yùn)行結(jié)果不對,要重新修改源程序,可以再按“F10”鍵,并用“←”使亮塊移到“Edit”處,第20頁/共2

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論