實(shí)驗(yàn)一 C語言的運(yùn)行環(huán)境和運(yùn)行過程
【目的與要求】
1.了解Dos、Windows環(huán)境下C語言的運(yùn)行環(huán)境,了解所用的計(jì)算機(jī)系統(tǒng)的基本操作方法,學(xué)會獨(dú)立使用該系統(tǒng)。
2.了解在該系統(tǒng)上如何編輯、編譯、連接和運(yùn)行一個(gè)C程序。
3.通過運(yùn)行簡單的C程序,初步了解C源程序的特點(diǎn)。
【上機(jī)內(nèi)容】
【基礎(chǔ)知識】
通過課堂上學(xué)習(xí),我們對C語言已有了初步了解,對C語言源程序結(jié)構(gòu)有了總體的認(rèn)識,那么如何在機(jī)器上運(yùn)行C語言源程序呢?任何高級語言源程序都要“翻譯”成機(jī)器語言,才能在機(jī)器上運(yùn)行?!胺g”的方式有兩種,一種是解釋方式,即對源程序解釋一句執(zhí)行一句;另一種是編譯方式,即先把源程序“翻譯”成目標(biāo)程序(用機(jī)器代碼組成的程序),再經(jīng)過連接裝配后生成可執(zhí)行文件,最后執(zhí)行可執(zhí)行文件而得到結(jié)果。
C語言是一種編譯型的程序設(shè)計(jì)語言,它采用編譯的方式將源程序翻譯成目的程序(機(jī)器代碼)。運(yùn)行一個(gè)C程序,從輸入源程序開始,要經(jīng)過編輯源程序文件(·C-)、編譯生成目標(biāo)文件(·obj)、連接生成可執(zhí)行文件(·exe)和執(zhí)行四個(gè)步驟。
下面主要介紹Turbo C下運(yùn)行C語言源程序。
Turbo C是美國Borland公司推出的IBM PC系列機(jī)的C語言編譯程序。它具有方便、直觀、易用的界面和豐富的庫函數(shù)。它向用戶提供了集成環(huán)境,把程序的編輯、編譯、連接和運(yùn)行等操作全部集中在一個(gè)界面上進(jìn)行,使用十分方便。
1 Turbo C工作環(huán)境介紹
一個(gè)C語言程序的實(shí)施是從進(jìn)入Turbo C的集成環(huán)境開始的,而進(jìn)入C語言的環(huán)境,一般有兩種途徑:從DOS環(huán)境進(jìn)入和從Windows環(huán)境進(jìn)入。
(1) 從DOS環(huán)境進(jìn)入:
在DOS命令行上鍵入:
C>CD TC↙(指定當(dāng)前目錄為TC子目錄)
C>TC↙ (進(jìn)入Turbo C環(huán)境)
這時(shí)進(jìn)入Turbo C集成環(huán)境的主菜單窗口,屏幕顯示如下圖所示。
(2) 從Windows環(huán)境進(jìn)入:
在Windows 95/98環(huán)境中,如果本機(jī)中已安裝了Turbo C,可以在桌面上建立一個(gè)快捷方式,雙擊該快捷圖標(biāo)即可進(jìn)入C語言環(huán)境?;蛘邚拈_始菜單中找到“運(yùn)行”,在運(yùn)行對話框中鍵入“C:TCTC”,“確定”即可。
需要說明的是,以上兩種方式有一個(gè)共同的前提,即Turbo C的安裝路徑為C:TC,如果你的計(jì)算機(jī)中Turbo C的安裝路徑不同的話,在上述方式中改變相應(yīng)路徑即可。
剛進(jìn)入TC環(huán)境時(shí),光帶覆蓋在“File”上,整個(gè)屏幕由四部分組成,依次為:主菜單、編輯窗口、信息窗口和功能提示行(或稱快速參考行)。
① 主菜單
顯示屏的頂部是主菜單條,它提供了8個(gè)選擇項(xiàng):
File 處理文件(裝入、存盤、選擇、建立、換名存盤、寫盤),目錄操作(列表、改變工作目錄),退出Turbo C,返回DOS狀態(tài)。
Edit 建立、編輯源文件。
Run 自動編輯、連接并運(yùn)行程序。
Compile 編輯、生成目標(biāo)文件組合成工作文件。
Project 將多個(gè)源文件和目標(biāo)文件組合成工作文件。
Option 提供集成環(huán)境下的多種選擇和設(shè)置(如設(shè)置存儲模式、選擇編參數(shù)、診斷及連接任選項(xiàng))以及定義宏;也可記錄Include、Output及Library文件目錄,保存編譯任選項(xiàng)和從配置文件加載任選項(xiàng)。
Debug 檢查、改變變量的值、查找函數(shù),程序運(yùn)行時(shí)查看調(diào)用棧。選擇程序編譯時(shí)是否在執(zhí)行代碼中插入調(diào)試信息。
Break/Watch 增加、刪除、編輯監(jiān)視表達(dá)式,及設(shè)置、清除、執(zhí)行至斷點(diǎn)。
在主菜單中,Edit選項(xiàng)僅僅是一條進(jìn)入編輯器的命令。其他選項(xiàng)均為下拉式菜單,包含許多命令選項(xiàng),使用方向鍵移動光帶來選擇某個(gè)選項(xiàng)時(shí),按回車鍵,表示執(zhí)行該命令,若屏幕上彈出一個(gè)下拉菜單,以提供進(jìn)一步選擇。
② 編輯窗口
編輯窗口是在主菜單下,信息窗口之上的區(qū)域,其頂行中間有“Edit”標(biāo)志。在此窗口中可以建立、編輯一個(gè)源文件。功能鍵F5可以擴(kuò)大編輯窗口到整個(gè)屏幕,或恢復(fù)分屏式環(huán)境。
進(jìn)入編輯窗口的方式有兩種:
(A)按F10功能鍵,激活主菜單,然后用光標(biāo)移動鍵將光帶移到“Edit”上,按回車鍵,或者在激活主菜單后直接按字母鍵E,均可進(jìn)入編輯窗口;
(B)按Alt+E無條件的進(jìn)入編輯窗口。
進(jìn)入編輯窗口后,編輯窗口的名字是高亮度的,表示它是活動窗口。窗口的頂部第一行是狀態(tài)行,給出有關(guān)正在被編輯文件的信息,如當(dāng)前光標(biāo)所在的行、列;編輯模式(插入/改寫);正在編輯文件的文件名等等,當(dāng)需要編輯修改時(shí),在編輯窗口中靈活地使用光標(biāo)移動鍵以及編輯命令即可達(dá)到預(yù)期的效果。常用的編輯命令見下表:
命令 |
功能 |
||
Home End Ins Del PgUp PgDn ← → ↑ ↓ Ctrl+Y Ctrl+T Ctrl+U Backspac Ctrl+KB Ctrl+KK Ctrl+KV Ctrl+KC Ctrl+KY Ctrl+KH
|
將光標(biāo)移到行首 將光標(biāo)移到行尾 插入/改寫兩種狀態(tài)的切換 刪除光標(biāo)所在的字符 向上翻頁正文 向下翻頁正文 光標(biāo)左右移動 刪除光標(biāo)所在的行 刪除光標(biāo)所指的一個(gè)單詞 放棄操作 刪除光標(biāo)左邊字符 設(shè)置(開始)塊頭標(biāo)志 設(shè)置(結(jié)尾)塊尾標(biāo)志 塊搬動到光標(biāo)處 塊拷貝到光標(biāo)處 塊刪除 取消塊定義 |
||
在插入模式下(用Ins鍵轉(zhuǎn)換)向編輯窗口內(nèi)輸入代碼,按回車鍵結(jié)束一行(TC編輯器不能自動換行)。一行最多為248個(gè)字符,窗口寬77列,當(dāng)一行內(nèi)字符多于77列時(shí),窗口隨著字符的輸入而左右移動,若發(fā)現(xiàn)有錯誤,可移動光標(biāo)到出錯處更正之;再按一次Ins鍵,屏幕轉(zhuǎn)換成為替換模式,輸入的字符將替換光標(biāo)所在位置的字符。
③ 信息窗口
編譯和調(diào)試源程序時(shí),信息窗口顯示診斷信息、警告、出錯信息、錯誤在源程序中的位置。功能鍵F5可以擴(kuò)大和恢復(fù)信息窗口,按F6或Alt+E,光標(biāo)從信息窗口跳到編輯窗口。
④ 功能鍵提示行
屏幕低行是功能鍵提示行,顯示當(dāng)前狀態(tài)下功能鍵(俗稱Turbo C熱鍵)的作用,見下表。應(yīng)當(dāng)注意,在不同狀態(tài)下功能鍵的作用是不同的。正確使用功能鍵可以簡化操作。
熱鍵 |
簡單說明 |
F1 F2 F3
F5 F6
F7 F8 F9 F10
|
Help,以分頁的形式顯示幫助信息 保存當(dāng)前正在編輯窗口中的文件 裝入一個(gè)文件。按F3,屏幕上彈出一個(gè)輸入框,輸入要裝入的文件名 Zoom,縮放活動窗口 Switch,活動窗口開關(guān),按F6鍵,光標(biāo)從編輯窗口跳到信息窗口,或從信息窗口跳到編輯窗口 Trace,跟蹤到函數(shù)中 Step,單步跟蹤,但不進(jìn)入函數(shù)內(nèi)部 Make,對當(dāng)前文檔進(jìn)行編輯、連接 Menu,激活主菜單,光標(biāo)跳到主菜單
|
2 Turbo C環(huán)境中運(yùn)行C語言源程序的步驟
(1) 編輯源文件
在主菜單下,直接按Alt+F鍵,或按F10后將光帶移到“File”選項(xiàng)上,按回車鍵,在“File”下面出現(xiàn)一個(gè)下拉菜單,菜單中有以下選項(xiàng):
Load F3 表示加載或裝入一個(gè)文件
Pick Alt+F3 從指定的文件列表中選擇文件裝入編輯器。
New 表示新文件,缺省文件名為NONAME.C。
Save F2 將正在編輯的文件存盤。
Write to 將正在編輯的文件寫入指定的文件中,若文件名已存在,則重寫。
Directory 表示文件目錄。
Change Dir 改變驅(qū)動器及目錄
OS shell 進(jìn)入Turbo C命令行模式,命令EXIT可返回集成環(huán)境
Quit Alt+x 退出Turbo C,返回DOS狀態(tài)。
建立一個(gè)新文件,可用光標(biāo)移動鍵將“File”菜單中的光帶移到“New”處,按回車鍵,即可打開編輯窗口。此時(shí),編輯窗口是空白的,光標(biāo)位于編輯窗口的左上角,屏幕自動處于插入模式,可以輸入源程序。屏幕右上角顯示缺省文件名為NONAME.C,編輯完成之后,可用F2或選擇“Save”或“Write to”進(jìn)行存盤操作,此時(shí)系統(tǒng)將提示用戶將文件名修改成為所需要的文件名。
(2) 源程序的編譯、連接
直接按F9鍵,或?qū)⒉藛巍癈ompile”中的光帶移到“Make EXE file”項(xiàng)上,按回車鍵,就可實(shí)現(xiàn)對源程序的編譯、連接。若有錯誤,則在信息窗口顯示出相應(yīng)的信息或警告,按任意鍵返回編輯窗口,光標(biāo)停在出錯位置上,可立即進(jìn)行編輯修改。修改后,再按F9鍵進(jìn)行編輯、連接。如此反復(fù),直到?jīng)]有錯誤為止,即可生成可執(zhí)行文件。
注意:C程序的連接是在編譯后自動完成的。
(3) 執(zhí)行程序
直接按Ctrl+F9鍵,即可執(zhí)行.EXE文件;或在主菜單中(按F10進(jìn)入主菜單)將光帶移到“Run”選項(xiàng),按回車鍵,彈出一個(gè)菜單,選擇“Run”選項(xiàng),回車。
這時(shí)并不能直接看到輸出結(jié)果。輸出結(jié)果是顯示在用戶屏幕上,在TC屏幕上看不到,直接按復(fù)合鍵Alt+F5,或選擇“Run”菜單中的“User Screen”選項(xiàng),即可出現(xiàn)用戶屏幕,查看輸出結(jié)果。按任意鍵返回TC集成環(huán)境。
另外,選擇“Run”菜單下的“Run”項(xiàng),或直接按Ctrl+F9鍵,可將C程序的編譯、連接、運(yùn)行一次性完成,即第3步中包含有第2步的工作。
如果程序需要輸入數(shù)據(jù),則在運(yùn)行程序后,光標(biāo)停留在用戶屏幕上,要求在用戶輸入數(shù)據(jù),數(shù)據(jù)輸入完成后程序繼續(xù)運(yùn)行,直至輸出結(jié)果。
如果運(yùn)行結(jié)果不正確或其他原因需要重新修改源程序,則需重新進(jìn)入編輯狀態(tài)。修改源程序,重復(fù)以上步驟,直到結(jié)果正確為止。
(4) 退出Turbo C集成環(huán)境
退出Turbo C環(huán)境,返回操作系統(tǒng)狀態(tài)。可在主菜單選擇“File”菜單的“Quit”選項(xiàng),或者直接按Alt+x。
在執(zhí)行退出Turbo C環(huán)境時(shí),系統(tǒng)將檢查一下當(dāng)前編輯窗口的程序是否已經(jīng)存盤,若未存盤,系統(tǒng)將彈出一個(gè)提示窗口,提示是否將文件存盤,若按“Y”則將當(dāng)前窗口內(nèi)的文件存盤后退出;若按“N”則不存盤退出。
【一般示例】
【例1】編程實(shí)現(xiàn)在屏幕上顯示如下三行文字
Hello, world !
Wolcome to the C language world!
Everyone has been waiting for.
在Turbo C的集成環(huán)境下,鍵入如下源文件。敲Alt+F組合鍵打開File菜單,File菜單中Write to選項(xiàng)可將默認(rèn)noname.c文件名改為任意文件名。程序example.c如下:
main()
{
printf(“Hello,World!n”);
printf(“Wolcome to the C language world!n”);
printf(“Everyone has been waiting for.n”);
}
然后用Ctrl+F9編輯執(zhí)行example.c,用Alt+F5查看結(jié)果,即在屏幕上顯示題目要求的三行文字。按回車鍵重新返回Turbo C的編輯環(huán)境。注意,在運(yùn)行程序之前最好先存盤。
【例2】輸入并運(yùn)行程序,寫出運(yùn)行結(jié)果。
main()
{
int a,b,sum;
a=123;b=456;
sum=a+b;
printf(“sum is %dn”,sum);
}
運(yùn)行方法同上,最后結(jié)果為:sum is 579。
【例3】
輸入并運(yùn)行程序,寫出運(yùn)行結(jié)果。
main()
{
int a,b,c;
scanf(“%d,%d”,&a,&b);
c=max(a,b);
printf(“max=%d”,c);
}
int max(int x,int y)
{
int z;
if (x>y) z=x;
else z=y;
return(z);
}
這個(gè)程序的功能是對于任意輸入的兩個(gè)整數(shù),輸出較大的那個(gè)數(shù)。所以程序運(yùn)行之后,光標(biāo)將停留在用戶屏幕上,等待用戶輸入兩個(gè)整數(shù),比如輸入“3,5”,回車,在用戶屏幕上就會輸出“max=5”。
【作業(yè)】
1.輸入并運(yùn)行例題中程序,熟悉調(diào)試C程序的的方法與步驟。
2.寫出一個(gè)C程序的構(gòu)成。
3.參照例題,編寫一個(gè)C程序,輸出以下信息:
****************************
Hello,World!
****************************
4.編寫一個(gè)C程序,輸入a、b、c三個(gè)數(shù),輸出其中最大者。試想,如果求四個(gè)數(shù)中的最大者,則程序該如何編寫。