




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
C語言程序設(shè)計湖北民族學(xué)院信息工程學(xué)院張zhang_hbmy@C語言程序設(shè)計湖北民族學(xué)院信息工程學(xué)院2C語言程序設(shè)計What?一種編程語言,使我們成為計算機(jī)軟件的設(shè)計者Why?掌握一種基本技術(shù)思維現(xiàn)實層面-就業(yè)砝碼,落戶加分…信息技術(shù)創(chuàng)新中心How?牢固基礎(chǔ),戒驕戒躁,多實踐多多交流,互相學(xué)習(xí)2C語言程序設(shè)計What?3課程安排課程考核:
期末成績=平時成績*10%+上機(jī)成績*30%+考試成績*60%教材:C語言程序設(shè)計.葉斌等編,北京:科學(xué)出版社,2011C語言程序設(shè)計實驗指導(dǎo)與習(xí)題解答.葉斌等編,北京:科學(xué)出版社,20113課程安排課程考核:4課程安排參考資料:1.譚浩強(qiáng)著.C程序設(shè)計(第四版).北京:清華大學(xué)出版社,20102.陳良銀等主編.C語言程序設(shè)計(C99版).北京:清華大學(xué)出版社,20063.張長海,陳娟.程序設(shè)計基礎(chǔ)(第2版).北京:高等教育出版社,20134.蘇小紅等編著.C語言程序設(shè)計(第2版).北京:高等教育出版社,20135.李麗娟主編.C語言程序設(shè)計教程(第2版).北京:人民郵電出版社,20094課程安排參考資料:5課程安排總學(xué)時:56學(xué)時(理論32學(xué)時+實驗24學(xué)時)1-3周2次理論課
(9B112,周一7-8節(jié)、周四9-10節(jié))4-14周1次理論+1次上機(jī)
(9B112,四9-10節(jié))+(9B505周一7-8節(jié))15周-16周每周1次上機(jī)(9B505周一7-8節(jié))5課程安排總學(xué)時:6教學(xué)安排第一章C語言程序設(shè)計概述2課時第二章
基本數(shù)據(jù)類型與表達(dá)式4課時第三章程序的控制結(jié)構(gòu)6課時第四章函數(shù)4課時第五章數(shù)組6課時第六章指針4課時第七章結(jié)構(gòu)體、聯(lián)合體與枚舉型4課時第八章文件2課時6教學(xué)安排第一章C語言程序設(shè)計概述2課時7
課前請做好預(yù)習(xí)保持課堂安靜,頭腦清醒,思維活躍重視上機(jī)實踐,有效利用寶貴的上機(jī)時間課后鞏固所學(xué)內(nèi)容,多思考,多實踐課程要求7課程要求8第1章C語言及程序設(shè)計概述8第1章C語言及程序設(shè)計概述9第1章C語言及程序設(shè)計概述1.1程序與程序設(shè)計語言
1.2程序設(shè)計方法
1.3C語言程序的基本結(jié)構(gòu)
1.4C語言的基本語法單位
1.5C語言程序的開發(fā)過程與環(huán)境9第1章C語言及程序設(shè)計概述1.1程序與程序設(shè)10第1章C語言及程序設(shè)計概述
1.1程序與程序設(shè)計語言
1.2程序設(shè)計方法
1.3C語言程序的基本結(jié)構(gòu)
1.4C語言的基本語法單位
1.5C語言程序的開發(fā)過程與環(huán)境10第1章C語言及程序設(shè)計概述1.1程序與程序111.1程序與程序設(shè)計語言1.1.1程序的概念馮.諾依曼結(jié)構(gòu):計算機(jī)運(yùn)算器控制器存儲器主機(jī):I/O設(shè)備:鍵盤、顯示器等中央處理器CPU程序(Program)是可以被計算機(jī)或其他信息處理裝置連續(xù)執(zhí)行的一條條指令的集合,是能夠完成特定任務(wù)的指令序列。111.1程序與程序設(shè)計語言1.1.1程序的概念馮.121.1程序與程序設(shè)計語言1.1.1程序的概念源程序
可執(zhí)行程序程序(Program)是可以被計算機(jī)或其他信息處理裝置連續(xù)執(zhí)行的一條條指令的集合,是能夠完成特定任務(wù)的指令序列。編譯、連接編程:為解決某個問題而使用某種程序設(shè)計語言編寫源程序、調(diào)試、編譯、鏈接得到可執(zhí)行程序的全過程。121.1程序與程序設(shè)計語言1.1.1程序的概念源程131.1.2程序設(shè)計語言的發(fā)展
人們常把編寫程序的過程稱為程序設(shè)計。在進(jìn)行程序設(shè)計時離不開程序設(shè)計語言。程序設(shè)計語言的種類很多,從其發(fā)展歷史以及功能情況來劃分可以大致劃分成三個階段:1、機(jī)器語言(Machinelanguage):計算機(jī)可以直接識別和執(zhí)行的二進(jìn)制語言。如:加法指令:10000000
減法指令:10010000特點:計算機(jī)可以直接識別和執(zhí)行,效率高,節(jié)省內(nèi)存;但難以閱讀和記憶。1.1程序與程序設(shè)計語言131.1.2程序設(shè)計語言的發(fā)展1.1程序與程序設(shè)計語141.1程序與程序設(shè)計語言2、匯編語言(Assemblylanguage):
用“指令助記符”來表示機(jī)器指令。如:ADDA,BMOVA,BSUBA,B計算機(jī)不能直接識別和執(zhí)行匯編語言編寫的源程序,它必須經(jīng)過一個叫匯編程序的系統(tǒng)軟件翻譯成機(jī)器語言程序(即目標(biāo)程序)后才能執(zhí)行。3、高級語言(High-levellanguage):
不依賴于機(jī)器,降低了編程的難度。如:C、PASCAL、FORTRAN等,用‘+’和‘-’來表示加減運(yùn)算。計算機(jī)也不能直接執(zhí)行高級語言描述的源程序,必須先經(jīng)過編譯程序或解釋程序翻譯成目標(biāo)程序后,才能由計算機(jī)執(zhí)行。面向過程的程序設(shè)計語言->面向?qū)ο蟪绦蛟O(shè)計語言->面向應(yīng)用…141.1程序與程序設(shè)計語言2、匯編語言(Assembly151.1程序與程序設(shè)計語言機(jī)器語言匯編語言高級語言1+1=?151.1程序與程序設(shè)計語言機(jī)器語言16C語言的創(chuàng)世紀(jì)1.1程序與程序設(shè)計語言1.1.3C語言的發(fā)展及特點一切從一個叫“SpaceTravel”的電子游戲開始…KenThompson為了讓他的游戲能在PDP-7上運(yùn)行,用匯編語言給PDP-7寫了一個操作系統(tǒng)—UNIX。但是匯編語言太不好用了,所以他需要一種高級語言來實現(xiàn)它的目標(biāo)。他試驗了一些高級語言,都不理想,于是在BCPL基礎(chǔ)上,自己設(shè)計了一個B語言,隨后UNIX開始發(fā)展,B也不夠用了,Dennis.M.Ritchie加入,把B改造成C,開始用C重寫UNIX...Ritchie和Thompson在開發(fā)UNIX16C語言的創(chuàng)世紀(jì)1.1程序與程序設(shè)計語言1.1.3C語17C語言的祖師爺
DennisM.Ritchie/who/dmr/1.1程序與程序設(shè)計語言17C語言的祖師爺
DennisM.Ritchiehtt18接受美國國家技術(shù)勛章18接受美國國家技術(shù)勛章191.1程序與程序設(shè)計語言1、C語言的發(fā)展概況C語言是美國電話電報公司(AT&T)貝爾實驗室于70年代初研制出來的,發(fā)明者是Dennis.M.Ritchie。1978年,由B.W.Kernighan和D.M.Ritchie合著的TheCProgrammingLanguage一書,稱之為“K&R”標(biāo)準(zhǔn)。后來又被多次改進(jìn),并出現(xiàn)了多種版本。1983年開始,美國國家標(biāo)準(zhǔn)化協(xié)會(ANSI),根據(jù)C語言問世以來各種版本對C語言的發(fā)展和擴(kuò)充,制定了ANSIC標(biāo)準(zhǔn),于1989年頒布,稱為C89標(biāo)準(zhǔn)。1994、1995年又兩次做了修訂,即C89的95修正案。1999年產(chǎn)生了C99新標(biāo)準(zhǔn)。目前,常見的C語言編譯開發(fā)環(huán)境有MicrosoftVisualC++,QuickC,TurboC,BorlandC++等多種版本。1.1.3C語言的發(fā)展及特點191.1程序與程序設(shè)計語言1、C語言的發(fā)展概況1.1201.1程序與程序設(shè)計語言1)語言簡潔緊湊,使用方便靈活2)運(yùn)算符豐富3)數(shù)據(jù)結(jié)構(gòu)豐富4)結(jié)構(gòu)化的程序設(shè)計語言5)允許直接訪問物理地址,可直接操縱硬件6)生成的目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高7)適用范圍大,可移植性好語法限制不太嚴(yán)格,變量約束不嚴(yán)格…2、C語言的特點201.1程序與程序設(shè)計語言1)語言簡潔緊湊,使用方便靈活211.1程序與程序設(shè)計語言既有高級語言的功能,又有匯編語言的特點;既是系統(tǒng)設(shè)計語言,又是程序設(shè)計語言;既能用來編寫系統(tǒng)程序,又能編寫應(yīng)用軟件。C->C++,Java,C#2、C語言的特點211.1程序與程序設(shè)計語言既有高級語言的功能,又有匯編語22第1章C語言及程序設(shè)計概述1.1程序與程序設(shè)計語言
1.2
程序設(shè)計方法
1.3C語言程序的基本結(jié)構(gòu)
1.4C語言的基本語法單位
1.5C語言程序的開發(fā)過程與環(huán)境22第1章C語言及程序設(shè)計概述1.1程序與程序231.2程序設(shè)計方法
1.2.1程序設(shè)計基本過程
沒有特定的規(guī)則,每個人都可以編寫帶有鮮明個人風(fēng)格的程序來實現(xiàn)同樣的目的。兩個階段:問題求解階段(Problemsolving)分析問題,找出算法實現(xiàn)階段(Implementation)依據(jù)算法采用C語言或其他編程語言編寫程序231.2程序設(shè)計方法1.2.1程序設(shè)計基本過程241.2程序設(shè)計方法
程序設(shè)計方法結(jié)構(gòu)化程序設(shè)計方法面向?qū)ο蟮某绦蛟O(shè)計方法241.2程序設(shè)計方法程序設(shè)計方法結(jié)構(gòu)化程序設(shè)計方法面251.2程序設(shè)計方法
1.2.2結(jié)構(gòu)化程序設(shè)計方法
1.核心思想
結(jié)構(gòu)化程序設(shè)計(Structuredprogramming)的總體思想是采用模塊化結(jié)構(gòu),自上而下,逐步求精。2.結(jié)構(gòu)化程序設(shè)計特征
結(jié)構(gòu)化程序設(shè)計的特征主要有以下幾點:(1)以三種基本結(jié)構(gòu)(順序、分支、循環(huán),詳細(xì)內(nèi)容參考第三章)的組合來描述程序;(2)整個程序采用模塊化結(jié)構(gòu);251.2程序設(shè)計方法1.2.2結(jié)構(gòu)化程序設(shè)計方法261.2程序設(shè)計方法(3)有限制地使用goto轉(zhuǎn)移語句;(4)以控制結(jié)構(gòu)為單位,每個結(jié)構(gòu)只有一個入口,一個出口,各單位之間接口簡單,邏輯清晰;
(5)采用結(jié)構(gòu)化程序設(shè)計語言書寫程序,并采用一定的書寫格式使程序結(jié)構(gòu)清晰,易于閱讀;
(6)注意程序設(shè)計風(fēng)格。程序=模塊(函數(shù))+調(diào)用261.2程序設(shè)計方法(3)有限制地使用goto轉(zhuǎn)移語句271.2程序設(shè)計方法面向?qū)ο蟪绦蛟O(shè)計方法(Object-orientedProgramming,縮寫為OOP)認(rèn)為客觀世界是由各種各樣的實體組成的,這些實體就是面向?qū)ο蠓椒ㄖ械膶ο?,也即對象是?gòu)成軟件系統(tǒng)的基本單元。對象之間的交互通過發(fā)送消息來實現(xiàn),從而完成系統(tǒng)的功能。把數(shù)據(jù)看作程序開發(fā)中的基本元素,并且不允許它們在系統(tǒng)中自由流動,將數(shù)據(jù)和操作這些數(shù)據(jù)的函數(shù)緊密連結(jié)在一起,保護(hù)數(shù)據(jù)不會被外界的函數(shù)意外的改變。面向?qū)ο蠹夹g(shù)關(guān)注問題本身->程序=對象+消息1.2.3面向?qū)ο蟪绦蛟O(shè)計方法271.2程序設(shè)計方法面向?qū)ο蟪绦蛟O(shè)計方法(Object28第1章C語言及程序設(shè)計概述1.1程序與程序設(shè)計語言
1.2程序設(shè)計方法
1.3C語言程序的基本結(jié)構(gòu)
1.4C語言的基本語法單位
1.5C語言程序的開發(fā)過程與環(huán)境28第1章C語言及程序設(shè)計概述1.1程序與程序291.3 C語言程序的基本結(jié)構(gòu)
一個完整的C語言程序,是由一個main()函數(shù)(又稱主函數(shù))和若干個其它函數(shù)結(jié)合而成的,或僅由一個main()函數(shù)構(gòu)成。程序運(yùn)行結(jié)果是在屏幕上顯示一行英文:HelloWorld!說明:(1)#include是編譯預(yù)處理命令,作用是將某個已存在的文件包含到程序中。(2)main()是主函數(shù)的函數(shù)名,表示這是一個主函數(shù)。(3)printf()函數(shù)是一個由系統(tǒng)定義的標(biāo)準(zhǔn)函數(shù),可在程序中直接調(diào)用,
功能是把要輸出的內(nèi)容送到顯示器去顯示。
/*01*/#include<stdio.h>/*02*/ main() /*03*/ {/*04*/ printf(“HelloWorld!\n”);/*05*/ }1.3.1一個簡單的C語言程序291.3 C語言程序的基本結(jié)構(gòu)一個完整的C語言程序,是301.3 C語言程序的基本結(jié)構(gòu)1.3.2C程序的結(jié)構(gòu)特點
(1)一個C語言源程序可以由一個或多個源文件組成。(2)每個源文件可由一個或多個函數(shù)組成,關(guān)于函數(shù)的內(nèi)容將在以后第四章介紹。(3)函數(shù)是C語言程序的基本單位。一個源程序不論由多少個文件組成,都有一個且只能有一個main()函數(shù),即主函數(shù)。(4)一個C語言程序,總是從main()函數(shù)開始執(zhí)行,而不論其在程序中的位置。當(dāng)主函數(shù)執(zhí)行完畢時,程序執(zhí)行完畢。301.3 C語言程序的基本結(jié)構(gòu)1.3.2C程序的結(jié)構(gòu)311.3 C語言程序的基本結(jié)構(gòu)1.3.2C程序的結(jié)構(gòu)特點
(5)源程序中可以有預(yù)處理命令(include命令僅為其中的一種),預(yù)處理命令通常應(yīng)放在源文件或源程序的最前面,以“#”開始。(6)每一個說明,每一個語句都必須以分號結(jié)尾。但預(yù)處理命令、函數(shù)頭和“}”之后不能加分號。(7)標(biāo)識符,關(guān)鍵字之間必須至少加一個空格以示間隔。若已有明顯的間隔符,也可不再加空格來間隔。(8)變量必須先定義后使用。(9)允許使用注釋。C語言的注釋格式為:
/*……*/311.3 C語言程序的基本結(jié)構(gòu)1.3.2C程序的結(jié)構(gòu)321.3 C語言程序的基本結(jié)構(gòu)1)一個說明或一個語句占一行;2)用“{}”括起來的部分,通常表示某一層次結(jié)構(gòu);3)秒用縮進(jìn)格式;4)變量名稱命名規(guī)范統(tǒng)一。1.3.3代碼編寫風(fēng)格321.3 C語言程序的基本結(jié)構(gòu)1)一個說明或一個語句占一33#include<stdio.h>/*Thisisthemainprogram*/main(){inta,b,sum;a=10;b=24;sum=add(a,b);printf(”sum=%d\n",sum);}/*Thisfunctioncalculatesthesumofxandy*/intadd(intx,inty){intz;z=x+y;return(z);}運(yùn)行結(jié)果:sum=34函數(shù)預(yù)處理命令注釋33#include<stdio.h>運(yùn)行結(jié)果:函數(shù)預(yù)處理34第1章C語言及程序設(shè)計概述1.1程序與程序設(shè)計語言
1.2程序設(shè)計方法
1.3C語言程序的基本結(jié)構(gòu)
1.4C語言的基本語法單位
1.5C語言程序的開發(fā)過程與環(huán)境34第1章C語言及程序設(shè)計概述1.1程序與程序351.4C語言的基本語法單位
1.4.1C語言的字符集
1.4.2關(guān)鍵字1.4.3標(biāo)識符1.4.4分隔符1.4.5注釋351.4C語言的基本語法單位1.4.1C語言的字361.4.1C語言的字符集
字符是組成語言的最基本的元素。C語言字符集由字母,數(shù)字,空格,標(biāo)點和特殊字符組成。在字符常量,字符串常量和注釋中還可以使用漢字或其它可表示的圖形符號。(1)字母:小寫字母a~z共26個,大寫字母A~Z共26個;(2)數(shù)字:0~9共10個;(3)空白符:空格符、制表符、換行符等統(tǒng)稱為空白符(4)標(biāo)點和特殊字符特殊字符通常指由1~2個符號組成的運(yùn)算符。算術(shù)運(yùn)算符:+-*/%++--
關(guān)系運(yùn)算符:<
>>=<===!=
邏輯運(yùn)算符:&&||!位運(yùn)算符:&|~^>><<
條件運(yùn)算符:?:和賦值運(yùn)算符:=
其他分隔符:()[]{}.,;361.4.1C語言的字符集字符是組成語371.4.2關(guān)鍵字
關(guān)鍵字是由C語言規(guī)定的具有特定意義的字符串,通常也稱為保留字。用戶定義的標(biāo)識符不應(yīng)與關(guān)鍵字相同。標(biāo)準(zhǔn)C定義的32個關(guān)鍵字如下表:371.4.2關(guān)鍵字關(guān)鍵字是由C語言規(guī)定的具有特定意381.4.3標(biāo)識符在程序中使用的變量名、函數(shù)名、標(biāo)號等統(tǒng)稱為標(biāo)識符。除庫函數(shù)的函數(shù)名由系統(tǒng)定義外,其余都由用戶自定義。C規(guī)定,標(biāo)識符只能是字母(A~Z,a~z)、數(shù)字(0~9)、下劃線(_)組成的字符串,并且其第一個字符必須是字母或下劃線。以下標(biāo)識符是合法的:
a x _3x BOOK_1 sum5以下標(biāo)識符是非法的:
3s 以數(shù)字開頭
s*T 出現(xiàn)非法字符*
-3x 以減號開頭且為非法字符
bowy-1 非法字符減號注:標(biāo)識符中,大小寫是有區(qū)別的。標(biāo)識符不能與關(guān)鍵字同名。381.4.3標(biāo)識符在程序中使用的變量名、函數(shù)名、標(biāo)號等391.4.4分隔符
C語言中采用的分隔符包括逗號、空格、制表符等。(1)逗號主要用在類型說明和函數(shù)參數(shù)表中,分隔各個變量,逗號也可以做運(yùn)算符。(2)空格多用于語句各單詞之間,作間隔符。在關(guān)鍵字,標(biāo)識符之間必須要有一個以上的空格符作間隔,否則將會出現(xiàn)語法錯誤。例如,inta;不能寫成inta;因為C編譯器會把inta當(dāng)成一個標(biāo)識符處理,其結(jié)果必然出錯。391.4.4分隔符C語言中采用的分隔符包括逗號、空401.4.5注釋
C語言的注釋符是以“/*”開頭并以“*/”結(jié)尾的串。程序編譯時,不對注釋作任何處理。(1)“/*”和“*/”必須成對使用,且“/”和“*”、以及“*”和“/”之間不能有空格,否則出錯。(2)注釋的位置,可以單占1行,也可以跟在語句的后面。(3)如果1行寫不下,可另起1行繼續(xù)寫。(4)注釋中允許使用漢字。在非中文操作系統(tǒng)下,漢字將以亂碼呈現(xiàn),但不影響程序運(yùn)行。401.4.5注釋C語言的注釋符是以“/*”41第1章C語言及程序設(shè)計概述1.1程序與程序設(shè)計語言
1.2程序設(shè)計方法
1.3C語言程序的基本結(jié)構(gòu)
1.4C語言的基本語法單位
1.5C語言程序的開發(fā)過程與環(huán)境41第1章C語言及程序設(shè)計概述1.1程序與程序42C語言是一種編譯型程序語言。1.5C語言程序的開發(fā)過程與環(huán)境編輯連接編譯執(zhí)行程序代碼的錄入,生成源程序
.c.cpp翻譯生成目標(biāo)程序
.obj與其它目標(biāo)程序或庫鏈接裝配,生成可執(zhí)行程序
.exe42C語言是一種編譯型程序語言。1.5C語言程序的開發(fā)431.5.1由源程序生成可執(zhí)行程序的過程1.編輯(Edit)編程人員把程序代碼輸入計算機(jī)的過程或修改已經(jīng)存在的代碼的過程就是編輯。2.編譯(Compile/Make)對源程序的語法和邏輯結(jié)構(gòu)等進(jìn)行檢查以生成目標(biāo)文件(Object)的過程就是編譯。3.連接(Link)連接的作用是使用系統(tǒng)提供的連接程序(或稱連接器Linker)把目標(biāo)文件、其他目標(biāo)程序模塊與系統(tǒng)提供的標(biāo)準(zhǔn)庫函數(shù)有機(jī)結(jié)合起來,生成可以運(yùn)行的可執(zhí)行文件。4.運(yùn)行(Run)在MS-DOS下通過直接鍵入可執(zhí)行文件主文件名后按回車鍵來運(yùn)行,Windows下可通過雙擊可執(zhí)行文件圖標(biāo)運(yùn)行。
431.5.1由源程序生成可執(zhí)行程序的過程1.編輯(E441.5.2VisualC++6.0集成開發(fā)環(huán)境MicrosoftVisualC++是美國微軟公司生產(chǎn)的基于其Windows系統(tǒng)的軟件開發(fā)工具??杉庸ぬ幚鞢語言程序。集成開發(fā)環(huán)境(IDE)是一個將編輯器、編譯器、調(diào)試工具和其他建立應(yīng)用程序的工具集成在一起的用于應(yīng)用程序開發(fā)的軟件系統(tǒng)。VisualC++中的DeveloperStudio就是一個集成開發(fā)環(huán)境,程序員可在該環(huán)境下編輯、編譯、連接、執(zhí)行一個應(yīng)用程序。441.5.2VisualC++6.0集成開發(fā)環(huán)境M451.控制臺程序
Win32控制臺程序是一類Windows程序,它不使用復(fù)雜的圖形用戶界面,程序和用戶交互時使用一個標(biāo)準(zhǔn)的正文窗口。2.使用VC6.0編寫控制臺程序打開VC6.0集成開發(fā)環(huán)境新建工程新建文件編輯編譯、連接運(yùn)行1.5.2VisualC++6.0集成開發(fā)環(huán)境451.控制臺程序1.5.2VisualC++6.0461.5.2VisualC++6.0集成開發(fā)環(huán)境461.5.2VisualC++6.0集成開發(fā)環(huán)境47謝謝!47謝謝!C語言程序設(shè)計湖北民族學(xué)院信息工程學(xué)院張zhang_hbmy@C語言程序設(shè)計湖北民族學(xué)院信息工程學(xué)院49C語言程序設(shè)計What?一種編程語言,使我們成為計算機(jī)軟件的設(shè)計者Why?掌握一種基本技術(shù)思維現(xiàn)實層面-就業(yè)砝碼,落戶加分…信息技術(shù)創(chuàng)新中心How?牢固基礎(chǔ),戒驕戒躁,多實踐多多交流,互相學(xué)習(xí)2C語言程序設(shè)計What?50課程安排課程考核:
期末成績=平時成績*10%+上機(jī)成績*30%+考試成績*60%教材:C語言程序設(shè)計.葉斌等編,北京:科學(xué)出版社,2011C語言程序設(shè)計實驗指導(dǎo)與習(xí)題解答.葉斌等編,北京:科學(xué)出版社,20113課程安排課程考核:51課程安排參考資料:1.譚浩強(qiáng)著.C程序設(shè)計(第四版).北京:清華大學(xué)出版社,20102.陳良銀等主編.C語言程序設(shè)計(C99版).北京:清華大學(xué)出版社,20063.張長海,陳娟.程序設(shè)計基礎(chǔ)(第2版).北京:高等教育出版社,20134.蘇小紅等編著.C語言程序設(shè)計(第2版).北京:高等教育出版社,20135.李麗娟主編.C語言程序設(shè)計教程(第2版).北京:人民郵電出版社,20094課程安排參考資料:52課程安排總學(xué)時:56學(xué)時(理論32學(xué)時+實驗24學(xué)時)1-3周2次理論課
(9B112,周一7-8節(jié)、周四9-10節(jié))4-14周1次理論+1次上機(jī)
(9B112,四9-10節(jié))+(9B505周一7-8節(jié))15周-16周每周1次上機(jī)(9B505周一7-8節(jié))5課程安排總學(xué)時:53教學(xué)安排第一章C語言程序設(shè)計概述2課時第二章
基本數(shù)據(jù)類型與表達(dá)式4課時第三章程序的控制結(jié)構(gòu)6課時第四章函數(shù)4課時第五章數(shù)組6課時第六章指針4課時第七章結(jié)構(gòu)體、聯(lián)合體與枚舉型4課時第八章文件2課時6教學(xué)安排第一章C語言程序設(shè)計概述2課時54
課前請做好預(yù)習(xí)保持課堂安靜,頭腦清醒,思維活躍重視上機(jī)實踐,有效利用寶貴的上機(jī)時間課后鞏固所學(xué)內(nèi)容,多思考,多實踐課程要求7課程要求55第1章C語言及程序設(shè)計概述8第1章C語言及程序設(shè)計概述56第1章C語言及程序設(shè)計概述1.1程序與程序設(shè)計語言
1.2程序設(shè)計方法
1.3C語言程序的基本結(jié)構(gòu)
1.4C語言的基本語法單位
1.5C語言程序的開發(fā)過程與環(huán)境9第1章C語言及程序設(shè)計概述1.1程序與程序設(shè)57第1章C語言及程序設(shè)計概述
1.1程序與程序設(shè)計語言
1.2程序設(shè)計方法
1.3C語言程序的基本結(jié)構(gòu)
1.4C語言的基本語法單位
1.5C語言程序的開發(fā)過程與環(huán)境10第1章C語言及程序設(shè)計概述1.1程序與程序581.1程序與程序設(shè)計語言1.1.1程序的概念馮.諾依曼結(jié)構(gòu):計算機(jī)運(yùn)算器控制器存儲器主機(jī):I/O設(shè)備:鍵盤、顯示器等中央處理器CPU程序(Program)是可以被計算機(jī)或其他信息處理裝置連續(xù)執(zhí)行的一條條指令的集合,是能夠完成特定任務(wù)的指令序列。111.1程序與程序設(shè)計語言1.1.1程序的概念馮.591.1程序與程序設(shè)計語言1.1.1程序的概念源程序
可執(zhí)行程序程序(Program)是可以被計算機(jī)或其他信息處理裝置連續(xù)執(zhí)行的一條條指令的集合,是能夠完成特定任務(wù)的指令序列。編譯、連接編程:為解決某個問題而使用某種程序設(shè)計語言編寫源程序、調(diào)試、編譯、鏈接得到可執(zhí)行程序的全過程。121.1程序與程序設(shè)計語言1.1.1程序的概念源程601.1.2程序設(shè)計語言的發(fā)展
人們常把編寫程序的過程稱為程序設(shè)計。在進(jìn)行程序設(shè)計時離不開程序設(shè)計語言。程序設(shè)計語言的種類很多,從其發(fā)展歷史以及功能情況來劃分可以大致劃分成三個階段:1、機(jī)器語言(Machinelanguage):計算機(jī)可以直接識別和執(zhí)行的二進(jìn)制語言。如:加法指令:10000000
減法指令:10010000特點:計算機(jī)可以直接識別和執(zhí)行,效率高,節(jié)省內(nèi)存;但難以閱讀和記憶。1.1程序與程序設(shè)計語言131.1.2程序設(shè)計語言的發(fā)展1.1程序與程序設(shè)計語611.1程序與程序設(shè)計語言2、匯編語言(Assemblylanguage):
用“指令助記符”來表示機(jī)器指令。如:ADDA,BMOVA,BSUBA,B計算機(jī)不能直接識別和執(zhí)行匯編語言編寫的源程序,它必須經(jīng)過一個叫匯編程序的系統(tǒng)軟件翻譯成機(jī)器語言程序(即目標(biāo)程序)后才能執(zhí)行。3、高級語言(High-levellanguage):
不依賴于機(jī)器,降低了編程的難度。如:C、PASCAL、FORTRAN等,用‘+’和‘-’來表示加減運(yùn)算。計算機(jī)也不能直接執(zhí)行高級語言描述的源程序,必須先經(jīng)過編譯程序或解釋程序翻譯成目標(biāo)程序后,才能由計算機(jī)執(zhí)行。面向過程的程序設(shè)計語言->面向?qū)ο蟪绦蛟O(shè)計語言->面向應(yīng)用…141.1程序與程序設(shè)計語言2、匯編語言(Assembly621.1程序與程序設(shè)計語言機(jī)器語言匯編語言高級語言1+1=?151.1程序與程序設(shè)計語言機(jī)器語言63C語言的創(chuàng)世紀(jì)1.1程序與程序設(shè)計語言1.1.3C語言的發(fā)展及特點一切從一個叫“SpaceTravel”的電子游戲開始…KenThompson為了讓他的游戲能在PDP-7上運(yùn)行,用匯編語言給PDP-7寫了一個操作系統(tǒng)—UNIX。但是匯編語言太不好用了,所以他需要一種高級語言來實現(xiàn)它的目標(biāo)。他試驗了一些高級語言,都不理想,于是在BCPL基礎(chǔ)上,自己設(shè)計了一個B語言,隨后UNIX開始發(fā)展,B也不夠用了,Dennis.M.Ritchie加入,把B改造成C,開始用C重寫UNIX...Ritchie和Thompson在開發(fā)UNIX16C語言的創(chuàng)世紀(jì)1.1程序與程序設(shè)計語言1.1.3C語64C語言的祖師爺
DennisM.Ritchie/who/dmr/1.1程序與程序設(shè)計語言17C語言的祖師爺
DennisM.Ritchiehtt65接受美國國家技術(shù)勛章18接受美國國家技術(shù)勛章661.1程序與程序設(shè)計語言1、C語言的發(fā)展概況C語言是美國電話電報公司(AT&T)貝爾實驗室于70年代初研制出來的,發(fā)明者是Dennis.M.Ritchie。1978年,由B.W.Kernighan和D.M.Ritchie合著的TheCProgrammingLanguage一書,稱之為“K&R”標(biāo)準(zhǔn)。后來又被多次改進(jìn),并出現(xiàn)了多種版本。1983年開始,美國國家標(biāo)準(zhǔn)化協(xié)會(ANSI),根據(jù)C語言問世以來各種版本對C語言的發(fā)展和擴(kuò)充,制定了ANSIC標(biāo)準(zhǔn),于1989年頒布,稱為C89標(biāo)準(zhǔn)。1994、1995年又兩次做了修訂,即C89的95修正案。1999年產(chǎn)生了C99新標(biāo)準(zhǔn)。目前,常見的C語言編譯開發(fā)環(huán)境有MicrosoftVisualC++,QuickC,TurboC,BorlandC++等多種版本。1.1.3C語言的發(fā)展及特點191.1程序與程序設(shè)計語言1、C語言的發(fā)展概況1.1671.1程序與程序設(shè)計語言1)語言簡潔緊湊,使用方便靈活2)運(yùn)算符豐富3)數(shù)據(jù)結(jié)構(gòu)豐富4)結(jié)構(gòu)化的程序設(shè)計語言5)允許直接訪問物理地址,可直接操縱硬件6)生成的目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高7)適用范圍大,可移植性好語法限制不太嚴(yán)格,變量約束不嚴(yán)格…2、C語言的特點201.1程序與程序設(shè)計語言1)語言簡潔緊湊,使用方便靈活681.1程序與程序設(shè)計語言既有高級語言的功能,又有匯編語言的特點;既是系統(tǒng)設(shè)計語言,又是程序設(shè)計語言;既能用來編寫系統(tǒng)程序,又能編寫應(yīng)用軟件。C->C++,Java,C#2、C語言的特點211.1程序與程序設(shè)計語言既有高級語言的功能,又有匯編語69第1章C語言及程序設(shè)計概述1.1程序與程序設(shè)計語言
1.2
程序設(shè)計方法
1.3C語言程序的基本結(jié)構(gòu)
1.4C語言的基本語法單位
1.5C語言程序的開發(fā)過程與環(huán)境22第1章C語言及程序設(shè)計概述1.1程序與程序701.2程序設(shè)計方法
1.2.1程序設(shè)計基本過程
沒有特定的規(guī)則,每個人都可以編寫帶有鮮明個人風(fēng)格的程序來實現(xiàn)同樣的目的。兩個階段:問題求解階段(Problemsolving)分析問題,找出算法實現(xiàn)階段(Implementation)依據(jù)算法采用C語言或其他編程語言編寫程序231.2程序設(shè)計方法1.2.1程序設(shè)計基本過程711.2程序設(shè)計方法
程序設(shè)計方法結(jié)構(gòu)化程序設(shè)計方法面向?qū)ο蟮某绦蛟O(shè)計方法241.2程序設(shè)計方法程序設(shè)計方法結(jié)構(gòu)化程序設(shè)計方法面721.2程序設(shè)計方法
1.2.2結(jié)構(gòu)化程序設(shè)計方法
1.核心思想
結(jié)構(gòu)化程序設(shè)計(Structuredprogramming)的總體思想是采用模塊化結(jié)構(gòu),自上而下,逐步求精。2.結(jié)構(gòu)化程序設(shè)計特征
結(jié)構(gòu)化程序設(shè)計的特征主要有以下幾點:(1)以三種基本結(jié)構(gòu)(順序、分支、循環(huán),詳細(xì)內(nèi)容參考第三章)的組合來描述程序;(2)整個程序采用模塊化結(jié)構(gòu);251.2程序設(shè)計方法1.2.2結(jié)構(gòu)化程序設(shè)計方法731.2程序設(shè)計方法(3)有限制地使用goto轉(zhuǎn)移語句;(4)以控制結(jié)構(gòu)為單位,每個結(jié)構(gòu)只有一個入口,一個出口,各單位之間接口簡單,邏輯清晰;
(5)采用結(jié)構(gòu)化程序設(shè)計語言書寫程序,并采用一定的書寫格式使程序結(jié)構(gòu)清晰,易于閱讀;
(6)注意程序設(shè)計風(fēng)格。程序=模塊(函數(shù))+調(diào)用261.2程序設(shè)計方法(3)有限制地使用goto轉(zhuǎn)移語句741.2程序設(shè)計方法面向?qū)ο蟪绦蛟O(shè)計方法(Object-orientedProgramming,縮寫為OOP)認(rèn)為客觀世界是由各種各樣的實體組成的,這些實體就是面向?qū)ο蠓椒ㄖ械膶ο螅布磳ο笫菢?gòu)成軟件系統(tǒng)的基本單元。對象之間的交互通過發(fā)送消息來實現(xiàn),從而完成系統(tǒng)的功能。把數(shù)據(jù)看作程序開發(fā)中的基本元素,并且不允許它們在系統(tǒng)中自由流動,將數(shù)據(jù)和操作這些數(shù)據(jù)的函數(shù)緊密連結(jié)在一起,保護(hù)數(shù)據(jù)不會被外界的函數(shù)意外的改變。面向?qū)ο蠹夹g(shù)關(guān)注問題本身->程序=對象+消息1.2.3面向?qū)ο蟪绦蛟O(shè)計方法271.2程序設(shè)計方法面向?qū)ο蟪绦蛟O(shè)計方法(Object75第1章C語言及程序設(shè)計概述1.1程序與程序設(shè)計語言
1.2程序設(shè)計方法
1.3C語言程序的基本結(jié)構(gòu)
1.4C語言的基本語法單位
1.5C語言程序的開發(fā)過程與環(huán)境28第1章C語言及程序設(shè)計概述1.1程序與程序761.3 C語言程序的基本結(jié)構(gòu)
一個完整的C語言程序,是由一個main()函數(shù)(又稱主函數(shù))和若干個其它函數(shù)結(jié)合而成的,或僅由一個main()函數(shù)構(gòu)成。程序運(yùn)行結(jié)果是在屏幕上顯示一行英文:HelloWorld!說明:(1)#include是編譯預(yù)處理命令,作用是將某個已存在的文件包含到程序中。(2)main()是主函數(shù)的函數(shù)名,表示這是一個主函數(shù)。(3)printf()函數(shù)是一個由系統(tǒng)定義的標(biāo)準(zhǔn)函數(shù),可在程序中直接調(diào)用,
功能是把要輸出的內(nèi)容送到顯示器去顯示。
/*01*/#include<stdio.h>/*02*/ main() /*03*/ {/*04*/ printf(“HelloWorld!\n”);/*05*/ }1.3.1一個簡單的C語言程序291.3 C語言程序的基本結(jié)構(gòu)一個完整的C語言程序,是771.3 C語言程序的基本結(jié)構(gòu)1.3.2C程序的結(jié)構(gòu)特點
(1)一個C語言源程序可以由一個或多個源文件組成。(2)每個源文件可由一個或多個函數(shù)組成,關(guān)于函數(shù)的內(nèi)容將在以后第四章介紹。(3)函數(shù)是C語言程序的基本單位。一個源程序不論由多少個文件組成,都有一個且只能有一個main()函數(shù),即主函數(shù)。(4)一個C語言程序,總是從main()函數(shù)開始執(zhí)行,而不論其在程序中的位置。當(dāng)主函數(shù)執(zhí)行完畢時,程序執(zhí)行完畢。301.3 C語言程序的基本結(jié)構(gòu)1.3.2C程序的結(jié)構(gòu)781.3 C語言程序的基本結(jié)構(gòu)1.3.2C程序的結(jié)構(gòu)特點
(5)源程序中可以有預(yù)處理命令(include命令僅為其中的一種),預(yù)處理命令通常應(yīng)放在源文件或源程序的最前面,以“#”開始。(6)每一個說明,每一個語句都必須以分號結(jié)尾。但預(yù)處理命令、函數(shù)頭和“}”之后不能加分號。(7)標(biāo)識符,關(guān)鍵字之間必須至少加一個空格以示間隔。若已有明顯的間隔符,也可不再加空格來間隔。(8)變量必須先定義后使用。(9)允許使用注釋。C語言的注釋格式為:
/*……*/311.3 C語言程序的基本結(jié)構(gòu)1.3.2C程序的結(jié)構(gòu)791.3 C語言程序的基本結(jié)構(gòu)1)一個說明或一個語句占一行;2)用“{}”括起來的部分,通常表示某一層次結(jié)構(gòu);3)秒用縮進(jìn)格式;4)變量名稱命名規(guī)范統(tǒng)一。1.3.3代碼編寫風(fēng)格321.3 C語言程序的基本結(jié)構(gòu)1)一個說明或一個語句占一80#include<stdio.h>/*Thisisthemainprogram*/main(){inta,b,sum;a=10;b=24;sum=add(a,b);printf(”sum=%d\n",sum);}/*Thisfunctioncalculatesthesumofxandy*/intadd(intx,inty){intz;z=x+y;return(z);}運(yùn)行結(jié)果:sum=34函數(shù)預(yù)處理命令注釋33#include<stdio.h>運(yùn)行結(jié)果:函數(shù)預(yù)處理81第1章C語言及程序設(shè)計概述1.1程序與程序設(shè)計語言
1.2程序設(shè)計方法
1.3C語言程序的基本結(jié)構(gòu)
1.4C語言的基本語法單位
1.5C語言程序的開發(fā)過程與環(huán)境34第1章C語言及程序設(shè)計概述1.1程序與程序821.4C語言的基本語法單位
1.4.1C語言的字符集
1.4.2關(guān)鍵字1.4.3標(biāo)識符1.4.4分隔符1.4.5注釋351.4C語言的基本語法單位1.4.1C語言的字831.4.1C語言的字符集
字符是組成語言的最基本的元素。C語言字符集由字母,數(shù)字,空格,標(biāo)點和特殊字符組成。在字符常量,字符串常量和注釋中還可以使用漢字或其它可表示的圖形符號。(1)字母:小寫字母a~z共26個,大寫字母A~Z共26個;(2)數(shù)字:0~9共10個;(3)空白符:空格符、制表符、換行符等統(tǒng)稱為空白符(4)標(biāo)點和特殊字符特殊字符通常指由1~2個符號組成的運(yùn)算符。算術(shù)運(yùn)算符:+-*/%++--
關(guān)系運(yùn)算符:<
>>=<===!=
邏輯運(yùn)算符:&&||!位運(yùn)算符:&|~^>><<
條件運(yùn)算符:?:和賦值運(yùn)算符:=
其他分隔符:()[]{}.,;361.4.1C語言的字符集字符是組成語841.4.2關(guān)鍵字
關(guān)鍵字是由C語言規(guī)定的具有特定意義的字符串,通常也稱為保留字。用戶定義的標(biāo)識符不應(yīng)與關(guān)鍵字相同。標(biāo)準(zhǔn)C定義的32個關(guān)鍵字如下表:371.4.2關(guān)鍵字關(guān)鍵字是由C語言規(guī)定的具有特定意851.4.3標(biāo)識符在程序中使用的變量名、函數(shù)名、標(biāo)號等統(tǒng)稱為標(biāo)識符。除庫函數(shù)的函數(shù)名由系統(tǒng)定義外,其余都由用戶自定義。C規(guī)定,標(biāo)識符只能是字母(A
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國鉬合金行業(yè)發(fā)展戰(zhàn)略及前景趨勢分析報告
- 2025-2030年中國透明聚丙烯行業(yè)運(yùn)行狀況及發(fā)展規(guī)劃分析報告
- 2025-2030年中國過氧化二異丙苯行業(yè)運(yùn)行現(xiàn)狀及發(fā)展前景分析報告
- 2025-2030年中國苗圃產(chǎn)業(yè)市場十三五規(guī)劃及發(fā)展建議分析報告
- 2025-2030年中國納米銀市場運(yùn)行態(tài)勢及投資戰(zhàn)略研究報告
- 2025-2030年中國紫菜市場競爭格局與發(fā)展策略分析報告
- 2025-2030年中國管殼式換熱器行業(yè)運(yùn)行態(tài)勢與未來發(fā)展戰(zhàn)略研究報告
- 2025-2030年中國硬質(zhì)纖維板行業(yè)運(yùn)行態(tài)勢及投資戰(zhàn)略研究報告
- 天津師范大學(xué)津沽學(xué)院《半導(dǎo)體器件》2023-2024學(xué)年第二學(xué)期期末試卷
- 江西交通職業(yè)技術(shù)學(xué)院《測量學(xué)基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 施工作業(yè)申請表
- 浸出液的凈化與沉積
- 銀行間本幣市場交易員資格考試真題模擬匯編(共586題)
- 苯乙酸安全技術(shù)說明書(msds)
- 幼兒園大班《防欺凌》教案5篇,幼兒園大班防欺凌活動教案
- 衛(wèi)生管理初中級職稱大綱
- 《當(dāng)代網(wǎng)絡(luò)文學(xué)作品發(fā)展研究6300字(論文)》
- 孟氏骨折與蓋氏骨折講解學(xué)習(xí)
- GB/T 9386-2008計算機(jī)軟件測試文檔編制規(guī)范
- GB/T 25137-2010鈦及鈦合金鍛件
- 第2課《說和做》課件(共30張ppt) 部編版語文七年級下冊
評論
0/150
提交評論