




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
從零到精通循序漸進,實戰(zhàn)講述基礎(chǔ)知識核心技術(shù)高級應(yīng)用項目實戰(zhàn)C語言
高效學(xué)習(xí)在線解答,高效學(xué)習(xí)QQ:360269864可以在我的百度盤下載:/p/小潔698?from=wenku目錄
第一章C語言的發(fā)展史與基礎(chǔ)C語言的發(fā)展史C語言的特點一個簡單的C程序一個完整的C程序C語言程序的格式1.1C語言的發(fā)展史1.1.1程序語言簡述C語言的發(fā)展里程之前,先對程序語言進行大概的了解1、機器語言機器語言是低級語言,也成為二進制代碼語言。計算機使用的是由0和1組成的二進制數(shù)組成的一串指令來表達計算機操作的語言。機器語言的特點是,計算機可以直接識別,不需要進行任何的翻譯。2、匯編語言用英文單詞(或縮寫)作為助記符來代替機器語言中的各種指令,由此組成一種新編程語言,這就是匯編語言。3、高級語言高級語言的翻譯方式有兩種:解釋方式和編繹方式。1.1.2C語言的歷史1969-1973年在美國電話電報公司(AT&T)貝爾實驗室開始了C語言的最初研發(fā)。根據(jù)C語言的發(fā)明者丹尼斯·里奇(DennisRitchie)說,C語言最重要的研發(fā)時期是在1972年。說明:丹尼斯·里奇(DennisRitchie),C語言之父,UNIX之父。1978年與布萊恩·科爾尼干(BrianKernighan)一起出版了名著《C程序設(shè)計語言(TheCProgrammingLanguage)》,現(xiàn)在此書已翻譯成多種語言,成為C語言方面最權(quán)威的教材之一。2011年10月12日(北京時間為10月13日),丹尼斯·里奇去世,享年70歲。C語言之所以命名為C,是因為C語言源自KenThompson發(fā)明的B語言,而B語言則源自BCPL語言。C語言的誕生是和UNIX操作系統(tǒng)的開發(fā)密不可分的,原先的UNIX操作系統(tǒng)都是用匯編語言寫的,1973年UNIX操作系統(tǒng)的核心用C語言改寫,從此以后,C語言成為編寫操作系統(tǒng)的主要語言。(............)1.1C語言的發(fā)展史1.1.3C語言對其它語言的影響很多編程語言都深受C語言的影響,比如C++(原先是C語言的一個擴展)、C#、Java、PHP、Javascript、Perl、LPC和UNIX的CShell等。1.2C語言的特點C語言一共只有32關(guān)鍵字,9種控制語句,程序書寫自由,主要用小寫字母表示。C語言是一種通用的程序設(shè)計語言,主要用來進行系統(tǒng)程序設(shè)計,具如下特點:1、高效性談到高效性,不得不說C語言是“魚與熊掌”兼得。從C語言的發(fā)展史也可以看到,它繼承了低級語言的優(yōu)點,產(chǎn)生了高效性的代碼,并具有友好的可讀性和編寫性,C語言生成的目標代碼的執(zhí)行效率只比匯編程序低10%-20%。2、靈活性C語言中的語法不拘一格,可在原有語法基礎(chǔ)上進行創(chuàng)造、復(fù)合,從而給程序員更多的想象和發(fā)揮的空間。3、功能豐富除了C語言中所具有的類型,還可以使用豐富的運算符和自定義的結(jié)構(gòu)類型,來表達任何復(fù)雜的數(shù)據(jù)類型,完成所有需要的功能。1.1C語言的發(fā)展史4、表達力強C語言的特點體現(xiàn)它語法形式與人們所使用的語言形式相似,書寫形式自由,結(jié)構(gòu)規(guī)范,并且只需簡單的控制語言即可輕松控制程序流程,完成繁瑣的程序要求。5、移植性由于C語言具有良好的移植性,從而使得C程序在不同的操作系統(tǒng)下,只需要簡單的修改或者不用修改即可進行跨平臺的程序開發(fā)操作。正是由于C語言擁有上述優(yōu)點,使得它在程序員選擇語言的時備受青睞。C語言有一個突出的優(yōu)點就是適合于多種操作系統(tǒng),如DOS、UNIX,也適用于多種機型。常用的編譯軟件常用的編譯軟件有MicrosoftVisualC++,BorlandC++,WatcomC++,BorlandC++,BorlandC++Builder,BorlandC++3.1forDOS,WatcomC++11.0forDOS,GNUDJGPPC++,Lccwin32CCompiler3.1,MicrosoftC,HighC,等等......6、C語言允許直接訪問物理地址,可以直接對硬件進行操作因此既具有高級語言的功能,又具有低級語言的許多功能,能夠象匯編語言一樣對位、字節(jié)和地址進行操作,而這三者是計算機最基本的工作單元,可以用來寫系統(tǒng)軟件。7、C語法限制不太嚴格、程序設(shè)計自由度大一般的高級語言語法檢查比較嚴,能夠檢查出幾乎所有的語法錯誤。而C語言允許程序編寫者有較大的自由度。
1.1C語言的發(fā)展史8、數(shù)據(jù)結(jié)構(gòu)豐富C的數(shù)據(jù)類型有:整型、實型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型等。能用來實現(xiàn)各種復(fù)雜的數(shù)據(jù)類型的運算。并引入了指針概念,使程序效率更高。另外C語言具有強大的圖形功能,支持多種顯示器和驅(qū)動器。且計算功能、邏輯判斷功能強大。9、運算符豐富C程序的運算符包含的范圍很廣泛,共有種34個運算符。C語言把括號、賦值、強制類型轉(zhuǎn)換等都作為運算符各種復(fù)雜的數(shù)據(jù)類型的運算。并引入了指針概念,使程序效率更高。另外C語言具有強大的圖形功能,支持多種顯示器和驅(qū)動器。且計算功能、邏輯判斷功能強大。1.3一個簡單的C程序
在通往C語言程序世界之前,首先不要對C語言產(chǎn)生恐懼感,覺得這鐘語言都應(yīng)該是學(xué)者或研究人員的專利。C語言是人類共有的財富,是普通人只要通過努力學(xué)習(xí)就可以掌握的知識。下面通過一個簡單的程序來看看C語言程序是什么樣子?!玖?.1】一個簡單的C程序。(需要實列的可以找我QQ:360269864)本實例程序?qū)崿F(xiàn)的功能知識顯示一條信息,“Hello,world!I'mcoming!”,通過這個程序可以粗步了解C程序模樣。雖然這個簡單的小程序只有7行,卻充分說明了C程序是由什么位置開始、什么位置結(jié)束的。#include<stdio.h>第一行
第二行intmain()第三行{第四行printf("Hello,world!I'mcoming!\n");/*輸出要顯示的字符串*/第五行
return0;/*程序返回0*/第六行
}第七行
讓讀者輕松看懂后面所以注明了第幾行,在實際中不需要標記1.3一個簡單的C程序運行程序顯示效果1.3一個簡單的C程序現(xiàn)在來分析一下上面的實列程序:1.#include指令實列代碼中的第一行:#include<stdio.h>這個語句的功能是進行有關(guān)的預(yù)處理操作。include稱為文件包含命令,后面尖括號中的內(nèi)容稱為頭部文件或首文件。有關(guān)預(yù)處理的內(nèi)容,將會在后期詳細的講解,先對這個有一個概念有所了解即可。2.空行實列代碼中的第二行。C語言是一個叫靈活的語言,因此格式并不是固定不變、拘于一格。也就是說,空格、空行、跳格并不會受影響程序??崭瘛⒖招芯褪菫榱俗屛覀冚p松能看懂我們寫的是什么?書寫的規(guī)范、干凈。(不是所有的空格都沒有用,如在兩個關(guān)鍵字之間用空格隔開(elseif),這個情況下如果將空格去掉,程序就不能通過編譯。在以后慢慢領(lǐng)悟)1.3一個簡單的C程序3、main函數(shù)聲明實列代碼中的第3行:intmain
這一行代碼代表的意思是聲明main函數(shù)為一個返回值,是整形的函數(shù)。其中的int稱為關(guān)鍵字,這個關(guān)鍵字代表的類型是整形。關(guān)于數(shù)據(jù)類型的內(nèi)容將會在會面講解。比如有個“做菜”程序,那么“做菜”這個過程就是“主函數(shù)”。在主函數(shù)中,根據(jù)情況,你可能還需要調(diào)用“買菜,切菜,炒菜”等子函數(shù)。4、函數(shù)體實列代碼中的第4行:{printf("Hello,world!I'mcoming!\n");return0;}在上面介紹了main函數(shù)式,提到了一個名詞—函數(shù)頭.可以通過這個詞可以進行一下聯(lián)想:既然有函數(shù)頭,那也應(yīng)該有函數(shù)的身體,一個函數(shù)分為兩個部分:一是函數(shù)頭,二是函數(shù)體。程序代碼中的第4行和7行這兩個大括號就是構(gòu)成了函數(shù)體,函數(shù)體也稱為函數(shù)語句塊。在函數(shù)體中,也就是5行和6行這個一部分就是函數(shù)體要執(zhí)行的內(nèi)容。1.3一個簡單的C程序5、執(zhí)行語句函數(shù)體中的第5行代碼:printf("Hello,world!I'mcoming!\n");執(zhí)行語句就是函數(shù)體中要執(zhí)行的動作內(nèi)容。這一行代碼是這個簡單的列子鐘最復(fù)雜的。該行代碼雖然看起復(fù)雜,其實也不難理解,printf是產(chǎn)生格式化輸出的函數(shù),可以簡單理解為向控制臺進行輸出文字或符合的作用。括號中的內(nèi)容稱為函數(shù)的參數(shù),括號內(nèi)可以看到輸出的字符串"Hello,world!I'mcoming!\n",其中還可以看到“\n”這個一個符合,稱之為轉(zhuǎn)義字符。轉(zhuǎn)義字符的內(nèi)容后期會提到。6、return語句函數(shù)體中的第6行代碼:return0;這行語句使main函數(shù)終止運行,并向操作系統(tǒng)返回一個證型常量0.此時0就是要返回的整形值。return理解成main函數(shù)結(jié)束標志。7、代碼注釋在程序的第5行和6行后面都可以看到一段關(guān)于這行代碼的文字描述:printf("Hello,world!I'mcoming!\n");/*輸出要顯示的字符串*/return0;/*程序返回0*/用來對代碼進行解釋說明,為以后自己閱讀或他人閱讀源程序時,方便理解程度代碼含義和設(shè)計思想。(沒有一定要寫注釋,寫了注釋一目了然。)1.4一個完整的C程序【列1.2】一個完整的C語言程序。本實例要實現(xiàn)這樣的功能:有一個長方體。它的高已經(jīng)給出,然后輸入這個長方體的長寬,通過輸入的長、寬以及給定的高度,計算出長方體的體積。#include<stdio.h>/*包含頭文件*/#defineHeight10/*定義常量*/intcalculate(intLong,intWidth);/*函數(shù)的聲明*/intmain()/*主函數(shù)main*/{intm_Long;/*定義整形變量,表示長度*/intm_Width;/*定義整形變量,表示寬度*/intresult;/*定義整形變量,表示長方體的體積*/printf("長方形的高度:%d\n",Height);/*顯示提示*/printf("請輸入長度\n");/*顯示提示*/scanf("%d.&m_Long")/*輸入長方體的長度*/printf("請輸入寬度\n");/*顯示提示*/
scanf("%d.&m_Width");/*輸入長方體的寬度*/
result=calculate(m_Long,m_Width);/*調(diào)用函數(shù),計算體積*/printf("長方體的體積是:");/*顯示提示*/printf("%d\n",result);/*輸出長方體大小*/return0;/*返回值0*/}intcalculate(intLong,intWidth)/*定義計算體積函數(shù)*/{intresult=Long*Width*Height;/*具體計算體積*/return0;/*將計算的體積結(jié)果返回*/}1.4一個完整的C程序分析流程具體講解下這個程序的執(zhí)行過程之前,發(fā)展首先程序到結(jié)束程序的過程,對程序有一個更為清晰的認識。開始包含頭文件定義常量函數(shù)聲明進入主函數(shù)main程序結(jié)束main函數(shù)體定義所需變量顯示提示信息輸入計算條件計算長方體的體積,調(diào)用calculate函數(shù)calcuate函數(shù)體根據(jù)長、寬、高、計算長方體的體積1.4一個完整的C程序1、定義常量#defineHeight10使用#define定義符號。#define在這里的功能是設(shè)定這個符號為Height,并且指定這個符號Height代表的值為10。這樣在程序中,只要是使用Height這個標識符的位置,就代表使用的是10這個數(shù)值。2、函數(shù)聲明intcalculate(intLong,intWidth);就像變量可以在頭文件中聲明,而在源文件中定義一樣,函數(shù)也可以在頭文件中聲明,在源文件中定義。把函數(shù)聲明直接放在每個使用該函數(shù)的源文件中是大多數(shù)新手習(xí)慣并喜愛的方式,這是合法的。但是這種方式古板且易出錯。解決方法就是把函數(shù)的聲明放在頭文件中,這樣可以確保對于指定函數(shù)其所有聲明保持一致。如果函數(shù)接口發(fā)生變化,則只需修改其唯一的聲明即可。將提供函數(shù)聲明的頭文件包含在定義該函數(shù)的源文件中,可使編譯器能檢查該函數(shù)的定義和聲明是否一致。特別地,如果函數(shù)定義和函數(shù)聲明的形參列表一致,但返回類型不一致,編譯器會發(fā)出警告或出錯信息來指出差異。1.4一個完整的C程序3、定義變量intm_Long;/*定義整形變量,表示長度*/intm_Width;/*定義整形變量,表示寬度*/intresult;/*定義整形變量,表示長方體的體積*/在C語言中要使用變量,必須在使用變量之前進行定義,之后編譯器會根據(jù)變量的類型為變量分配內(nèi)存空間。變量的作用就是存儲數(shù)值,用變量進行計算。4、輸入語句scanf("%d.&m_Long")/*輸入長方體的長度*/顯示輸出函數(shù)printf,那么既然有輸出就一定會有輸入。C語言中,scanf函數(shù)就用來接收鍵盤輸入的內(nèi)容,并將輸入的結(jié)構(gòu)保存在相應(yīng)的變量中。m_Long就是定義的整形變量,作用是存儲輸入的信息內(nèi)容?!?”符號是取地址運算符,5、1.收4趣一慨個完碗整的侄C程敞序運行丹程序尸,顯尊示的棒結(jié)果影如圖妙下1.粥5擺C哀語言馳程序讀的格離式主函恩數(shù)一個話C程殿序都買是從延ma表in壺函數(shù)牢開始諸執(zhí)行召的。行ma際in稈函數(shù)圾不論扶放在絹什么宜位置則都是佳沒有詳關(guān)系場。C程私序整臭體式言由函較數(shù)構(gòu)覆成的程序康中m阻ai眨n就欣是其桑中的璃主函露數(shù),患當然咬在程猜序中嫩是可扭以定詢義其貍他函惑數(shù)的崖。在盟這些肆定義其函數(shù)麥中進援行特雙殊的扎操作藏,使臨得函灶數(shù)完噸成的抖功能樸。雖辟然將雁所有弊的執(zhí)研行代約碼全趟部放診在m椒ai圍n函緊數(shù)也推是可蹦行的明,但貌是如候果將
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 智慧物流解決方案合作框架協(xié)議
- 海南省部分學(xué)校2024-2025學(xué)年高三下學(xué)期學(xué)業(yè)水平診斷測試(三)地理試題(含答案)
- 法律行業(yè)法律咨詢免責(zé)聲明書
- 昆蟲歷險記觀后感
- 超前鋼管 現(xiàn)場質(zhì)量檢驗報告單
- 智能酒店客房控制系統(tǒng)采購合同
- 貨車駕駛員合同協(xié)議書
- 電子商務(wù)行業(yè)增長趨勢分析表
- 林地土地承包合同
- 初中生校園欺凌預(yù)防故事征文
- 約定工資結(jié)清協(xié)議書(2篇)
- 特殊作業(yè)安全管理監(jiān)護人專項培訓(xùn)課件
- 農(nóng)行競聘高級專員述職報告范本
- 湖北省荊州市英語初一上學(xué)期期末試題與參考答案(2024年)
- 鶴壁海格龍升3萬噸溴系列新材料產(chǎn)品環(huán)評資料環(huán)境影響
- 2024屆全國新高考英語復(fù)習(xí)-讀后續(xù)寫微寫作
- 顳下頜關(guān)節(jié)疾?。谇活M面外科學(xué)課件)
- 2025屆福建廈門雙十中學(xué)高一數(shù)學(xué)第一學(xué)期期末經(jīng)典模擬試題含解析
- 中考語文一輪專題復(fù)習(xí):詩歌鑒賞中常見的意象(共32張課件)
- 課件:《中華民族共同體概論》第一講 中華民族共同體基礎(chǔ)理論
- 高中《信息技術(shù)》必修1全冊知識點復(fù)習(xí)課件
評論
0/150
提交評論