第1章C語(yǔ)言入門基礎(chǔ)_第1頁(yè)
第1章C語(yǔ)言入門基礎(chǔ)_第2頁(yè)
第1章C語(yǔ)言入門基礎(chǔ)_第3頁(yè)
第1章C語(yǔ)言入門基礎(chǔ)_第4頁(yè)
第1章C語(yǔ)言入門基礎(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、從零開始學(xué)習(xí)從零開始學(xué)習(xí)C語(yǔ)言語(yǔ)言本書的主要特點(diǎn)如下:本書的主要特點(diǎn)如下:內(nèi)容全面詳細(xì)。本章一共分為內(nèi)容全面詳細(xì)。本章一共分為18章,涵蓋了章,涵蓋了C語(yǔ)言中的語(yǔ)言中的所有知識(shí),并將所有知識(shí),并將C語(yǔ)言各個(gè)知識(shí)點(diǎn)做一個(gè)章節(jié)進(jìn)行講解。并語(yǔ)言各個(gè)知識(shí)點(diǎn)做一個(gè)章節(jié)進(jìn)行講解。并舉出大量實(shí)例。舉出大量實(shí)例。結(jié)構(gòu)清晰明了。本章結(jié)構(gòu)清晰明了。本章18章中,每章都分若干個(gè)小節(jié),章中,每章都分若干個(gè)小節(jié),每個(gè)小節(jié)一個(gè)小知識(shí)點(diǎn)。結(jié)構(gòu)層次清晰可見。每個(gè)小節(jié)一個(gè)小知識(shí)點(diǎn)。結(jié)構(gòu)層次清晰可見。講解由淺入深。向讀者介紹講解由淺入深。向讀者介紹C語(yǔ)言的基本理論知識(shí)、數(shù)語(yǔ)言的基本理論知識(shí)、數(shù)據(jù)結(jié)構(gòu)和基本的編程規(guī)則,讓讀者對(duì)據(jù)結(jié)

2、構(gòu)和基本的編程規(guī)則,讓讀者對(duì)C語(yǔ)言的基本知識(shí)以及語(yǔ)言的基本知識(shí)以及結(jié)構(gòu)化程序設(shè)計(jì)思想有一個(gè)初步的認(rèn)識(shí);接著對(duì)結(jié)構(gòu)化程序設(shè)計(jì)思想有一個(gè)初步的認(rèn)識(shí);接著對(duì)C語(yǔ)言一些語(yǔ)言一些復(fù)雜的數(shù)結(jié)構(gòu)類型如數(shù)組、函數(shù)、指針操作、結(jié)構(gòu)體與共用復(fù)雜的數(shù)結(jié)構(gòu)類型如數(shù)組、函數(shù)、指針操作、結(jié)構(gòu)體與共用體、文件等進(jìn)行詳細(xì)的講解。體、文件等進(jìn)行詳細(xì)的講解。實(shí)例豐富多樣。本書所講的每一個(gè)知識(shí)點(diǎn)都運(yùn)用充分實(shí)例豐富多樣。本書所講的每一個(gè)知識(shí)點(diǎn)都運(yùn)用充分的實(shí)例進(jìn)行講解說(shuō)明,便于讀者掌握。的實(shí)例進(jìn)行講解說(shuō)明,便于讀者掌握。第第1 1章章 C C語(yǔ)言入門基礎(chǔ)語(yǔ)言入門基礎(chǔ)C語(yǔ)言作為國(guó)際上流行的計(jì)算機(jī)高級(jí)語(yǔ)言,能實(shí)現(xiàn)多種語(yǔ)言作為國(guó)際上流行的計(jì)

3、算機(jī)高級(jí)語(yǔ)言,能實(shí)現(xiàn)多種功能。為使讀者能夠?qū)δ堋槭棺x者能夠?qū)語(yǔ)言有一個(gè)全面的認(rèn)識(shí),本章在介語(yǔ)言有一個(gè)全面的認(rèn)識(shí),本章在介紹紹C語(yǔ)言之前,還簡(jiǎn)單的介紹了很多其他的相關(guān)知識(shí)。語(yǔ)言之前,還簡(jiǎn)單的介紹了很多其他的相關(guān)知識(shí)。計(jì)算機(jī)語(yǔ)言的演變;計(jì)算機(jī)語(yǔ)言的演變;數(shù)制、數(shù)制轉(zhuǎn)換與存儲(chǔ);數(shù)制、數(shù)制轉(zhuǎn)換與存儲(chǔ);程序設(shè)計(jì)思想程序設(shè)計(jì)思想算法;算法;C語(yǔ)言的發(fā)展簡(jiǎn)史和特點(diǎn);語(yǔ)言的發(fā)展簡(jiǎn)史和特點(diǎn);認(rèn)識(shí)認(rèn)識(shí)C語(yǔ)言程序;語(yǔ)言程序;Turbo C V2.0的運(yùn)行環(huán)境及基本操作。的運(yùn)行環(huán)境及基本操作。1.1 1.1 計(jì)算機(jī)語(yǔ)言的演變計(jì)算機(jī)語(yǔ)言的演變機(jī)器語(yǔ)言機(jī)器語(yǔ)言匯編語(yǔ)言到匯編語(yǔ)言到高級(jí)語(yǔ)言高級(jí)語(yǔ)言面向?qū)ο蠡蛎嫦騿?wèn)題的

4、高級(jí)語(yǔ)言面向?qū)ο蠡蛎嫦騿?wèn)題的高級(jí)語(yǔ)言 1.1.1 1.1.1 機(jī)器語(yǔ)言機(jī)器語(yǔ)言機(jī)器語(yǔ)言是第一代計(jì)算機(jī)語(yǔ)言。計(jì)算機(jī)所使用的是由機(jī)器語(yǔ)言是第一代計(jì)算機(jī)語(yǔ)言。計(jì)算機(jī)所使用的是由“0”和和“1”組成的二進(jìn)制數(shù),二進(jìn)制是計(jì)算機(jī)的語(yǔ)言的基礎(chǔ)組成的二進(jìn)制數(shù),二進(jìn)制是計(jì)算機(jī)的語(yǔ)言的基礎(chǔ),所以也稱為二進(jìn)制語(yǔ)言。機(jī)器語(yǔ)言指用機(jī)器碼書寫程序,所以也稱為二進(jìn)制語(yǔ)言。機(jī)器語(yǔ)言指用機(jī)器碼書寫程序,不易被人們識(shí)別和讀寫,所以使用機(jī)器語(yǔ)言是十分痛苦的,不易被人們識(shí)別和讀寫,所以使用機(jī)器語(yǔ)言是十分痛苦的,特別是在程序有錯(cuò)需要修改時(shí),更是如此。而且,由于每臺(tái)特別是在程序有錯(cuò)需要修改時(shí),更是如此。而且,由于每臺(tái)計(jì)算機(jī)的指令系統(tǒng)往往

5、各不相同,所以在一臺(tái)計(jì)算機(jī)上執(zhí)行計(jì)算機(jī)的指令系統(tǒng)往往各不相同,所以在一臺(tái)計(jì)算機(jī)上執(zhí)行的程序,要想在另一臺(tái)計(jì)算機(jī)上執(zhí)行,必須另編程序,造成的程序,要想在另一臺(tái)計(jì)算機(jī)上執(zhí)行,必須另編程序,造成了重復(fù)工作。但由于計(jì)算機(jī)能夠直接識(shí)別程序中的指令,故了重復(fù)工作。但由于計(jì)算機(jī)能夠直接識(shí)別程序中的指令,故而運(yùn)算效率是所有語(yǔ)言中最高的,這種用二進(jìn)制編寫的程序而運(yùn)算效率是所有語(yǔ)言中最高的,這種用二進(jìn)制編寫的程序也叫也叫“目標(biāo)程序目標(biāo)程序”。1.1.2 1.1.2 匯編語(yǔ)言匯編語(yǔ)言 匯編語(yǔ)言又稱符號(hào)語(yǔ)言,對(duì)機(jī)器指令進(jìn)行簡(jiǎn)單的符號(hào)匯編語(yǔ)言又稱符號(hào)語(yǔ)言,對(duì)機(jī)器指令進(jìn)行簡(jiǎn)單的符號(hào)化,它也是利用計(jì)算機(jī)所有硬件特性并能直接

6、控制硬件語(yǔ)言化,它也是利用計(jì)算機(jī)所有硬件特性并能直接控制硬件語(yǔ)言。人們?yōu)榱藴p輕使用機(jī)器語(yǔ)言編程的痛苦,對(duì)機(jī)器語(yǔ)言進(jìn)行。人們?yōu)榱藴p輕使用機(jī)器語(yǔ)言編程的痛苦,對(duì)機(jī)器語(yǔ)言進(jìn)行了一種有益的改進(jìn):用一些簡(jiǎn)潔的英文字母、符號(hào)串來(lái)替代了一種有益的改進(jìn):用一些簡(jiǎn)潔的英文字母、符號(hào)串來(lái)替代一個(gè)特定的指令的二進(jìn)制串,比如,用一個(gè)特定的指令的二進(jìn)制串,比如,用“ADD”表示加法,表示加法,“MOV”表示數(shù)據(jù)傳遞等等,因此,人們就能理解程序所進(jìn)表示數(shù)據(jù)傳遞等等,因此,人們就能理解程序所進(jìn)行的操作,方便用戶對(duì)程序進(jìn)行糾錯(cuò)及維護(hù)。行的操作,方便用戶對(duì)程序進(jìn)行糾錯(cuò)及維護(hù)。1.1.3 1.1.3 高級(jí)語(yǔ)言高級(jí)語(yǔ)言用高級(jí)語(yǔ)言編

7、寫的程序稱為用高級(jí)語(yǔ)言編寫的程序稱為“源程序源程序”,源程序不能,源程序不能在計(jì)算機(jī)上直接運(yùn)行,必須將其翻譯成二進(jìn)制程序后才能執(zhí)在計(jì)算機(jī)上直接運(yùn)行,必須將其翻譯成二進(jìn)制程序后才能執(zhí)行。翻譯有兩種方式:解釋程序和編譯程序。解釋程序是將行。翻譯有兩種方式:解釋程序和編譯程序。解釋程序是將一次只讀一行源程序,并執(zhí)行該行語(yǔ)言指定的操作,每次運(yùn)一次只讀一行源程序,并執(zhí)行該行語(yǔ)言指定的操作,每次運(yùn)行用戶程序時(shí),必須要用解釋程序。在程序的開發(fā)過(guò)程中,行用戶程序時(shí),必須要用解釋程序。在程序的開發(fā)過(guò)程中,運(yùn)用解釋的方式執(zhí)行程序,便于程序員對(duì)程序進(jìn)行調(diào)試。編運(yùn)用解釋的方式執(zhí)行程序,便于程序員對(duì)程序進(jìn)行調(diào)試。編譯程

8、序是將源程序全部翻譯成目標(biāo)代碼即二進(jìn)制程序后再執(zhí)譯程序是將源程序全部翻譯成目標(biāo)代碼即二進(jìn)制程序后再執(zhí)行,只讀取一次,節(jié)省了大量的時(shí)間。行,只讀取一次,節(jié)省了大量的時(shí)間。1.1.4 1.1.4 面向?qū)ο蠡蛎嫦騿?wèn)題的高級(jí)語(yǔ)言面向?qū)ο蠡蛎嫦騿?wèn)題的高級(jí)語(yǔ)言第四代語(yǔ)言是使用第二代第三代語(yǔ)言編制而成的。面第四代語(yǔ)言是使用第二代第三代語(yǔ)言編制而成的。面向?qū)ο蟮恼Z(yǔ)言是在面向過(guò)程的計(jì)算機(jī)語(yǔ)言的基礎(chǔ)上發(fā)展面來(lái)向?qū)ο蟮恼Z(yǔ)言是在面向過(guò)程的計(jì)算機(jī)語(yǔ)言的基礎(chǔ)上發(fā)展面來(lái)的,如的,如C+語(yǔ)言就是由語(yǔ)言就是由C語(yǔ)言發(fā)展面來(lái)的。所謂面向?qū)ο?,語(yǔ)言發(fā)展面來(lái)的。所謂面向?qū)ο螅褪腔趯?duì)象的概念,以對(duì)象為中心,類和繼承為構(gòu)造機(jī)制就是基

9、于對(duì)象的概念,以對(duì)象為中心,類和繼承為構(gòu)造機(jī)制,認(rèn)識(shí)了解刻畫客觀世界以及開發(fā)出相應(yīng)的軟件系統(tǒng)。它是,認(rèn)識(shí)了解刻畫客觀世界以及開發(fā)出相應(yīng)的軟件系統(tǒng)。它是把構(gòu)成問(wèn)題事務(wù)分解成各個(gè)對(duì)象,建立對(duì)象的目的不是為了把構(gòu)成問(wèn)題事務(wù)分解成各個(gè)對(duì)象,建立對(duì)象的目的不是為了完成一個(gè)步驟,而是為了描述某個(gè)事物在整個(gè)解決問(wèn)題的步完成一個(gè)步驟,而是為了描述某個(gè)事物在整個(gè)解決問(wèn)題的步驟中的行為。比較典型代表的面向?qū)辰{蟶杓樸镅雜驟中的行為。比較典型代表的面向?qū)辰{蟶杓樸镅雜C+、Virtual Basic、Delphi等。等。1.2 1.2 數(shù)制、數(shù)制轉(zhuǎn)換與存儲(chǔ)數(shù)制、數(shù)制轉(zhuǎn)換與存儲(chǔ)數(shù)制數(shù)制數(shù)制轉(zhuǎn)換數(shù)制轉(zhuǎn)換計(jì)算機(jī)中數(shù)據(jù)的存

10、儲(chǔ)計(jì)算機(jī)中數(shù)據(jù)的存儲(chǔ)1.2.1 1.2.1 數(shù)制數(shù)制1 1二進(jìn)制數(shù)二進(jìn)制數(shù)二進(jìn)制數(shù)由兩個(gè)基本數(shù)字二進(jìn)制數(shù)由兩個(gè)基本數(shù)字0 0、1 1組成,二進(jìn)制數(shù)的運(yùn)算規(guī)律組成,二進(jìn)制數(shù)的運(yùn)算規(guī)律是逢二進(jìn)一是逢二進(jìn)一 。例如:例如: 100101100101可以寫成(可以寫成(100101100101)2 2或?qū)懗苫驅(qū)懗?00101B100101B。 二進(jìn)制數(shù)的加法和乘法運(yùn)算如下:二進(jìn)制數(shù)的加法和乘法運(yùn)算如下:0+0=0 0+1=1+0=1 1+1=10 00+0=0 0+1=1+0=1 1+1=10 0* *0=0 00=0 0* *1=11=1* *0=0 10=0 1 1=1 1=1 101101100

11、101011000110+1.2.1 1.2.1 數(shù)制數(shù)制2 2八進(jìn)制數(shù)八進(jìn)制數(shù)八進(jìn)制是由八進(jìn)制是由0707八個(gè)數(shù)字組成,運(yùn)算規(guī)則是逢八個(gè)數(shù)字組成,運(yùn)算規(guī)則是逢8 8進(jìn)一。進(jìn)一。 例如:例如: 八進(jìn)制八進(jìn)制261261寫成(寫成(261261)8 8、(、(261261)O O。 1.2.1 1.2.1 數(shù)制數(shù)制3 3十進(jìn)制數(shù)十進(jìn)制數(shù)十進(jìn)制數(shù)是我們常用的數(shù)據(jù)表示方法,由十進(jìn)制數(shù)是我們常用的數(shù)據(jù)表示方法,由0909十個(gè)數(shù)字十個(gè)數(shù)字組成,運(yùn)算規(guī)則是逢組成,運(yùn)算規(guī)則是逢1010進(jìn)一。進(jìn)一。例如:例如: 十進(jìn)制十進(jìn)制126126可表示為(可表示為(126126)1010、126D126D、126126

12、。1.2.1 1.2.1 數(shù)制數(shù)制4 4十六進(jìn)制數(shù)十六進(jìn)制數(shù)十六進(jìn)制數(shù)由十六進(jìn)制數(shù)由0909以及以及AFAF十六個(gè)數(shù)字組成,十六個(gè)數(shù)字組成,AFAF分別分別表示十進(jìn)制數(shù)表示十進(jìn)制數(shù)10151015,運(yùn)算規(guī)則是逢,運(yùn)算規(guī)則是逢1616進(jìn)一。通常在表示進(jìn)進(jìn)一。通常在表示進(jìn)用用例如:例如:(1FA1FA)1616、(、(1FA1FA)H H注意注意在在C C語(yǔ)言程序中語(yǔ)言程序中十六進(jìn)制需要以十六進(jìn)制需要以0 x0 x開頭開頭八進(jìn)制需要以八進(jìn)制需要以0 0開頭,開頭,例如:例如: 01230123表示八進(jìn)制的表示八進(jìn)制的123123 0 x123 0 x123表示十六進(jìn)制的表示十六進(jìn)制的123 123

13、 1.2.2 1.2.2 數(shù)制的轉(zhuǎn)換數(shù)制的轉(zhuǎn)換1 1二進(jìn)制、八進(jìn)制、十六進(jìn)制轉(zhuǎn)換成十進(jìn)制二進(jìn)制、八進(jìn)制、十六進(jìn)制轉(zhuǎn)換成十進(jìn)制規(guī)則:數(shù)碼乘以各自的權(quán)的累加【例1-1】其他進(jìn)制轉(zhuǎn)換成十進(jìn)制。(10001)B=24+20=16+1=17(101.01)B=22+20+2-2=4+1+0.25=5.25(011)O=81+80=8+1=9(72)O=7*81+2*80=7*8+2*1=58(112A)H=1*163+1*162+2*161+10*16043941.2.2 1.2.2 數(shù)制的轉(zhuǎn)換數(shù)制的轉(zhuǎn)換2 2十進(jìn)制轉(zhuǎn)換成二進(jìn)制、八進(jìn)制、十六進(jìn)制十進(jìn)制轉(zhuǎn)換成二進(jìn)制、八進(jìn)制、十六進(jìn)制規(guī)則:規(guī)則:整數(shù)部分:

14、除以進(jìn)制取余數(shù),直到商為整數(shù)部分:除以進(jìn)制取余數(shù),直到商為0 0,余數(shù)從下到上排列。,余數(shù)從下到上排列。小數(shù)部分:乘以進(jìn)制取整數(shù),得到的整數(shù)從上到下排列。小數(shù)部分:乘以進(jìn)制取整數(shù),得到的整數(shù)從上到下排列?!纠纠?-2】十進(jìn)制轉(zhuǎn)換成其他進(jìn)制?!渴M(jìn)制轉(zhuǎn)換成其他進(jìn)制。(1 1)十進(jìn)制)十進(jìn)制20.34520.345轉(zhuǎn)換成二進(jìn)制轉(zhuǎn)換成二進(jìn)制20.345D=10100.01011B20.345D=10100.01011B整數(shù)部分:20/2=10 -余010/2=5 -余05/2=2 -余12/2=1 -余01/2=0 -余1小數(shù)部分:0.345*2=0.69 -取整數(shù)00.69*2=1.38 -取整

15、數(shù)10.38*2=0.76 -取整數(shù)00.76*2=1.52 -取整數(shù)10.52*2=1.04 -取整數(shù)1【例【例1-2】十進(jìn)制轉(zhuǎn)換成其他進(jìn)制?!渴M(jìn)制轉(zhuǎn)換成其他進(jìn)制。(2 2)十進(jìn)制)十進(jìn)制100100轉(zhuǎn)換成八進(jìn)制、十六進(jìn)制轉(zhuǎn)換成八進(jìn)制、十六進(jìn)制100/8=12 -余412/8=1 -余41/8=0 -余1100D=144O100/16=6 -余46/16=0 -余6100D=64H1.2.2 1.2.2 數(shù)制的轉(zhuǎn)換數(shù)制的轉(zhuǎn)換3 3二進(jìn)制轉(zhuǎn)換八進(jìn)制二進(jìn)制轉(zhuǎn)換八進(jìn)制規(guī)則:規(guī)則:整數(shù)部分:從右向左按三位進(jìn)行分組,不足補(bǔ)零。整數(shù)部分:從右向左按三位進(jìn)行分組,不足補(bǔ)零。小數(shù)部分:從左向右按三位進(jìn)行分

16、組,不足補(bǔ)零。小數(shù)部分:從左向右按三位進(jìn)行分組,不足補(bǔ)零?!纠纠?-31-3】將二進(jìn)制數(shù)(】將二進(jìn)制數(shù)(1101101110.1101011101101110.110101)2 2轉(zhuǎn)換轉(zhuǎn)換成八進(jìn)制數(shù)。成八進(jìn)制數(shù)。001001 101101 101101 110110. .110110 101101 1 5 5 6 6 5 1 5 5 6 6 5 (1101101110.1101011101101110.110101)2 2= =(1555.651555.65)8 81.2.2 1.2.2 數(shù)制的轉(zhuǎn)換數(shù)制的轉(zhuǎn)換4 4二進(jìn)制轉(zhuǎn)換成十六進(jìn)制二進(jìn)制轉(zhuǎn)換成十六進(jìn)制規(guī)則:規(guī)則:整數(shù)部分:從右向左按四位進(jìn)

17、行分組,不足補(bǔ)零。整數(shù)部分:從右向左按四位進(jìn)行分組,不足補(bǔ)零。小數(shù)部分:從左向右按四位進(jìn)行分組,不足補(bǔ)零。小數(shù)部分:從左向右按四位進(jìn)行分組,不足補(bǔ)零。【例【例1-41-4】將二進(jìn)制數(shù)(】將二進(jìn)制數(shù)(001101101110.110101001101101110.110101)2 2轉(zhuǎn)轉(zhuǎn)換成十六進(jìn)制數(shù)。換成十六進(jìn)制數(shù)。00110011 01100110 11101110. .11011101 01000100 3 6 E D 4 3 6 E D 4(001101101110.110101001101101110.110101)2=2=(36.ED436.ED4)16161.2.2 1.2.2 數(shù)

18、制的轉(zhuǎn)換數(shù)制的轉(zhuǎn)換5八進(jìn)制、十六進(jìn)制轉(zhuǎn)換成二進(jìn)制八進(jìn)制、十六進(jìn)制轉(zhuǎn)換成二進(jìn)制規(guī)則:規(guī)則:一位八進(jìn)制對(duì)應(yīng)三位二進(jìn)制。一位八進(jìn)制對(duì)應(yīng)三位二進(jìn)制。一位十六進(jìn)制對(duì)應(yīng)四位二進(jìn)制。一位十六進(jìn)制對(duì)應(yīng)四位二進(jìn)制?!纠纠?-5】八進(jìn)制、十六進(jìn)制轉(zhuǎn)換成二進(jìn)制?!堪诉M(jìn)制、十六進(jìn)制轉(zhuǎn)換成二進(jìn)制。(136)8=(001 011 110)2 (17A)16=(0001 0111 1010)2 1 3 6 1 7 A1.2.3 1.2.3 計(jì)算機(jī)中數(shù)據(jù)的存儲(chǔ)計(jì)算機(jī)中數(shù)據(jù)的存儲(chǔ)如表示:比較一下如表示:比較一下1與與-1的原碼、反碼和補(bǔ)碼。的原碼、反碼和補(bǔ)碼。1.3 1.3 程序設(shè)計(jì)思想程序設(shè)計(jì)思想算法算法在我們遇到問(wèn)題的時(shí)

19、候,我們首先在大腦中形成一種在我們遇到問(wèn)題的時(shí)候,我們首先在大腦中形成一種解題思路,然后再根據(jù)可行的思路運(yùn)用具體的步驟解決問(wèn)題解題思路,然后再根據(jù)可行的思路運(yùn)用具體的步驟解決問(wèn)題。在程序設(shè)計(jì)中,也需要有一種編程思路,這就是算法。在程序設(shè)計(jì)中,也需要有一種編程思路,這就是算法。1.3.1 1.3.1 算法的概念算法的概念在程序設(shè)計(jì)中,算法應(yīng)該能夠離散成具體的若干個(gè)操在程序設(shè)計(jì)中,算法應(yīng)該能夠離散成具體的若干個(gè)操作步驟,而且每一個(gè)步驟都是能夠用程序設(shè)計(jì)語(yǔ)言提供的語(yǔ)作步驟,而且每一個(gè)步驟都是能夠用程序設(shè)計(jì)語(yǔ)言提供的語(yǔ)句或者語(yǔ)句串來(lái)完成的。句或者語(yǔ)句串來(lái)完成的。例如,求二個(gè)整數(shù)中的最大的數(shù)。解決這個(gè)問(wèn)

20、題的算例如,求二個(gè)整數(shù)中的最大的數(shù)。解決這個(gè)問(wèn)題的算法如下:法如下:第第1步步 開始。開始。第第2步步 輸入二個(gè)整數(shù)輸入二個(gè)整數(shù)a、b。第第3步步 比較比較a、b的大小,如果的大小,如果ab時(shí),輸出時(shí),輸出a,否則輸,否則輸出出b。第第4步步 結(jié)束。結(jié)束。需要注意的是,程序是有開始和結(jié)束的,所以算法必需要注意的是,程序是有開始和結(jié)束的,所以算法必須有須有“開始開始”和和“結(jié)束結(jié)束”這兩個(gè)步驟。這兩個(gè)步驟。1.3.2 1.3.2 算法的特點(diǎn)算法的特點(diǎn)算法具有以下五個(gè)重要的特征:算法具有以下五個(gè)重要的特征:1有窮性有窮性2確定性確定性3。有效性。有效性4輸入輸入5輸出輸出1.3.3 1.3.3 算

21、法的表示方法算法的表示方法1 1自然語(yǔ)言自然語(yǔ)言【例【例1-61-6】用自然語(yǔ)言描述】用自然語(yǔ)言描述100100以內(nèi)正整數(shù)的和。以內(nèi)正整數(shù)的和。1 1設(shè)設(shè)S S代表總和,代表總和,N N代表正整數(shù);代表正整數(shù);2 2S=0S=0,N=1N=1;3 3S=S+NS=S+N,原來(lái)的和加上一個(gè)正整數(shù);,原來(lái)的和加上一個(gè)正整數(shù);4 4N=N+1,N=N+1,把下一個(gè)正整數(shù)賦給把下一個(gè)正整數(shù)賦給N N;5 5判斷判斷N N是否小于是否小于100100,如果是跳轉(zhuǎn)到步驟,如果是跳轉(zhuǎn)到步驟3 3,否則跳,否則跳轉(zhuǎn)到步驟轉(zhuǎn)到步驟6 6;6 6輸出輸出S S的值。的值。1.3.3 1.3.3 算法的表示方法算法

22、的表示方法2 2流程圖流程圖 常用流程圖構(gòu)件常用流程圖構(gòu)件1.3.3 1.3.3 算法的表示方法算法的表示方法3 3偽代碼偽代碼將上述【例將上述【例1-61-6】用偽代碼描述表示如下:】用偽代碼描述表示如下:N1; N1; S0; S0; do while N100do while N100SS+N; SS+N; NN+1; NN+1; print Sprint S1.3.3 1.3.3 算法的表示方法算法的表示方法4N-S圖圖(1)順序結(jié)構(gòu))順序結(jié)構(gòu)N-S圖圖(2)選擇結(jié)構(gòu))選擇結(jié)構(gòu)N-S圖圖(3)循環(huán)結(jié)構(gòu))循環(huán)結(jié)構(gòu)N-S圖圖1.3.4 1.3.4 算法分析算法分析什么樣的算法才是一個(gè)好的算

23、法呢?通常從下列幾個(gè)什么樣的算法才是一個(gè)好的算法呢?通常從下列幾個(gè)方面衡量算法的優(yōu)劣:方面衡量算法的優(yōu)劣:1正確性正確性2可讀性可讀性3健壯性健壯性4時(shí)間復(fù)雜度與空間復(fù)雜度時(shí)間復(fù)雜度與空間復(fù)雜度T(n)=O(f(n)S(n)=O(f(n)1.4 C1.4 C語(yǔ)言的發(fā)展簡(jiǎn)史和特點(diǎn)語(yǔ)言的發(fā)展簡(jiǎn)史和特點(diǎn)C語(yǔ)言能夠快速發(fā)展成為最受歡迎的語(yǔ)言之一,主要是語(yǔ)言能夠快速發(fā)展成為最受歡迎的語(yǔ)言之一,主要是因?yàn)樗哂袕?qiáng)大的功能。它既有高級(jí)語(yǔ)言的特點(diǎn),又具有匯因?yàn)樗哂袕?qiáng)大的功能。它既有高級(jí)語(yǔ)言的特點(diǎn),又具有匯編語(yǔ)言的特點(diǎn),它可以作為工作系統(tǒng)設(shè)計(jì)語(yǔ)言,編寫系統(tǒng)應(yīng)編語(yǔ)言的特點(diǎn),它可以作為工作系統(tǒng)設(shè)計(jì)語(yǔ)言,編寫系統(tǒng)應(yīng)

24、用程序,也可以作為應(yīng)用程序設(shè)計(jì)語(yǔ)言,編寫不依賴計(jì)算機(jī)用程序,也可以作為應(yīng)用程序設(shè)計(jì)語(yǔ)言,編寫不依賴計(jì)算機(jī)硬件的應(yīng)用程序。硬件的應(yīng)用程序。1.4.1 C1.4.1 C語(yǔ)言的誕生與發(fā)展語(yǔ)言的誕生與發(fā)展19721972年,貝爾實(shí)驗(yàn)室年,貝爾實(shí)驗(yàn)室D.M.RitchieD.M.Ritchie設(shè)計(jì)出設(shè)計(jì)出C C語(yǔ)言,當(dāng)時(shí)語(yǔ)言,當(dāng)時(shí)Ken Ken ThompsonThompson剛剛使用匯編語(yǔ)言和剛剛使用匯編語(yǔ)言和B B語(yǔ)言開發(fā)出語(yǔ)言開發(fā)出UNIXUNIX操作系統(tǒng),但用匯編語(yǔ)操作系統(tǒng),但用匯編語(yǔ)言開發(fā)系統(tǒng)非常煩瑣,于是言開發(fā)系統(tǒng)非常煩瑣,于是D.M.RitchieD.M.Ritchie用用C C語(yǔ)言改寫語(yǔ)

25、言改寫UNIXUNIX系統(tǒng)的內(nèi)核。系統(tǒng)的內(nèi)核。19771977年年Dennis M.Ritchie Dennis M.Ritchie 發(fā)表了不依賴于具體機(jī)器系統(tǒng)的發(fā)表了不依賴于具體機(jī)器系統(tǒng)的C C語(yǔ)言編語(yǔ)言編譯文本譯文本可移植的可移植的C C語(yǔ)言編譯程序語(yǔ)言編譯程序。19781978年由美國(guó)電話電報(bào)公司年由美國(guó)電話電報(bào)公司(AT&T)(AT&T)貝爾實(shí)驗(yàn)室正式發(fā)布貝爾實(shí)驗(yàn)室正式發(fā)布C C語(yǔ)言。同語(yǔ)言。同由由B.W.KernighanB.W.Kernighan和和D.M.RitchieD.M.Ritchie共同完成的了著名的共同完成的了著名的The C The C Programming LanguageProgramming Language一書,通常簡(jiǎ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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論