版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第1章C語言概述1計算機文化的主要內容《離散數(shù)學》:包括數(shù)理邏輯、集合論、圖論等內容,“二進制的原理”《電子線路》:“二進制的物理實現(xiàn)”《計算機組成原理》:“二進制的加法”二進制的原理十進制的數(shù)字:
0,1,2,3,4,5,6,7,8,9(西方)
一、二、三、四、五、六、七、八、九、十(中國)二進制的數(shù)字:0,1(西方)陰、陽(中國)1.1程序設計與程序設計語言2十進制是如何被發(fā)現(xiàn)的?恩格斯《反杜林論》“數(shù)和形的概念不是從其他任何地方,而是從現(xiàn)實世界中得來的。人們用來學習計數(shù),也就是作第一次算術運算的十個指頭,可以是任何別的東西,但總不是知性的自由創(chuàng)造物。為了計數(shù),不僅要有可以計數(shù)的對象,而且還要有一種在考察對象時撇開它們的數(shù)以外的其他一切特性的能力,而這種能力是長期的以經驗為依據的歷史發(fā)展的結果?!?.1程序設計與程序設計語言3十進制是如何被發(fā)現(xiàn)的?數(shù)和形的概念不是從其他任何地方,而是從現(xiàn)實世界中得來的。人們曾用來學習計數(shù),從而用來作第一次算術運算的十個指頭,可以是任何別的東西,但是總不是悟性的自由創(chuàng)造物。為了計數(shù),不僅要有可以計數(shù)的對象,而且還要有一種在考察對象時撇開對象的其他一切特性而僅僅顧到數(shù)目的能力,而這種能力是長期的以經驗為依據的歷史發(fā)展的結果。和數(shù)的概念一樣,形的概念也完全是從外部世界得來的,而不是在頭腦中由純粹的思維產生出來的。(摘自《馬克思恩格斯全集》第二十卷pp.41,《反杜林論》)1.1程序設計與程序設計語言41.1程序設計與程序設計語言德國的萊布尼茨發(fā)現(xiàn)了二進制,他認為:“第一天的伊始是1,也就是上帝。第二天的伊始是2,……到了第七天,一切都有了。所以,這最后的一天也是最完美的。因為,此時世間的一切都已經被創(chuàng)造出來了。因此它被寫作‘7’,也就是‘111’(二進制中的111等于十進制的7),而且不包含0。只有當我們僅僅用0和1來表達這個數(shù)字時,才能理解,為什么第七天才最完美,為什么7是神圣的數(shù)字。特別值得注意的是它(第七天)的特征(寫作二進制的111)與三位一體的關聯(lián)?!卑素允怯砂藗€符號組構成的占卜系統(tǒng),而這些符號分為連續(xù)的與間斷的橫線兩種。這兩個后來被稱為“陰”、“陽”的符號,在萊布尼茨眼中,就是二進制的中國翻版。他感到這個來自古老中國文化的符號系統(tǒng)與他的二進制之間的關系實在太明顯了,因此斷言:二進制乃是具有世界普遍性的、最完美的邏輯語言。5周易八卦圖及中華文化的影響
“是故易有太極,是生兩儀。兩儀生四象,四象生八卦?!保ㄗⅲ菏牵魏?;故,事物;儀,測度)(注:艮gèn,巽xùn)1.1程序設計與程序設計語言6韓國國旗含義:太極圖中的紅色代表陽,藍色代表陰,陰陽合一代表宇宙的平衡與和諧。以太極為中心,四角的卦分別象征陰陽互相調和,乾卦代表天空,坤卦代表大地,坎卦是月亮和水,離卦為太陽和火,各個卦還象征著正義、富饒、生命力和智慧。據韓國的解釋,國旗底色為白色,象征韓國人民的純潔和對和平的熱愛。而整個國旗則代表韓國人民永遠與宇宙協(xié)調發(fā)展的理想。1.1程序設計與程序設計語言不丹國旗含義:不丹的國旗為長方形,由兩個三角形組成,左上方的三角形為金黃色,同中國一樣表示帝王之色,象征國王在領導宗教以及世俗事物方面的權力和作用。右下方的三角形為桔紅色,象征佛教的精神力量。圖案是一條足登四顆白珠的白龍。白龍象征國家的權利,代表“神龍之國”;四顆白珠象征威力和圣潔。7“加密狗”折射出的西方文化東方和西方的動物崇拜西方在文藝復新(14世紀至16世紀)之前,包括在歐洲黑暗的中世紀,西方人從事放牧、狩獵是重要的生活來源手段,狗是忠實的伙伴。而同時期,中國西晉時期(公元前300年左右)已經有發(fā)達的農業(yè),牛是主要的生產和交通工具?!妒勒f新語》汰侈篇(注:汰侈,過分驕奢),“王右軍少時,在周候末坐,割牛心啖之,于此改觀”,“王武子與王君夫較射賭?!庇《鹊纳竦畹呐I袷ゲ豢汕址?.1程序設計與程序設計語言81.1程序設計與程序設計語言二進制的物理實現(xiàn)(與)
A、B的開為“0”,關為“1”;燈滅為“0”,燈亮為“1”AB燈00001010011191.1程序設計與程序設計語言二進制的物理實現(xiàn)(或)
A、B的開為“0”,關為“1”;燈滅為“0”,燈亮為“1”AB燈000011101111101.1程序設計與程序設計語言二進制的物理實現(xiàn)(非)
A、B的開為“0”,關為“1”;燈滅為“0”,燈亮為“1”A燈0110111.1程序設計與程序設計語言二進制的加法(異或)
A、B的開為“0”,關為“1”;燈滅為“0”,燈亮為“1”A、B閘刀“向上”為開,閘刀“水平”為關A安裝在臥室門口,B安裝在床頭,方便冬天熄燈睡覺復式房的房內樓梯?AB燈000011101110121.1程序設計與程序設計語言RAM(randomaccessmemory,隨機存取存儲器),存放的內容可以隨機讀寫,但RAM中的信息具有易失性,關機或斷電后信息全部丟失。計算機在運行時,系統(tǒng)程序、用戶程序以及所有數(shù)據都存放在RAM中ROM(readonlymemory,只讀存儲器),只能從中讀出信息,不能向其中寫入信息,在關機和斷電后,ROM中的內容仍能保存,不會丟失。ROM的寫入,需要專門的編程器完成。131.1程序設計與程序設計語言DRAM記憶元件是靠柵極電容上的電荷保存信息,所以也稱電荷存儲型記憶元件。字線WCC0位線B僅由一個MOS管和一個電容組成。當字線為高電平時,該電路被選中。執(zhí)行寫操作時,若寫“1”,位線上為高電平,對電容C充電;若寫“0”,位線上為低電平,C上的電荷很快被泄放掉。執(zhí)行讀操作時,若原存“1”,C上有電荷,在位線產生輸出信號;若原存“0”,C上無電荷,位線上無輸出信號。141.1程序設計與程序設計語言ROMROM(MOSROM)PROM(programmableROM,可編程的ROM)EPROMUVEPROM(ultravioletEPROM,紫外線擦除EPROM)E2PROM(elctronicallyEPROM,電可改寫EPROM)W0W1b0b1b215相關知識:紫外線的故事1801年的一天,德國研究太陽光譜的科學家里特突然想要了解太陽光分解為七色光后有沒有其它看不見的光存在。當時他手頭正好有一瓶氯化銀溶液。人們當時已知道,氯化銀在加熱或受到光照時會分解而析出銀,析出的銀由于顆粒很小而呈黑色。里特就想通過氯化銀來確定太陽光七色光以外的成份。他用一張紙片醮了少許氯化銀溶液,并把紙片放在白光經棱鏡色散后七色光的紫光的外側。過了一會兒,他果然在紙片上觀察到醮有氯化銀部分的低片變黑了,這說明太陽光經棱鏡色散后在紫光的外側還存在一種看不見的光線,里特把這種光線稱為紫外線。紫外線的發(fā)現(xiàn)者里特由于家境貧寒,生活清苦,正在他充滿憧憬向科學高峰攀登時,卻被肺病奪去了生命,在死時年僅34歲。16丹麥科學家芬森家里養(yǎng)了一只貓。一天,芬森到陽臺上乘涼,看見家里的貓也靜靜地躺在地板上曬太陽。他看著看著,覺得很奇怪:每當貓身上曬不到陽光的時候,貓自己就會挪動身體,移到有陽光的地方。芬森心想:“這么熱的天,貓為什么還要曬太陽?這里面一定有問題?!狈疑呦玛柵_,來到貓的身邊,用手輕輕地撫摸著貓的身體。忽然,他發(fā)現(xiàn)貓的身上,有一處正在化膿的傷口。他想:貓是不是利用曬太陽在治療它的傷口呢?難道陽光里還有什么我們沒有發(fā)現(xiàn)的東西嗎?相關知識:紫外線的故事17芬森帶著這種疑問,開始對陽光進行深入的分析研究和實驗。終于,他在陽光中發(fā)現(xiàn)了一種我們肉眼看不見的光線——紫外線,它具有殺菌的作用,可用于治療的疾病,效果很好。紫外線被廣泛應用到醫(yī)療事業(yè)上,成為醫(yī)務人員不可缺少的好幫手。芬森在1930年獲得了諾貝爾醫(yī)學獎。相關知識:紫外線的故事18分級存儲為解決速度、容量和成本之間的矛盾。目前的計算機存儲器一般分為3級:輔助存儲器(也稱外存,如光盤、磁盤、U盤等)、主存儲器(也稱內存)和高速緩沖寄存器(cache,簡稱緩存)??刂破鬟\算器cache主存儲器輔助存儲器1.1程序設計與程序設計語言191.1程序設計與程序設計語言多級存儲體系的建立,是因為實際的存儲器制約因素是價格(每位成本)、容量和速度。這3個基本指標是矛盾的。201.1程序設計與程序設計語言處理器寄存器高速緩沖存儲器主存儲器(SRAM,DRAM)輔助存儲器(磁盤存儲器等)大容量(海量)存儲器(光盤、磁帶存儲器)CPU芯片內主機內外部設備聯(lián)機存儲聯(lián)機文件可卸存儲211.1程序設計與程序設計語言硬盤磁表面存儲元當具有很窄縫隙的磁頭的寫線圈中通過電流時,其垂直下方的一個小區(qū)間會形成一個局部小磁環(huán),稱為存儲元。3.剩磁可感應出脈沖電流221.1程序設計與程序設計語言常見的CD-ROM“相變光盤”讀寫原理:相變型光盤的存儲介質通常由硫族(S,Se,Te)化合物制成寫入前全部是結晶狀態(tài)。寫“1”時,利用短激光脈沖使結晶態(tài)的存儲介質局部熔化,驟冷后變成非結晶態(tài)。擦去時,則用光波較長的、強度較弱的光脈沖使它復原為結晶態(tài)。讀出時,根據結晶態(tài)和非結晶態(tài)對激光束反射率的不同,區(qū)別存儲的是“0”還是“1”。231.1程序設計與程序設計語言計算機不僅能夠對數(shù)值數(shù)據進行處理,還能夠對文本和其它非數(shù)值數(shù)據信息進行處理。非數(shù)值數(shù)據是指不能進行算術運算的數(shù)據,包括文字、圖形、圖象和聲音等。為了處理文本,需要一個完整而足夠的字符集,這個字符集最少應包括:26個小寫字母;26個大寫字母;約25個特殊字符,如:[,+,-,@,|,#等;10個數(shù)字碼:0,1,2,3,4,5,6,7,8,9。共計87個字符。這87個字符須用7位“0”,“1”進行編碼。241.1程序設計與程序設計語言常用的編碼形式有美國信息交換標準代碼(ASCII),微型計算機都采用ASCII碼。ASCII碼字符表,它用8位來表示字符代碼。其基本代碼占7位,第8位用作奇偶校驗位,通過對奇偶校驗位設置“1”或“0”狀態(tài),保持8位字節(jié)中的“1”的個數(shù)總是奇數(shù)(稱奇校驗)或偶數(shù)(稱為偶校驗),用以檢測字符在傳送(寫入或讀出)過程中是否出錯(丟失1)。ENQ(查詢)、ACK(肯定回答)、NAK(否定回答)等,是專門用于串行通信的控制字符。251.1程序設計與程序設計語言公元前5000至4000年左右,有了埃及象形文字1799年,法國古文字學家們發(fā)掘出一塊黑石碑。碑文用3種文字寫成,分別是希臘文、古埃及象形文字和后期的埃及文字。法國古代語學者研究并設法釋讀了古埃及的象形文字。261.1程序設計與程序設計語言漢字雖然還保留象形文字的特征,但由于漢字除了象形以外,還有其他構成文字的方式;而漢字經過數(shù)千年的演變,已跟原來的形象相去甚遠,所以不屬于象形文字,而屬于形、音、義相結合的“表意文字”。271.1程序設計與程序設計語言漢字的0、1編碼智能ABC全拼五筆字型自然碼┆外碼鍵盤管理程序碼表機內碼字庫檢索程序字庫字模顯示驅動程序控制信號281.1程序設計與程序設計語言漢字編碼方案:GB2312-1980和GB2312-1990,共收錄6763個簡體漢字、682個符號,其中漢字分為兩級:一級字3755,以拼音排序,二級字3008,以偏旁排序。BIG5編碼,是目前臺灣、香港地區(qū)普遍使用的一種繁體漢字的編碼標準,包括440個符號,一級漢字5401個、二級漢字7652個,共計13053個漢字。GBK編碼——《漢字內碼擴展規(guī)范》(俗稱大字符集),兼容GB2312,共收錄漢字21003個、符號883個,并提供1894個造字碼位,簡、繁體字融于一庫。Unicode編碼(UniversalMultipleOctetCodedCharacterSet),國際標準組織ISO的標準,V2.0于1996公布,內容包含符號6811個,漢字20902個,韓文拼音11172個,造字區(qū)6400個,保留20249個,共計65534個。GB18030-2000——2000年3月國家信息產業(yè)部和質量技術監(jiān)督局在北京聯(lián)合發(fā)布的《信息技術和信息交換用漢字編碼字符集、基本集的擴充》,收錄了27484個漢字,還收錄了藏、蒙、維等主要少數(shù)民族的文字。該標準于2000年12月31日強制執(zhí)行。GB18030-2000作為GBKforUnicode291.1程序設計與程序設計語言漢字的輸入——漢字外碼:按排列順序形成的漢字編碼(流水碼),如區(qū)位碼;按讀音規(guī)則形成的漢字編碼(音碼),如全拼、簡拼、雙拼等;按字形形成的漢字編碼(形碼),如五筆字型、鄭碼等;按音、形結合形成的漢字編碼(音形碼),如自然碼、智能ABC。
301.1程序設計與程序設計語言漢字字模:漢字字模的原理與西文字符的字?;鞠嗤皇怯捎跐h字筆畫復雜,為了表達清晰,要比西文字符須要更多的點陣。
一個24×24點陣的漢字字模示例311.1程序設計與程序設計語言漢字系統(tǒng)的工作過程:①用一種輸入方法從鍵盤輸入漢字。②鍵盤管理程序按照碼表將外碼變換成機內碼。③機內碼經字庫模檢索程序查對應的點陣信息在字模庫的地址,從字庫取出字模。④字模送顯示驅動程序,產生顯示控制信號。⑤顯示器按照字模點陣將漢字字形在屏幕上顯示出來。321.1程序設計與程序設計語言王永民與五筆字型:出生河南南陽農民家庭,家境貧寒,父母扒房供其讀書從小立大志:“翻開物理課本、化學課本,為什么都是外國人的名字和人頭像?中國人為什么不能有自己的發(fā)明創(chuàng)造,然后把自己印進課本去?”,考入中國科技大學1982年五筆字型漢字輸入法和時任河南省副省長、河南省科委主任的羅干1978至1983年,發(fā)明“五筆字型”,提出“形碼設計三原理”,首創(chuàng)“漢字字根周期表”,發(fā)明25鍵4碼高效漢字輸入法和字詞兼容技術。在世界上,首破電腦漢字輸入每分鐘100字大關,獲中、美、英三國專利。王永民現(xiàn)任中國科協(xié)委員、中國民營科技實業(yè)家協(xié)會副理事長、北京王碼電腦總公司總裁331.1程序設計與程序設計語言離散化后的圖像被看成一個由MⅹN的像素(picture-elements,piel)點陣組成的圖。每個像點都是一個單色的小方塊,放大了就是馬賽克。圖像中像素點的密度稱為圖像分辨率(imageresolution),單位為dpi(dotsperinch,每英寸像點數(shù))。341.1程序設計與程序設計語言00000001001000110100010101100111011110001001101010111100110111101111101111011110111111111110111010110100000100000000000100100100351.1程序設計與程序設計語言采樣頻率定律:采樣頻率與信號頻率之間有一定的關系,根據奈奎斯特理論,只要采樣頻率高于信號最高頻率的兩倍,就能把數(shù)字信號表示的信號還原成為原來的連續(xù)信號。電話語音信號頻率為3.4kHZ,采樣頻率為8kHZ即可滿足電話服務質量361.1程序設計與程序設計語言手動計算工具游珠算盤與算盤石子記事371.1程序設計與程序設計語言手動計算工具算籌381.1程序設計與程序設計語言手動計算工具算籌與算盤在計算過程中都要依據口訣進行,這是人類計算工具史上最早的用于計算的專門語言。
例:42+39
三下五去二(計算十位的4+3,結果為72)
九去一進一(計算個位的2+9,結果為81)39B.Pascal及其制造的計算機(1642)1.1程序設計與程序設計語言內動力計算工具Leibnitz及其制造的乘法器(1694)40電動機械式計算機(1930)1.1程序設計與程序設計語言Zuse的繼電器式計算機(1938)第1臺真空管計算機ABC(1942)
ENIAC(1946)411.1程序設計與程序設計語言提花機:一人在“花樓”根據“花本”提起一部分經線,以便另一人讓滑梭牽引著不同顏色的緯線通過。提花機—Babbage分析機—EDVAC——實現(xiàn)自動計算的道路421.1程序設計與程序設計語言花本是提花機上貯存紋樣信息的一套程序,它由代表經線的腳子線和代表緯線的耳子線根據紋樣要求編織而成。上機時,腳子線與提升經線的纖線相連,此時,拉動耳子線一側的腳子線就可以起到提升相關經線的作用。織造時上下兩人配合,一人為挽花工,坐在三尺高的花樓上挽花提綜,一人踏桿引緯織造。東漢王逸《機婦賦》中,用“纖纖靜女,經之絡之,動搖多容,俯仰生姿”來形容織工和提花工合作操縱提花機的場面。提花機后經絲綢之路傳入西方,對現(xiàn)代電子計算機發(fā)展中程序控制與存儲技術的發(fā)明有啟示作用。提花機—Babbage分析機—EDVAC——實現(xiàn)自動計算的道路431.1程序設計與程序設計語言JACQUARD提花機和穿孔卡片(1801)1801年,法國人賈卡(Jacquard)在中國束綜提花機的基礎上發(fā)明了新一代提花機,用穿孔紋版代替花本,從而使絲織提花技術進入了一個新時代。441.1程序設計與程序設計語言差分機(1822)和分析機(1834)451.1程序設計與程序設計語言提花機—Babbage分析機—EDVAC——實現(xiàn)自動計算的道路Babbage的設計已經初步具備現(xiàn)代計算機的基本結構:存儲器(倉庫)運算器(作坊)控制器(穿孔卡片及其閱讀設備)輸入/輸出設備(卡片穿孔設備、印刷廠)總線(運輸數(shù)據部件)461.1程序設計與程序設計語言提花機—Babbage分析機—EDVAC——實現(xiàn)自動計算的道路H.Aiken和MarkⅠ計算機(1936)JohnVonNeumann電子計算機EDVAC(1952)471.1程序設計與程序設計語言提花機—Babbage分析機—EDVAC——實現(xiàn)自動計算的道路Neumann體系結構示意圖481.1程序設計與程序設計語言計算機的自我管理問題的提出存儲管理輸入輸出管理任務管理用戶操作界面491.1程序設計與程序設計語言計算機的自我管理
處理器
管理
I/O設備
主存CPU存儲管理
設備
管理
外存
文件
管理總線
硬件操作系統(tǒng)用戶界面作業(yè)管理501.1程序設計與程序設計語言計算機的自我管理硬件操作系統(tǒng)這種非物理地實現(xiàn)計算機功能的擴大,稱為計算機的虛擬(virtual)化。511.1程序設計與程序設計語言摩爾定律1965年,摩爾為了完成《電子學》一篇關于半導體工業(yè)的約稿時,把幾年來芯片的集成度增長的情況總結一下,發(fā)現(xiàn)1962年和1965年的芯片的集成度很有規(guī)律。他提出,半導體芯片上集成的晶體管和電阻數(shù)量每年將翻一番,原因是工程師可以不斷縮小晶體管的尺寸。后來又發(fā)現(xiàn)18個月更準確。521.1程序設計與程序設計語言摩爾定律531.1程序設計與程序設計語言摩爾定律受到科學發(fā)展水平的制約CPU集成度是指在CPU芯片的單位面積上集成電子器件數(shù)量的程度。如今的CPU大多數(shù)是基于場效應管(MOS管)技術制造的,nMOS管的結構如圖所示。CPU集成度用MOS管的“制程”衡量。所謂制程,就是指在一定制造工藝下MOS管可以實現(xiàn)的最小“門控導線”(GATE)長度。一般來說,MOS管的制程越小,CPU的主頻越高,CPU的運算速度越快。541.1程序設計與程序設計語言摩爾定律受到科學發(fā)展水平的制約按摩爾定律計算,到2010年,一個芯片上晶體管的數(shù)量將超過10億現(xiàn)實印證了科學家的計算:2006年底GATE寬度約為50nm在SiO2介質上GATE寬度的極限是32nm,制程小于此寬度就容易發(fā)生電子隧穿、漏電、發(fā)熱過高等反常效應目前商業(yè)用的CPU芯片絕大多數(shù)采用SiO2介質,制程為45nm現(xiàn)在Intel公司經過10多年的努力,發(fā)現(xiàn)用HfO2(二氧化鉿)介質替代SiO2介質后,MOS管的GATE寬度可降至22nm但是,Hf元素的獲取成本比Si高很多,因為Hf存在于大多數(shù)Zr(鋯)礦中,地殼中含量很少,Hf常與Zr共存,無單獨礦石,一般由HfCl4(四氯化鉿)與Na(鈉)加熱還原而制得551.1程序設計與程序設計語言摩爾定律受到科學發(fā)展水平的制約由于CPU的速度受其集成度的制約,因此,在商業(yè)運營成本的范圍內,多數(shù)服務器廠商以計算機并行技術為基礎,以服務器“最高并行工作的CPU個數(shù)”為主要指標劃分服務器類型。一般來說,小型機(入門級)“最高并行工作的CPU個數(shù)”是4顆中型機(中檔級)是8顆大型機(高端級)最少是16顆561.1程序設計與程序設計語言OOP的發(fā)展和普及(科學發(fā)展水平制約的證據)1960’s的SmallTalk兩個變量a=2,b=3的數(shù)據對換:(=為賦值語句)方法1:c=a;a=b;b=c;方法2:a=a+b;b=a-b;a=a-b;1990’s的C++、Java:物質的硬件發(fā)展到一定程度、內存、CPU、硬盤、高速傳輸接口2007年諾貝爾物理獎得主:瑞典的彼得-格林貝格爾發(fā)現(xiàn)巨磁電阻效應:非常弱小的磁性變化就能導致磁性材料發(fā)生非常顯著的電阻變化。用于讀取硬盤數(shù)據的技術,得益于這項技術,硬盤在近年來迅速變得越來越小。57第1章C語言概述1.1程序設計與程序設計語言1.2C語言的產生與發(fā)展1.3C語言的特點1.4C語言程序簡介1.5C語言的運行環(huán)境58一、概念程序:人們事先準備好的、用來指揮計算機工作的描述工作步驟的指令序列
程序設計:程序員設計編寫程序的過程
程序設計語言:編寫程序所用的計算機語言二、程序設計語言的發(fā)展機器語言:0、1系列……匯編語言:movax,25Haddbx……(類似于網站域名與IP地址的關系)高級語言:源程序,執(zhí)行方式分為“編譯方式”和“解釋方式”1.1程序設計與程序設計語言59三、程序設計方法1.1程序設計與程序設計語言結構化程序設計
(SP,StructuredProgramming)
強調程序設計風格和程序結構的規(guī)范化
(易讀、易懂)
核心思想:自頂向下,逐步細化
如:工業(yè)控制系統(tǒng)面向對象的程序設計
(OOP,Object-OrientedProgramming)601.2C語言的產生與發(fā)展78年B.W.Kernighan&D.M.Ritchie合著《TheCProgrammingLanguage》80年代微機逐漸普及,美國國家標準化協(xié)會(AmericanNationalStandardsInstitute) 83年ANSIC(1) 87年ANSIC(2)90年代面向對象的程序設計語言C++60年代ALGOL60(高級語言)離硬件遠,不宜編寫系統(tǒng)軟件
CPL BCPL(BasicCombinedProgrammingLanguage)70年代PDPUNIX貝爾實驗室
B C(73年)611.3C語言的特點1.語言簡潔、緊湊、靈活。(32個關鍵字、9種控制語句)2.運算符豐富。(44種運算符)3.數(shù)據結構豐富。4.具有結構化的控制語句。5.目標代碼質量高,程序執(zhí)行效率高。6.可移植性好。7.兼有低級語言和高級語言的特點,承上啟下。8.語法限制不太嚴格,程序設計自由度大。621.3C語言的特點VisualC++6.0的安裝過程在WindowsXPProfessionalSP3版本上安裝安裝VC6集成開發(fā)環(huán)境631.4C語言程序簡介——簡單實例例1.1
在屏幕上顯示字符串“ThisisaCprogram.”。
#include<stdio.h> /*文件包含*/
voidmain()/*主函數(shù)*/{/*函數(shù)體開始*/
printf("ThisisaCprogram.\n");/*輸出了一句話*/}/*函數(shù)體結束*/
641.4C語言程序簡介——簡單實例例1.2求整數(shù)10、20的和。
#include<stdio.h>voidmain()/*主函數(shù)*/{
intfirst,second,sum;/*定義變量*/first=10;/*給變量賦值*/second=20;sum=first+second;/*求a與b的和*/
printf("sum=%d\n",sum);/*輸出結果*/}651.4C語言程序簡介——簡單實例C語言的賦值語句:=先制造某類袋子,再向袋子中放某類東西。661.4C語言程序簡介——簡單實例例1.3找出任意兩個整數(shù)中較大的數(shù)。 #include<stdio.h>
int
max(intx,inty) /*定義max函數(shù)*/ { return(x>y?x:y);/*求出兩數(shù)中的較大數(shù)并返回*/ } /*max函數(shù)結束*/ voidmain() { intnum1,num2,m;
printf("Inputthefirstintegernumber:"); scanf("%d",&num1);/*從鍵盤上輸入第一個整數(shù)*/
printf("Inputthesecondintegernumber:"); scanf("%d",&num2); /*輸入第二個整數(shù)*/ m=max(num1,num2);/*調用max,計算兩個數(shù)的較大數(shù)*/
printf("max=%d\n",m); /*輸出結果*/ }671.4C語言程序簡介——簡單實例現(xiàn)實生活與C語言程序的結構類比681.4C語言程序簡介——基本元素,逗號(左圓括號>右尖括號%百分號.圓點)右圓括號!感嘆號&and(與);分號[左方括號|豎線^xor(異或): 冒號]右方括號/斜杠*乘號? 問號{左大括號\反斜杠-減號‘ 單引號}右大括號~波折號=等于號“ 雙引號<左尖括號#井號+加號C語言使用的基本符號共有如下三種:(1)大小寫字母:A~Z、a~z(2)阿拉伯數(shù)字:0~9(3)標點符號和的運算符:1.字符集(符號集)691.4C語言程序簡介——基本元素2.標識符用來標記常量、變量、函數(shù)及文件名字的字符序列標識符的構成規(guī)則:●以字母(大小寫皆可)或下劃線開頭●隨后可跟若干個(包括0個)字母、數(shù)字、下劃線如:xy3_imaxELSEXA_to_B(合法)
7xint#Nobadonere-input(不合法)注意:區(qū)分大小寫。如:sum、Sum是二個標識符注意!701.4C語言程序簡介——基本元素3.關鍵字ANSI推薦的C語言的關鍵字是32個,TurboC另擴展了11個(不常用)asm_cs_ds_es_ss
cdedfarhugeinterruptnearpascal
#define#error#include#if#else#elif#endif#ifdef#ifndef#undef#line#pragma特殊字:主要用在C語言的預處理程序中注意:★所有的關鍵字和特殊字都有固定的意義,不能用作其它★所有的關鍵字和特殊字都必須小寫如:else與ELSE代表不同含義:else是關鍵字,ELSE是標識符也稱“保留字”.它是C語言中具有特定含義、專門用作語言特定成分的一類標識符.711.4C語言程序簡介——基本元素運算符用來對運算對象進行規(guī)定(系統(tǒng)預定義的)的運算,并得到一個結果值。運算符通常由1~2個字符組成,如:“+”表示加法運算,“=”表示賦值運算,“==”表示“相等”的判斷等。有的運算符中的兩個字符是分開的,比如“?:”表示條件運算(如例1.3)。4.運算符分隔符用于分隔各個詞法記號或程序正文,用于表示程序中一個實體的結束和另一個實體的開始。
常用的分隔符有: (){},:;空白這些分隔符不表示任何操作,僅用于構造程序。5.分隔符721.4C語言程序簡介——基本元素6.注釋對程序進行注釋和說明形式:
/*
注釋內容*/
注意:注釋內容可以是一行,也可以是多行;可以是單獨一行,也可以在行尾。731.4C語言程序簡介——程序組成1.函數(shù)是組成C程序的基本構件,并至少有
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 家居建材店門面租賃協(xié)議
- 在線家教服務協(xié)議
- 戶外市集桁架租賃協(xié)議
- 醫(yī)療器械安裝施工合同
- 2025民工勞動合同協(xié)議書格式
- 職業(yè)院校項目實施進度與時間表
- 體育賽事現(xiàn)場翻譯協(xié)議
- 電子產品零售店租賃合同
- 2025汽車分期付款買賣合同樣本
- 分布式光伏社會就業(yè)與公共利益分析
- 三年級上遞等式計算300題
- 2023-2024學年廣州市越秀區(qū)八年級上英語期末考試題(含答案和音頻)
- 衛(wèi)生化學期末考試習題2
- 某市區(qū)域調研報告
- 山東省青島市2023-2024學年九年級上學期期末質量監(jiān)測化學試題
- 工程造價咨詢服務方案(技術方案)
- 污泥處理工施工詳細注意事項培訓
- 看漢字寫拼音(聲母+單韻母、復韻母)直接打印
- 剪映專業(yè)版畫中畫與蒙版使用方法教程
- 一+《展示國家工程++了解工匠貢獻》(教學課件)-【中職專用】高二語文精講課堂(高教版2023·職業(yè)模塊)
- 《小學生數(shù)學計算能力培養(yǎng)策略研究》中期總結
評論
0/150
提交評論