黃開元C程序設(shè)計(jì)第1章_第1頁
黃開元C程序設(shè)計(jì)第1章_第2頁
黃開元C程序設(shè)計(jì)第1章_第3頁
黃開元C程序設(shè)計(jì)第1章_第4頁
黃開元C程序設(shè)計(jì)第1章_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

C程序設(shè)計(jì)第一章C語言概述C語言出現(xiàn)的歷史背景1960:ALGO601963:CPL(CombinedProgrammingLanguage)1967:BCPL(BasicCPL)1970:B1973:C(87ANSIC,90ISOC)1990:C++1994:JAVACPL

是英國劍橋大學(xué)推出的,規(guī)模大,開始使語言接近硬件。BCPL是英國劍橋大學(xué)M.Richards簡化CPL,提取核心部份,使用受限制。B

是美國貝爾實(shí)驗(yàn)室Ken.Thompson又進(jìn)一步簡化BCPL,只用于特殊用途。C是美國貝爾實(shí)驗(yàn)室D.M.Ritchie和Ken.Thompson

克服了B的缺點(diǎn),使C成為具有雙重功能的程序設(shè)計(jì)語言,得到了推廣。成為80年代的最現(xiàn)代語言.ALGO60是面向問題的高級語言。太龐大,太復(fù)雜,沒能推廣。C++是面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,克服了C的缺點(diǎn),

成為90年代的最現(xiàn)代語言,已廣泛使用。JAVA

簡化了對C++的使用。ANSIC(AmericanNationalStandardInstituteC)

美國國家標(biāo)準(zhǔn)化協(xié)會ISOC(InternationalStandardOrganizationC)

國際標(biāo)準(zhǔn)化組織1.1C語言出現(xiàn)的歷史背景說明:

不同版本的C編譯系統(tǒng)所實(shí)現(xiàn)的語言功能和語法規(guī)則又略有差別,因此讀者應(yīng)了解所用的C語言編譯系統(tǒng)的特點(diǎn)(可以參閱有關(guān)手冊)。本書的敘述基本上以ANSIC為基礎(chǔ)。程序:用于指揮計(jì)算機(jī)執(zhí)行各種動作以便完成指定任務(wù)的指令集合。語言:用以表達(dá)情意的聲音,是人類最重要的交際工具,它跟思想有密切關(guān)系。人們用計(jì)算機(jī)語言向計(jì)算機(jī)表達(dá)自己的思想,向計(jì)算機(jī)發(fā)出命令,以達(dá)到控制計(jì)算機(jī)為人們服務(wù)的要求。高級語言所編制的程序不能直接被計(jì)算機(jī)識別,必須經(jīng)過轉(zhuǎn)換(翻譯)才能被執(zhí)行。計(jì)算機(jī)所能識別的語言只有機(jī)器語言,即由0和1構(gòu)成的代碼。它非常難于記憶和識別。人們通常使用高級語言編程。C語言是國際上流行的、很有發(fā)展前途的計(jì)算機(jī)高級語言。它既可以用來編寫系統(tǒng)軟件,也可以用來編寫應(yīng)用程序*C程序設(shè)計(jì)語言是一種高級語言高級語言并不是絕對“高級”,只是相對低級語言,在一個高的級別上進(jìn)行編程歷史悠久,戰(zhàn)勛卓著誕生于上世紀(jì)70年代初,成熟于80年代“ANSIC”標(biāo)準(zhǔn)的發(fā)布是C語言成熟的標(biāo)志很多重量級軟件都是用C寫的上天入地,無所不能幾乎沒有不能用C寫出來的軟件,沒有不支持C的系統(tǒng)C語言被分類為高級語言,但實(shí)際上它是一種介于高級語言和低級語言之間的語言。很多流行語言、新生語言都借鑒了它的思想、語法從C++,到Java,再到C#正確地學(xué)好C語言,是學(xué)習(xí)這些流行語言的基礎(chǔ)。硬件(Hardware)操作系統(tǒng)(OS)應(yīng)用程序

(Application)應(yīng)用

平臺基于

平臺的

應(yīng)用

程序低級語言的地盤高級語言的地盤C語言的地盤C程序設(shè)計(jì)語言的地盤以往的擅長:與操作系統(tǒng)和基礎(chǔ)工具有關(guān)的編程任務(wù)操作系統(tǒng)核心,設(shè)備驅(qū)動程序,系統(tǒng)工具,網(wǎng)絡(luò)應(yīng)用,編輯器,字處理工具,編譯器,某些圖形應(yīng)用,以及數(shù)據(jù)庫應(yīng)用未來的發(fā)展:高性能、實(shí)時中間件,嵌入式領(lǐng)域,開發(fā)程序設(shè)計(jì)等學(xué)習(xí)方法2.加強(qiáng)對基本概念和基本語法元素單位的理解3.重視基本概念和語法規(guī)則的記憶5.多加練習(xí)1.調(diào)整學(xué)習(xí)心態(tài),不要鉆牛角尖。4.善于使用代入的方法,從計(jì)算機(jī)角度思考問題1.1c語言的特點(diǎn)1.2c語言的基本語法成分1.3c語言的程序結(jié)構(gòu)1.1C語言的特點(diǎn)1.C語言源程序由多個相互獨(dú)立的函數(shù)組成2.語言簡潔、緊湊,使用方便、靈活C語言只有37個關(guān)鍵字,9種控制語句,書寫形式自由,主要用小寫字母表示。3.數(shù)據(jù)結(jié)構(gòu)豐富

C語言是在B語言的基礎(chǔ)上發(fā)展起來的一種語言。它具有高級語言和低級語言(匯編語言)雙重功能的特點(diǎn),被廣泛用于系統(tǒng)軟件和應(yīng)用軟件的開發(fā),成為目前生命力最旺盛的高級語言之一。其主要特點(diǎn)有:參見書P378附錄C(C99)C89標(biāo)準(zhǔn)只有32個關(guān)鍵字4.運(yùn)算符豐富C語言共有34種運(yùn)算符。C語言的數(shù)據(jù)類型也多種多樣,非常利于各種運(yùn)算。5.具有結(jié)構(gòu)化的控制語句有if...else、while、do...while、switch、for等語句。6.語法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大7.允許直接訪問物理地址,能進(jìn)行位(bit)操作8.目標(biāo)代碼質(zhì)量好,程序執(zhí)行效率高9.可移植性好1.2c語言的基本語法成分1.C語言字符集:字符是C語言的最基本的元素,C語言字符集由字母、數(shù)字、空白、標(biāo)點(diǎn)和特殊字符組成(在字符串常量和注釋中還可以使用漢字等其它圖形符號)。由字符集中的字符可以構(gòu)成C語言進(jìn)一步的語法成分(如,標(biāo)識符,關(guān)鍵詞,運(yùn)算符等)1).字母:A-Z,a-z2).數(shù)字:0-93).空白符:空格,制表符(跳格),換行符(空行)的總稱。空白符除在字符,字符串中有意義外,編譯系統(tǒng)忽略其它位置的空白。空白符在程序中只是起到間隔作用。在程序的恰當(dāng)位置使用空白將使程序更加清晰,增強(qiáng)程序的可讀性。4).標(biāo)點(diǎn)符號、特殊字符:!#%^&+-*/=~<>\|.,;:?‘“()[]{}4.運(yùn)算符:運(yùn)算符將常量、變量、函數(shù)連接起來組成表達(dá)式,表示各種運(yùn)算。2.標(biāo)識符

標(biāo)識符用來標(biāo)識變量名、符號常量名、函數(shù)名、類型名、文件名等的有效字符序列。3.關(guān)鍵字

C語言中一些具有特殊意義的標(biāo)識符稱為關(guān)鍵字。這些關(guān)鍵字在任何時候都不得用作變量名、符號常量名、函數(shù)名、類型名、文件名等。5.分隔符:逗號,空格等。起分隔、間隔作用。6.注釋符:“/*”和“*/”構(gòu)成一組注釋符。也稱保留字:具有特定含義,專門用作C語言特定成分的一類標(biāo)識符。參見書P378附錄C#include<stdio.h>intmain(){printf(“Hello,World.\n”);//輸出結(jié)果

return0;}

輸出“Hello,World.”程序

該程序運(yùn)行時在屏幕上輸出:Hello,World.編譯預(yù)處理命令函數(shù)名函數(shù)體1.3c語言的程序結(jié)構(gòu)

#include<stdio.h>//頭文件intmain()//函數(shù)名{printf(“ThisisaCprogram.\n”);return0;}輸出“ThisisaCprogram.”程序參見書P6例1.1該程序運(yùn)行時在屏幕上輸出:

ThisisaCprogram.程序說明

整個程序由一個函數(shù)組成,也就是主函數(shù)main,主要內(nèi)容如下:#include<stdio.h>是一條編譯預(yù)處理命令(后面細(xì)講),它將C程序庫文件“stdio.h”包含到本程序中

程序第2行到結(jié)束就是主函數(shù),intmain()為函數(shù)的首部,一對花括號括起來的部分是函數(shù)體

程序中的“//文字……”

或“/*文字……*/”部分是注釋

#include<stdio.h>intmain()//addofaandb{inta,b,sum;//變量定義a=10;b=20;//賦值sum=a+b;//求和printf(“sumis%d\n”,sum);//輸出結(jié)果return0;//使函數(shù)返回值為0

}//函數(shù)結(jié)束

求兩數(shù)之和。參見書P8例1.2簡單的C程序舉例編譯預(yù)處理命令main()主函數(shù)一對{}括起來的部分是函數(shù)體scanf(“%d,%d”,&a,&b);//輸入兩個整數(shù)程序運(yùn)行(鍵盤輸入兩個數(shù)):12↙34↙sumis

46運(yùn)行結(jié)果:sumis30程序說明

整個程序由一個函數(shù)組成,也就是主函數(shù)main,主要內(nèi)容如下:#include<stdio.h>是一條編譯預(yù)處理命令(后面細(xì)講),它將C程序庫文件“stdio.h”包含到本程序中

程序第2行到結(jié)束就是主函數(shù),voidmain()為函數(shù)的首部,一對花括號括起來的部分是函數(shù)體

inta,b,sum;為聲明部分語句,定義了a、b、sum三個變量

程序中的“//文字……”或”/*文字……*/”部分是注釋輸入兩個整數(shù),輸出大的整數(shù)。#include<stdio.h>intmain(){//主函數(shù)體開始

intmax(int,int);

//對被調(diào)用函數(shù)max的聲明

inta,b,c;//定義變量a,b,c為整型變量scanf("%d,%d",&a,&b);//輸入變量a和b的值c=max(a,b);//調(diào)用max函數(shù),將所得值賦給cprintf(“max=%d”,c);//輸出變量c的值

return0;//返回函數(shù)值為0}//主函數(shù)體結(jié)束

intmax(intx,inty)//函數(shù)定義{intz;if(x>y)z=x;elsez=y;return(z);}8,5↙max=8

參見書P8~9例1.3程序運(yùn)行(輸入兩個整數(shù)):通過幾個例題分析,1.C程序全部由一個一個的函數(shù)構(gòu)成。至少有且只能有一個主函數(shù)main(),

其它函數(shù)可被主函數(shù)調(diào)用或相互調(diào)用。其它函數(shù)可為C函數(shù)庫中函數(shù),也可為自己編的函數(shù)。此特點(diǎn)稱為程序的模塊化.2.一個函數(shù)由函數(shù)說明(函數(shù)類型,函數(shù)名和參數(shù)類型)和函數(shù)體(說明語句和執(zhí)行語句)兩部分組成。1).函數(shù)的說明部分

包括函數(shù)名、函數(shù)類型、函數(shù)屬性、函數(shù)參數(shù)(形式參數(shù)類型、形參名

)。C程序的要點(diǎn)可歸納如下:3)注意:函數(shù)的聲明部分和執(zhí)行部分都可缺省,例如:voidsmp(){}

這是一個空函數(shù),什么也不做,但是合法的函數(shù)。3.一個C程序總是從main函數(shù)開始執(zhí)行,而main函數(shù)可以出現(xiàn)在整個程序中的任何位置。2).函數(shù)體

最外層{}中的部分。由變量定義和執(zhí)行語句兩部分組成。4.C程序書寫格式自由,一行內(nèi)可寫多個語句,一個語句可分寫在多行上。5.每個語句(包括最后一個語句)和數(shù)據(jù)定義的后面必須有一個分號,“;”表示語句的結(jié)束。

6.C語言本身沒有輸入輸出語句。輸入輸出操作由庫函數(shù)scanf和printf等函數(shù)完成。故一般必須有頭文件。7.可以用“//……”或“/……/”在C程序中的任何地方作注釋以提高程序的可讀性。#include<stdio.h>#……

xx(形參系列){……}intmain(){……調(diào)用xx/xxx(實(shí)參系列)……return0;}xxx(形參系列){……return(z);}頭文件(必須有)*C程序的(一般)編寫形式:主函數(shù)(必須有且僅有一個)子函數(shù)(依需要、可有可無)子函數(shù)(依需要、可有可無)參見書P10~12C語言是最優(yōu)秀的程序設(shè)計(jì)語言之一

附:C程序的上機(jī)步驟參見書P12~14C程序的上機(jī)步驟源程序C語言庫函數(shù)目標(biāo)程序可執(zhí)行程序有錯有錯有錯有錯編輯編譯連接執(zhí)行結(jié)束開始運(yùn)行C程序的步驟和方法C語言上機(jī)步驟:上機(jī)輸入與編輯源程序?qū)υ闯绦蜻M(jìn)行編譯與庫函數(shù)連接運(yùn)行目標(biāo)程序參見書P8圖1-1C程序的上機(jī)步驟:TurboC的上機(jī)方法TurboC提供兩種編輯、編譯、連接、運(yùn)行C程序的方法。1集成開發(fā)環(huán)境:即編輯、編譯、連接、運(yùn)行C程序的功能都完整地組建在TurboC系統(tǒng)內(nèi),用戶通過一個簡明的界面(菜單)來訪問、使用。

快速、高效、易學(xué)、易用。2命令行編譯器:啟動TurboC:在DOS提示符后敲入:tc現(xiàn)已少用。

TurboC中常用的(快捷)功能鍵、編輯命令:

使用菜單F10激活菜單Alt+F/C/R/O使用菜單ESC退出菜單Alt+X退出TC程序調(diào)試:F7跟蹤執(zhí)行F8單步執(zhí)行Ctrl+F7設(shè)置短點(diǎn)Ctrl+F8觀察變量Ctrl+F4計(jì)算表達(dá)式其它常用的功能鍵F1幫助Ctrl+F1庫函數(shù)幫助ESC退出幫助F3裝入源程序F2源程序存盤F5

溫馨提示

  • 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

提交評論