版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第1章 程序設(shè)計(jì)ABC,北京理工大學(xué)珠海學(xué)院 廖愛紅 ,程序設(shè)計(jì)基礎(chǔ),導(dǎo)論,導(dǎo)論,課程性質(zhì):必修課,計(jì)算機(jī)語言開蒙課 高等工科院校中計(jì)算機(jī)和非計(jì)算機(jī)專業(yè)的一門主干課程 學(xué)時(shí):64學(xué)時(shí) 實(shí)踐性 課程目標(biāo):熟悉C語言的基本概念;熟悉VC+6.0的上機(jī)環(huán)境;會(huì)讀、會(huì)編、會(huì)調(diào)試C程序,內(nèi)容安排,第一章 程序設(shè)計(jì)ABC 第二章 數(shù)據(jù)類型、運(yùn)算符與表達(dá)式 第三章 簡單的C程序設(shè)計(jì) 第四章 程序的控制結(jié)構(gòu) 第五章 函數(shù) 第六章 數(shù)組 第七章 指針 第八章 結(jié)構(gòu)體與共用體 第九章 文件操作 第十章 C程序設(shè)計(jì)常見錯(cuò)誤及解決方案,導(dǎo)論,學(xué)習(xí)方式:實(shí)踐、實(shí)踐、再實(shí)踐,導(dǎo)論,考核方式:閉卷考試 成績核算: 考試70
2、% 實(shí)驗(yàn)10% 平時(shí)20%,參考資料,C語言大學(xué)實(shí)用教程 蘇小紅,陳惠鵬,孫志崗 電子工業(yè)出版社 2012 C語言大學(xué)實(shí)用教程學(xué)習(xí)指導(dǎo) C語言教程 譚浩強(qiáng) 清華大學(xué)出版社 哈工大精品課程網(wǎng)址 北京理工大學(xué)精品課程網(wǎng)址 教學(xué)資源請從網(wǎng)絡(luò)教學(xué)平臺下載,提醒!,多動(dòng)手、多動(dòng)腦、多參與 用心收獲,第一章 程序設(shè)計(jì)ABC,1.1 計(jì)算機(jī)與人 1.2 計(jì)算機(jī)與程序設(shè)計(jì)語言 1.3 程序設(shè)計(jì)語言的故事 1.4 C語言的故事 1.5 程序設(shè)計(jì)語言的工作原理,拓寬知識面,人類歷史的發(fā)展,生產(chǎn)力: 漁獵社會(huì)農(nóng)業(yè)社會(huì)工業(yè)社會(huì)信息社會(huì) 生產(chǎn)關(guān)系分: 原始社會(huì)奴隸社會(huì)封建社會(huì)資本主義社會(huì)社會(huì)主義社會(huì)共產(chǎn)主義社會(huì),對計(jì)算
3、機(jī)你知道多少?,What is a computer?,A Computer is a device capable of performing computations and make logical decisions at speeds millions (even billions) of times faster than human beings can. 目前的PC機(jī)可每秒執(zhí)行十億次加法 人用計(jì)算器一生也完不成PC機(jī)1秒鐘完成的計(jì)算量,人工智能:主要利用計(jì)算機(jī)來模仿人的各種感知,如智能機(jī)器人、語音識別、機(jī)器翻譯等。,計(jì)算機(jī)網(wǎng)絡(luò):主要利用網(wǎng)絡(luò)來實(shí)現(xiàn)資源共享,如網(wǎng)絡(luò)會(huì)議、瀏覽信息、
4、發(fā)收電子郵件、網(wǎng)絡(luò)聊天等等。,計(jì)算機(jī)的應(yīng)用,科學(xué)計(jì)算,實(shí)時(shí)控制,數(shù)據(jù)處理,計(jì)算機(jī)輔助,文字處理和辦公自動(dòng)化,人工智能,計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用,科學(xué)計(jì)算:主要用于科學(xué)技術(shù)領(lǐng)域的數(shù)值計(jì)算,例如衛(wèi)星、導(dǎo)彈飛行軌跡的計(jì)算,大型工程的分析和仿真等。,實(shí)時(shí)控制:主要用于對實(shí)施過程進(jìn)行實(shí)時(shí)監(jiān)控等,比如產(chǎn)品生產(chǎn),衛(wèi)星或者導(dǎo)彈發(fā)射等都要進(jìn)行實(shí)時(shí)監(jiān)控。,數(shù)據(jù)處理:主要用于對大量數(shù)據(jù)進(jìn)行搜集、統(tǒng)計(jì)、排序等等各種操作。例如工資管理、生產(chǎn)庫存管理等。,計(jì)算機(jī)輔助:利用計(jì)算機(jī)進(jìn)行輔助設(shè)計(jì)工作,如CADCAECAMCATCAI等。,文字處理和辦公自動(dòng)化:主要用于畢業(yè)論文、學(xué)術(shù)論文撰寫等,如后面我們學(xué)OFFICE 2000就是一種功
5、能強(qiáng)大的辦公自動(dòng)化軟件。,補(bǔ)充:計(jì)算機(jī)的誕生及發(fā)展,第一臺計(jì)算機(jī)的誕生,計(jì)算機(jī)是一種能高速地、自動(dòng)地進(jìn)行算術(shù)和邏輯運(yùn)算的電子機(jī)器。 計(jì)算機(jī)的發(fā)展主要緣于“計(jì)算”的需要,飛機(jī)的設(shè)計(jì)、天氣預(yù)報(bào)、導(dǎo)彈的發(fā)射、某些工程計(jì)算等許多方面都需要高精度和高速度的計(jì)算。 1946年初,由美國賓夕法尼亞大學(xué)、穆爾工學(xué)院和美國陸軍火炮公司聯(lián)合研制而成研制出了世界上第一臺電子計(jì)算機(jī)ENIAC(Electronic Numerical Integrator And Computer 即電子數(shù)值積分計(jì)算機(jī))。,ENIAC計(jì)算機(jī)體積龐大,占地約170平方米,總重量達(dá)30多噸,使用了188000個(gè)真空電子管,耗電174千瓦,
6、每秒鐘可做5000次加減運(yùn)算。ENIAC的誕生宣布了電子計(jì)算機(jī)時(shí)代的到來,具有劃時(shí)代的意義。,1.第一階段:電子管計(jì)算機(jī)(19461957年) 2.第二階段:晶體管計(jì)算機(jī)(19581965年) 3.第三階段:中小規(guī)模集成電路計(jì)算機(jī)(19651979年) 4.第四階段:大規(guī)模、超大規(guī)模集成電路計(jì)算機(jī)(1979年至今),電子計(jì)算機(jī)發(fā)展經(jīng)歷四個(gè)階段(四代):,計(jì)算機(jī)行業(yè)的夢想 讓計(jì)算機(jī)(Computer)能像人一樣地思考,與人自然交流, 人工智能(Artificial Intelligence) 圖靈測試,計(jì)算機(jī)行業(yè)的夢想,計(jì)算機(jī)與人工智能,1997年,IBM公司研制的深藍(lán)超級計(jì)算機(jī)在一場“人機(jī)大戰(zhàn)
7、”中打敗了國際象棋大師卡斯帕羅夫 被譽(yù)為“人工智能的一大勝利” 2011年,IBM研制的“沃森”軟件系統(tǒng)戰(zhàn)勝知識競賽電視節(jié)目最高獎(jiǎng)金得主 深藍(lán)的主要研制者之一許峰雄博士: 勝利靠的只是不知疲倦地高速運(yùn)算,并不是什么智能。,計(jì)算機(jī)行業(yè)的夢想,AI的先驅(qū)者之一Carnegie Mellon大學(xué)(CMU)的Herbert Simon回憶說: 最令他驚訝的是做“難”的事情是多么的容易,而做“容易”的事情是多么的“難” 至今仍無人造出可自動(dòng)穿越擁擠的房間或理解兒童故事的機(jī)器來 Comput + er 計(jì)算的機(jī)器,未來的computer?,新的計(jì)算機(jī)正在研究 超導(dǎo)計(jì)算機(jī) 納米計(jì)算機(jī) 光計(jì)算機(jī) DNA計(jì)算機(jī)
8、 量子計(jì)算機(jī) 但是,短期內(nèi),基于集成電路的計(jì)算機(jī)還不會(huì)退出歷史舞臺,計(jì)算機(jī)與信息技術(shù),計(jì)算機(jī)技術(shù)與通信技術(shù)結(jié)合,構(gòu)成了信息技術(shù)(Information Technology),誕生了一個(gè)新詞:IT 嵌入式系統(tǒng)是IT未來的主要發(fā)展方向之一 典型的嵌入式系統(tǒng)有:機(jī)器人、手機(jī)和智能家電等,第一章 程序設(shè)計(jì)ABC,1.1 計(jì)算機(jī)與人 1.2 計(jì)算機(jī)與程序設(shè)計(jì)語言 1.3 程序設(shè)計(jì)語言的故事 1.4 C語言的故事 1.5 程序設(shè)計(jì)語言的工作原理,補(bǔ)充1:計(jì)算機(jī)系統(tǒng)的組成,計(jì)算機(jī)系統(tǒng)由硬件系統(tǒng)(hardware)和軟件系統(tǒng)(software)兩大部分組成,裸機(jī),臺式機(jī),PC機(jī)的硬件系統(tǒng),主機(jī)箱,鼠標(biāo),鍵盤
9、,音箱,顯示器,筆記本電腦,主機(jī)和主機(jī)箱,主機(jī)箱,電源,主機(jī)板,CPU,硬盤,光驅(qū),內(nèi)存條,顯卡,主板上的接口卡,CPU插座,內(nèi)存條插槽,USB口,LPT并口,擴(kuò)展槽,鍵盤接口,鼠標(biāo)接口,網(wǎng)絡(luò)接口,麥克風(fēng)/音箱口,主機(jī)板,CPU,計(jì)算機(jī)系統(tǒng)的硬件組成 1中央處理機(jī)(CPU),CPU,運(yùn)算器,控制器,運(yùn)算器負(fù)責(zé)基本的算術(shù)運(yùn)算和邏輯運(yùn)算,控制器負(fù)責(zé)計(jì)算機(jī)的各部件協(xié)調(diào)工作 CPU品質(zhì)的高低直接決定了一個(gè)計(jì)算機(jī)系統(tǒng)的檔次。CPU指標(biāo) :主頻 1.5G,2.0G,2.4G,3.2G,3.8GHZ 數(shù)據(jù)傳送的位數(shù) 16位機(jī),32位機(jī),64位機(jī),存儲(chǔ)器:存儲(chǔ)器是用來存儲(chǔ)程序和數(shù)據(jù)的部件。,存儲(chǔ)器又分為內(nèi)存儲(chǔ)
10、器(主存儲(chǔ)器)和外存儲(chǔ)器(輔助存儲(chǔ)器)兩類。 內(nèi)存儲(chǔ)器簡稱內(nèi)存,用來存儲(chǔ)當(dāng)前要執(zhí)行的程序和數(shù)據(jù)以及中間結(jié)果和最終結(jié)果。 內(nèi)存儲(chǔ)器又分成隨機(jī)存儲(chǔ)器RAM(Random Access Memory) 、只讀存儲(chǔ)器ROM(Random Only Memory)和高速緩沖存儲(chǔ)器Cache。 外存儲(chǔ)器簡稱外存,用來存儲(chǔ)大量暫時(shí)不參與運(yùn)算的數(shù)據(jù)和程序以及運(yùn)算結(jié)果。,內(nèi)存特點(diǎn):存取速度快、存儲(chǔ)容量小。可與各部件交換數(shù)據(jù) 外存特點(diǎn):存取速度慢、存儲(chǔ)容量大。只能與內(nèi)存交換數(shù)據(jù),常見的幾種內(nèi)存條,用于臺式機(jī)內(nèi)存條,用于筆記本電腦內(nèi)存條,常見的外存設(shè)備,硬 盤,移動(dòng)硬盤,光 盤,數(shù)碼伴侶(存儲(chǔ)卡),軟 盤,U 盤,
11、輸入設(shè)備:輸入設(shè)備是將用戶的程序、數(shù)據(jù)和命令輸入到計(jì)算機(jī)的內(nèi)存的設(shè)備。 最常用的輸入設(shè)備是鍵盤,常用的輸入設(shè)備還有鼠標(biāo)器、掃描儀、手寫板等。,輸出設(shè)備:輸出設(shè)備是顯示或硬拷貝計(jì)算機(jī)運(yùn)算和處理結(jié)果的設(shè)備。 最常用的輸出設(shè)備是顯示器和打印機(jī),常用的輸出設(shè)備還有繪圖儀等。,計(jì)算機(jī)與程序設(shè)計(jì)語言,計(jì)算機(jī)是用來延伸人的能力的工具,需要人來駕馭 我們的職責(zé)是讓非計(jì)算機(jī)專業(yè)的人更容易駕馭它 完成這一目標(biāo)的主要手段之一就是“編程(Programming)”,計(jì)算機(jī)基本工作過程,整個(gè)過程的執(zhí)行者是硬件,但硬件是受軟件控制的 編程,就是編寫軟件,使硬件按照人的意圖工作。,馮諾依曼型計(jì)算機(jī)的基本結(jié)構(gòu) 1945年美籍
12、匈牙利科學(xué)家馮諾依曼 (Von Neumann)提出了一個(gè)“存儲(chǔ)程序”的計(jì)算機(jī)方案。此方案包含如下幾個(gè)要點(diǎn): 計(jì)算機(jī)硬件由控制器、運(yùn)算器、存儲(chǔ)器、輸入設(shè)備和輸出設(shè)備5大部分組成。 采用二進(jìn)制數(shù)的形式表示數(shù)據(jù)和指令。 將指令和數(shù)據(jù)存放在存儲(chǔ)器中。 (4)自動(dòng)、連續(xù)地執(zhí)行程序。(現(xiàn)代化的流水線),補(bǔ)充2:計(jì)算機(jī)的工作原理,其工作原理的核心是“存儲(chǔ)程序”+“程序控制”,就是通常所說的“順序存儲(chǔ)程序”概念。我們把按照這一原理設(shè)計(jì)的計(jì)算機(jī)稱為“馮諾依曼型計(jì)算機(jī)”被譽(yù)為“計(jì)算機(jī)之父”。,馮諾依曼設(shè)計(jì)思想的特點(diǎn) 計(jì)算機(jī)由五個(gè)部分組成 二進(jìn)制 存儲(chǔ)程序,逐條執(zhí)行,2. 計(jì)算機(jī)的工作原理,程序,運(yùn)算器:負(fù)責(zé)指令
13、的執(zhí)行;(進(jìn)行簡單的四則運(yùn)算或邏輯運(yùn)算) 控制器:協(xié)調(diào)并控制計(jì)算機(jī)的各個(gè)部件按程序中排好的指令序列執(zhí)行指定的操作;(命令自己或外部設(shè)備做這做那),2. 計(jì)算機(jī)的工作原理,程序,結(jié)果,計(jì)算機(jī)基本工作過程,“馮諾依曼機(jī)”結(jié)構(gòu),大腦,記憶裝置,眼睛和耳朵,比如:十進(jìn)制 方法:用09十個(gè)數(shù)字字符表示數(shù)的大小 規(guī)則:逢十進(jìn)一,借一當(dāng)十,1.數(shù)制:表示數(shù)的方法和規(guī)則。,補(bǔ)充3:數(shù)制的基本概念,表1-1 數(shù)制種類,二進(jìn)制書寫麻煩、容易出錯(cuò)、很難記憶,十進(jìn)制與二進(jìn)制之間的轉(zhuǎn)換過程復(fù)雜,二進(jìn)制與八(十六)進(jìn)制之間轉(zhuǎn)換簡單。,例如:有十進(jìn)制數(shù)如下,222.22,=200+20+2+0.2+0.02,=2102+2
14、101+2100+210-1+210-2,由此可知,任何一個(gè)十進(jìn)制數(shù)整數(shù)都可以表示為:,N10=an10n+an-110n-1+a1101+a0100,其中:ai為數(shù)字字符09中的一個(gè),10i為第i項(xiàng)的權(quán)值,表1-2 十進(jìn)制、二進(jìn)制、八進(jìn)制和十六進(jìn)制對照表,二、數(shù)制的種類,二進(jìn)制與十進(jìn)制的轉(zhuǎn)換,二進(jìn)制轉(zhuǎn)化為十進(jìn)制:,例1:11001101B=?,11001101=127+ 126 + 025 + 024 + 123 + 122 + 021 + 120,= 205,二進(jìn)制與十進(jìn)制的轉(zhuǎn)換,例2:十進(jìn)制轉(zhuǎn)化為二進(jìn)制 205=?,十進(jìn)制轉(zhuǎn)化為二進(jìn)制: 除2取余,逆序排列,低位,高位,余數(shù),因此: 20
15、5=11001101,第一章 程序設(shè)計(jì)ABC,1.1 計(jì)算機(jī)與人 1.2 計(jì)算機(jī)與程序設(shè)計(jì)語言 1.3 程序設(shè)計(jì)語言的故事 1.4 C語言的故事 1.5 程序設(shè)計(jì)語言的工作原理,程序設(shè)計(jì)語言的故事,程序設(shè)計(jì)語言(Programming Language)是人與計(jì)算機(jī)進(jìn)行交流的語言 計(jì)算機(jī)為什么用二進(jìn)制呢? 為什么不用我們?nèi)粘J煜さ氖M(jìn)制呢? 二進(jìn)制在在電器元件中容易實(shí)現(xiàn) 計(jì)算機(jī)進(jìn)行二進(jìn)制運(yùn)算比進(jìn)行十進(jìn)制運(yùn)算簡單,計(jì)算機(jī)能讀懂的語言 機(jī)器語言(Machine Language),也叫機(jī)器代碼,一種純粹的二進(jìn)制語言 由一系列二進(jìn)制0和1組成 機(jī)器語言編寫的1+1程序 低級語言,10111000 0
16、0000001 00000000 00000101 00000001 00000000,像不像天書?,程序設(shè)計(jì)語言的故事,程序設(shè)計(jì)語言的故事,匯編語言(Assemble Language)編寫的1+1程序,MOV AX, 1 ADD AX, 1,PRINT 1+1,結(jié)果顯示在屏幕上,#include main() printf(%dn, 1+1); ,BASIC語言編寫的1+1程序 C語言編寫的1+1程序 既不是英語,也非機(jī)器語言 但更像英語 高級語言 比寫機(jī)器語言程序容易,但比使用英語難,程序設(shè)計(jì)語言的故事,程序設(shè)計(jì)語言是人與計(jì)算機(jī)進(jìn)行交流的語言 有很多種,分別適合做不同的事情 現(xiàn)在人還只能
17、主動(dòng)學(xué)計(jì)算機(jī)的語言 做不到計(jì)算機(jī)學(xué)會(huì)人的語言 當(dāng)計(jì)算機(jī)懂了人的自然語言,就幾乎不再需要編程,想讓計(jì)算機(jī)干什么,盡管對著它說好了,那時(shí)程序員可能也就失業(yè)了。,流行的高級語言,應(yīng)用編程語言 機(jī)器語言 匯編語言 Basic Pascal C C+ Java C# 專項(xiàng)編程語言 Lotus Notes Power Builder,Web編程語言 HTML XML PHP ASP JSP JavaScript VBScript 其他 perl python VBA, 搜集了大約50種極具代表性的語言的故事和資料,被稱為“低級語言”,高級語言的魅力,易學(xué)、易用、易讀、易懂、強(qiáng)大、可移植 百家爭鳴,據(jù)不完全
18、統(tǒng)計(jì)2500種,絕大多數(shù)是高級語言 /nkinners/LangList/Extras/langlist.htm可看到其列表和簡介 影響最大、壽命最長的是C語言 程序設(shè)計(jì)語言數(shù)以千計(jì),能廣為流傳的不過幾十種,能夠風(fēng)光20年的更是屈指可數(shù),有最好的編程語言嗎?,能很好的解決問題的語言就是好語言。 Fortran已問世50年,仍然是科學(xué)計(jì)算首選 C語言輝煌30年,至今老當(dāng)益壯 C+已度過其20歲生日,相信屬于它的日子還很長很長 在最恰當(dāng)?shù)牡胤?,最恰?dāng)?shù)臅r(shí)候,選擇最恰當(dāng)?shù)恼Z言,同時(shí)防止跌入語言自身的陷阱。,第一章 程序設(shè)計(jì)ABC,1.1 計(jì)算機(jī)與人 1.2 計(jì)算
19、機(jī)與程序設(shè)計(jì)語言 1.3 程序設(shè)計(jì)語言的故事 1.4 C語言的故事 1.5 程序設(shè)計(jì)語言的工作原理,1.5.1怎樣讓計(jì)算機(jī)讀懂高級語言?,程序員按照該語言的語法編寫程序源代碼 把自己的意圖寫入源代碼中 編譯器讀入源代碼 把程序員的意圖轉(zhuǎn)換成可執(zhí)行程序,供他人使用,C語言,可執(zhí)行程序,編譯器,軟件的形成,軟件(Software)的形成 編譯器(Compiler)把源代碼轉(zhuǎn)換為可被計(jì)算機(jī)理解的機(jī)器代碼(Machine Code) 并把機(jī)器代碼以可執(zhí)行文件(Executable File)的形式保存在磁盤上,程序開發(fā)步驟,What ?,可執(zhí)行文件 擴(kuò)展名為.exe的文件,How ?,擴(kuò)展名為.c的文
20、件(對C而言),擴(kuò)展名為.obj的文件,軟件運(yùn)行過程的簡單描述,軟件的運(yùn)行 計(jì)算機(jī)把機(jī)器代碼讀入到內(nèi)存(Memory) 由CPU運(yùn)行這些代碼 讀取輸入(Input) 產(chǎn)生輸出(Output) 完成程序員預(yù)定的功能 計(jì)算機(jī)專業(yè)后續(xù)課程 計(jì)算機(jī)原理 編譯原理 操作系統(tǒng),1.5.2 內(nèi)存,內(nèi)存是怎樣存儲(chǔ)程序和數(shù)據(jù)的呢? 都是以二進(jìn)制形式存儲(chǔ)的,存儲(chǔ)單位是字節(jié)(Byte)。 如何存?存哪里?由操作系統(tǒng)和編譯器打理。 字節(jié) 存儲(chǔ)單元(通常為一個(gè)字節(jié)) 地址(門牌號碼),b, B, KB, MB, GB, TB,Terabyte(TB), 中文叫法:T Gigabyte(GB), 中文叫法:G Megab
21、yte(MB),中文叫法:兆 Kilobyte(KB), 中文叫法: K Byte, 中文叫法:字節(jié) bit, 中文叫法:位,1 TB = 1,024 GB,1 GB = 1,024 MB,1 MB = 1,024 KB,1 KB = 1,024 B,1 B = 8 b,b, B, KB, MB, GB, TB,一個(gè)位有多大? 只能是“0”或者“1”,這叫二進(jìn)制 一個(gè)字節(jié)有多大? 保存一個(gè)字符(英文字母、數(shù)字、符號) ASCII(美國標(biāo)準(zhǔn)信息交換碼)編碼 兩個(gè)字節(jié)保存一個(gè)漢字 GB編碼 一個(gè)字節(jié)可以表示數(shù)字0255,第一章 程序設(shè)計(jì)ABC,1.1 計(jì)算機(jī)與人 1.2 計(jì)算機(jī)與程序設(shè)計(jì)語言 1.
22、3 程序設(shè)計(jì)語言的故事 1.4 C語言的故事 1.5 程序設(shè)計(jì)語言的工作原理,C程序設(shè)計(jì)語言,20世紀(jì)60年代,貝爾實(shí)驗(yàn)室,Ken Thompson開始開發(fā)一個(gè)叫做UNIX的操作系統(tǒng) 70年代, 將BCPL語言改造成更適合開發(fā)UNIX的B語言 1971年,Dennis M. Ritchie開始和Thompson合作開發(fā)UNIX,將B語言改造成C語言,C語言的設(shè)計(jì)者Dennis M. Ritchie-丹尼斯.里奇,Ritchie漫畫像,1999年和Unix的設(shè)計(jì)者Ken Thompson(肯湯普遜 )接受美國國家技術(shù)勛章,C程序設(shè)計(jì)語言,簡稱C語言 BCPL語言進(jìn)化成B語言,B語言又進(jìn)化為C語言
23、 是一種高級語言 高級語言并不是“高級”,只是相對低級語言,在一個(gè)高的級別上進(jìn)行編程 歷史悠久,戰(zhàn)勛卓著 誕生于上世紀(jì)70年代初,成熟于80年代 “ANSI C”標(biāo)準(zhǔn)的發(fā)布是C語言成熟的標(biāo)志 很多重量級軟件都是用C寫的 上天入地,無所不能 幾乎沒有不能用C寫出來的軟件,沒有不支持C的系統(tǒng),從C到C+,在C的基礎(chǔ)上,1983年又由貝爾實(shí)驗(yàn)室的Bjarne Strou-strup推出了C+。 C+進(jìn)一步擴(kuò)充和完善了語言,成為一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語言。 C+提出了一些更為深入的概念,它所支持的這些面向?qū)ο蟮母拍钊菀讓栴}空間直接地映射到程序空間,為程序員提供了一種與傳統(tǒng)結(jié)構(gòu)程序設(shè)計(jì)不同的思維方式和
24、編程方法。因而也增加了整個(gè)語言的復(fù)雜性,掌握起來有一定難度。,C程序設(shè)計(jì)語言,C語言被分類位高級語言,但實(shí)際上它是一種介于高級語言和低級語言之間的語言。 很多流行語言、新生語言都借鑒了它的思想、語法 從C+,到Java,再到C# 正確地學(xué)好C語言,是學(xué)習(xí)這些流行語言的基礎(chǔ)。,C程序設(shè)計(jì)語言,硬件(Hardware),操作系統(tǒng)(OS),應(yīng)用程序(Application),應(yīng)用平臺,基于平臺的應(yīng)用程序,低級語言的地盤,高級語言的地盤,C語言的地盤,C程序設(shè)計(jì)語言的地盤,以往的擅長: 與操作系統(tǒng)和基礎(chǔ)工具有關(guān)的編程任務(wù) 操作系統(tǒng)核心,設(shè)備驅(qū)動(dòng)程序,系統(tǒng)工具,網(wǎng)絡(luò)應(yīng)用,編輯器,字處理工具,編譯器,某些
25、圖形和GUI應(yīng)用,以及數(shù)據(jù)庫應(yīng)用 未來的發(fā)展: 高性能、實(shí)時(shí)中間件,嵌入式領(lǐng)域,并發(fā)程序設(shè)計(jì)等,自然語言與C語言的比較,信息交流(地位平等) 有思維推理能力 語法、句法規(guī)則靈活 走,曬太陽去! 去曬太陽,走! 表達(dá)方式多樣,人機(jī)對話(命令方式) 無思維推理能力,有計(jì)算和邏輯判斷能力 語法句法規(guī)則固定 算法多樣,C語言的特點(diǎn),1.語言簡潔、緊湊、靈活。(32個(gè)關(guān)鍵字,9種控制語句) 2.運(yùn)算符豐富(34種表達(dá)式) 3.數(shù)據(jù)結(jié)構(gòu)豐富 4.具有結(jié)構(gòu)化的控制語句 5.目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高 6.可移植性好 7.兼有低級語言和高級語言的特點(diǎn) 8.語法限制不太嚴(yán)格,程序設(shè)計(jì)自由度比較大,C程序上機(jī)
26、,Turbo C 2.0的上機(jī)操作方法 Turbo C的兩種編輯、編譯、連接、運(yùn)行C程序的方法 1.集成開發(fā)環(huán)境:將四個(gè)步驟完整地組建在Turbo C系統(tǒng)內(nèi),用戶通過一個(gè)簡明的界面來訪問??焖?,高效,易學(xué) 2.命令行編譯器 VC+6.0 其它C語言學(xué)習(xí)系統(tǒng),Turbo C常用命令,F10:激活菜單 Alt+F/C/R/O:使用相應(yīng)菜單 ESC:退出菜單 Alt+x:退出TC F2:源程序存盤 Ctrl+F9:編譯連接運(yùn)行程序 Alt+F5:切換到輸出屏幕(查看結(jié)果),有,不正確,Ctrl+F9,Alt+F5,簡單的C語言程序介紹,#include void main( ) printf (Th
27、is is a C program.n); ,/*文件包含*/ /*主函數(shù) */ /*函數(shù)體開始*/ /*輸出語句*/ /*函數(shù)體結(jié)束*/,說明: main-主函數(shù)名, void-函數(shù)類型 每個(gè)C程序必須有一個(gè)主函數(shù)main 是函數(shù)開始和結(jié)束的標(biāo)志,不可省 每個(gè)C語句以分號結(jié)束 使用標(biāo)準(zhǔn)庫函數(shù)時(shí)應(yīng)在程序開頭一行寫: #include ,說明: 本程序的作用是輸出一行信息: This is a C program.,例1.2 求兩數(shù)之和#include void main( ) /*求兩數(shù)之和*/ int a,b,sum; /*聲明,定義變量為整型*/ /*以下3行為C語句 */ a=123;
28、b=456; sum=a+b; printf(sum is %dn,sum);,說明: /*/表示注釋。注釋只是給人看的,對編譯和運(yùn)行不起作用。所以可以用漢字或英文字符表示,可以出現(xiàn)在一行中的最右側(cè),也可以單獨(dú)成為一行。,說明: 輸出一行信息:sum is 579,C程序初識,#include #include main() int x,s; printf(“input a number(請輸入一個(gè)正數(shù)) :n); scanf(%d, ,例1.3 求3個(gè)數(shù)中較大者。#include void main( ) /* 主函數(shù)*/ int max(int x,int y); / 對被調(diào)用函數(shù)max的
29、聲明 */ int a, b, c; /*定義變量a、b、c */ scanf(d,d, /*輸出c的值*/,程序運(yùn)行情況如下: 8,5 (輸入8和5賦給a和b) max=8 (輸出c的值),int max(int x, int y) int z; if (xy) z=x; else z=y; return (z); ,max(int x,int y);,max(a,b);,說明:本程序包括main和被調(diào)用函數(shù)max兩個(gè)函數(shù)。max函數(shù)的作用是將x和y中較大者的值賦給變量z。return語句將z的值返回給主調(diào)函數(shù)main。,#include /*函數(shù)功能:計(jì)算兩個(gè)整數(shù)相加之和 入口參數(shù):整型數(shù)
30、據(jù)a和b 返回值: 整型數(shù)a和b之和*/ int Add(int a, int b) return (a + b); main() /*主函數(shù)*/ int x, y, sum = 0; printf(Input two integers:); scanf(%d%d, /*輸出x和y相加之和*/ ,總結(jié),(1) C程序是由函數(shù)構(gòu)成的。 這使得程序容易實(shí)現(xiàn)模塊化。 (2) 一個(gè)函數(shù)由兩部分組成: 函數(shù)的首部:例1.3中的max函數(shù)首部 int max(int x,int y ) 函數(shù)體:花括號內(nèi)的部分。若一個(gè)函數(shù)有多個(gè)花括號,則最外層的一對花括號為函數(shù)體的范圍。 函數(shù)體包括兩部分 : 聲明部分:i
31、nt a,b,c; 可缺省 執(zhí)行部分:由若干個(gè)語句組成??扇笔?總結(jié),注意1:一個(gè)簡單的C程序的結(jié)構(gòu)框架如下: 以#開始的編譯預(yù)處理命令行 main( ) 局部變量定義語句 可執(zhí)行語句序列 注意2: 函數(shù)的聲明部分和執(zhí)行部分都可缺省,例如: void dump ( ) 這是一個(gè)空函數(shù),什么也不做,但是合法的函數(shù)。,總結(jié),(3) C程序總是從main函數(shù)開始執(zhí)行的,與main函數(shù)的位置無關(guān)。 (4)根據(jù)需要用戶可以自定義多個(gè)函數(shù) (5)程序中可以調(diào)用系統(tǒng)提供的庫函數(shù),但必須將相應(yīng)的頭文件包含在本程序文件中 (6)書寫格式與規(guī)則: C程序書寫格式自由,一行內(nèi)可以寫幾個(gè)語句, 一個(gè)語句可以分寫在多行上,C程序沒有行號。 每個(gè)語句和數(shù)據(jù)聲明的最后必須有一個(gè)分號。 注釋 /*注釋語句*/,#include void main( ) printf (Th
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 46939-2025中醫(yī)體質(zhì)分類與判定
- GB/T 20923-2025道路貨物運(yùn)輸企業(yè)服務(wù)指標(biāo)及評價(jià)方法
- 海外建筑工程物資管理培訓(xùn)
- 海外業(yè)務(wù)培訓(xùn)
- 海員培訓(xùn)實(shí)操課件
- 石英玻璃冷加工工崗前理論綜合技能考核試卷含答案
- 余熱余壓利用系統(tǒng)操作工創(chuàng)新意識知識考核試卷含答案
- 石材護(hù)理工崗前創(chuàng)新實(shí)踐考核試卷含答案
- 酒店員工培訓(xùn)與績效反饋制度
- 酒店客房預(yù)訂系統(tǒng)使用培訓(xùn)制度
- 2025年(第十二屆)輸電技術(shù)大會(huì):基于可重構(gòu)智能表面(RIS)天線的相控陣無線通信技術(shù)及其在新型電力系統(tǒng)的應(yīng)用
- 帶壓開倉培訓(xùn)課件
- 電力三種人安全培訓(xùn)課件
- 電子科技大學(xué)自主招生人工智能自薦信范文
- 糧油供貨質(zhì)量保證措施
- 戒毒所生產(chǎn)安全知識培訓(xùn)課件
- 2025年電商公司全職員工勞動(dòng)合同范本
- 【高考生物】大二輪專題突破:第一篇 主題五 高考熱點(diǎn)(五) PCR的應(yīng)用
- 醫(yī)療質(zhì)量安全核心制度落實(shí)情況監(jiān)測指標(biāo)
- DZ/T 0032-1992地質(zhì)勘查鉆探巖礦心管理通則
- 綜合應(yīng)用能力E類測驗(yàn)試題及答案
評論
0/150
提交評論