版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第一章第一章本章教學(xué)要點(diǎn)
C語(yǔ)言的特點(diǎn)
C程序的組成
C函數(shù)的結(jié)構(gòu)運(yùn)行C程序的常用操作和步驟本章教學(xué)要點(diǎn)C語(yǔ)言的特點(diǎn)主要內(nèi)容1.1C語(yǔ)言的發(fā)展歷程1.2數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)形式和表示方法1.3利用計(jì)算機(jī)處理問(wèn)題的基本過(guò)程1.4最簡(jiǎn)單的C程序的構(gòu)成
1.5C語(yǔ)言的運(yùn)行環(huán)境和上機(jī)步驟主要內(nèi)容1.1C語(yǔ)言的發(fā)展歷程1.1C語(yǔ)言的發(fā)展歷程
C語(yǔ)言是國(guó)際上廣泛流行的高級(jí)語(yǔ)言。C語(yǔ)言的發(fā)展過(guò)程可以粗略的分為誕生(1970年—1973年)、發(fā)展(1973年—1988年)和成熟(1988年以后)三個(gè)階段。
(1)C語(yǔ)言是在B語(yǔ)言的基礎(chǔ)上發(fā)展起來(lái)的。B(BCPL)語(yǔ)言是1970年由美國(guó)貝爾實(shí)驗(yàn)室設(shè)計(jì)的,并用于編寫了第一個(gè)UNIX操作系統(tǒng),在PDP7上實(shí)現(xiàn)。優(yōu)點(diǎn):精練,接近硬件缺點(diǎn):過(guò)于簡(jiǎn)單,數(shù)據(jù)無(wú)類型。1.1C語(yǔ)言的發(fā)展歷程C語(yǔ)言是國(guó)1.1C語(yǔ)言的發(fā)展歷程(2)1973年貝爾實(shí)驗(yàn)室的D.M.Ritchie在B語(yǔ)言的基礎(chǔ)上設(shè)計(jì)出了C語(yǔ)言,但僅在貝爾實(shí)驗(yàn)室使用。1975年UNIX第6版發(fā)布,C優(yōu)點(diǎn)突出引起關(guān)注。1977年出現(xiàn)了《可移植C語(yǔ)言編譯程序》。
1978年影響深遠(yuǎn)的名著《TheCProgrammingLanguage》由BrianW.Kernighan和DennisM.Ritchie合著,被稱為標(biāo)準(zhǔn)C。在此之后,C語(yǔ)言風(fēng)靡世界,成為最廣泛的幾種計(jì)算機(jī)語(yǔ)言之一。1983年,美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)(ANSI)根據(jù)C語(yǔ)言各種版本對(duì)C的發(fā)展和擴(kuò)充,制定了新的標(biāo)準(zhǔn)ANSIC,比標(biāo)準(zhǔn)C有了很大的發(fā)展。1.1C語(yǔ)言的發(fā)展歷程(2)1973年貝爾實(shí)驗(yàn)1.1C語(yǔ)言的發(fā)展歷程
(3)1988年K&R按照ANSIC修改了他們的《TheCProgrammingLanguage》。1987年,ANSI公布了新標(biāo)準(zhǔn)——87ANSIC。
1990年,國(guó)際標(biāo)準(zhǔn)化組織接受了87ANSIC為ISOC的標(biāo)準(zhǔn)(ISO9899—1990)。
1994年,ISO又修訂了C語(yǔ)言標(biāo)準(zhǔn)。目前流行的C語(yǔ)言編譯系統(tǒng)大多是以ANSIC為基礎(chǔ)進(jìn)行開發(fā)的。
說(shuō)明:不同版本的C編譯系統(tǒng)所實(shí)現(xiàn)的語(yǔ)言功能和語(yǔ)法規(guī)則又略有差別,因此讀者可以參閱有關(guān)手冊(cè),了解所用的C語(yǔ)言編譯系統(tǒng)的特點(diǎn)。本書的敘述基本上以ANSIC為基礎(chǔ)。1.1C語(yǔ)言的發(fā)展歷程說(shuō)明:不同版本的C編譯系統(tǒng)1.2數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)形式和表示方法1.2.1內(nèi)存的組織形式1.內(nèi)存儲(chǔ)器RAM(RandomAccessMemory)2.內(nèi)存儲(chǔ)器的組織形式圖1.1內(nèi)存儲(chǔ)器的結(jié)構(gòu)示意圖
1.2數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)形式和表示方法1.2.1內(nèi)存的1.2數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)形式和表示方法加法運(yùn)算規(guī)則:0+0=00+1=11+0=11+1=10乘法運(yùn)算規(guī)則:0×0=00×1=01×0=01×1=12.十進(jìn)制數(shù)與二進(jìn)制數(shù)的轉(zhuǎn)換例如:將十進(jìn)制19.45轉(zhuǎn)換為二進(jìn)制數(shù)。19.45的整數(shù)部分為19,其轉(zhuǎn)換的過(guò)程如下:1.2數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)形式和表示方法加法運(yùn)算規(guī)則:01.2數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)形式和表示方法19.45的小數(shù)部分為0.45(取四位小數(shù)),其轉(zhuǎn)換的過(guò)程如下:、0.45×2=0.90取其整數(shù)部分為00.90×2=1.80取其整數(shù)部分為10.80×2=1.60取其整數(shù)部分為10.60×2=1.20取其整數(shù)部分為1……
依次類推。則得到(19.45)10=(10011.0111)2括號(hào)外的下標(biāo)10和2,分別表示十進(jìn)制數(shù)和二進(jìn)制數(shù)。由此可以觀察到:19=1×24+0×23+0×22+1×21+1×20。
1.2數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)形式和表示方法19.45的小數(shù)部1.2數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)形式和表示方法1.2.3八進(jìn)制(octal)數(shù)
1.八進(jìn)制數(shù)的基本特征八進(jìn)制數(shù)由0、1、2、3、4、5、6、7等八個(gè)數(shù)字符號(hào)表示;基數(shù)為8;按逢8進(jìn)1、借1算8的規(guī)則計(jì)數(shù);采用位置記數(shù)法(或帶權(quán)記數(shù)法),權(quán)值為8。其基本運(yùn)算規(guī)則與十進(jìn)制相似。
2.二進(jìn)制數(shù)與八進(jìn)制數(shù)的轉(zhuǎn)換
3.八進(jìn)制數(shù)與十進(jìn)制數(shù)的轉(zhuǎn)換1.2數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)形式和表示方法1.2.3八進(jìn)制1.2數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)形式和表示方法1.2.4十六進(jìn)制(Hexadecimal)數(shù)1.十六進(jìn)制數(shù)的基本特征十六進(jìn)制數(shù)由0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F等十六個(gè)數(shù)字符號(hào)表示;基數(shù)為16;按逢16進(jìn)1、借1算16的規(guī)則計(jì)數(shù);采用位置記數(shù)法(或帶權(quán)記數(shù)法),權(quán)值為16。十六進(jìn)制數(shù)中的A、B、C、D、E、F分別代表10、11、12、13、14、15。在C語(yǔ)言中,表示十六進(jìn)制數(shù)時(shí),大小寫字母作用相同。2.十六進(jìn)制數(shù)與二進(jìn)制數(shù)間的轉(zhuǎn)換例如:將二進(jìn)制數(shù)1011010101111110轉(zhuǎn)換為十六進(jìn)制數(shù)。二進(jìn)制數(shù)1011010101111110可以寫成1011,0101,0111,1110四組數(shù),再分別用十六進(jìn)制數(shù)碼C、5、7、E表示。即(1011010101111110)2=(C57E)161.2數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)形式和表示方法1.2.4十六進(jìn)1.2數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)形式和表示方法表1.1各種進(jìn)位制度的常用數(shù)值轉(zhuǎn)換表
3.十六進(jìn)制數(shù)與十進(jìn)制數(shù)間的轉(zhuǎn)換若將一個(gè)十六進(jìn)制整數(shù)轉(zhuǎn)換為十進(jìn)制數(shù),只需把十六進(jìn)制數(shù)按權(quán)展開,累加各項(xiàng)即可。
注意:在進(jìn)行轉(zhuǎn)換時(shí),每位十六進(jìn)制數(shù)都應(yīng)表示為4位二進(jìn)制數(shù),如0應(yīng)表示為0000,而不應(yīng)只寫成0,否則就會(huì)丟失某些位。八進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)時(shí),每位八進(jìn)制數(shù)對(duì)應(yīng)一個(gè)3位的二進(jìn)制數(shù)。
1.2數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)形式和表示方法表1.1各種進(jìn)1.2數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)形式和表示方法1.2.5原碼、反碼和補(bǔ)碼。
在計(jì)算機(jī)內(nèi)部,所有的信息都要用二進(jìn)制數(shù)來(lái)表示,數(shù)的符號(hào)“+”、“-”也必須采用二進(jìn)制數(shù)來(lái)表示。通常以0表示正數(shù)的符號(hào),以1表示負(fù)數(shù)的符號(hào),當(dāng)符號(hào)和數(shù)值都二進(jìn)制數(shù)0和1表示之后,這樣的數(shù)叫機(jī)器數(shù)或機(jī)器碼。
機(jī)器碼可以采用不同的碼制來(lái)表示,常用的有原碼、反碼和補(bǔ)碼三種表示方法。這樣表示的目的是在計(jì)算機(jī)內(nèi)部可以讓符號(hào)位一道參加數(shù)值運(yùn)算。1.數(shù)的原碼表示原碼通常用最高位表示數(shù)的符號(hào)位,數(shù)值部分用二進(jìn)制絕對(duì)值表示。即一個(gè)正數(shù)的原碼是它本身,一個(gè)負(fù)數(shù)的原碼是其符號(hào)位加數(shù)值部分。1.2數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)形式和表示方法1.2.5原碼、2.數(shù)的反碼表示
一個(gè)正數(shù)的反碼與其原碼相同,一個(gè)負(fù)數(shù)的反碼是將符號(hào)位除外,其他各位逐位取反,即0變1,1變0,參看表1.2。3.補(bǔ)碼表示方法先以日常鐘表的時(shí)間表示為例,說(shuō)明補(bǔ)碼的概念。假設(shè)現(xiàn)在的標(biāo)準(zhǔn)時(shí)間為6點(diǎn)整,而有一只指針指向10點(diǎn),為了校準(zhǔn)時(shí)間,可以采取兩種方法:一是將時(shí)針退(10-6)=4格;另一種方法是將時(shí)針向前撥(12-4)=8格。
這兩種方法都可以將鐘表校準(zhǔn)的正確時(shí)間。對(duì)于這個(gè)問(wèn)題來(lái)說(shuō),減4和加8是等價(jià)的。由此,可以說(shuō)(+8)和(-4)是以12為模的補(bǔ)碼。1.2數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)形式和表示方法2.數(shù)的反碼表示1.2數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)形式和表說(shuō)明:在計(jì)算機(jī)中,帶符號(hào)的數(shù)用補(bǔ)碼表示,此時(shí)減法運(yùn)算變?yōu)榧臃ㄟ\(yùn)算,從而簡(jiǎn)化了計(jì)算機(jī)硬件電路的結(jié)構(gòu)。當(dāng)運(yùn)算的結(jié)果超出補(bǔ)碼表示范圍時(shí),結(jié)果就不正確了,這稱為“溢出”。1.2數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)形式和表示方法在數(shù)學(xué)上由于-4=-1×12+8,+8=0×12+8稱為同余式。對(duì)于同余式中的模,則表示可以棄舍或丟掉的數(shù)值。其結(jié)果是減去4和加上8都可以實(shí)現(xiàn)正確時(shí)間的校準(zhǔn)。補(bǔ)碼的計(jì)算規(guī)則:一個(gè)正數(shù)的補(bǔ)碼和其原碼形式相同,一個(gè)負(fù)數(shù)的補(bǔ)碼是將其反碼加1,參看表1.2中部分舉例。在計(jì)算機(jī)中,負(fù)數(shù)是用其補(bǔ)碼表示的。例如:求-42的補(bǔ)碼。42用二進(jìn)制數(shù)表示是101010,其原碼為10101010,則其反碼為11010101,即其反碼加1即為補(bǔ)碼:11010110。說(shuō)明:在計(jì)算機(jī)中,帶符號(hào)的數(shù)用補(bǔ)碼表示,此時(shí)減法運(yùn)算變?yōu)榧臃?.3利用計(jì)算機(jī)處理問(wèn)題的基本過(guò)程1.計(jì)算機(jī)算題的簡(jiǎn)單過(guò)程2.利用計(jì)算機(jī)處理問(wèn)題的過(guò)程(1)需求分析。(2)確定處理方案。
(3)確定操作步驟。(4)編寫源程序。(5)輸入和運(yùn)行程序。(6)整理結(jié)果。
圖1.3計(jì)算機(jī)處理一個(gè)實(shí)際問(wèn)題的主要過(guò)程
1.3利用計(jì)算機(jī)處理問(wèn)題的基本過(guò)程1.計(jì)算機(jī)算題的簡(jiǎn)單1.4最簡(jiǎn)單的C程序的構(gòu)成
1.4.1C語(yǔ)言的特點(diǎn)(1)語(yǔ)言簡(jiǎn)潔、緊湊,使用方便、靈活。(2)具有豐富的運(yùn)算符和數(shù)據(jù)結(jié)構(gòu)。(3)C語(yǔ)言是完全模塊化和結(jié)構(gòu)化的語(yǔ)言。(4)C語(yǔ)言因?yàn)榧嬗懈呒?jí)和低級(jí)語(yǔ)言的特點(diǎn)。(5)與匯編語(yǔ)言相比,可移植性好。(6)生成目標(biāo)代碼質(zhì)量高。1.4最簡(jiǎn)單的C程序的構(gòu)成1.4.1C語(yǔ)言的特點(diǎn)1.4最簡(jiǎn)單的C程序的構(gòu)成
1.4.2C語(yǔ)言中的字符集
1.字符集字符是組成語(yǔ)言的最基本的元素。C語(yǔ)言字符集由字母、數(shù)字、空格、標(biāo)點(diǎn)和特殊字符組成,具體可以參看附錄1中常用字符與ASCII碼表。具體可以分為如下幾類:(1)字母。小寫英文字母a~z共26個(gè),大寫字母A~Z共26個(gè)。
(2)數(shù)字。0~9共10個(gè)。
(3)空白符??崭穹?、制表符、換行符等統(tǒng)稱為空白符。
(4)標(biāo)點(diǎn)和特殊字符。1.4最簡(jiǎn)單的C程序的構(gòu)成1.4.2C語(yǔ)言中的字符集1.4最簡(jiǎn)單的C程序的構(gòu)成
2.標(biāo)識(shí)符
C語(yǔ)言中用來(lái)對(duì)變量、符號(hào)常量、函數(shù)、數(shù)組、自定義類型等數(shù)據(jù)對(duì)象命名的有效字符序列統(tǒng)稱為標(biāo)識(shí)符(identifier)。簡(jiǎn)單地說(shuō),標(biāo)識(shí)符就是一個(gè)名字。
C語(yǔ)言規(guī)定標(biāo)識(shí)符只能由字母、數(shù)字和下劃線3種字符組成,且第1個(gè)字符必須為字母或下劃線。
下面列出的是合法的標(biāo)識(shí)符,可以作為變量名。X1,a,A3,student,abc,kk下面是不合法的標(biāo)識(shí)符和變量名M.D.John,¥123,#33,3D64,a>b,3x特別注意:編譯系統(tǒng)將大寫字母和小寫字母認(rèn)為是兩個(gè)不同的字符。
1.4最簡(jiǎn)單的C程序的構(gòu)成2.標(biāo)識(shí)符1.4最簡(jiǎn)單的C程序的構(gòu)成
3.關(guān)鍵字C語(yǔ)言的32個(gè)關(guān)鍵字,是C語(yǔ)言編譯系統(tǒng)賦予規(guī)定含義的英文單詞或字母組合,在進(jìn)行C語(yǔ)言的程序設(shè)計(jì)時(shí),不能再賦予其新的含義。C語(yǔ)言的關(guān)鍵字分為以下幾類:(1)類型說(shuō)明符。用于定義變量、函數(shù)或其他數(shù)據(jù)結(jié)構(gòu)的類型。如int、double等。(2)語(yǔ)句定義符。用于表示一個(gè)語(yǔ)句的功能。如if、else、while等。(3)預(yù)處理命令字。用于表示一個(gè)預(yù)處理命令。如include、define等。C語(yǔ)言的32個(gè)關(guān)鍵字,具體功能可以參看附錄Ⅳ。1.4最簡(jiǎn)單的C程序的構(gòu)成3.關(guān)鍵字例1.1
輸出一行信息Helloworld!。
#include<stdio.h>void
main(){
printf("Helloworld!
\n");}
1.4最簡(jiǎn)單的C程序的構(gòu)成/*文件包含*//*主函數(shù)*//*函數(shù)體開始*//*輸出語(yǔ)句*//*函數(shù)體結(jié)束*/說(shuō)明
main
主函數(shù)名,每個(gè)C程序必須有一個(gè)主函數(shù)main,系統(tǒng)執(zhí)行C程序時(shí),從main函數(shù)開始。()是函數(shù)的標(biāo)志。1.4.3C程序的構(gòu)成1.簡(jiǎn)單的C程序舉例
例1.1輸出一行信息Helloworld!。#inc1.4最簡(jiǎn)單的C程序的構(gòu)成
說(shuō)明void函數(shù)類型表示此函數(shù)是“空類型”,printf是C編譯系統(tǒng)提供的標(biāo)準(zhǔn)函數(shù)庫(kù)中的輸出函數(shù)名,
雙引號(hào)“”是字符串的定界符,雙引號(hào)內(nèi)的字符串按原樣輸出?!埃躰”是換行符,即在輸出“Helloworld!”后回車換行。
{}是函數(shù)開始和結(jié)束的標(biāo)志,不可省每個(gè)C語(yǔ)句以分號(hào)結(jié)束
#是預(yù)處理命令行起始符號(hào)。使用標(biāo)準(zhǔn)庫(kù)函數(shù)時(shí)應(yīng)在程序開頭一行寫:#includestdio.h>說(shuō)明:本程序的運(yùn)行結(jié)果:
Helloworld!1.4最簡(jiǎn)單的C程序的構(gòu)成說(shuō)明說(shuō)明:本程序的運(yùn)行結(jié)1.4最簡(jiǎn)單的C程序的構(gòu)成例1.2
求兩個(gè)整數(shù)之和。#include<stdio.h>voidmain(){inta,b,sum;a=11;b=45;
sum=a+b;
printf(“sumis%d\n”,sum);}
/*求兩數(shù)之和*/
/*變量聲明部分*//*賦值語(yǔ)句*//*輸出函數(shù)*/
本程序的運(yùn)行結(jié)果:sumis561.4最簡(jiǎn)單的C程序的構(gòu)成例1.2求兩個(gè)整數(shù)之和。/1.4最簡(jiǎn)單的C程序的構(gòu)成
說(shuō)明本程序中各行右側(cè)的/*……*/表示注釋。逗號(hào)主要用在變量類型說(shuō)明中分隔各個(gè)變量,是分隔符。在C程序中采用的分隔符最常用的有逗號(hào)和空格兩種??崭穸嘤糜谡Z(yǔ)句各單詞之間,作分隔符?!癷nta,b,sum;”是函數(shù)體中的聲明部分,定義變量a和b,指定a和b為整型(int)變量?!癮=11;b=45;sum=a+b;”是賦值語(yǔ)句。printf函數(shù)中得“%”是輸入輸出的“格式字符串”,用來(lái)指定輸入輸出時(shí)的數(shù)據(jù)類型和格式。
1.4最簡(jiǎn)單的C程序的構(gòu)成說(shuō)明1.4最簡(jiǎn)單的C程序的構(gòu)成例1.3計(jì)算長(zhǎng)為l,寬為w,高為h的長(zhǎng)方體體積v。
#include<stdio.h>viodmain(){intvolume(intlength,intwidth,inthigh);intl,w,h,v;printf("pleaseinputl,w,h:\n");
scanf("%d,%d,%d",&l,&w,&h);v=volume(l,w,h);
printf("v=%d",v);
return;}intvolume(intlength,intwidth,inthigh)
{intv;v=length*width*high; returnv; }程序運(yùn)行結(jié)果:pleaseinputl,w,h:4,3,2↙
v=241.4最簡(jiǎn)單的C程序的構(gòu)成例1.3計(jì)算長(zhǎng)為l,寬為w,1.4最簡(jiǎn)單的C程序的構(gòu)成說(shuō)明:本程序包括main和被調(diào)用函數(shù)volume兩個(gè)函數(shù)。max函數(shù)的作用是計(jì)算一個(gè)長(zhǎng)方體的體積。return語(yǔ)句將z的值返回給主調(diào)函數(shù)main。2.C源程序的結(jié)構(gòu)特點(diǎn)(1)C程序是由函數(shù)構(gòu)成的。一個(gè)C源程序至少且僅包含一個(gè)main函數(shù)。(2)一個(gè)C程序總是從main函數(shù)開始執(zhí)行的。(3)C源程序中可以有預(yù)處理命令,預(yù)處理命令通常應(yīng)放在源文件或源程序的最前面。(4)C程序的基本單位是函數(shù)。被調(diào)用的函數(shù)可以是系統(tǒng)提供的庫(kù)函數(shù)(如printf和scanf等輸入輸出函數(shù)),也可以是用戶自定義函數(shù)(如volume函數(shù))。
1.4最簡(jiǎn)單的C程序的構(gòu)成說(shuō)明:本程序包括main和被調(diào)1.4最簡(jiǎn)單的C程序的構(gòu)成3.C函數(shù)的組成(1)函數(shù)首部。即函數(shù)的第1行,包括函數(shù)名、函數(shù)類型、函數(shù)屬性、函數(shù)參數(shù)(形式參數(shù)名、參數(shù)類型)。一個(gè)函數(shù)名后面必須跟一對(duì)圓括號(hào),括號(hào)內(nèi)寫函數(shù)的參數(shù)名及其類型。例如,例1.3中的volume函數(shù)的首部為:(2)函數(shù)體。即函數(shù)首部下面的花括號(hào)內(nèi)的部分。①聲明部分。定義所用到的變量和對(duì)所調(diào)用函數(shù)的聲明。②執(zhí)行部分。由若干個(gè)C語(yǔ)句組成。1.4最簡(jiǎn)單的C程序的構(gòu)成3.C函數(shù)的組成1.4最簡(jiǎn)單的C程序的構(gòu)成說(shuō)明:(1)空函數(shù):有時(shí)函數(shù)可以既無(wú)聲明部分也無(wú)執(zhí)行部分。如:voidexample1(){}它是一個(gè),什么也不做,但這是符合C語(yǔ)言規(guī)則的。(2)C語(yǔ)言本身沒(méi)有輸入輸出語(yǔ)句。輸入和輸出的操作是由庫(kù)函數(shù)scanf和printf等函數(shù)來(lái)完成的。由于輸入輸出操作牽涉具體的計(jì)算機(jī)設(shè)備,把輸入輸出操作放在函數(shù)中處理,就可以使C語(yǔ)言本身的規(guī)模較小,編譯程序簡(jiǎn)單,很容易在各種機(jī)器上實(shí)現(xiàn),程序具有可移植性。(3)不同計(jì)算機(jī)系統(tǒng)除了提供標(biāo)準(zhǔn)函數(shù)外,還提供一些專門的函數(shù),因此不同計(jì)算機(jī)系統(tǒng)中所提供的函數(shù)個(gè)數(shù)和功能是有所不同的。ANSIC提供一百多個(gè)庫(kù)函數(shù),TurboC則提供三百多個(gè)庫(kù)函數(shù)。1.4最簡(jiǎn)單的C程序的構(gòu)成說(shuō)明:1.4最簡(jiǎn)單的C程序的構(gòu)成4.書寫程序時(shí)應(yīng)遵循的規(guī)則(1)每個(gè)語(yǔ)句和數(shù)據(jù)聲明的最后必須有個(gè)分號(hào),分號(hào)是C語(yǔ)句的必要組成部分。(2)關(guān)鍵字、標(biāo)識(shí)符之間必須至少加一個(gè)空格以示間隔。若已有明顯的間隔符如逗號(hào)、分號(hào)等,也可不再加空格來(lái)間隔。(3)C程序書寫格式自由,一行內(nèi)可以寫幾個(gè)語(yǔ)句,一個(gè)語(yǔ)句可以分寫在多行上。(4)函數(shù)體內(nèi)部用{}括起來(lái)的部分,通常表示程序的某一層次結(jié)構(gòu)。在編程時(shí)應(yīng)力求遵循這些規(guī)則,以養(yǎng)成良好的編程風(fēng)格。(5)可以用/*……*/對(duì)C程序中的任何部分做注釋1.4最簡(jiǎn)單的C程序的構(gòu)成4.書寫程序時(shí)應(yīng)遵循的規(guī)則1.5C語(yǔ)言的運(yùn)行環(huán)境和上機(jī)步驟
1.5.1C語(yǔ)言的運(yùn)行環(huán)境選用TurboC++3.0作為學(xué)習(xí)C語(yǔ)言的運(yùn)行環(huán)境。對(duì)于熟悉VisualC++的人,可以參考與本書配套的《C程序設(shè)計(jì)教程習(xí)題解答與上機(jī)指導(dǎo)》指導(dǎo)書來(lái)學(xué)習(xí)。
TurboC++3.0:是一個(gè)集成環(huán)境,它具有方便、直觀和易用的界面,雖然它也是DOS環(huán)境下的集成環(huán)境,但是可以把啟動(dòng)TurboC++3.0集成環(huán)境的DOS執(zhí)行文件tc.exe生成快捷方式,也可以用鼠標(biāo)操作。1.5C語(yǔ)言的運(yùn)行環(huán)境和上機(jī)步驟1.5.1C語(yǔ)言的運(yùn)1.5C語(yǔ)言的運(yùn)行環(huán)境和上機(jī)步驟
TurboC++3.0的集成環(huán)境可以通過(guò)兩種方法得到TurboC++3.0集成環(huán)境。(1)在DOS環(huán)境下??梢栽贒OS環(huán)境下用鍵盤輸入DOS命令TC即可:D:\TC3.0>TC↙
(2)在Windows環(huán)境下。先通過(guò)瀏覽找到TurboC++3.0集成環(huán)境所在的子目錄(如D:\TC3.0),從中找到可執(zhí)行文件tc.exe,創(chuàng)建其快捷方式,并拖曳到Windows桌面上,用一個(gè)圖標(biāo)表示。雙擊該圖標(biāo),就可打開的TurboC++3.0集成環(huán)境。圖1.4TurboC++3.0集成環(huán)境
1.5C語(yǔ)言的運(yùn)行環(huán)境和上機(jī)步驟TurboC++31.5C語(yǔ)言的運(yùn)行環(huán)境和上機(jī)步驟
在集成環(huán)境的上部,有一行主菜單,其中包括10個(gè)菜單項(xiàng)。用戶可以通過(guò)以上菜單來(lái)選擇使用集成環(huán)境所提供的TurboC++3.0的各項(xiàng)主要功能。
主菜單,其中包括10個(gè)菜單項(xiàng):
FileEditSearchRunCompileDebugProjectOptionsWindowHelp以上10個(gè)菜單項(xiàng)分別代表:文件、編輯、查找、運(yùn)行、編譯、調(diào)試、項(xiàng)目、選項(xiàng)、窗口、幫助。用鼠標(biāo)可以選擇菜單條中所需要的菜單項(xiàng),單擊此菜單項(xiàng)就會(huì)出現(xiàn)一個(gè)下拉菜單。
1.5C語(yǔ)言的運(yùn)行環(huán)境和上機(jī)步驟在集成環(huán)境的上部,有1.5C語(yǔ)言的運(yùn)行環(huán)境和上機(jī)步驟
1.5.2C程序的上機(jī)步驟
所謂程序,就是一組計(jì)算機(jī)能識(shí)別和執(zhí)行的指令。每一條指令使計(jì)算機(jī)執(zhí)行特定的操作。用高級(jí)語(yǔ)言編寫的程序稱為“源程序(sourceprogram)”。
TurboC++3.0是一個(gè)集源程序編輯、編譯、連接、運(yùn)行與調(diào)試于一體、用菜單驅(qū)動(dòng)的集成軟件環(huán)境。運(yùn)行一個(gè)C語(yǔ)言程序的一般過(guò)程如圖1.7所示:
1.5C語(yǔ)言的運(yùn)行環(huán)境和上機(jī)步驟1.5.2C程序的編輯編譯源程序f.c有錯(cuò)?連接執(zhí)行結(jié)果正確?目標(biāo)程序f.0bj無(wú)有庫(kù)函數(shù)和其他目標(biāo)程序可執(zhí)行程序f.exe是否開始結(jié)束編輯編譯源程序f.c有錯(cuò)?連接執(zhí)行結(jié)果正確?目標(biāo)程序f.0b1.5C語(yǔ)言的運(yùn)行環(huán)境和上機(jī)步驟
說(shuō)明:經(jīng)過(guò)編輯得到一個(gè)源程序文件f.c,然后將源程序文件f.c輸入到計(jì)算機(jī)中,經(jīng)過(guò)編譯得到目標(biāo)程序文件f.obj,再將目標(biāo)程序f.obj均輸入內(nèi)存,與系統(tǒng)提供的庫(kù)函數(shù)等連接,即可得到可執(zhí)行的目標(biāo)程序f.exe,最后把f.exe調(diào)入內(nèi)存并執(zhí)行。即:運(yùn)行C程序的步驟上機(jī)輸入與編輯源程序?qū)υ闯绦蜻M(jìn)行編譯與庫(kù)函數(shù)連接運(yùn)行目標(biāo)程序1.5C語(yǔ)言的運(yùn)行環(huán)境和上機(jī)步驟說(shuō)明:經(jīng)過(guò)編輯得到1編輯源文件新建:?jiǎn)螕鬎ile菜單下的New1.5C語(yǔ)言的運(yùn)行環(huán)境和上機(jī)步驟
1編輯源文件1.5C語(yǔ)言的運(yùn)行環(huán)境和上機(jī)步驟1.5C語(yǔ)言的運(yùn)行環(huán)境和上機(jī)步驟
修改:選擇File→Open(即單擊“File”的下拉菜單中的Open項(xiàng),修改已有的源程序。
在編輯(EDIT)狀態(tài)下光標(biāo)表示當(dāng)前進(jìn)行編輯的位置,在此位置可以進(jìn)行插入、刪除或修改,直到自已滿意為止。1.5C語(yǔ)言的運(yùn)行環(huán)境和上機(jī)步驟修改:選擇File→O保存:在完成編輯之后,應(yīng)當(dāng)保存源程序。如果該源程序是已有的,則選擇菜單FileSave命令保存已修改過(guò)的源程序。若源程序是新輸入的,則選擇File->Save命令,并在彈出的SaveFileAs對(duì)話框中的Name欄中輸入文件路徑和文件名,1.5C語(yǔ)言的運(yùn)行環(huán)境和上機(jī)步驟
保存:在完成編輯之后,應(yīng)當(dāng)保存源程序。如果該源程序是已有的,2.對(duì)源程序進(jìn)行編譯
選擇菜單Compile(或“Alt+F9”)對(duì)源程序進(jìn)行編譯。AA.C源程序,出現(xiàn)1個(gè)錯(cuò)誤(error),0個(gè)警告(warming)。
1.5C語(yǔ)言的運(yùn)行環(huán)境和上機(jī)步驟
2.對(duì)源程序進(jìn)行編譯1.5C語(yǔ)言的運(yùn)行環(huán)境和上機(jī)步驟3將目標(biāo)程序進(jìn)行連接選擇菜單Compile→Link,如果不出現(xiàn)錯(cuò)誤,會(huì)得到一個(gè)后綴為.exe的可執(zhí)行文件。4執(zhí)行程序
選菜單Run→Run(或按“Ctrl+F9”鍵)。5退出TurboC++3.0環(huán)境退出TC有兩種方法:1)菜單法:File|Quit(先選擇File主項(xiàng),再選擇并執(zhí)行Quit子項(xiàng))2)快捷鍵法:Alt+“X”(先按下Alt鍵并保持,再按字母鍵X,然后同時(shí)放開)。1.5C語(yǔ)言的運(yùn)行環(huán)境和上機(jī)步驟
3將目標(biāo)程序進(jìn)行連接4執(zhí)行程序1.5C語(yǔ)言的運(yùn)行環(huán)境*TurboC++3.0常用的功能鍵(詳細(xì)內(nèi)容參看實(shí)驗(yàn)指導(dǎo)書)
Alt+F5切換到輸出屏幕Ctrl+F9編譯連接運(yùn)行程序ALT+ENTER轉(zhuǎn)換窗口和屏幕調(diào)試
Alt+x退出tc
F10激活菜單Alt+F/C/R/O等使用菜單ESC釋放菜單
Alt+F9編譯源程序Ctrl+F4計(jì)算表達(dá)式Ctrl+F1庫(kù)函數(shù)的幫助F2源程序存盤F5縮放活動(dòng)窗口F6切換活動(dòng)窗口F9編譯連接程序1.5C語(yǔ)言的運(yùn)行環(huán)境和上機(jī)步驟
*TurboC++3.0常用的功能鍵(詳細(xì)內(nèi)容參看實(shí)驗(yàn)謝謝您的光臨!Thankyouverymuch!謝謝您的光臨!Thankyouverymuch!第一章第一章本章教學(xué)要點(diǎn)
C語(yǔ)言的特點(diǎn)
C程序的組成
C函數(shù)的結(jié)構(gòu)運(yùn)行C程序的常用操作和步驟本章教學(xué)要點(diǎn)C語(yǔ)言的特點(diǎn)主要內(nèi)容1.1C語(yǔ)言的發(fā)展歷程1.2數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)形式和表示方法1.3利用計(jì)算機(jī)處理問(wèn)題的基本過(guò)程1.4最簡(jiǎn)單的C程序的構(gòu)成
1.5C語(yǔ)言的運(yùn)行環(huán)境和上機(jī)步驟主要內(nèi)容1.1C語(yǔ)言的發(fā)展歷程1.1C語(yǔ)言的發(fā)展歷程
C語(yǔ)言是國(guó)際上廣泛流行的高級(jí)語(yǔ)言。C語(yǔ)言的發(fā)展過(guò)程可以粗略的分為誕生(1970年—1973年)、發(fā)展(1973年—1988年)和成熟(1988年以后)三個(gè)階段。
(1)C語(yǔ)言是在B語(yǔ)言的基礎(chǔ)上發(fā)展起來(lái)的。B(BCPL)語(yǔ)言是1970年由美國(guó)貝爾實(shí)驗(yàn)室設(shè)計(jì)的,并用于編寫了第一個(gè)UNIX操作系統(tǒng),在PDP7上實(shí)現(xiàn)。優(yōu)點(diǎn):精練,接近硬件缺點(diǎn):過(guò)于簡(jiǎn)單,數(shù)據(jù)無(wú)類型。1.1C語(yǔ)言的發(fā)展歷程C語(yǔ)言是國(guó)1.1C語(yǔ)言的發(fā)展歷程(2)1973年貝爾實(shí)驗(yàn)室的D.M.Ritchie在B語(yǔ)言的基礎(chǔ)上設(shè)計(jì)出了C語(yǔ)言,但僅在貝爾實(shí)驗(yàn)室使用。1975年UNIX第6版發(fā)布,C優(yōu)點(diǎn)突出引起關(guān)注。1977年出現(xiàn)了《可移植C語(yǔ)言編譯程序》。
1978年影響深遠(yuǎn)的名著《TheCProgrammingLanguage》由BrianW.Kernighan和DennisM.Ritchie合著,被稱為標(biāo)準(zhǔn)C。在此之后,C語(yǔ)言風(fēng)靡世界,成為最廣泛的幾種計(jì)算機(jī)語(yǔ)言之一。1983年,美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)(ANSI)根據(jù)C語(yǔ)言各種版本對(duì)C的發(fā)展和擴(kuò)充,制定了新的標(biāo)準(zhǔn)ANSIC,比標(biāo)準(zhǔn)C有了很大的發(fā)展。1.1C語(yǔ)言的發(fā)展歷程(2)1973年貝爾實(shí)驗(yàn)1.1C語(yǔ)言的發(fā)展歷程
(3)1988年K&R按照ANSIC修改了他們的《TheCProgrammingLanguage》。1987年,ANSI公布了新標(biāo)準(zhǔn)——87ANSIC。
1990年,國(guó)際標(biāo)準(zhǔn)化組織接受了87ANSIC為ISOC的標(biāo)準(zhǔn)(ISO9899—1990)。
1994年,ISO又修訂了C語(yǔ)言標(biāo)準(zhǔn)。目前流行的C語(yǔ)言編譯系統(tǒng)大多是以ANSIC為基礎(chǔ)進(jìn)行開發(fā)的。
說(shuō)明:不同版本的C編譯系統(tǒng)所實(shí)現(xiàn)的語(yǔ)言功能和語(yǔ)法規(guī)則又略有差別,因此讀者可以參閱有關(guān)手冊(cè),了解所用的C語(yǔ)言編譯系統(tǒng)的特點(diǎn)。本書的敘述基本上以ANSIC為基礎(chǔ)。1.1C語(yǔ)言的發(fā)展歷程說(shuō)明:不同版本的C編譯系統(tǒng)1.2數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)形式和表示方法1.2.1內(nèi)存的組織形式1.內(nèi)存儲(chǔ)器RAM(RandomAccessMemory)2.內(nèi)存儲(chǔ)器的組織形式圖1.1內(nèi)存儲(chǔ)器的結(jié)構(gòu)示意圖
1.2數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)形式和表示方法1.2.1內(nèi)存的1.2數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)形式和表示方法加法運(yùn)算規(guī)則:0+0=00+1=11+0=11+1=10乘法運(yùn)算規(guī)則:0×0=00×1=01×0=01×1=12.十進(jìn)制數(shù)與二進(jìn)制數(shù)的轉(zhuǎn)換例如:將十進(jìn)制19.45轉(zhuǎn)換為二進(jìn)制數(shù)。19.45的整數(shù)部分為19,其轉(zhuǎn)換的過(guò)程如下:1.2數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)形式和表示方法加法運(yùn)算規(guī)則:01.2數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)形式和表示方法19.45的小數(shù)部分為0.45(取四位小數(shù)),其轉(zhuǎn)換的過(guò)程如下:、0.45×2=0.90取其整數(shù)部分為00.90×2=1.80取其整數(shù)部分為10.80×2=1.60取其整數(shù)部分為10.60×2=1.20取其整數(shù)部分為1……
依次類推。則得到(19.45)10=(10011.0111)2括號(hào)外的下標(biāo)10和2,分別表示十進(jìn)制數(shù)和二進(jìn)制數(shù)。由此可以觀察到:19=1×24+0×23+0×22+1×21+1×20。
1.2數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)形式和表示方法19.45的小數(shù)部1.2數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)形式和表示方法1.2.3八進(jìn)制(octal)數(shù)
1.八進(jìn)制數(shù)的基本特征八進(jìn)制數(shù)由0、1、2、3、4、5、6、7等八個(gè)數(shù)字符號(hào)表示;基數(shù)為8;按逢8進(jìn)1、借1算8的規(guī)則計(jì)數(shù);采用位置記數(shù)法(或帶權(quán)記數(shù)法),權(quán)值為8。其基本運(yùn)算規(guī)則與十進(jìn)制相似。
2.二進(jìn)制數(shù)與八進(jìn)制數(shù)的轉(zhuǎn)換
3.八進(jìn)制數(shù)與十進(jìn)制數(shù)的轉(zhuǎn)換1.2數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)形式和表示方法1.2.3八進(jìn)制1.2數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)形式和表示方法1.2.4十六進(jìn)制(Hexadecimal)數(shù)1.十六進(jìn)制數(shù)的基本特征十六進(jìn)制數(shù)由0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F等十六個(gè)數(shù)字符號(hào)表示;基數(shù)為16;按逢16進(jìn)1、借1算16的規(guī)則計(jì)數(shù);采用位置記數(shù)法(或帶權(quán)記數(shù)法),權(quán)值為16。十六進(jìn)制數(shù)中的A、B、C、D、E、F分別代表10、11、12、13、14、15。在C語(yǔ)言中,表示十六進(jìn)制數(shù)時(shí),大小寫字母作用相同。2.十六進(jìn)制數(shù)與二進(jìn)制數(shù)間的轉(zhuǎn)換例如:將二進(jìn)制數(shù)1011010101111110轉(zhuǎn)換為十六進(jìn)制數(shù)。二進(jìn)制數(shù)1011010101111110可以寫成1011,0101,0111,1110四組數(shù),再分別用十六進(jìn)制數(shù)碼C、5、7、E表示。即(1011010101111110)2=(C57E)161.2數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)形式和表示方法1.2.4十六進(jìn)1.2數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)形式和表示方法表1.1各種進(jìn)位制度的常用數(shù)值轉(zhuǎn)換表
3.十六進(jìn)制數(shù)與十進(jìn)制數(shù)間的轉(zhuǎn)換若將一個(gè)十六進(jìn)制整數(shù)轉(zhuǎn)換為十進(jìn)制數(shù),只需把十六進(jìn)制數(shù)按權(quán)展開,累加各項(xiàng)即可。
注意:在進(jìn)行轉(zhuǎn)換時(shí),每位十六進(jìn)制數(shù)都應(yīng)表示為4位二進(jìn)制數(shù),如0應(yīng)表示為0000,而不應(yīng)只寫成0,否則就會(huì)丟失某些位。八進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)時(shí),每位八進(jìn)制數(shù)對(duì)應(yīng)一個(gè)3位的二進(jìn)制數(shù)。
1.2數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)形式和表示方法表1.1各種進(jìn)1.2數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)形式和表示方法1.2.5原碼、反碼和補(bǔ)碼。
在計(jì)算機(jī)內(nèi)部,所有的信息都要用二進(jìn)制數(shù)來(lái)表示,數(shù)的符號(hào)“+”、“-”也必須采用二進(jìn)制數(shù)來(lái)表示。通常以0表示正數(shù)的符號(hào),以1表示負(fù)數(shù)的符號(hào),當(dāng)符號(hào)和數(shù)值都二進(jìn)制數(shù)0和1表示之后,這樣的數(shù)叫機(jī)器數(shù)或機(jī)器碼。
機(jī)器碼可以采用不同的碼制來(lái)表示,常用的有原碼、反碼和補(bǔ)碼三種表示方法。這樣表示的目的是在計(jì)算機(jī)內(nèi)部可以讓符號(hào)位一道參加數(shù)值運(yùn)算。1.數(shù)的原碼表示原碼通常用最高位表示數(shù)的符號(hào)位,數(shù)值部分用二進(jìn)制絕對(duì)值表示。即一個(gè)正數(shù)的原碼是它本身,一個(gè)負(fù)數(shù)的原碼是其符號(hào)位加數(shù)值部分。1.2數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)形式和表示方法1.2.5原碼、2.數(shù)的反碼表示
一個(gè)正數(shù)的反碼與其原碼相同,一個(gè)負(fù)數(shù)的反碼是將符號(hào)位除外,其他各位逐位取反,即0變1,1變0,參看表1.2。3.補(bǔ)碼表示方法先以日常鐘表的時(shí)間表示為例,說(shuō)明補(bǔ)碼的概念。假設(shè)現(xiàn)在的標(biāo)準(zhǔn)時(shí)間為6點(diǎn)整,而有一只指針指向10點(diǎn),為了校準(zhǔn)時(shí)間,可以采取兩種方法:一是將時(shí)針退(10-6)=4格;另一種方法是將時(shí)針向前撥(12-4)=8格。
這兩種方法都可以將鐘表校準(zhǔn)的正確時(shí)間。對(duì)于這個(gè)問(wèn)題來(lái)說(shuō),減4和加8是等價(jià)的。由此,可以說(shuō)(+8)和(-4)是以12為模的補(bǔ)碼。1.2數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)形式和表示方法2.數(shù)的反碼表示1.2數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)形式和表說(shuō)明:在計(jì)算機(jī)中,帶符號(hào)的數(shù)用補(bǔ)碼表示,此時(shí)減法運(yùn)算變?yōu)榧臃ㄟ\(yùn)算,從而簡(jiǎn)化了計(jì)算機(jī)硬件電路的結(jié)構(gòu)。當(dāng)運(yùn)算的結(jié)果超出補(bǔ)碼表示范圍時(shí),結(jié)果就不正確了,這稱為“溢出”。1.2數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)形式和表示方法在數(shù)學(xué)上由于-4=-1×12+8,+8=0×12+8稱為同余式。對(duì)于同余式中的模,則表示可以棄舍或丟掉的數(shù)值。其結(jié)果是減去4和加上8都可以實(shí)現(xiàn)正確時(shí)間的校準(zhǔn)。補(bǔ)碼的計(jì)算規(guī)則:一個(gè)正數(shù)的補(bǔ)碼和其原碼形式相同,一個(gè)負(fù)數(shù)的補(bǔ)碼是將其反碼加1,參看表1.2中部分舉例。在計(jì)算機(jī)中,負(fù)數(shù)是用其補(bǔ)碼表示的。例如:求-42的補(bǔ)碼。42用二進(jìn)制數(shù)表示是101010,其原碼為10101010,則其反碼為11010101,即其反碼加1即為補(bǔ)碼:11010110。說(shuō)明:在計(jì)算機(jī)中,帶符號(hào)的數(shù)用補(bǔ)碼表示,此時(shí)減法運(yùn)算變?yōu)榧臃?.3利用計(jì)算機(jī)處理問(wèn)題的基本過(guò)程1.計(jì)算機(jī)算題的簡(jiǎn)單過(guò)程2.利用計(jì)算機(jī)處理問(wèn)題的過(guò)程(1)需求分析。(2)確定處理方案。
(3)確定操作步驟。(4)編寫源程序。(5)輸入和運(yùn)行程序。(6)整理結(jié)果。
圖1.3計(jì)算機(jī)處理一個(gè)實(shí)際問(wèn)題的主要過(guò)程
1.3利用計(jì)算機(jī)處理問(wèn)題的基本過(guò)程1.計(jì)算機(jī)算題的簡(jiǎn)單1.4最簡(jiǎn)單的C程序的構(gòu)成
1.4.1C語(yǔ)言的特點(diǎn)(1)語(yǔ)言簡(jiǎn)潔、緊湊,使用方便、靈活。(2)具有豐富的運(yùn)算符和數(shù)據(jù)結(jié)構(gòu)。(3)C語(yǔ)言是完全模塊化和結(jié)構(gòu)化的語(yǔ)言。(4)C語(yǔ)言因?yàn)榧嬗懈呒?jí)和低級(jí)語(yǔ)言的特點(diǎn)。(5)與匯編語(yǔ)言相比,可移植性好。(6)生成目標(biāo)代碼質(zhì)量高。1.4最簡(jiǎn)單的C程序的構(gòu)成1.4.1C語(yǔ)言的特點(diǎn)1.4最簡(jiǎn)單的C程序的構(gòu)成
1.4.2C語(yǔ)言中的字符集
1.字符集字符是組成語(yǔ)言的最基本的元素。C語(yǔ)言字符集由字母、數(shù)字、空格、標(biāo)點(diǎn)和特殊字符組成,具體可以參看附錄1中常用字符與ASCII碼表。具體可以分為如下幾類:(1)字母。小寫英文字母a~z共26個(gè),大寫字母A~Z共26個(gè)。
(2)數(shù)字。0~9共10個(gè)。
(3)空白符??崭穹⒅票矸?、換行符等統(tǒng)稱為空白符。
(4)標(biāo)點(diǎn)和特殊字符。1.4最簡(jiǎn)單的C程序的構(gòu)成1.4.2C語(yǔ)言中的字符集1.4最簡(jiǎn)單的C程序的構(gòu)成
2.標(biāo)識(shí)符
C語(yǔ)言中用來(lái)對(duì)變量、符號(hào)常量、函數(shù)、數(shù)組、自定義類型等數(shù)據(jù)對(duì)象命名的有效字符序列統(tǒng)稱為標(biāo)識(shí)符(identifier)。簡(jiǎn)單地說(shuō),標(biāo)識(shí)符就是一個(gè)名字。
C語(yǔ)言規(guī)定標(biāo)識(shí)符只能由字母、數(shù)字和下劃線3種字符組成,且第1個(gè)字符必須為字母或下劃線。
下面列出的是合法的標(biāo)識(shí)符,可以作為變量名。X1,a,A3,student,abc,kk下面是不合法的標(biāo)識(shí)符和變量名M.D.John,¥123,#33,3D64,a>b,3x特別注意:編譯系統(tǒng)將大寫字母和小寫字母認(rèn)為是兩個(gè)不同的字符。
1.4最簡(jiǎn)單的C程序的構(gòu)成2.標(biāo)識(shí)符1.4最簡(jiǎn)單的C程序的構(gòu)成
3.關(guān)鍵字C語(yǔ)言的32個(gè)關(guān)鍵字,是C語(yǔ)言編譯系統(tǒng)賦予規(guī)定含義的英文單詞或字母組合,在進(jìn)行C語(yǔ)言的程序設(shè)計(jì)時(shí),不能再賦予其新的含義。C語(yǔ)言的關(guān)鍵字分為以下幾類:(1)類型說(shuō)明符。用于定義變量、函數(shù)或其他數(shù)據(jù)結(jié)構(gòu)的類型。如int、double等。(2)語(yǔ)句定義符。用于表示一個(gè)語(yǔ)句的功能。如if、else、while等。(3)預(yù)處理命令字。用于表示一個(gè)預(yù)處理命令。如include、define等。C語(yǔ)言的32個(gè)關(guān)鍵字,具體功能可以參看附錄Ⅳ。1.4最簡(jiǎn)單的C程序的構(gòu)成3.關(guān)鍵字例1.1
輸出一行信息Helloworld!。
#include<stdio.h>void
main(){
printf("Helloworld!
\n");}
1.4最簡(jiǎn)單的C程序的構(gòu)成/*文件包含*//*主函數(shù)*//*函數(shù)體開始*//*輸出語(yǔ)句*//*函數(shù)體結(jié)束*/說(shuō)明
main
主函數(shù)名,每個(gè)C程序必須有一個(gè)主函數(shù)main,系統(tǒng)執(zhí)行C程序時(shí),從main函數(shù)開始。()是函數(shù)的標(biāo)志。1.4.3C程序的構(gòu)成1.簡(jiǎn)單的C程序舉例
例1.1輸出一行信息Helloworld!。#inc1.4最簡(jiǎn)單的C程序的構(gòu)成
說(shuō)明void函數(shù)類型表示此函數(shù)是“空類型”,printf是C編譯系統(tǒng)提供的標(biāo)準(zhǔn)函數(shù)庫(kù)中的輸出函數(shù)名,
雙引號(hào)“”是字符串的定界符,雙引號(hào)內(nèi)的字符串按原樣輸出?!埃躰”是換行符,即在輸出“Helloworld!”后回車換行。
{}是函數(shù)開始和結(jié)束的標(biāo)志,不可省每個(gè)C語(yǔ)句以分號(hào)結(jié)束
#是預(yù)處理命令行起始符號(hào)。使用標(biāo)準(zhǔn)庫(kù)函數(shù)時(shí)應(yīng)在程序開頭一行寫:#includestdio.h>說(shuō)明:本程序的運(yùn)行結(jié)果:
Helloworld!1.4最簡(jiǎn)單的C程序的構(gòu)成說(shuō)明說(shuō)明:本程序的運(yùn)行結(jié)1.4最簡(jiǎn)單的C程序的構(gòu)成例1.2
求兩個(gè)整數(shù)之和。#include<stdio.h>voidmain(){inta,b,sum;a=11;b=45;
sum=a+b;
printf(“sumis%d\n”,sum);}
/*求兩數(shù)之和*/
/*變量聲明部分*//*賦值語(yǔ)句*//*輸出函數(shù)*/
本程序的運(yùn)行結(jié)果:sumis561.4最簡(jiǎn)單的C程序的構(gòu)成例1.2求兩個(gè)整數(shù)之和。/1.4最簡(jiǎn)單的C程序的構(gòu)成
說(shuō)明本程序中各行右側(cè)的/*……*/表示注釋。逗號(hào)主要用在變量類型說(shuō)明中分隔各個(gè)變量,是分隔符。在C程序中采用的分隔符最常用的有逗號(hào)和空格兩種??崭穸嘤糜谡Z(yǔ)句各單詞之間,作分隔符?!癷nta,b,sum;”是函數(shù)體中的聲明部分,定義變量a和b,指定a和b為整型(int)變量。“a=11;b=45;sum=a+b;”是賦值語(yǔ)句。printf函數(shù)中得“%”是輸入輸出的“格式字符串”,用來(lái)指定輸入輸出時(shí)的數(shù)據(jù)類型和格式。
1.4最簡(jiǎn)單的C程序的構(gòu)成說(shuō)明1.4最簡(jiǎn)單的C程序的構(gòu)成例1.3計(jì)算長(zhǎng)為l,寬為w,高為h的長(zhǎng)方體體積v。
#include<stdio.h>viodmain(){intvolume(intlength,intwidth,inthigh);intl,w,h,v;printf("pleaseinputl,w,h:\n");
scanf("%d,%d,%d",&l,&w,&h);v=volume(l,w,h);
printf("v=%d",v);
return;}intvolume(intlength,intwidth,inthigh)
{intv;v=length*width*high; returnv; }程序運(yùn)行結(jié)果:pleaseinputl,w,h:4,3,2↙
v=241.4最簡(jiǎn)單的C程序的構(gòu)成例1.3計(jì)算長(zhǎng)為l,寬為w,1.4最簡(jiǎn)單的C程序的構(gòu)成說(shuō)明:本程序包括main和被調(diào)用函數(shù)volume兩個(gè)函數(shù)。max函數(shù)的作用是計(jì)算一個(gè)長(zhǎng)方體的體積。return語(yǔ)句將z的值返回給主調(diào)函數(shù)main。2.C源程序的結(jié)構(gòu)特點(diǎn)(1)C程序是由函數(shù)構(gòu)成的。一個(gè)C源程序至少且僅包含一個(gè)main函數(shù)。(2)一個(gè)C程序總是從main函數(shù)開始執(zhí)行的。(3)C源程序中可以有預(yù)處理命令,預(yù)處理命令通常應(yīng)放在源文件或源程序的最前面。(4)C程序的基本單位是函數(shù)。被調(diào)用的函數(shù)可以是系統(tǒng)提供的庫(kù)函數(shù)(如printf和scanf等輸入輸出函數(shù)),也可以是用戶自定義函數(shù)(如volume函數(shù))。
1.4最簡(jiǎn)單的C程序的構(gòu)成說(shuō)明:本程序包括main和被調(diào)1.4最簡(jiǎn)單的C程序的構(gòu)成3.C函數(shù)的組成(1)函數(shù)首部。即函數(shù)的第1行,包括函數(shù)名、函數(shù)類型、函數(shù)屬性、函數(shù)參數(shù)(形式參數(shù)名、參數(shù)類型)。一個(gè)函數(shù)名后面必須跟一對(duì)圓括號(hào),括號(hào)內(nèi)寫函數(shù)的參數(shù)名及其類型。例如,例1.3中的volume函數(shù)的首部為:(2)函數(shù)體。即函數(shù)首部下面的花括號(hào)內(nèi)的部分。①聲明部分。定義所用到的變量和對(duì)所調(diào)用函數(shù)的聲明。②執(zhí)行部分。由若干個(gè)C語(yǔ)句組成。1.4最簡(jiǎn)單的C程序的構(gòu)成3.C函數(shù)的組成1.4最簡(jiǎn)單的C程序的構(gòu)成說(shuō)明:(1)空函數(shù):有時(shí)函數(shù)可以既無(wú)聲明部分也無(wú)執(zhí)行部分。如:voidexample1(){}它是一個(gè),什么也不做,但這是符合C語(yǔ)言規(guī)則的。(2)C語(yǔ)言本身沒(méi)有輸入輸出語(yǔ)句。輸入和輸出的操作是由庫(kù)函數(shù)scanf和printf等函數(shù)來(lái)完成的。由于輸入輸出操作牽涉具體的計(jì)算機(jī)設(shè)備,把輸入輸出操作放在函數(shù)中處理,就可以使C語(yǔ)言本身的規(guī)模較小,編譯程序簡(jiǎn)單,很容易在各種機(jī)器上實(shí)現(xiàn),程序具有可移植性。(3)不同計(jì)算機(jī)系統(tǒng)除了提供標(biāo)準(zhǔn)函數(shù)外,還提供一些專門的函數(shù),因此不同計(jì)算機(jī)系統(tǒng)中所提供的函數(shù)個(gè)數(shù)和功能是有所不同的。ANSIC提供一百多個(gè)庫(kù)函數(shù),TurboC則提供三百多個(gè)庫(kù)函數(shù)。1.4最簡(jiǎn)單的C程序的構(gòu)成說(shuō)明:1.4最簡(jiǎn)單的C程序的構(gòu)成4.書寫程序時(shí)應(yīng)遵循的規(guī)則(1)每個(gè)語(yǔ)句和數(shù)據(jù)聲明的最后必須有個(gè)分號(hào),分號(hào)是C語(yǔ)句的必要組成部分。(2)關(guān)鍵字、標(biāo)識(shí)符之間必須至少加一個(gè)空格以示間隔。若已有明顯的間隔符如逗號(hào)、分號(hào)等,也可不再加空格來(lái)間隔。(3)C程序書寫格式自由,一行內(nèi)可以寫幾個(gè)語(yǔ)句,一個(gè)語(yǔ)句可以分寫在多行上。(4)函數(shù)體內(nèi)部用{}括起來(lái)的部分,通常表示程序的某一層次結(jié)構(gòu)。在編程時(shí)應(yīng)力求遵循這些規(guī)則,以養(yǎng)成良好的編程風(fēng)格。(5)可以用/*……*/對(duì)C程序中的任何部分做注釋1.4最簡(jiǎn)單的C程序的構(gòu)成4.書寫程序時(shí)應(yīng)遵循的規(guī)則1.5C語(yǔ)言的運(yùn)行環(huán)境和上機(jī)步驟
1.5.1C語(yǔ)言的運(yùn)行環(huán)境選用TurboC++3.0作為學(xué)習(xí)C語(yǔ)言的運(yùn)行環(huán)境。對(duì)于熟悉VisualC++的人,可以參考與本書配套的《C程序設(shè)計(jì)教程習(xí)題解答與上機(jī)指導(dǎo)》指導(dǎo)書來(lái)學(xué)習(xí)。
TurboC++3.0:是一個(gè)集成環(huán)境,它具有方便、直觀和易用的界面,雖然它也是DOS環(huán)境下的集成環(huán)境,但是可以把啟動(dòng)TurboC++3.0集成環(huán)境的DOS執(zhí)行文件tc.exe生成快捷方式,也可以用鼠標(biāo)操作。1.5C語(yǔ)言的運(yùn)行環(huán)境和上機(jī)步驟1.5.1C語(yǔ)言的運(yùn)1.5C語(yǔ)言的運(yùn)行環(huán)境和上機(jī)步驟
TurboC++3.0的集成環(huán)境可以通過(guò)兩種方法得到TurboC++3.0集成環(huán)境。(1)在DOS環(huán)境下??梢栽贒OS環(huán)境下用鍵盤輸入DOS命令TC即可:D:\TC3.0>TC↙
(2)在Windows環(huán)境下。先通過(guò)瀏覽找到TurboC++3.0集成環(huán)境所在的子目錄(如D:\TC3.0),從中找到可執(zhí)行文件tc.exe,創(chuàng)建其快捷方式,并拖曳到Windows桌面上,用一個(gè)圖標(biāo)表示。雙擊該圖標(biāo),就可打開的TurboC++3.0集成環(huán)境。圖1.4TurboC++3.0集成環(huán)境
1.5C語(yǔ)言的運(yùn)行環(huán)境和上機(jī)步驟TurboC++31.5C語(yǔ)言的運(yùn)行環(huán)境和上機(jī)步驟
在集成環(huán)境
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度城市休閑單車租賃合作協(xié)議9篇
- 新疆輕工職業(yè)技術(shù)學(xué)院《服裝工藝與制作》2023-2024學(xué)年第一學(xué)期期末試卷
- 最高法院指導(dǎo)案例分享座談
- 新疆警察學(xué)院《數(shù)字邏輯與數(shù)字電路技術(shù)實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 《課間數(shù)學(xué)家逸聞》課件
- 校園貸款安全
- 《繼承的法律沖突法》課件
- 空港股合同范例
- 手工車間設(shè)備轉(zhuǎn)讓合同范例
- 醫(yī)療備案合同范例
- 幼兒藝術(shù)療愈課程設(shè)計(jì)
- 2024年化學(xué)檢驗(yàn)員(中級(jí)工)技能鑒定考試題庫(kù)(附答案)
- 【MOOC】中學(xué)化學(xué)教學(xué)設(shè)計(jì)與實(shí)踐-北京師范大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- GB 15930-2024建筑通風(fēng)和排煙系統(tǒng)用防火閥門
- 2023-2024學(xué)年廣東省深圳市寶安區(qū)五年級(jí)(上)期末英語(yǔ)試卷
- 2022-2023學(xué)年北京市通州區(qū)高二(上)期末地理試卷
- 2024年度VR虛擬現(xiàn)實(shí)內(nèi)容創(chuàng)作合同
- 第五單元有趣的立體圖形 (單元測(cè)試)-2024-2025學(xué)年一年級(jí)上冊(cè)數(shù)學(xué) 北師大版
- 房地產(chǎn)中介業(yè)務(wù)管理制度
- 2024年湖南公務(wù)員考試申論試題(省市卷)
- 全國(guó)職業(yè)院校技能大賽中職(大數(shù)據(jù)應(yīng)用與服務(wù)賽項(xiàng))考試題及答案
評(píng)論
0/150
提交評(píng)論