版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
會(huì)計(jì)學(xué)1C語(yǔ)言程序設(shè)計(jì)chapter1.1C語(yǔ)言的發(fā)展簡(jiǎn)史一、何為計(jì)算機(jī)語(yǔ)言?人與計(jì)算機(jī)交流的工具。計(jì)算機(jī)每做的一次動(dòng)作,一個(gè)步驟,都是按照已經(jīng)用計(jì)算機(jī)語(yǔ)言編好的程序來(lái)執(zhí)行的,程序是計(jì)算機(jī)要執(zhí)行的指令的集合,而程序全部都是用計(jì)算機(jī)語(yǔ)言來(lái)編寫的。所以人們要控制計(jì)算機(jī)一定要通過(guò)計(jì)算機(jī)語(yǔ)言向計(jì)算機(jī)發(fā)出命令。第1頁(yè)/共31頁(yè)二、計(jì)算機(jī)語(yǔ)言經(jīng)歷了四代發(fā)展:第一代:機(jī)器語(yǔ)言。計(jì)算機(jī)所能識(shí)別的唯一語(yǔ)言,由二
進(jìn)制0、1構(gòu)成的面向特定機(jī)器的低級(jí)語(yǔ)言。優(yōu)點(diǎn):計(jì)算機(jī)可以直接執(zhí)行。缺點(diǎn):編程者難以記憶和識(shí)別。第2頁(yè)/共31頁(yè)第二代:匯編語(yǔ)言。又稱符號(hào)語(yǔ)言,對(duì)機(jī)器指令進(jìn)行簡(jiǎn)單的符號(hào)化。優(yōu)點(diǎn):源程序經(jīng)匯編生成的可執(zhí)行文件比較小,執(zhí)行速度很快。缺點(diǎn):1)匯編源程序比較冗長(zhǎng)、復(fù)雜、容易出錯(cuò)。
2)使用匯編語(yǔ)言編程需要有更多的計(jì)算機(jī)專業(yè)知識(shí)。
3)依賴于計(jì)算機(jī)硬件,可讀性可移植性比較差。
匯編語(yǔ)言程序機(jī)器語(yǔ)言程序
匯編程序第3頁(yè)/共31頁(yè)第三代:高級(jí)語(yǔ)言。完全接近人類習(xí)慣,各種機(jī)器指令用英文
單詞表示。如:BASIC,F(xiàn)ORTRAN,C,PASCAL等。
高級(jí)語(yǔ)言程序機(jī)器語(yǔ)言程序解釋/編譯程序解釋程序執(zhí)行方式類似于“同聲翻譯”,應(yīng)用程序源代碼一邊由相應(yīng)語(yǔ)言的解釋器“翻譯”成目標(biāo)代碼(機(jī)器語(yǔ)言),一邊執(zhí)行,因此效率比較低,而且不能生成可獨(dú)立執(zhí)行的可執(zhí)行文件,應(yīng)用程序不能脫離其解釋器,但這種方式比較靈活,可以動(dòng)態(tài)地調(diào)整、修改應(yīng)用程序。編譯程序
編譯是指在應(yīng)用源程序執(zhí)行之前,就將程序源代碼“翻譯”成目標(biāo)代碼(機(jī)器語(yǔ)言),因此其目標(biāo)程序可以脫離其語(yǔ)言環(huán)境獨(dú)立執(zhí)行,使用比較方便、效率較高。但應(yīng)用程序一旦需要修改,必須先修改源代碼,再重新編譯生成新的目標(biāo)文件(*.OBJ)才能執(zhí)行,只有目標(biāo)文件而沒(méi)有源代碼,修改很不方便。第4頁(yè)/共31頁(yè)
第四代:甚高級(jí)語(yǔ)言,是一種面向?qū)ο蠡蛎嫦騿?wèn)題的高級(jí)語(yǔ)言。
如:VisualBasic,簡(jiǎn)稱VB。VisualC++,簡(jiǎn)稱VC
1980年貝爾實(shí)驗(yàn)室BjameStroustrup
開始對(duì)C語(yǔ)言進(jìn)行改進(jìn)和擴(kuò)充,解決對(duì)開發(fā)大型程序的復(fù)雜性管理問(wèn)題;1983年正式齊名為C++.1994年制定了ANSIC++
標(biāo)準(zhǔn)的草案。1998年Microsoft公司推出基于Windows98
操作平臺(tái)的編程工具VisualC++,圖形化用戶界面,面向?qū)ο蟮某绦蜷_發(fā),網(wǎng)絡(luò)應(yīng)用等功能。第5頁(yè)/共31頁(yè)三、C語(yǔ)言的誕生與發(fā)展C語(yǔ)言是貝爾實(shí)驗(yàn)室于70年代初研制出來(lái)的,后來(lái)又被多次改進(jìn),并出現(xiàn)了多種版本(1)C語(yǔ)言誕生的背景
匯編語(yǔ)言程序依賴于計(jì)算機(jī)硬件,其可讀性和可移植性都很差;但一般的高級(jí)語(yǔ)言又難以實(shí)現(xiàn)對(duì)計(jì)算機(jī)硬件的直接操作(這正是匯編語(yǔ)言的優(yōu)勢(shì))。于是人們盼望有一種兼有匯編語(yǔ)言和高級(jí)語(yǔ)言特性的新語(yǔ)言。第6頁(yè)/共31頁(yè)
(2)C語(yǔ)言的發(fā)展歷程
73年
貝爾實(shí)驗(yàn)室D.M.Ritchie設(shè)計(jì)出C語(yǔ)言,用C改寫UNIX內(nèi)核,生成UNIX第五版
77年
出現(xiàn)不依賴于具體機(jī)器的C語(yǔ)言編譯文本(推動(dòng)UNIX系統(tǒng)在各種機(jī)器實(shí)現(xiàn))
80年代初,美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)(ANSI),根據(jù)C語(yǔ)言問(wèn)世以來(lái)各種版本對(duì)C語(yǔ)言的發(fā)展和擴(kuò)充,制定了ANSIC標(biāo)準(zhǔn)
1987年
ANSI公布C新標(biāo)準(zhǔn)87ANSIC
1990年
ISO(國(guó)際標(biāo)準(zhǔn)化組織)接受上述87ANSIC標(biāo)準(zhǔn),作為ISO的C標(biāo)準(zhǔn)第7頁(yè)/共31頁(yè)3)目前,在微機(jī)上廣泛使用的C語(yǔ)言編譯系統(tǒng)有:
MicrosoftC、TurboC、BorlandC
等。使用時(shí)請(qǐng)參閱相應(yīng)的手冊(cè),注意它們C編譯系統(tǒng)的特點(diǎn)和規(guī)定的差異。本課選定的上機(jī)環(huán)境是MicrosoftC(Windows操作系統(tǒng))。第8頁(yè)/共31頁(yè)
四、C語(yǔ)言的特點(diǎn)
(1)語(yǔ)言簡(jiǎn)潔、緊湊,使用方便、靈活。程序書寫形式自由。共有32個(gè)關(guān)鍵字(附錄II),9種控制語(yǔ)句。
(2)運(yùn)算符豐富,包括算術(shù)、邏輯、逗號(hào)運(yùn)算、移位運(yùn)算等等,多達(dá)44種的運(yùn)算符(附錄III)。
(3)數(shù)據(jù)結(jié)構(gòu)豐富。有整型、實(shí)型、字符型、數(shù)組類型,指針類型、結(jié)構(gòu)類型、共同體類型等等。
(4)具有結(jié)構(gòu)化的控制語(yǔ)句,函數(shù)模塊化。
(5)語(yǔ)法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大。(6)C語(yǔ)言能進(jìn)行位操作,實(shí)現(xiàn)匯編語(yǔ)言的大部分功能,可以直接對(duì)硬件進(jìn)行操作。(7)生成代碼質(zhì)量高,程序執(zhí)行效率高。(8)可移植性好。第9頁(yè)/共31頁(yè)1.2C語(yǔ)言簡(jiǎn)單程序介紹一、C語(yǔ)言程序的結(jié)構(gòu)例1.1
輸出一個(gè)字符串:ThisisaCprogram.
的C語(yǔ)言程序。程序如下:
#include“stdio.h” //包含預(yù)處理語(yǔ)句
main(){printf(“ThisisaCprogram.\n”);}程序運(yùn)行結(jié)果:
ThisisaCprogram.該程序僅由一個(gè)main()主函數(shù)構(gòu)成。stdio.h是標(biāo)準(zhǔn)輸入輸出庫(kù)文件第10頁(yè)/共31頁(yè)例1.2編寫輸出兩個(gè)整數(shù)24、14之和的C程序。
用戶告訴計(jì)算機(jī)要做的操作步驟:(1)定義3個(gè)變量,并給3個(gè)變量分別分配內(nèi)存空間,用于存放整數(shù)值;(2)給2個(gè)變量,賦給24、14兩個(gè)整數(shù);(3)把兩個(gè)整數(shù)的和值,賦給第三個(gè)變量;(4)輸出第三個(gè)變量的值。(5)運(yùn)行結(jié)束。上述操作步驟,稱為“算法”。第11頁(yè)/共31頁(yè)用C語(yǔ)言編寫的源程序如下:
#include“stdio.h” //包含預(yù)處理語(yǔ)句
main(){inta,b,c;/*definethevariables*/a=24;b=14;c=a+b;printf(“%d\n”,c);/*%d:十進(jìn)制數(shù)*/}程序運(yùn)行結(jié)果:38該程序僅由一個(gè)main()主函構(gòu)成。第12頁(yè)/共31頁(yè)例1.3
從鍵盤輸入兩個(gè)整型數(shù),輸出兩數(shù)和的C語(yǔ)言程序。程序如下:
main(){inta,b,c;
printf(“Pleaseinputtwointegers:\n”);scanf(“%d”,&a);
scanf(“%d”,&b);
c=a+b;printf(“%d\n”,c);}該程序僅由一個(gè)main()主函構(gòu)成。人機(jī)交互性程序運(yùn)行情況:Pleaseinputtwointegers:3,58第13頁(yè)/共31頁(yè)該程序也可以改寫成如下:main(){inta,b;scanf(“%d”,&a);
scanf(“%d”,&b);
printf(“%d\n”,a+b);}表達(dá)式應(yīng)用的靈活性第14頁(yè)/共31頁(yè)例1.4從鍵盤輸入兩個(gè)整型數(shù),輸出其中的一個(gè)大數(shù)。intmax(intx,inty){if(x>y)printf(“%d\n”,x);elseprintf(“%d\n”,y);}main(){inta,b;scanf(“%d”,&a);scanf(“%d”,&b);max(a,b);}該程序由2個(gè)函數(shù)構(gòu)成:main()函數(shù)和max()函數(shù)。分支函數(shù)調(diào)用第15頁(yè)/共31頁(yè)總結(jié):1.C程序是由函數(shù)構(gòu)成的。每個(gè)程序由一個(gè)或多個(gè)函數(shù)組成,其中必須有且僅有一個(gè)主函數(shù)main()。函數(shù)容易實(shí)現(xiàn)程序的模塊化.2.一個(gè)可執(zhí)行的C語(yǔ)言程序總是從main函數(shù)開始執(zhí)行,而不論其在整個(gè)程序中的位置如何。3.每條語(yǔ)句或數(shù)據(jù)定義的最后必須有一個(gè)分號(hào)“;”。
說(shuō)明:在以下三種情況下不允許有分號(hào):
a.在右花括號(hào)“}”后面不使用分號(hào);
b.所定義的函數(shù)的名稱后面不使用分號(hào);
大括號(hào)之后while(total<=2000){limit++;total=total+limit;};函數(shù)定義語(yǔ)句之后intmax();{……}第16頁(yè)/共31頁(yè)4.C對(duì)輸入輸出實(shí)行函數(shù)化。5.C程序書寫格式自由,一行內(nèi)可以寫幾個(gè)語(yǔ)句,一個(gè)語(yǔ)句也可以分寫在多行上。6.可用/*……*/對(duì)C程序中的任何部分作注釋,注釋可以寫在程序的任何位置上,“/*”與“*/”也可不在同一行上。7.也可用“//”。本行中“//”之后的文字都視為注釋。8.在C語(yǔ)言中,大小寫字母是有區(qū)別的。(C語(yǔ)言習(xí)慣用小寫字母)導(dǎo)入庫(kù)函數(shù)語(yǔ)句之后#include“stdio.h”;c.預(yù)處理語(yǔ)句后面不使用分號(hào).第17頁(yè)/共31頁(yè)二、函數(shù)的一般結(jié)構(gòu)
任何函數(shù)(包括主函數(shù)main())都是由函數(shù)說(shuō)明和函數(shù)體兩部分組成。其一般結(jié)構(gòu)如下:
[函數(shù)類型]
函數(shù)名(函數(shù)參數(shù)表)
{
說(shuō)明語(yǔ)句部分;執(zhí)行語(yǔ)句部分;
}函數(shù)說(shuō)明部分函數(shù)體部分第18頁(yè)/共31頁(yè)
1.函數(shù)說(shuō)明
函數(shù)說(shuō)明由三部分組成:
(1)函數(shù)類型(可缺?。?)函數(shù)名(3)函數(shù)參數(shù)表,其中函數(shù)參數(shù)表的格式為:
數(shù)據(jù)類型形參[,數(shù)據(jù)類型形參2……]
例如,例1.3中的函數(shù)max(),其函數(shù)說(shuō)明各部分如下所示。函數(shù)類型
函數(shù)名
函數(shù)參數(shù)表
↓↓↓
intmax(
intx,inty
)第19頁(yè)/共31頁(yè)
2.函數(shù)體
函數(shù)體一般由說(shuō)明語(yǔ)句和可執(zhí)行語(yǔ)句兩部分構(gòu)成。在函數(shù)說(shuō)明部分的下面,一對(duì)
{}內(nèi)的部分。大括號(hào)必須配對(duì)使用。(1)說(shuō)明語(yǔ)句部分
說(shuō)明語(yǔ)句部分由變量定義、自定義類型定義、自定義函數(shù)說(shuō)明、外部變量說(shuō)明等組成。
inta,b;floatk,h;
(2)可執(zhí)行語(yǔ)句,一般由若干條可執(zhí)行語(yǔ)句構(gòu)成。
第20頁(yè)/共31頁(yè)main(){inta,b,c;
/*變量定義部分*//*(2)以下是可執(zhí)行語(yǔ)句*/
scanf(“%d”,&a);
scanf(“%d”,&b);
c=a+b;printf(“%d\n”,c);}第21頁(yè)/共31頁(yè)
3.函數(shù)體說(shuō)明
(1)如果不需要,也可以缺省變量定義語(yǔ)句。例如,例1.1
程序中缺省變量定義語(yǔ)句。
(2)函數(shù)體中的變量定義語(yǔ)句,必須在所有可執(zhí)行語(yǔ)句之前。下面程序中變量定義語(yǔ)句“
intx;”的位置是非法的:
main(){inta,b;
a=24
;
b=14;
intx;x=a+b;printf(“%d\n”,x);}不允許變量定義語(yǔ)句在可執(zhí)行語(yǔ)句之后第22頁(yè)/共31頁(yè)三、C語(yǔ)言的關(guān)鍵字和語(yǔ)句
1
、C語(yǔ)言的關(guān)鍵字共有32個(gè),可分為四類。(1)數(shù)據(jù)類型關(guān)鍵字(12個(gè)):
char,double,enum,float,int,long,short,signed,struct,union,unsigned,void
(2)控制語(yǔ)句關(guān)鍵字(12個(gè)):
break,case,continue,default,do,else,for,goto,if,return,switch,while
(3)存儲(chǔ)類型關(guān)鍵字(4個(gè)):
auto,extern,register,static
(4)其它關(guān)鍵字(4個(gè)):
const,sizeof,typedef,volatile(易變)第23頁(yè)/共31頁(yè)
2.TurboC
中擴(kuò)充的關(guān)鍵字(11個(gè))
ams,pascal,cdecl,interruptfar,huge,near(運(yùn)行模式)-cs-ds-es-ss(段寄存器)3.C語(yǔ)言中使用的特定字
C語(yǔ)言中使用的具有特定含義的標(biāo)識(shí)符,稱為特定字。C語(yǔ)言中使用的特定字:
include,define,ifdef,ifndef,endif,line
特定標(biāo)識(shí)符主要用在C語(yǔ)言的編譯預(yù)處理命令中。第24頁(yè)/共31頁(yè)4.C語(yǔ)言的語(yǔ)句
按照語(yǔ)句功能或構(gòu)成的不同,可將C語(yǔ)言的語(yǔ)句分為五類。(1)
函數(shù)調(diào)用語(yǔ)句
函數(shù)調(diào)用語(yǔ)句由一次函數(shù)調(diào)用加一個(gè)分號(hào)(語(yǔ)句結(jié)束標(biāo)志)構(gòu)成。例如
printf("ThisisaCstatement.");(2)
表達(dá)式語(yǔ)句表達(dá)式語(yǔ)句由表達(dá)式后加一個(gè)分號(hào)構(gòu)成。例如在賦值表達(dá)式后加一個(gè)分號(hào)構(gòu)成的賦值語(yǔ)句。
num=5;
是一個(gè)賦值語(yǔ)句
num=5
只是一個(gè)賦值表達(dá)式第25頁(yè)/共31頁(yè)
(3)控制語(yǔ)句
控制語(yǔ)句完成程序中特定的控制功能。
C
語(yǔ)言只有9條控制語(yǔ)句,又可細(xì)分為三種:
①選擇結(jié)構(gòu)控制語(yǔ)句
if()~else~,
switch()~
②循環(huán)結(jié)構(gòu)控制語(yǔ)句
do~while(),
for()~,
while()~,
break,
continue
③
其它控制語(yǔ)句
goto
,
return第26頁(yè)/共31頁(yè)(4)空語(yǔ)句
空語(yǔ)句僅由一個(gè)分號(hào)構(gòu)成:
;空語(yǔ)句什么操作也不執(zhí)行。(5)復(fù)合語(yǔ)句復(fù)合語(yǔ)句是由大括號(hào)括起來(lái)的一組語(yǔ)句構(gòu)成,右括號(hào)后不需要分號(hào)。復(fù)合語(yǔ)句格式:{語(yǔ)句組}
例如:{
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年醫(yī)院古醫(yī)療歷史模型館共建合同
- 2026年媒體購(gòu)買合同
- 復(fù)雜適應(yīng)系統(tǒng)協(xié)議
- 2025年未來(lái)城市交通解決方案項(xiàng)目可行性研究報(bào)告
- 2025年數(shù)字藝術(shù)創(chuàng)作工作室項(xiàng)目可行性研究報(bào)告
- 2025年文化遺產(chǎn)保護(hù)利用項(xiàng)目可行性研究報(bào)告
- 元旦放假協(xié)議書
- 個(gè)人調(diào)解協(xié)議書
- 萬(wàn)達(dá)科技協(xié)議書
- 煤改電合同協(xié)議書
- 《新聞學(xué)概論》試卷及答案
- 工會(huì)勞動(dòng)爭(zhēng)議調(diào)解會(huì)議記錄范本
- 2025年數(shù)字化營(yíng)銷顧問(wèn)職業(yè)素養(yǎng)測(cè)評(píng)試卷及答案解析
- 2025年保密試題問(wèn)答題及答案
- 建設(shè)工程工程量清單計(jì)價(jià)標(biāo)準(zhǔn)(2024版)
- 代建項(xiàng)目管理流程與責(zé)任分工
- cnc刀具刀具管理辦法
- DB14∕T 3069-2024 放射治療模擬定位技術(shù)規(guī)范
- 如何培養(yǎng)孩子深度專注
- 2024年餐飲店長(zhǎng)年度工作總結(jié)
- 護(hù)理8S管理匯報(bào)
評(píng)論
0/150
提交評(píng)論