第1章 C語言概述1課件_第1頁
第1章 C語言概述1課件_第2頁
第1章 C語言概述1課件_第3頁
第1章 C語言概述1課件_第4頁
第1章 C語言概述1課件_第5頁
已閱讀5頁,還剩79頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C語言程序設計第1章C語言概述第2章數(shù)據(jù)類型與表達式第3章順序結構程序設計第4章選擇結構程序設計第5章循環(huán)結構程序設計第6章數(shù)組第7章函數(shù)第8章預處理命令第9章指針第10章結構類型與其他構造類型第11章文件第一章C語言概述1.1C語言的發(fā)展及其特點1.2C語言的基本符號1.3簡單的C語言程序1.4C程序的開發(fā)步驟1.5本章小結本章的主要內(nèi)容1、了解C語言的特點。2、認識C語言程序的格式及其結構特點。3、掌握C程序上機調(diào)試環(huán)境的操作方法。本章的重點和難點重點:1、C語言程序的格式及其特點。

2、在turbo-C環(huán)境下建立、修改、編譯、連接、運 行、調(diào)試C程序的方法。難點:在turbo-C環(huán)境下調(diào)試C程序的方法。1.1C語言出現(xiàn)的歷史背景一、C語言的誕生和發(fā)展在C語言誕生以前,系統(tǒng)軟件主要是用匯編語言編寫的。由于匯編語言程序依賴于計算機硬件,其可讀性和可移植性都很差;但一般的高級語言又難以實現(xiàn)對計算機硬件的直接操作(這正是匯編語言的優(yōu)勢),于是人們盼望有一種兼有匯編語言和高級語言特性的新語言。C語言是貝爾實驗室于70年代初研制出來的,后來又被多次改進,并出現(xiàn)了多種版本。80年代初,美國國家標準化協(xié)會(ANSI),根據(jù)C語言問世以來各種版本對C語言的發(fā)展和擴充,制定了ANSIC標準(1989年再次做了修訂)。Algol60由一個國際委員會于19世紀60年代早期設計。

CPL(CombinedProgrammingLanguage混合編程語言)——由劍橋和倫敦大學于1963年開發(fā)而成。

BCPL(BasicCombinedProgrammingLanguage基礎混合編程語言)——由劍橋大學的MatinRichards于1967年發(fā)明。

B——由貝爾實驗室的KenThompson于1970年發(fā)明

C——由貝爾實驗室的DennisRitchie于1972年發(fā)明。標準C——BrianW.Kernighan和DennisM.Ritchie(合稱K&R)編寫《TheCProgramming》1978年ANSIC——美國國家標準化協(xié)會根據(jù)問世以來的各種版本對C的發(fā)展和擴充,制定新標準,1983年87ANSICISOC——國際標準化組織接受87ANSIC為87ANSIC為ISOC標準C語言的發(fā)展歷程如下:二、C語言的特點

(1)C語言簡潔、結構緊湊,程序書寫方便、使用靈活。

C語言僅有32個具有特定意義的關鍵字,9種控制語句,程序書寫自由,用小寫字母書寫程序。除宏定義的宏名一般采用大寫字母外,其它一般用小寫字母書寫,C語言把大、小字母視為兩個不同的字符。

(2)運算符豐富,數(shù)據(jù)處理能力強。

C語言有34種運算符,把括號、賦值號等作為運算符處理,且有自加、自減、逗號等運算符,使C語言運算符豐富,且新穎、靈活、多樣,既可以實現(xiàn)匯編語言的許多功能,又可以實現(xiàn)其它高級語言難以實現(xiàn)的功能。(3)數(shù)據(jù)結構豐富,具有現(xiàn)代化語言的各種數(shù)據(jù)結構。有整型、實型、字符型、數(shù)組類型、指針類型、結構體類型、共用體類型等,能滿足現(xiàn)代程序設計的要求。(4)具有結構化的控制語句。有9種控制語句,對程序的邏輯結構提供了很好的基礎。其程序結構清晰,層次分明,有利于采用自頂而下,逐步求精的程序設計方法。(7)生成目標代碼質(zhì)量高,程序執(zhí)行效率高,可移植性好??梢浦残允侵冈谝环N環(huán)境下運行的程序在另一種不同的環(huán)境下也可以運行。用匯編語言(低級語言)編寫的程序,完全依賴以計算機硬件,而C語言程序基本上不作修改就能用于各種型號的計算機和各種操作系統(tǒng)。(5)語法限制不太嚴格,程序設計自由度大。例如數(shù)組下標越界不作檢查,變量類型使用比較靈活,字符型和整型數(shù)據(jù)可以通用。(6)C語言能進行位(bit)操作,能實現(xiàn)匯編語言的大部分功能,可以直接對硬件進行操作。C語言既具有高級語言的功能,又具有低級語言的許多功能,C語言的這種雙重性,使它既是成功的系統(tǒng)描述語言,又是通用的程序設計語言。(8)使用方便,具有完好的集成開發(fā)環(huán)境。本書介紹的TurboC是一個集程序編輯、編譯、鏈接、運行、調(diào)試為一體的C語言程序開發(fā)環(huán)境??蓪Τ绦蜻M行全屏幕編輯??衫么翱诠δ苓M行編譯、鏈接、調(diào)試、調(diào)試、環(huán)境設置等工作。C語言既具有高級語言的功能,又具有低級語言的許多功能,對操作系統(tǒng)和系統(tǒng)實用程序以及需要對硬件進行操作的場合,C語言明顯地高于其他高級語言。C語言的弱點:

非強類型:語法限制不嚴格,這使得編程者無法過多地依賴C編譯程序去查錯。缺少實時檢查:如數(shù)組越界等對程序員的要求比較高。1.2C語言的基本符號1.2.1基本符號集在C語言中使用的詞匯分為六類: 標識符,關鍵字,運算符,分隔符,常量,注釋符等。運算符C語言中含有相當豐富的運算符。運算符與變量,函數(shù)一起組成表達式,表示各種運算功能。運算符由一個或多個字符組成。分隔符在C語言中采用的分隔符有逗號和空格兩種。逗號主要用在類型說明和函數(shù)參數(shù)表中,分隔各個變量??崭穸嘤糜谡Z句各單詞之間,作間隔符。在關鍵字,標識符之間必須要有一個以上的空格符作間隔,否則將會出現(xiàn)語法錯誤,例如把inta;寫成inta;C編譯器會把inta當成一個標識符處理,其結果必然出錯。常量

C語言中使用的常量可分為數(shù)字常量、字符常量、字符串常量、符號常量、轉(zhuǎn)義字符等多種。在第二章中將專門給予介紹。注釋符

C語言的注釋符是以“/*”開頭并以“*/”結尾的串。在“/*”和“*/”之間的即為注釋。程序編譯時,不對注釋作任何處理。注釋可出現(xiàn)在程序中的任何位置。注釋用來向用戶提示或解釋程序的意義。在調(diào)試程序中對暫不使用的語句也可用注釋符括起來,使編譯跳過不作處理,待調(diào)試結束后再去掉注釋符。在VC編輯器中,如果注釋僅包含一行,只需在注釋語句之前使用//來表明這是一行注釋。例如:inta=0;//Thisisasampleprogram1)

計算機語言主要是由其所限定的符號表示的一些字、詞、命令、變量、數(shù)據(jù)等,標識符指的就是用來標識變量名、符號常量、函數(shù)名、文件名及一些具有專門含義的有效字符序列,標識符就是一個名字。

C語言規(guī)定標識符只能由字母、數(shù)字和下劃線('_')三種字符組成,且第一個字符必須為字母或下劃線。如:sum,average,Class,day,month,Student_name,lotus_1_2_3,BASIC,li_lingM.D.John,¥123,#33,3D64,a>b,?32,*p1.標識符及其組成1.2.2標識符2)C語言中有32個關鍵字,禁止用戶再用來定義標識符。autodefaultfloatregisterstructvolatilebreakdoforreturnswitchwhilecasedoublegotoshorttypedefcharelseifsignedunionconstenumintsizeofunsignedcontinueexternlongstaticvoid12個預處理命令,一般也不允許用戶再用來定義標識符。defineendifeliferrorlineincludeifdefifndefpragmaundefifelse

3)不同的C版本對標識符的長度有不同的要求。一般可以識別前8個字符,多余的字符不被識別。例如,由于student_name和student_number的前8個字符相同,有的系統(tǒng)認為這兩個變量,是一回事而不加區(qū)別。

4)在C語言中,系統(tǒng)認為大、小寫字母是不同的字符。如sum、Sum是不同的標識符。

5)定義標識符時,盡量做到“見名知意”,以增加程序的可讀性。如:name/xm(姓名)、sex/xb(性別)、age/nl(年齡)、salary/gz(工資)等。

2.標識符分類:

1)關鍵字標識符:關鍵字又稱命令字,在程序中具有特定的含義,不能另作他用,其他字符無法代替它。例如,int、float、char、if、else等都是關鍵字。2)預定義標識符:一般是指C語言提供的庫函數(shù)名和預編譯處理命令,例如:printf、scanf、define等。允許另作它用,但失其規(guī)定的原意。為了編程時方便、可靠、避免誤解,一般不另用。3)用戶標識符:編程時用戶需要給一些變量、函數(shù)、數(shù)組、文件等命名,這類由用戶根據(jù)需要自定義的標識符稱為用戶標識符。注意:用戶標識符盡量做到“見名知意”,便于閱讀程序,決不能與關鍵字相同,一般也不要同預定義標識符相同。1.2.3保留字

所有的語言都保留了一些單詞供內(nèi)部使用。這些單詞在一個特定語言的上下文中含有特殊的意義,它們被稱為“關鍵字”。在C語言中所有關鍵字必須小寫。在C語言中命名標識符時,要確保沒有使用任何關鍵字來作為標識符。例如,所有的數(shù)據(jù)類型都是保留的關鍵字。因此,在關鍵字,標識符之間必須有一個以上的空格符作間隔,否則將會出現(xiàn)語法錯誤。C語言的關鍵字分為以下幾類:(1)類型說明符用于定義、說明變量、函數(shù)或其它數(shù)據(jù)結構的類型。如前面例題中用到的int,double等(2)語句定義符用于表示一個語句的功能。如ifelse就是條件語句的語句定義符。(3)預處理命令字用于表示一個預處理命令。如include。1.3簡單的C程序介紹1.3.1幾個簡單的C語言程序用C語言編寫的源程序,簡稱C程序。C程序是一種函數(shù)結構,一般有一個或若干個函數(shù)組成,其中必須有一個且只能有一個main()函數(shù),main()函數(shù)是程序執(zhí)行的入口點。[例1.1]僅由main()函數(shù)構成的C語言程序。/*功能:僅由main()函數(shù)構成的C語言程序示例*/main(){printf(“ThisisaCprogram.\n”);}程序運行結果:

ThisisaCprogram.例1.2求兩數(shù)之和main() /*求兩數(shù)之和*/{inta,b,sum; /*定義變量*/a=123;b=456; /*以下3行為C語句*/sum=a+b;printf(“sumis%d\n”,sum);}/*……*/表示注釋部分,可以加在程序的任何地方,對編譯和運行不起作用。/*變量賦初值*//*求和*//*輸出結果*/程序運行結果:sumis579由main()函數(shù)和1個其它函數(shù)max()構成的C語言程序。[例1.3]由鍵盤輸入a、b兩個數(shù),求a、b兩個數(shù)的大者,并輸出之。main(){inta,b,c; printf(“Inputtwointegernumber:”);scanf(“%d,%d”,&a,&b);c=max(a,b);printf(“max=%d\n”,c);}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z)}程序運行情況:

Inputtwointegernumber:8,5←┘max=8[程序演示]/*主函數(shù)*//*聲明部分,定義變量*//*輸入變量a和b的值*//*調(diào)用函數(shù)max,將得到的值賦給c*//*輸出c的值*//*定義max函數(shù),函數(shù)值為整型,形式參數(shù)x,y為整型*//*max函數(shù)中的聲明部分,定義本函數(shù)中用到的變量z為整型*//*將z的值返回,通過max帶回調(diào)用處*/交換main()函數(shù)和max()函數(shù)的前后位置。源程序略。程序運行情況:

Inputtwointegernumber:8,5←┘max=8[程序演示]1.函數(shù)是C語言程序的基本單位。main()函數(shù)的作用,相當于其它高級語言中的主程序;其它函數(shù)的作用,相當于子程序。2.C語言程序總是從main()函數(shù)開始執(zhí)行。一個C語言程序,總是從main()函數(shù)開始執(zhí)行,而不論其在程序中的位置。當主函數(shù)執(zhí)行完畢時,亦即程序執(zhí)行完畢。習慣上,將主函數(shù)main()放在最前頭。1.3.2C語言程序結構有以下特點:(1)C語言程序由函數(shù)組成的,函數(shù)是C語言程序的基本單位。一個C語言程序必須且僅有一個名為main的主函數(shù),也可以有若干個其它函數(shù),程序的全部工作由函數(shù)完成。(2)一個函數(shù)由兩個組成部分。

函數(shù)函數(shù)首部函數(shù)體①函數(shù)首部:又稱函數(shù)說明,包括函數(shù)類型、函數(shù)名、函數(shù)的形式參數(shù)名及其類型(稱函數(shù)參數(shù)表)。如上例中:

intmax(intx,inty)

類型名函數(shù)名函數(shù)參數(shù)類型函數(shù)參數(shù)名函數(shù)參數(shù)類型函數(shù)參數(shù)名②函數(shù)體:由函數(shù)首部以下的第1對花括號“{}”內(nèi)的若干語句組成。一般來說,語句分為兩類:變量定義和執(zhí)行語句。

變量定義:如main函數(shù)中的“inta,b,c;語句。在某些情況下,程序中不需要定義變量時,可不定義變量。

執(zhí)行語句:由一組執(zhí)行語句組成,完成本函數(shù)的功能。函數(shù)體中可以無任何內(nèi)容,即構成一個空函數(shù)。

(3)程序總是從main()函數(shù)開始執(zhí)行,而不管main()的位置如何。由main函數(shù)開始調(diào)用其它函數(shù),其它函數(shù)間也可以相互調(diào)用,最終返回main函數(shù)結束程序。

(4)程序書寫較自由,一行可以寫幾條語句,一條語句也可以分行書寫。main(){inta,b,c;變量定義部分

printf(“Inputtwointegernumber:”);scanf(“%d,%d”,&a,&b);c=max(a,b);可執(zhí)行語句部分函數(shù)體

printf(“max=%d\n”,c);即計算與加工

}說明(1)函數(shù)體中的變量定義語句,必須在所有可執(zhí)行語句之前。下面程序中變量定義語句“intmax;”的位置是非法的:main(){intx,y; /*變量定義語句:定義2個整型變量x、y*/x=3; /*可執(zhí)行的賦值語句:將3賦值給變量x*/y=6; /*可執(zhí)行的賦值語句:將6賦值給變量y*/intmax; /*變量定義語句:出現(xiàn)在可執(zhí)行的賦值語句“x=3;”和“y=6;”之后,非法!*/max=x>y?x:y;printf(“max=%d\n”,max);}(2)如果不需要,也可以缺省變量定義語句。(5)分號是一條語句的結束符。(6)C語言沒有輸入輸出語句。輸入輸出的操作是由庫函數(shù)scanf和printf等函數(shù)來完成的。(7)可用/*......*/對程序中的任何部分進行注釋,以增加程序的可讀性,注釋不影響語句的功能。

注意:(1)為增加可讀性,C程序中可以使用適量的空格和空行,但不能在變量名、函數(shù)名、關鍵字中插入空格和空行;(2)C語言對大小寫是敏感的,即大小寫是不等價的,在程序一般情況下用小寫;(3)雖然C程序的書寫格式自由度很大,靈活性很強,但為了避免層次混亂不清,便于閱讀,一般都采用一定格式的書寫法:

a.一般一條語句占一行;

b.不同結構層次的語句,從不同位置開始寫(縮進);

c.語句中不同單詞加適量的空格。

預編譯處理命令全局變量定義

main(){

變量定義序列語句序列

}sub1()/*自定義函數(shù)*/{……}sub2()/*自定義函數(shù)*/{……}C程序的一般形式如下:

1.4C語言程序的開發(fā)步驟

TurboC為用戶提供了一個集成環(huán)境,把程序的編輯、編譯、連接和運行等操作等全部集中在一個界面上,使用方便。1.啟動TurboC(1)由DOS平臺進入TurboCC:\CD\TC<回車>(進入tc子目錄)

C:\TC>TC<回車>(執(zhí)行

tc.exe)(2)由windows平臺進入TurboC1)可以在桌面上選擇“開始”“程序”“MS-DOS方式”菜單,進入“DOS方式”窗口,在該窗口中使用上述DOS命令,進入TurboC。2)通過“資源管理器”找到文件夾TC中的tc.exe文件,雙擊該文件名,即可進入TurboC環(huán)境。3)把tc.exe文件創(chuàng)建為“快捷方式”,并在桌面上建立tc.exe的圖標,只需雙擊該圖標即可進入TurboC。2.退出TurboC:

(1)同時按下Alt+x鍵即退出TurboC;

(2)打開file菜單,光帶移至“quit”處,并按下回車鍵即退出TurboC,或在打開file菜單后,直接敲字母q便退出TurboC。C程序的編輯、編譯與運行過程:

編譯(compile)連接(link) 可執(zhí)行程序(.EXE)源程序(.C)目標程序(.OBJ)開始編輯編譯有錯?連接執(zhí)行結果正確?結束源程序f.c目標程序f.obj庫函數(shù)和其他目標程序可執(zhí)行目標程序f.exe有不正確運行C源程序的流程圖TurboC的工作窗口TurboC的啟動菜單TurboC的工作窗口包括以下幾方面的內(nèi)容:

主菜單窗口。包括8個主菜單:

File(文件):對文件的裝入、保存、選取、建立等操作

Edit(編輯):進入編輯狀態(tài),用戶可編輯當前窗口中顯示的程序

Run(運行):自動編譯、連接并運行程序

Compile(編譯):進行程序的編譯和鏈接

Projet(工程):對工程(由多個源文件組成的程序)進行處理

Option(選項):設置選項,如制定工作環(huán)境等

Debug(調(diào)試):調(diào)試程序,如顯示變量的值,查找函數(shù)等

Break/Watch(斷點/監(jiān)視):調(diào)試程序,斷點的設置和清除,監(jiān)測變量值的變化(2)編輯窗口。主菜單窗口的下面,正上方有Edit字樣作為標志。編輯窗口用作對源程序進行輸入和編輯。在編輯窗口的上部有一行英文:

Line1Col1InsertIndentTabFileUnidentC:NONAME.C光標當前的行位置光標當前的列位置編輯正處在字符插入方式,可用Ins鍵進行插入方式與覆蓋方式切換程序自動縮進方式,用ctrl+oi切換表示可以使用TAB鍵插入制表符,用ctrl+ot切換正在編輯的文件名(如果從磁盤調(diào)人一個以存在的文件,則該位置顯示的不是NONAME.C,而是調(diào)入的文件名)(3)信息窗口。在信息窗口上方有Message字樣作為標志,信息窗口用來顯示編譯和連接時的有關信息。(4)功能提示行。在屏幕的下方,它顯示一些功能鍵的作用。

1)F1-Help(幫助):任何時候按下F1鍵都會顯示幫助信息。

2)F5-Zoom(分區(qū)控制):如果當前在編輯窗口工作,也就是編輯窗口是激活的,按F5鍵就不顯示信息窗口,從而擴大編輯窗口,若再按一次F5鍵就會恢復信息窗口。如果當前信息窗口是激活的,按F5鍵就不顯示編輯窗口,從而擴大信息窗口,以便能顯示較多的信息便于用戶觀看,若再按一次F5鍵,就恢復原空狀。

3)F6-Switch(轉(zhuǎn)換):按F6鍵就激活信息窗口(Message以高亮度顯示),此時編輯窗口不能工作,若再按一次F6鍵,就又激活編輯窗口(Edit以高亮度顯示),此時可在編輯窗口編輯源程序。6)F9-Make(生成目標文件):進行編譯和連接,生成.obj文件和.exe文件,但不能運行。

7)F10-Menu(菜單):回到主菜單,激活第一個菜單File(此時File以反相顯示)。4)F7-Trace(跟蹤),跟蹤進入:執(zhí)行一程序,遇到函數(shù)可進入函數(shù)內(nèi)部跟蹤。

5)F8=Step(單步),單步執(zhí)行:執(zhí)行一程序,但不能進入函數(shù)內(nèi)部跟蹤。File菜單LoadF3PickAlt-F3NewSaveF2WritetoDirectoryChangedirOSshellQuitAlt-X

按照指定的文件名裝入一個文件。列出最后裝入的8個文件,用戶從中選擇要裝入的文件。將編輯窗口的內(nèi)容清空,開始編輯一個新文件。將正在編輯的文件存盤。將正在編輯的文件存入一個新文件中。顯示當前工作目錄的文件列表。改變當前工作目錄。暫時退出TurboC環(huán)境,進入DOS,在DOS環(huán)境用EXIT返回C。退出TurboCRun菜單RunCtrl-F9ProgramresetCtrl-F2GotocursorF4TraceinfoF7StepoverF8UserscreenAlt-F5運行當前程序,系統(tǒng)自動對程序進行連接。程序重啟,中止當前調(diào)試過程,釋放程序空間,關閉文件。使程序運行到編輯窗口光標在的行。跟蹤進入,執(zhí)行一程序,遇到函數(shù)可進入函數(shù)內(nèi)部跟蹤。單步執(zhí)行,執(zhí)行一程序,但不能進入函數(shù)內(nèi)部跟蹤。顯示用戶屏幕,觀看用戶輸出結果。CompiletoobjC:NONAME.OBJMakeEXEfileC:NONAME.EXELinkEXEfileBuildallPrimaryCfileGetinfo

對源程序進行編譯,生成目標程序文件OBJ。對源程序進行編譯和連接,生成可執(zhí)行文件EXE。對當前的OBJ和庫進行連接,生成可執(zhí)行文件EXE。重新編譯連接project中的全部程序,生成可執(zhí)行文件EXE。指定文件作為編譯對象,以代替編輯窗口中的文件。在彈出的窗口中顯示有當前文件的信息。ProjectnameBreakmakeonErrorsAutodependenciesOffClearProjectRemovemessages指定工程文件名,工程文件后綴為.prj。指定中止編譯的條件。自動依賴,若程序已修改,則在運行前重編譯連接清除當前的工程文件名刪除信息,將錯誤信息從信息窗口中清除CompilerLinkerEnvironmentDirectoriesArgumentsSaveoptionsRetrieveoptions指定編譯選項指定連接選項指定工作環(huán)境指定目錄指定參數(shù)向環(huán)境文件中保存當前的工作環(huán)境從環(huán)境文件中恢復當前的工作環(huán)境Options菜單Options/Directories菜單2.選擇用戶文件的存放目錄

當需設用戶文件的存放目錄時,在主菜單中選“file”選項,彈出相應的下拉菜單,如圖1.12所示。將光標移到“changedir”選項并按回車鍵,彈出一個子目錄提示框。用戶可在該提示框輸入用戶文件的存放目錄,輸入完后按下回車即可,如輸入C:\TC\USER(前面已創(chuàng)建的目錄)。3.建立工作環(huán)境這里所說的工作環(huán)境,是指對TurboC工作狀態(tài)的設置以及編譯程序的連接程序要求的環(huán)境變量的設置。具體地說,就是告訴TurboC,#include命令(即預編譯命令)所包含的文件和庫文件所在的目錄以及告訴TurboC編程后其輸出文件存放的目錄。簡單的說,就是告訴TurboC到哪里去尋找編譯、鏈接所需的文件,及生成的可執(zhí)行文件放到哪里。操作步驟如下:

(1)按<F10>鍵,在主菜單上選擇“Options”選項并按回車鍵,顯示如圖1.13所示。

(2)在“Options”子菜單中選擇“Directories”選項并按回車鍵,將彈出子菜單,如圖1.14所示。子菜單中各選項的含義是:“IncludeDirectories”選項:說明標準包含文件的目錄即INCLUDE所在的位置。輸入時應包含文件所在的盤符和路徑,這里輸入C:\TC\INCLUDE?!癓ibraryDirectory”選項:說明TurboC運行時庫文件所在的目錄,即LIB所在的位置。輸入時應包含文件所在的盤符和路徑,這里輸入C:\TC\LIB?!癘utputdirectory”選項:編譯、連接后的可執(zhí)行文件所存放的目錄,即用戶的.obj和.exe文件的存放位置。用戶選擇輸入已存在的目錄,若為空,則這些文件被放在當前目錄。這里輸入C:\TC\USER。“TurboCdirectory”選項:TurboC文件所在的目錄,用于TurboC系統(tǒng)尋找配置文件(.TC)和幫助文件(TCHELP.TCH)。這里應輸入C:\TC。EvaluateCtrl-F4CallstackCtrl-F3FindfunctionRefreshdisplayDisplayswappingSmartSourcedebuggingOn計算變量或表達式的值,顯示結果當調(diào)試程序調(diào)用多級函數(shù)時,顯示調(diào)用棧查找函數(shù)。在編輯窗口顯示被查找函數(shù)的源程序刷新屏幕,恢復當前屏幕內(nèi)容指定在調(diào)試程序時若程序產(chǎn)生錯誤是否切換到用戶屏幕指定進行源程序調(diào)試時的選項AddwatchCtrl-F7DeletewatchEditwatchRemoveallwatchesTogglebreakpointCtrl-F8ClearallbreakpointsViewnextbreakpointOn增加監(jiān)視表達式刪除指定的監(jiān)視表達式編輯監(jiān)視表達式刪除全部監(jiān)視表達式設置/取消程序調(diào)試時的中斷點清除全部中斷點將光標定位在下一個中斷點(1)編輯新文件:

命令主菜單的選擇:按F10

鍵,用←和→選擇主菜單,再回車;或Alt鍵加每個主菜單前的首字母(紅色)。如:ALT+F可拉下File菜單。

命令子菜單的選擇:拉下子菜單后,用↑和↓鍵選擇子菜單命令,再回車。編輯新文件:File→New保存文件:save(2)編輯已存在的文件:打開文件:File→Load或F3File→Pick或ALT+F3保存文件:File→Save或F2另存文件:File→Writeto4.編輯源程序說明:

a.如果輸入的文件名為新建文件,則屏幕上為空白,用戶可以直接從鍵盤上輸入程序內(nèi)容。

b.如果輸入的文件名是已經(jīng)存在,則屏幕上將顯示源程序文件的內(nèi)容,可以進行編輯修改。

c.如果記不清要編輯的源程序文件名,可以在屏幕上出現(xiàn)“*.c”提示時,直接按回車鍵,TurboC就會顯示當前目錄下的所有擴展名為“.c”的文件供用戶選擇。5.常用編輯鍵光標左移一個字符光標右移一個字符光標下移一個字符光標上移一個字符PgUp上翻一頁PgDn下翻一頁Home光標移到行首End光標移到行尾Insert(Ins)Inserton/offCtrl-N或Enter插入一個空白行Backspace刪除光標左邊的字符Delete(Del)刪除光標所在的字符Ctrl-Y刪除光標所在行5.編譯、鏈接和運行Compile→CompiletoOBJ或Alt+F9

編譯時如提示錯誤,修改程序,然后再重新編譯,直到無任何錯誤編譯成功。1.對單文件的編譯、鏈接(1)編譯:對源程序進行編譯,生成目標文.OBJ。鏈接:將目標程序與庫函數(shù)和包含文件等鏈接成一個可執(zhí)行文件.EXE。

CompileLinkEXEfile(或按Alt+c,再按L鍵)

注意:編譯、鏈接完全正確并不代表程序完全正確,只能說明無語法錯誤,不一定代表算法正確或運行結果正確。3.運行程序:(1)按F10鍵回到主菜單(或按Alt+R),選擇Run選項,在其下拉菜單中選擇Run命令項,即可運行已生成的可執(zhí)行文件。

(2)直接按Ctrl+F9,將一次完成編譯、鏈接到運行的全過程。

(3)在DOS環(huán)境下直接運行可執(zhí)行文件,設可執(zhí)行文件名為gao.exe,則執(zhí)行命令為:C:\TC\gao<回車>

查看結果:程序運行后系統(tǒng)自動回到TurboC編輯屏幕,要想查看程序的運行結果

,可在“Run”菜單中選“UserScreen”選項或直接按Alt+F5,查看后按任意鍵返回到編輯窗口。2.一次完成編譯和鏈接:生成目標文件和可執(zhí)行文件

CompileMakeEXEfile6.TurboC的熱鍵

只要在TurboC的環(huán)境下,不論處于什么狀態(tài)下,按下熱鍵可執(zhí)行相應的菜單功能。熱鍵功能對應菜單命令F1激活幫助窗口,顯示光標位置的有關操作信息F2將編輯窗口中的文件一指定文件名存盤Save

F3裝入指定文件LoadF4將程序執(zhí)行到光標所在的行后暫停GotocursorF5縮放當前窗口F6切換活動窗口F7調(diào)試程序,每次執(zhí)行一行程序,可進入被調(diào)函數(shù)Traceinto

F8調(diào)試程序,每次執(zhí)行一行程序,不進入被調(diào)函數(shù)

StepoverF9編譯、連接源程序,生成可執(zhí)行文件F10進入主菜單Ctrl-F1

調(diào)用光標所在位置有關函數(shù)的上下文幫助信息Ctrl-F2終止當前調(diào)試過程,釋放程序空間,關閉文件ProgramresetCtrl-F3顯示調(diào)用棧CallstackCtrl-F4計算表達式EvaluateCtrl-F7在觀察窗口中輸入表達式AddwatchCtrl-F8

設置斷點的開關Togglebreakpoint

Ctrl-F9運行程序RunAlt-F1顯示上一次顯示的幫助信息Alt-F3在最后裝入的8個文件中選取文件裝入PickAlt-F5顯示用戶屏幕,觀看輸出結果Userscreen

Alt-F7定位上一個錯誤Alt-F8定位下一個錯誤Alt-F9將編輯窗口中的源程序進行編譯,生成OBJ文件Alt-B進入Break/Watch菜單Alt-C進入Compile菜單Alt-D進入Debug菜單Alt-E進入Edit菜單Alt-F進入File菜單Alt-O進入Option菜單Alt-P進入Project菜單Alt-R進入Run菜單Alt-X退出TutboC

Quit補充:*程序設計的基本步驟*.1程序設計的基本步驟*.2程序的基本結構與算法*.3程序設計的模塊化思想*.1程序設計的基本步驟一、程序程序是指令的有序集合;是一組為完成某種任務而編制的指令的序列。而指令是規(guī)定計算機進行某種操作的命令。計算機的工作過程也就是執(zhí)行指令的過程,計算機所做的任何工作都是執(zhí)行程序的結果??梢哉f,程序是計算機賴以生存的糧食,離開程序,計算機寸步難行。二、計算機語言計算機語言是人與計算機進行信息交流的必備工具,又稱為程序設計語言,用來實現(xiàn)程序設計。計算機語言分為:機器語言、匯編語言和高級語言。高級語言使用人們熟習的文字、符號及數(shù)學表達式來編寫程序,是一種接近人們習慣的程序設計語言,使程序的編寫和操作十分方便,因此使用極為廣泛。

用高級語言編寫的程序稱為“源程序”,計算機不能直接執(zhí)行源程序,源程序必須翻譯為計算機能夠接受和執(zhí)行的二進制代碼所表示的“目標程序”(也稱機器語言)。具有這種翻譯功能的程序稱為“編譯程序”,如圖1.1所示。編譯程序目標程序源程序每一種高級語言都有與其相應的編譯程序,在計算機內(nèi)運行編譯程序,才能運行相應的高級語言所編寫的源程序。本書所介紹的C語言(TurboC)是目前國內(nèi)外廣泛流行的高級語言,是面向過程的較好的結構化程序設計語言,它不僅是可以用來編寫系統(tǒng)軟件。也可以用來編寫應用軟件,深受廣大程序設計者的歡迎。機器語言:二進制編碼指令匯編語言:助記符高級語言:文字,符號,數(shù)學表達式編寫程序。三、程序設計的基本步驟1.分析問題:確定數(shù)據(jù)結構,建立數(shù)學模型,規(guī)劃輸入數(shù)據(jù)和輸出的結果。對用戶的需求、給定的數(shù)據(jù)、輸出的結果、如何處理等進行具體分析,明確編程目標。

2.確定算法:為解決一個問題而采取的方法和步驟稱為算法。算法的設計依據(jù)所給定的數(shù)據(jù)結構。

3.編寫程序:依據(jù)所確定的算法,用程序設計語言編寫程序,存入計算機中。

4.調(diào)試程序:在編譯程序環(huán)境下,對源程序編輯、編譯、鏈接、調(diào)試運行,修改程序中的語法錯誤和邏輯錯誤,直至程序運行成功。

5.建立文檔資料:整理源程序及總結分析結果,程序技術說明,用戶使用說明等,以便今后維護和修改。

評價一個程序的標準有以下幾條:(1)正確性:保證程序執(zhí)行結果要正確。(2)結構性:程序組成結構中的成分要少而精,各種組成結構獨立性要強,彼此間的聯(lián)系簡單。(3)高效率:程序運行時間要快,占用存儲空間要小。(4)適應性:程序適應范圍要廣,具有抗干擾的能力,適應于不同的環(huán)境和條件下運行。(5)易用性:適應用戶的需求,方便用戶的使用。(6)可讀性/可維護性:程序結構要清晰,便于閱讀和理解,修改和維護。*.2程序的基本結構與算法一、算法

編寫正確的程序必須具備兩個基本條件: 一是要掌握一門計算機高級語言的語法規(guī)則; 二是要掌握解題的方法和步驟。計算機語言只是一種工具,只學習語言的語法規(guī)則是不夠的,重要的是針對各種類型的問題,擬定出有效的解題方法和步驟,即算法。算法概念也是計算機程序設計中最基本概念之一。

著名計算機科學家沃思(NikiklausWirth)提出一個公式:數(shù)據(jù)結構+算法=程序

算法是指為解決某一特定的問題,所給出的一系列確切的、有限的操作步驟;數(shù)據(jù)結構是對參與運算的數(shù)據(jù)以及數(shù)據(jù)的關系的描述。算法和數(shù)據(jù)結構是程序的兩個重要方面。

在算法設計中應遵循以下幾個準則(1)可執(zhí)行性。算法中的每一步驟,都必須是所使用的高級語言能夠描述的操作。(2)確定性。算法中每一步操作步驟必須有確切的含義,無“二義性”,即該操作對于相同的輸入必須得到相同的結果。(3)有窮性。一個算法必須在有限操作步驟完成后,得出正確結果,能夠使算法結束。(4)輸入。一個算法,可以有零個、一個或多個特定對象的輸入。(5)輸出。一個算法,其主要目的是求解問題,可以有一個或多個與輸入相關的輸出。

二、算法的表示方法

怎樣表示一個算法呢?一般采用自然語言、傳統(tǒng)流程圖或N-S結構圖,偽代碼,PAD圖(ProblemAnalysisDiagram,意為問題分析圖)等。

1.

自然語言表示

自然語言可以是中文、英文等,用自然語言表示的算法通俗易懂,但一般篇幅冗長,表達上往往不易準確,容易引起理解上的“岐義性”,用于算法較簡單的情況,例如s=1+2+3+.....+99+100的自然語言算法如下。

分析:設i從1到100變化,每次i變化之后將結果加入累加和S中,S的初值設為0。自然語言算法如下:(a)將1送到i之中;(b)s+i的結果送到s之中;(c)i自增1;(d)將i與100比較,如果不大于100,則跳轉(zhuǎn)(b),否則轉(zhuǎn)(e);

(e)輸出S的值,即累加結果。

2.傳統(tǒng)流程圖表示

傳統(tǒng)流程圖是用規(guī)定的一組圖形符號、流程線和文字說明,來表示各種操作的算法。傳統(tǒng)流程圖常用的符號如表所示:…….圓內(nèi)有標記

例:S=1+2+3+……+99+100的傳統(tǒng)流程圖i=1s=0s=s+i輸出si<=100i=i+1yn3.用N-S結構圖表示1973年由美國學者I.Nassi和

B.Shneidermam提出一種結構化流程圖,簡稱N-S結構圖(N和S是他們英文姓名的第一個字母)。Chapin在1974年進行了進一步擴展,因此,N-S結構圖又稱為Chapin圖或盒圖。N-S結構圖的三種基本結構如下:程序中的語句按其排列的先后順序逐條執(zhí)行。處理A處理B(a)傳統(tǒng)流程圖(b)N-S結構圖順序結構流程圖(1)順序結構:a=3b=4s=a+b輸出和a=3b=4s=a+b輸出smain(){inta,b,s;a=3;b=4;s=a+b;printf(“s=%d\n”,s);}[程序演示]例:求s=a+b的值。(2)分支結構

分支結構又稱選擇結構,在分支結構中,要根據(jù)邏輯條件成立與否,分別選擇執(zhí)行不同的處理。條件yesno處理A處理B處理A(a)傳統(tǒng)流程圖(b)N-S結構圖

分支結構條件真假處理B例:求a、b兩數(shù)中較大的數(shù)。a>bmax=amax=b輸出maxyesnoa>byesnomax=amax=bmain(){inta=6,b=8,max;if(a>b)max=a;elsemax=b;printf(“max=%d\n”,max);}[程序演示](3)循環(huán)結構循環(huán)結構分為當型循環(huán)和直到型循環(huán)兩種類型。

在當型循環(huán)結構中,當邏輯條件成立時,就反復執(zhí)行循環(huán)體,直到邏輯條件不成立時結束循環(huán)。

在直到型循環(huán)結構中,反復執(zhí)行循環(huán)體,直到邏輯條件成立時結束循環(huán)(即邏輯條件不成立時繼續(xù)執(zhí)行循環(huán)體)。條件條件循環(huán)體循環(huán)體當條件成立時繼續(xù)假真

當條件成立時結束循環(huán)體條件真假循環(huán)體(a)傳統(tǒng)流程圖(b)N-S結構圖當型循環(huán)結構(a)傳統(tǒng)流程圖(b)N-S結構圖直到型循環(huán)結構一般循環(huán)結構包括四部分:(1)初始化部分——為循環(huán)變量以及各種有關變量賦初始值;注意此部分在其他各部分之前;(2)循環(huán)體——重復執(zhí)行的部分;(3)修改部分——修改循環(huán)變量值,為下一次重復執(zhí)行做準備;(4)判斷檢查部分——判斷檢查循環(huán)變量之值,是否已超過循環(huán)變量的終值,若未超過則繼續(xù)重復執(zhí)行循環(huán)體,否則結束循環(huán)。當型和直到型循環(huán)還可以可表示如下:循環(huán)變量=初始值循環(huán)變量﹥終值循環(huán)體循環(huán)變量=循環(huán)變量的后繼(a)是否循環(huán)變量=初始值循環(huán)變量﹥終值循環(huán)體循環(huán)變量=循環(huán)變量的后繼是否(b)循環(huán)結構示意圖例:計算n!。i=1,t=1輸入n輸出t(n!)i<=n?循環(huán)體t=t*ii=i+1yesnoi=1,t=1循環(huán)條件i<=n循環(huán)體t=t*ii=i+1輸出t(n!)main(){inti,n,t;i=1;t=1;scanf(“%d”,&n);while(i<=n){t=t*i;i=i+1;}printf(“n!=%d\n”,t);}[程序演示]1)當型循環(huán):當條件滿足時,就執(zhí)行循環(huán)體,否則就退出循環(huán)體。先判斷條件,在執(zhí)行循環(huán)體。2)直到型循環(huán)

先執(zhí)行循環(huán)體,再判斷條件,條件不滿足時,就退出循環(huán)體。i=1,t=1循環(huán)條件i<=n循環(huán)體t=t*ii=i+1輸出t(n!)i=1,t=1輸入n輸入t(n!)i<=n?循環(huán)體t=t*ii=i+1yesnomain(){intt=1,i=1;scanf(“%d”,&n);do{t=t*i;i=i+1;}while(i<=n);printf(“n!=%d\n”,t);}[程序演示]4.用偽代碼表示

偽代碼是用一種介于自然語言和計算機語言之間的文字和符號來描述算法。它書寫方便、格式緊湊、比較好懂、也便于向程序過度。用偽代碼描述算法并無固定的、嚴格的語法規(guī)則,只要把意思表達清楚,并且書寫的格式要寫成清晰易讀的形式。例:用偽代碼描述S=1+2+3+……+99+100的算法

i=1s=0Loop:s+i→si+1→iifi<=100thengotoLoopprints

理論證明,任何復雜的算法對可以用順序、分支、循環(huán)三種基本結構組合、嵌套進行描述。由于N-S結構圖無箭頭指向,而局限在一個個嵌套的框中,最后描述的結果必然是結構化的,因此N-S結構圖描述表示的算

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論