記憶語法、思考算法。讀懂程序、循序漸進。記好筆記、上機_第1頁
已閱讀1頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、記憶語法、思考算法。讀懂程序、循序漸進。記好筆記、上機調(diào)試。,學(xué)習(xí)方法,程序設(shè)計語言,計算機語言的種類,機器語言,匯編語言,高級語言,面向機器,面向過程,面向?qū)ο?,,,,,程序翻譯方式,例如:,X=1Y=2Print X+Y,main( ){int x , y; x=1; y=2; printf(“%d,%d\n”,x,y);},Basic源程序,C源程序,01代碼,01代碼,01代碼,01代碼,執(zhí)行,執(zhí)行,執(zhí)行,

2、,,,解 釋,,,,,,…,01代碼,執(zhí)行,,,,編 譯,目標(biāo)程序,常用的C語言編譯系統(tǒng),Turbo C 2.0,DOS環(huán)境英文界面編譯C程序,,,機房選用,,Turbo C++ 3.0,DOS界面支持鼠標(biāo)編譯C++程序.CPP兼容C程序.C,,第三版選用,,Visual C++6.0,可視化開發(fā)環(huán)境Windows界面編譯C++程序,,實際開發(fā),,復(fù)賽上機環(huán)境:Dev-C++ 4.9.9.2,C語言概述,C語言–––

3、既可作為系統(tǒng)軟件的程序設(shè)計語言,又可作為應(yīng)用軟件的程序設(shè)計語言。,尤其是當(dāng)今計算機應(yīng)用極為廣泛,軟件的設(shè)計、編寫質(zhì)量要求高,經(jīng)常與硬件部分打交道,如:界面設(shè)計等,所以用C語言編寫是最理想的。因而C語言也是當(dāng)前計算機語言中用得最廣泛的語言之一。,,1.1 C語言出現(xiàn)的歷史背景,一、操作系統(tǒng)的設(shè)計語言,O.S. –––操作系統(tǒng),為用戶使用計算機提供一個操作環(huán)境:系統(tǒng)命令、語言編程等。,如:DOS. UNIX,以前:O. S .軟件用匯編指令

4、編寫。匯編語言:一種二進制指令代碼的符號表示,既煩鎖,又易出錯,可讀性差。,改進:用C語言編寫,既提高了程序的可讀性,又可與硬件打交道。,二、發(fā)展過程,? 1960年出現(xiàn)了Algol60語言,但該語言主要面向問題,與硬件較遠,故英國劍橋大學(xué)推出了CPL(Combined Programming Language),? 1967年,Matin Richards對CPL進行改進、簡化、推出了BCPL (Basic Combined Prog

5、ramming Language),? 1970年,美國貝爾實驗室Ken Thomson 以BCPL為基礎(chǔ),再次簡化推出了B語言,并寫了第一個UNIX系統(tǒng)。,? 美國貝爾實驗室D.M. Ritchie 在B語言基礎(chǔ)上設(shè)計出了C語言,并用其將UNIX系統(tǒng)全部改寫并實現(xiàn)。,? 經(jīng)進一步改進,至1977年出現(xiàn)了與具體機器無關(guān)的C編譯文本,從而使C語言廣泛應(yīng)用,各種機器皆可使用。,? 1978年,美國Brain W.Kernighan與Denn

6、is. M. Ritchie 聯(lián)合出版一書《The C Programming Language》成為 ANSI C之基礎(chǔ)。,? 1983年,美國標(biāo)準(zhǔn)化協(xié)會(ANSI) 制定了ANSI C。,? ANSI C 為基礎(chǔ):,不同機器有不同版本,尤其是函數(shù)均應(yīng)參考相應(yīng)的機器。,,1.2 C語言的特點,只有通過學(xué)習(xí),方可理解C之特點,先簡敘之:,1. 簡潔、緊湊、方便、靈活 32個關(guān)鍵字,9種控制語句, 主要用小寫字母,壓縮

7、一切不必要成分,2. 運算符豐富 除了最基本的+、-、×、÷、%等運算外,還將括號、賦值、類型強制轉(zhuǎn)換等均作為運算符,共有34種運算符。,3. 數(shù)據(jù)結(jié)構(gòu)豐富 除基本類型外, 有指針, 結(jié)構(gòu)體、共同體等類型。,4. 具有結(jié)構(gòu)化的控制語句 模塊完整,控制中的語句可完整化。,5. 語法嚴(yán)格,但有靈活性 如:數(shù)據(jù)類型可相互通用:整型、字符型通用。,6. 可與機器硬件打交道,直接訪問內(nèi)存地址,

8、具有“ 高”、“ 低”級語言之功能。,7. 生成目標(biāo)代碼質(zhì)量高,執(zhí)行效率高。,8. 可移植性優(yōu)于匯編語言。,,1.3 簡單的C程序介紹,例1.1:顯示一行信息。,例 1.2main ( )/*求兩數(shù)之和*/{ int a,b,sum; /*這是定義變量*/ a=123; b=456; /* 以下3行為C語句 */ sum=a+b; printf ("sum is

9、%d/n", sum); } 本程序的作用是求兩個整數(shù)a和b之和sum。/*……*/表示注釋部分,為便于理解,我們用漢字表示注釋,當(dāng)然也可以用英語或漢字拼音作注釋。注釋只是給人看的,對編譯和運行不起作用。注釋可以加在程序中任何位置。第2行是聲明部分, 定義變量a和b,指定 a和b為整型(int)變量。第3行是兩個賦值語句,使a和b的值分別為123和,456。第4行使sum的值為a+b,第5行中“%d”是輸入輸出

10、的“格式字符串”,用來指定輸入輸出時的數(shù)據(jù)類型和格式(詳見第4章),“%d”表示“以十進制整數(shù)形式輸出”。在執(zhí)行輸出時,此位置上代以一個十進制整數(shù)值。printf函數(shù)中括弧內(nèi)最右端sum是要輸出的變量,現(xiàn)在它的值為579(即123+456之值)。因此輸出一行信息為sum is 579,main( ) /* 主函數(shù)*/ { int a, b, c;

11、 /*定義變量*/ scanf("%d, %d", &a, &b); /*輸入變量a和b的值*/ c=max(a, b);/*調(diào)用max函數(shù),將得到的值賦給c*/ printf("max=%d",c) ; /*輸出c的值*/ },例1.3,int max (int x, int y) /*對形參x、

12、y作類型定義*/ { int z; /*max函用到的變量z,也要加以定義*/ z=y; if (x>y) z=x; return (z); /*將z的值返回,通過max帶回調(diào)用處*/ },本程序包括兩個函數(shù):主函數(shù)main和被調(diào)用的函數(shù)max。max函數(shù)的作用是將x和y中較大者的值賦給變量z。return語句將z的值返回給主調(diào)函數(shù)main。返回值是通過函數(shù)名max

13、帶回到main函數(shù)的調(diào)用處。main函數(shù)中的scanf是“輸入函數(shù)”的名字(scanf和printf都是C系統(tǒng)提供的標(biāo)準(zhǔn)輸入輸出函數(shù))。程序中scanf函數(shù)的作用是輸入a和b的值。&a和&b中的“&”的含義是“取地址”,此scanf函數(shù)的作用是將兩個數(shù)值分別輸入到變量a和b的地址所標(biāo)志的單元中,也就是輸入給變量a和b。,main函數(shù)中第4行為調(diào)用max函數(shù),在調(diào)用時將實際參數(shù)a和b的值分別傳送給max函數(shù)中的形式

14、參數(shù)x和y。經(jīng)過執(zhí)行max函數(shù)得到一個返回值(即max函數(shù)中變量z的值),把這個值賦給變量c。然后輸出c的值。printf函數(shù)中雙引號內(nèi)的“max=%d”,在輸出時,其中“%d”將由c的值取代之,“max =”原樣輸出。程序運行情況如下: 8,5 (輸入8和5給a和b) max=8 (輸出c的值),本例用到了函數(shù)調(diào)用、實際參數(shù)和形式參數(shù)等概念,我們只做了很簡單的解釋。讀者如

15、對此不大理解,可以先不予以深究,在學(xué)到以后有關(guān)章節(jié)時,問題自然迎刃而解。在此介紹此例子,無非是使讀者對C程序的組成和形式有一個初步的了解。,通過以上幾個例子,可以看到:,1、C程序是由函數(shù)構(gòu)成的。一個C源程序至少包含一個main函數(shù),也可以包含一個main函數(shù)和若干個其他函數(shù)。因此,函數(shù)是C程序的基本單位。被調(diào)用的函數(shù)可以是系統(tǒng)提供的庫函數(shù)(例如printf和scanf函數(shù)),也可以是用戶根據(jù)需要自己編制設(shè)計的函數(shù)(例如,例1.3中的m

16、ax函數(shù))。C的函數(shù)相當(dāng)于其他語言中的子程序,用函數(shù)來實現(xiàn)特定的功能。程序中的全部工作都是由各個函數(shù)分別完成的。編寫C程序就是編寫一個個函數(shù)。,2、一個函數(shù)由兩部分組成:,① 函數(shù)的首部,即函數(shù)的第一行。包括函數(shù)名、函數(shù)類型、函數(shù)屬性、函數(shù)參數(shù)(形參)名、參數(shù)類型。例如,例1.3中的max函數(shù)的首部為int max (int x ,    int

17、y )↓ ↓ ↓ ↓    ↓ ↓ 函數(shù)類型 函數(shù)名 函數(shù)參數(shù)類型 函數(shù)參數(shù)名 函數(shù)參數(shù)類型 函數(shù)參數(shù)名 一個函數(shù)名后面必須跟一對圓括弧, 函數(shù)參數(shù)可以沒有,如main( )。,② 函數(shù)體,即函數(shù)首部下面的大括弧{……}內(nèi)的部分。如果一個函數(shù)內(nèi)有多個大括弧,則最外層的一對{ }為函數(shù)體的范圍。函數(shù)體

18、一般包括: 聲明部分:在這部分中定義所用到的變量,如例1.3中main函數(shù)中的“int a,b,c;”。 在第8章中還將會看到,在聲明部分中要對所調(diào)用的函數(shù)進行聲明。執(zhí)行部分:由若干個語句組成。,當(dāng)然,在某些情況下也可以沒有聲明部分(例如,例1.1)。甚至可以既無聲明部分,也無執(zhí)行部分。如:dump ( ){ }它是一個空函數(shù),什么也不干,但這是合法的。,3、 一個C程序總是從main函數(shù)開始執(zhí)行的,而不論main函數(shù)在整個

19、程序中的位置如何(main函數(shù)可以放在程序最前頭,也可以放在程序最后,或在一些函數(shù)之前,在另一些函數(shù)之后)。,4、C程序書寫格式自由,一行內(nèi)可以寫幾個語句, 一個語句可以分寫在多行上。C程序沒有行號,也不像FORTRAN或COBOL那樣嚴(yán)格規(guī)定書寫格式(語句必須從某一列開始書寫)。,5、每個語句和數(shù)據(jù)定義的最后必須有一個分號。分號是C語句的必要組成部分。例如: c=a+b; 分號不可少。即使是程序中最后一個語句也應(yīng)包含

20、分號。,6、C語言本身沒有輸入輸出語句。輸入和輸出的操作是由庫函數(shù)scanf和printf等函數(shù)來完成的。C對輸入輸出實行“函數(shù)化”。由于輸入輸出操作牽涉到具體的計算機設(shè)備,把輸入輸出操作放在函數(shù)中處理,就可以使C語言本身的規(guī)模較小,編譯程序簡單,很容易在各種機器上實現(xiàn),程序具有可移植性。,7、可以用/*……*/對C程序中的任何部分作注釋。一個好的、有使用價值的源程序都應(yīng)當(dāng)加上必要的注釋,以增加程序的可讀性。,比如:例1.3中的max函

21、數(shù),延伸知識:,許多程序設(shè)計語言中,可以將一段經(jīng)常需要使用的代碼封裝起來,在需要使用時可以直接調(diào)用,這就是程序中的函數(shù)。,,編譯系統(tǒng)的庫文件提供的庫函數(shù),C程序的上機步驟,我們已經(jīng)看到了一些用C語言編寫的程序。為了使計算機能按照人們的意志進行工作,必須根據(jù)問題的要求,編寫出相應(yīng)的程序。所謂程序,就是一組計算機能識別和執(zhí)行的指令。每一條指令使計算機執(zhí)行特定的操作。程序可以用高級語言(例如QBASIC,F(xiàn)ORTRAN,PASCAL,C等)編

22、寫。用高級語言編寫的程序稱為“源程序”(source program)。從根本上說,計算機只能識別和執(zhí)行由0和1組成的二進制的指令,而不能識別和執(zhí)行用高級語言寫的指令。為了使計算機能執(zhí)行高級語言源程序,必須先用一種稱為“編譯程序”的軟件,把源程序翻譯成二進制形式的“目標(biāo)程序”, 然后將該目標(biāo)程序與系統(tǒng)的函數(shù)庫和其他目標(biāo)程序連接起來,形成可執(zhí)行的目標(biāo)程序。,在編好一個C源程序后,如何上機運行呢? 在紙上寫好一個程序后,要經(jīng)過以下幾個步驟

23、:1.上機輸入與編輯源程序 2.對源程序進行編譯 3.與庫函數(shù)連接 4.運行目標(biāo)程序這樣幾個步驟。以上過程如圖1.1所示。其中實線表示操作流程,虛線表示文件的輸入輸出。例如,編輯后得到一個源程序文件f.c, 然后在進行編譯時再將源程序文件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)存并使之運行。在了解了C語言

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論