C語言發(fā)展史和基礎(chǔ)了解_第1頁
C語言發(fā)展史和基礎(chǔ)了解_第2頁
C語言發(fā)展史和基礎(chǔ)了解_第3頁
C語言發(fā)展史和基礎(chǔ)了解_第4頁
C語言發(fā)展史和基礎(chǔ)了解_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、LOGO1從零到精通從零到精通 循序漸進(jìn),實(shí)戰(zhàn)講述循序漸進(jìn),實(shí)戰(zhàn)講述基礎(chǔ)知識(shí)基礎(chǔ)知識(shí) 核心技術(shù)核心技術(shù) 高級(jí)應(yīng)用高級(jí)應(yīng)用 項(xiàng)目實(shí)戰(zhàn)項(xiàng)目實(shí)戰(zhàn)在線解答,高效學(xué)習(xí)QQ:360269864可以在我的百度盤下載:小潔698?from=wenku2目錄目錄 第一章 C語言的發(fā)展史與基礎(chǔ)vC語言的發(fā)展史vC語言的特點(diǎn)v一個(gè)簡(jiǎn)單的C程序v一個(gè)完整的C程序vC語言程序的格式31.1 C語言的發(fā)展史語言的發(fā)展史v1.1.1 程序語言簡(jiǎn)述C語言的發(fā)展里程之前,先對(duì)程序語言進(jìn)行大概的了解1、機(jī)器語言 機(jī)器語言是低級(jí)語言,也成為二進(jìn)制代碼語言。計(jì)算機(jī)使用的是由0和1組成的二進(jìn)制數(shù)組成的一串指令來表達(dá)計(jì)算機(jī)操作的語言。機(jī)

2、器語言的特點(diǎn)是,計(jì)算機(jī)可以直接識(shí)別,不需要進(jìn)行任何的翻譯。2、匯編語言 用英文單詞(或縮寫)作為助記符來代替機(jī)器語言中的各種指令,由此組成一種新編程語言,這就是匯編語言。3、高級(jí)語言 高級(jí)語言的翻譯方式有兩種:解釋方式和編繹方式。v1.1.2 C語言的歷史1969-1973年在美國(guó)電話電報(bào)公司(AT&T)貝爾實(shí)驗(yàn)室開始了C語言的最初研發(fā)。根據(jù)C語言的發(fā)明者丹尼斯里奇 (Dennis Ritchie) 說,C 語言最重要的研發(fā)時(shí)期是在1972年。 說明:丹尼斯里奇(Dennis Ritchie),C語言之父,UNIX之父。1978年與布萊恩科爾尼干(Brian Kernighan)一起出

3、版了名著C程序設(shè)計(jì)語言(The C Programming Language),現(xiàn)在此書已翻譯成多種語言,成為C語言方面最權(quán)威的教材之一。2011年10月12日(北京時(shí)間為10月13日),丹尼斯里奇去世,享年70歲。C語言之所以命名為C,是因?yàn)镃語言源自Ken Thompson發(fā)明的 B語言,而B語言則源自BCPL語言。C語言的誕生是和UNIX操作系統(tǒng)的開發(fā)密不可分的,原先的UNIX操作系統(tǒng)都是用匯編語言寫的,1973年UNIX操作系統(tǒng)的核心用C語言改寫,從此以后,C語言成為編寫操作系統(tǒng)的主要語言。(.)41.1 C語言的發(fā)展史語言的發(fā)展史v 1.1.3 C語言對(duì)其它語言的影響很多編程語言都深

4、受C語言的影響,比如C+(原先是C語言的一個(gè)擴(kuò)展)、C#、Java、PHP、Javascript、Perl、LPC和UNIX的C Shell等。v 1.2 C語言的特點(diǎn)C語言一共只有32關(guān)鍵字,9種控制語句,程序書寫自由,主要用小寫字母表示。C語言是一種通用的程序設(shè)計(jì)語言,主要用來進(jìn)行系統(tǒng)程序設(shè)計(jì),具如下特點(diǎn):1、高效性 談到高效性,不得不說C語言是“魚與熊掌”兼得。從C語言的發(fā)展史也可以看到,它繼承了低級(jí)語言的優(yōu)點(diǎn),產(chǎn)生了高效性的代碼,并具有友好的可讀性和編寫性,C語言生成的目標(biāo)代碼的執(zhí)行效率只比匯編程序低10%-20%。2、靈活性 C語言中的語法不拘一格,可在原有語法基礎(chǔ)上進(jìn)行創(chuàng)造、復(fù)合,

5、從而給程序員更多的想象和發(fā)揮的空間。3、功能豐富 除了C語言中所具有的類型,還可以使用豐富的運(yùn)算符和自定義的結(jié)構(gòu)類型,來表達(dá)任何復(fù)雜的數(shù)據(jù)類型,完成所有需要的功能。51.1 C語言的發(fā)展史語言的發(fā)展史4、表達(dá)力強(qiáng) C語言的特點(diǎn)體現(xiàn)它語法形式與人們所使用的語言形式相似,書寫形式自由,結(jié)構(gòu)規(guī)范,并且只需簡(jiǎn)單的控制語言即可輕松控制程序流程,完成繁瑣的程序要求。5、移植性 由于C語言具有良好的移植性,從而使得C程序在不同的操作系統(tǒng)下,只需要簡(jiǎn)單的修改或者不用修改即可進(jìn)行跨平臺(tái)的程序開發(fā)操作。 正是由于C語言擁有上述優(yōu)點(diǎn),使得它在程序員選擇語言的時(shí)備受青睞。 C語言有一個(gè)突出的優(yōu)點(diǎn)就是適合于多種操作系統(tǒng)

6、, 如DOS、UNIX,也適用于多種機(jī)型。 常用的編譯軟件常用的編譯軟件有Microsoft Visual C+,Borland C+,Watcom C+ ,Borland C+, Borland C+ Builder,Borland C+ 3.1 for DOS,Watcom C+ 11.0 for DOS,GNU DJGPP C+, Lccwin32 C Compiler 3.1,Microsoft C,High C,等等. 6、C語言允許直接訪問物理地址,可以直接對(duì)硬件進(jìn)行操作 因此既具有高級(jí)語言的功能,又具有低級(jí)語言的許多功能,能夠象匯編語言一樣對(duì)位、字節(jié)和地址進(jìn)行操作,而這三者是計(jì)算

7、機(jī)最基本的工作單元,可以用來寫系統(tǒng)軟件。7、C語法限制不太嚴(yán)格、程序設(shè)計(jì)自由度大 一般的高級(jí)語言語法檢查比較嚴(yán),能夠檢查出幾乎所有的語法錯(cuò)誤。而C語言允許程序編寫者有較大的自由度。 61.1 C語言的發(fā)展史語言的發(fā)展史8、數(shù)據(jù)結(jié)構(gòu)豐富 C的數(shù)據(jù)類型有:整型、實(shí)型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型等。能用來實(shí)現(xiàn)各種復(fù)雜的數(shù)據(jù)類型的運(yùn)算。 并引入了指針概念,使程序效率更高。另外C語言具有強(qiáng)大的圖形功能,支持多種顯示器和驅(qū)動(dòng)器。且計(jì)算功能、邏輯判斷功能強(qiáng)大。9、運(yùn)算符豐富 C程序的運(yùn)算符包含的范圍很廣泛,共有種34個(gè)運(yùn)算符。C語言把括號(hào)、賦值、強(qiáng)制類型轉(zhuǎn)換等都作為運(yùn)算符各種復(fù)雜的數(shù)

8、據(jù)類型的運(yùn)算。并引入了指針概念,使程序效率更高。另外C語言具有強(qiáng)大的圖形功能,支持多種顯示器和驅(qū)動(dòng)器。且計(jì)算功能、邏輯判斷功能強(qiáng)大。71.3 一個(gè)簡(jiǎn)單的一個(gè)簡(jiǎn)單的C程序程序 在通往在通往C語言程序世界之前,首先不要對(duì)語言程序世界之前,首先不要對(duì)C語言產(chǎn)生恐懼感,覺得這鐘語言都應(yīng)語言產(chǎn)生恐懼感,覺得這鐘語言都應(yīng)該是學(xué)者或研究人員的專利。該是學(xué)者或研究人員的專利。C語言是人類共有的財(cái)富,是普通人只要通過努力學(xué)習(xí)就可以掌握的知識(shí)。下面通過一個(gè)簡(jiǎn)單的程序來看看C語言程序是什么樣子?!玖?.1】一個(gè)簡(jiǎn)單的C程序。(需要實(shí)列的可以找我QQ:360269864)本實(shí)例程序?qū)崿F(xiàn)的功能知識(shí)顯示一條信息,“Hel

9、lo,world!Im coming!”,通過這個(gè)程序可以粗步了解C程序模樣。雖然這個(gè)簡(jiǎn)單的小程序只有7行,卻充分說明了C程序是由什么位置開始、什么位置結(jié)束的。#include 第一行 第二行int main() 第三行 第四行 printf(Hello,world!Im coming!n) ; /*輸出要顯示的字符串*/第五行 return0; /*程序返回0*/ 第六行 第七行 讓讀者輕松看懂后面所以注明了第幾行,在實(shí)際中不需要標(biāo)記81.3 一個(gè)簡(jiǎn)單的一個(gè)簡(jiǎn)單的C程序程序v 運(yùn)行程序顯示效果運(yùn)行程序顯示效果91.3 一個(gè)簡(jiǎn)單的一個(gè)簡(jiǎn)單的C程序程序現(xiàn)在來分析一下上面的實(shí)列程序現(xiàn)在來分析一下上

10、面的實(shí)列程序:1.#include指令指令實(shí)列代碼中的第一行:實(shí)列代碼中的第一行:#include 這個(gè)語句的功能是進(jìn)行有關(guān)的預(yù)處理操作。這個(gè)語句的功能是進(jìn)行有關(guān)的預(yù)處理操作。include稱為文件包含命令,稱為文件包含命令,后面后面尖尖括號(hào)中的內(nèi)容稱為頭部文件或首文件。括號(hào)中的內(nèi)容稱為頭部文件或首文件。有關(guān)預(yù)處理的內(nèi)容,將會(huì)在后期詳細(xì)的講有關(guān)預(yù)處理的內(nèi)容,將會(huì)在后期詳細(xì)的講解,先對(duì)這個(gè)有一個(gè)概念有所了解即可。解,先對(duì)這個(gè)有一個(gè)概念有所了解即可。2.空行空行實(shí)列代碼中的第二行。實(shí)列代碼中的第二行。 C語言是一個(gè)叫靈活的語言,因此格式并不是固定不變、拘于一格。也就是說,語言是一個(gè)叫靈活的語言,因

11、此格式并不是固定不變、拘于一格。也就是說,空格、空行、跳格并不會(huì)受影響程序??崭瘛⒖招芯褪菫榱俗屛覀冚p松能看懂我空格、空行、跳格并不會(huì)受影響程序。空格、空行就是為了讓我們輕松能看懂我們寫的是什么?書寫的規(guī)范、干凈。(們寫的是什么?書寫的規(guī)范、干凈。(不是所有的空格都沒有用,如在兩個(gè)關(guān)鍵不是所有的空格都沒有用,如在兩個(gè)關(guān)鍵字之間用空格隔開(字之間用空格隔開(else if),這個(gè)情況下如果將空格去掉,程序就不能通過編),這個(gè)情況下如果將空格去掉,程序就不能通過編譯。在以后慢慢領(lǐng)悟譯。在以后慢慢領(lǐng)悟)101.3 一個(gè)簡(jiǎn)單的一個(gè)簡(jiǎn)單的C程序程序3、main函數(shù)聲明函數(shù)聲明實(shí)列代碼中的第實(shí)列代碼中的第

12、3行:行:int main 這一行代碼代表的意思是聲明這一行代碼代表的意思是聲明main函數(shù)函數(shù)為一個(gè)為一個(gè)返回值返回值,是,是整形的函數(shù)整形的函數(shù)。其中的。其中的int稱為關(guān)鍵字稱為關(guān)鍵字,這個(gè)關(guān)鍵字,這個(gè)關(guān)鍵字代表的類型是整形。代表的類型是整形。關(guān)于數(shù)據(jù)類型的內(nèi)容將會(huì)在會(huì)面關(guān)于數(shù)據(jù)類型的內(nèi)容將會(huì)在會(huì)面講解。比如有個(gè)講解。比如有個(gè)“做菜做菜”程序,那么程序,那么“ 做菜做菜 ”這個(gè)過程就是這個(gè)過程就是“主函數(shù)主函數(shù)”。在主函。在主函數(shù)中,根據(jù)情況,你可能還需要調(diào)用數(shù)中,根據(jù)情況,你可能還需要調(diào)用“買菜,切菜,炒菜買菜,切菜,炒菜”等子函數(shù)。等子函數(shù)。4、函數(shù)體、函數(shù)體實(shí)列代碼中的第實(shí)列代碼中

13、的第4行:行: printf(Hello,world!Im coming!n) ; return0;在上面介紹了main函數(shù)式,提到了一個(gè)名詞函數(shù)頭.可以通過這個(gè)詞可以進(jìn)行一下聯(lián)想:既然有函數(shù)頭,那也應(yīng)該有函數(shù)的身體,一個(gè)函數(shù)分為兩個(gè)部分:一是函數(shù)頭,二是函數(shù)體。程序代碼中的第4行和7行這兩個(gè)大括號(hào)就是構(gòu)成了函數(shù)體,函數(shù)體也稱為函數(shù)語句塊。在函數(shù)體中,也就是5行和6行這個(gè)一部分就是函數(shù)體要執(zhí)行的內(nèi)容。111.3 一個(gè)簡(jiǎn)單的一個(gè)簡(jiǎn)單的C程序程序5、執(zhí)行語句函數(shù)體中的第5行代碼:printf(Hello,world!Im coming!n) ; 執(zhí)行語句就是函數(shù)體中要執(zhí)行的動(dòng)作內(nèi)容。這一行代碼是這

14、個(gè)簡(jiǎn)單的列子鐘最復(fù)雜的。該行代碼雖然看起復(fù)雜,其實(shí)也不難理解,printf是產(chǎn)生格式化輸出的函數(shù),可以簡(jiǎn)單理解為向控制臺(tái)進(jìn)行輸出文字或符合的作用。括號(hào)中的內(nèi)容稱為函數(shù)的參數(shù),括號(hào)內(nèi)可以看到輸出的字符串Hello,world!Im coming!n,其中還可以看到“n”這個(gè)一個(gè)符合,稱之為轉(zhuǎn)義字符。轉(zhuǎn)義字符的內(nèi)容后期會(huì)提到。6、return語句函數(shù)體中的第6行代碼:return0;這行語句使main函數(shù)終止運(yùn)行,并向操作系統(tǒng)返回一個(gè)證型常量0.此時(shí)0就是要返回的整形值。return理解成main函數(shù)結(jié)束標(biāo)志。7、代碼注釋在程序的第5行和6行后面都可以看到一段關(guān)于這行代碼的文字描述:printf(

15、Hello,world!Im coming!n) ; /*輸出要顯示的字符串*/ return0; /*程序返回0*/用來對(duì)代碼進(jìn)行解釋說明,為以后自己閱讀或他人閱讀源程序時(shí),方便理解程度代碼含義和設(shè)計(jì)思想。(沒有一定要寫注釋,寫了注釋一目了然。) 121.4 一個(gè)完整的一個(gè)完整的C程序程序【列1.2】一個(gè)完整的C語言程序。本實(shí)例要實(shí)現(xiàn)這樣的功能:有一個(gè)長(zhǎng)方體。它的高已經(jīng)給出,然后輸入這個(gè)長(zhǎng)方體的長(zhǎng)寬,通過輸入的長(zhǎng)、寬以及給定的高度,計(jì)算出長(zhǎng)方體的體積。#include /*包含頭文件*/#define Height 10 /*定義常量*/int calculate(int Long,int

16、Width); /*函數(shù)的聲明*/int main() /*主函數(shù)main*/ int m_Long; /*定義整形變量,表示長(zhǎng)度*/ int m_Width ; /*定義整形變量,表示寬度*/ int result; /*定義整形變量,表示長(zhǎng)方體的體積*/ printf(長(zhǎng)方形的高度:%dn,Height); /*顯示提示*/ printf(請(qǐng)輸入長(zhǎng)度n); /*顯示提示*/ scanf(%d.&m_Long) /* 輸入長(zhǎng)方體的長(zhǎng)度*/ printf(請(qǐng)輸入寬度n); /*顯示提示*/ scanf(%d.&m_Width); /* 輸入長(zhǎng)方體的寬度*/ result=cal

17、culate(m_Long,m_Width); /*調(diào)用函數(shù),計(jì)算體積*/ printf(長(zhǎng)方體的體積是:); /*顯示提示*/ printf(%dn,result); /*輸出長(zhǎng)方體大小*/ return0; /*返回值0*/int calculate(int Long,int Width) /*定義計(jì)算體積函數(shù)*/ int result=Long*Width*Height; /*具體計(jì)算體積*/ return0; /*將計(jì)算的體積結(jié)果返回*/ 131.4 一個(gè)完整的一個(gè)完整的C程序程序分析流程具體講解下這個(gè)程序的執(zhí)行過程之前,發(fā)展首先程序到結(jié)束程序的過程,對(duì)程序有一個(gè)更為清晰的認(rèn)識(shí)。開始開

18、始包含頭文件包含頭文件定義常量定義常量函數(shù)聲明函數(shù)聲明進(jìn)入主函數(shù)進(jìn)入主函數(shù)main程序結(jié)束程序結(jié)束main函數(shù)體函數(shù)體定義所需變量定義所需變量顯示提示信息顯示提示信息輸入計(jì)算條件輸入計(jì)算條件計(jì)算長(zhǎng)方體的體積,計(jì)算長(zhǎng)方體的體積,調(diào)用調(diào)用calculate函數(shù)函數(shù)calcuate函數(shù)體函數(shù)體根據(jù)長(zhǎng)、寬、根據(jù)長(zhǎng)、寬、高、計(jì)算長(zhǎng)高、計(jì)算長(zhǎng)方體的體積方體的體積141.4 一個(gè)完整的一個(gè)完整的C程序程序1、定義常量#define Height 10使用#define定義符號(hào)。#define在這里的功能是設(shè)定這個(gè)符號(hào)為Height,并且指定這個(gè)符號(hào)Height代表的值為10。這樣在程序中,只要是使用Heig

19、ht這個(gè)標(biāo)識(shí)符的位置,就代表使用的是10這個(gè)數(shù)值。2、函數(shù)聲明int calculate(int Long,int Width);就像變量可以在頭文件中聲明,而在源文件中定義一樣,函數(shù)也可以在頭文件中聲明,在源文件中定義。把函數(shù)聲明直接放在每個(gè)使用該函數(shù)的源文件中是大多數(shù)新手習(xí)慣并喜愛的方式,這是合法的。但是這種方式古板且易出錯(cuò)。解決方法就是把函數(shù)的聲明放在頭文件中,這樣可以確保對(duì)于指定函數(shù)其所有聲明保持一致。如果函數(shù)接口發(fā)生變化,則只需修改其唯一的聲明即可。將提供函數(shù)聲明的頭文件包含在定義該函數(shù)的源文件中,可使編譯器能檢查該函數(shù)的定義和聲明是否一致。特別地,如果函數(shù)定義和函數(shù)聲明的形參列表一

20、致,但返回類型不一致,編譯器會(huì)發(fā)出警告或出錯(cuò)信息來指出差異。151.4 一個(gè)完整的一個(gè)完整的C程序程序3 3、定義變量定義變量 int m_Long; / int m_Long; /* *定義整形變量,表示長(zhǎng)度定義整形變量,表示長(zhǎng)度* */ / int m_Width ; / int m_Width ; /* *定義整形變量,表示寬度定義整形變量,表示寬度* */ / int result; / int result; /* *定義整形變量,表示長(zhǎng)定義整形變量,表示長(zhǎng)方體的體積方體的體積* */ /在C語言中要使用變量,必須在使用變量之前進(jìn)行定義,之后編譯器會(huì)根據(jù)變量的類型為變量分配內(nèi)存空間。變量的作用就是存儲(chǔ)數(shù)值,用變量進(jìn)行計(jì)算。4、輸入語句scanf(%d.&m_Long) /* 輸入長(zhǎng)方體的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論