第1章C語言及程序設(shè)計(jì)概述課件_第1頁
第1章C語言及程序設(shè)計(jì)概述課件_第2頁
第1章C語言及程序設(shè)計(jì)概述課件_第3頁
第1章C語言及程序設(shè)計(jì)概述課件_第4頁
第1章C語言及程序設(shè)計(jì)概述課件_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

C語言程序設(shè)計(jì)湖北民族學(xué)院信息工程學(xué)院張zhang_hbmy@2C語言程序設(shè)計(jì)What?一種編程語言,使我們成為計(jì)算機(jī)軟件的設(shè)計(jì)者Why?掌握一種基本技術(shù)思維現(xiàn)實(shí)層面-就業(yè)砝碼,落戶加分…信息技術(shù)創(chuàng)新中心How?牢固基礎(chǔ),戒驕戒躁,多實(shí)踐多多交流,互相學(xué)習(xí)3課程安排課程考核:

期末成績(jī)=平時(shí)成績(jī)*10%+上機(jī)成績(jī)*30%+考試成績(jī)*60%教材:C語言程序設(shè)計(jì).葉斌等編,北京:科學(xué)出版社,2011C語言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)與習(xí)題解答.葉斌等編,北京:科學(xué)出版社,20114課程安排參考資料:1.譚浩強(qiáng)著.C程序設(shè)計(jì)(第四版).北京:清華大學(xué)出版社,20102.陳良銀等主編.C語言程序設(shè)計(jì)(C99版).北京:清華大學(xué)出版社,20063.張長(zhǎng)海,陳娟.程序設(shè)計(jì)基礎(chǔ)(第2版).北京:高等教育出版社,20134.蘇小紅等編著.C語言程序設(shè)計(jì)(第2版).北京:高等教育出版社,20135.李麗娟主編.C語言程序設(shè)計(jì)教程(第2版).北京:人民郵電出版社,20095課程安排總學(xué)時(shí):56學(xué)時(shí)(理論32學(xué)時(shí)+實(shí)驗(yàn)24學(xué)時(shí))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é))6教學(xué)安排第一章C語言程序設(shè)計(jì)概述2課時(shí)第二章

基本數(shù)據(jù)類型與表達(dá)式4課時(shí)第三章程序的控制結(jié)構(gòu)6課時(shí)第四章函數(shù)4課時(shí)第五章數(shù)組6課時(shí)第六章指針4課時(shí)第七章結(jié)構(gòu)體、聯(lián)合體與枚舉型4課時(shí)第八章文件2課時(shí)7

課前請(qǐng)做好預(yù)習(xí)保持課堂安靜,頭腦清醒,思維活躍重視上機(jī)實(shí)踐,有效利用寶貴的上機(jī)時(shí)間課后鞏固所學(xué)內(nèi)容,多思考,多實(shí)踐課程要求8第1章C語言及程序設(shè)計(jì)概述9第1章C語言及程序設(shè)計(jì)概述1.1程序與程序設(shè)計(jì)語言

1.2程序設(shè)計(jì)方法

1.3C語言程序的基本結(jié)構(gòu)

1.4C語言的基本語法單位

1.5C語言程序的開發(fā)過程與環(huán)境10第1章C語言及程序設(shè)計(jì)概述

1.1程序與程序設(shè)計(jì)語言

1.2程序設(shè)計(jì)方法

1.3C語言程序的基本結(jié)構(gòu)

1.4C語言的基本語法單位

1.5C語言程序的開發(fā)過程與環(huán)境111.1程序與程序設(shè)計(jì)語言1.1.1程序的概念馮.諾依曼結(jié)構(gòu):計(jì)算機(jī)運(yùn)算器控制器存儲(chǔ)器主機(jī):I/O設(shè)備:鍵盤、顯示器等中央處理器CPU程序(Program)是可以被計(jì)算機(jī)或其他信息處理裝置連續(xù)執(zhí)行的一條條指令的集合,是能夠完成特定任務(wù)的指令序列。121.1程序與程序設(shè)計(jì)語言1.1.1程序的概念源程序

可執(zhí)行程序程序(Program)是可以被計(jì)算機(jī)或其他信息處理裝置連續(xù)執(zhí)行的一條條指令的集合,是能夠完成特定任務(wù)的指令序列。編譯、連接編程:為解決某個(gè)問題而使用某種程序設(shè)計(jì)語言編寫源程序、調(diào)試、編譯、鏈接得到可執(zhí)行程序的全過程。131.1.2程序設(shè)計(jì)語言的發(fā)展

人們常把編寫程序的過程稱為程序設(shè)計(jì)。在進(jìn)行程序設(shè)計(jì)時(shí)離不開程序設(shè)計(jì)語言。程序設(shè)計(jì)語言的種類很多,從其發(fā)展歷史以及功能情況來劃分可以大致劃分成三個(gè)階段:1、機(jī)器語言(Machinelanguage):計(jì)算機(jī)可以直接識(shí)別和執(zhí)行的二進(jìn)制語言。如:加法指令:10000000

減法指令:10010000特點(diǎn):計(jì)算機(jī)可以直接識(shí)別和執(zhí)行,效率高,節(jié)省內(nèi)存;但難以閱讀和記憶。1.1程序與程序設(shè)計(jì)語言141.1程序與程序設(shè)計(jì)語言2、匯編語言(Assemblylanguage):

用“指令助記符”來表示機(jī)器指令。如:ADDA,BMOVA,BSUBA,B計(jì)算機(jī)不能直接識(shí)別和執(zhí)行匯編語言編寫的源程序,它必須經(jīng)過一個(gè)叫匯編程序的系統(tǒng)軟件翻譯成機(jī)器語言程序(即目標(biāo)程序)后才能執(zhí)行。3、高級(jí)語言(High-levellanguage):

不依賴于機(jī)器,降低了編程的難度。如:C、PASCAL、FORTRAN等,用‘+’和‘-’來表示加減運(yùn)算。計(jì)算機(jī)也不能直接執(zhí)行高級(jí)語言描述的源程序,必須先經(jīng)過編譯程序或解釋程序翻譯成目標(biāo)程序后,才能由計(jì)算機(jī)執(zhí)行。面向過程的程序設(shè)計(jì)語言->面向?qū)ο蟪绦蛟O(shè)計(jì)語言->面向應(yīng)用…151.1程序與程序設(shè)計(jì)語言機(jī)器語言匯編語言高級(jí)語言1+1=?16C語言的創(chuàng)世紀(jì)1.1程序與程序設(shè)計(jì)語言1.1.3C語言的發(fā)展及特點(diǎn)一切從一個(gè)叫“SpaceTravel”的電子游戲開始…KenThompson為了讓他的游戲能在PDP-7上運(yùn)行,用匯編語言給PDP-7寫了一個(gè)操作系統(tǒng)—UNIX。但是匯編語言太不好用了,所以他需要一種高級(jí)語言來實(shí)現(xiàn)它的目標(biāo)。他試驗(yàn)了一些高級(jí)語言,都不理想,于是在BCPL基礎(chǔ)上,自己設(shè)計(jì)了一個(gè)B語言,隨后UNIX開始發(fā)展,B也不夠用了,Dennis.M.Ritchie加入,把B改造成C,開始用C重寫UNIX...Ritchie和Thompson在開發(fā)UNIX17C語言的祖師爺

DennisM.Ritchie/who/dmr/1.1程序與程序設(shè)計(jì)語言18接受美國(guó)國(guó)家技術(shù)勛章191.1程序與程序設(shè)計(jì)語言1、C語言的發(fā)展概況C語言是美國(guó)電話電報(bào)公司(AT&T)貝爾實(shí)驗(yàn)室于70年代初研制出來的,發(fā)明者是Dennis.M.Ritchie。1978年,由B.W.Kernighan和D.M.Ritchie合著的TheCProgrammingLanguage一書,稱之為“K&R”標(biāo)準(zhǔn)。后來又被多次改進(jìn),并出現(xiàn)了多種版本。1983年開始,美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)(ANSI),根據(jù)C語言問世以來各種版本對(duì)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ā)展及特點(diǎn)201.1程序與程序設(shè)計(jì)語言1)語言簡(jiǎn)潔緊湊,使用方便靈活2)運(yùn)算符豐富3)數(shù)據(jù)結(jié)構(gòu)豐富4)結(jié)構(gòu)化的程序設(shè)計(jì)語言5)允許直接訪問物理地址,可直接操縱硬件6)生成的目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高7)適用范圍大,可移植性好語法限制不太嚴(yán)格,變量約束不嚴(yán)格…2、C語言的特點(diǎn)211.1程序與程序設(shè)計(jì)語言既有高級(jí)語言的功能,又有匯編語言的特點(diǎn);既是系統(tǒng)設(shè)計(jì)語言,又是程序設(shè)計(jì)語言;既能用來編寫系統(tǒng)程序,又能編寫應(yīng)用軟件。C->C++,Java,C#2、C語言的特點(diǎn)22第1章C語言及程序設(shè)計(jì)概述1.1程序與程序設(shè)計(jì)語言

1.2

程序設(shè)計(jì)方法

1.3C語言程序的基本結(jié)構(gòu)

1.4C語言的基本語法單位

1.5C語言程序的開發(fā)過程與環(huán)境231.2程序設(shè)計(jì)方法

1.2.1程序設(shè)計(jì)基本過程

沒有特定的規(guī)則,每個(gè)人都可以編寫帶有鮮明個(gè)人風(fēng)格的程序來實(shí)現(xiàn)同樣的目的。兩個(gè)階段:?jiǎn)栴}求解階段(Problemsolving)分析問題,找出算法實(shí)現(xiàn)階段(Implementation)依據(jù)算法采用C語言或其他編程語言編寫程序241.2程序設(shè)計(jì)方法

程序設(shè)計(jì)方法結(jié)構(gòu)化程序設(shè)計(jì)方法面向?qū)ο蟮某绦蛟O(shè)計(jì)方法251.2程序設(shè)計(jì)方法

1.2.2結(jié)構(gòu)化程序設(shè)計(jì)方法

1.核心思想

結(jié)構(gòu)化程序設(shè)計(jì)(Structuredprogramming)的總體思想是采用模塊化結(jié)構(gòu),自上而下,逐步求精。2.結(jié)構(gòu)化程序設(shè)計(jì)特征

結(jié)構(gòu)化程序設(shè)計(jì)的特征主要有以下幾點(diǎn):(1)以三種基本結(jié)構(gòu)(順序、分支、循環(huán),詳細(xì)內(nèi)容參考第三章)的組合來描述程序;(2)整個(gè)程序采用模塊化結(jié)構(gòu);261.2程序設(shè)計(jì)方法(3)有限制地使用goto轉(zhuǎn)移語句;(4)以控制結(jié)構(gòu)為單位,每個(gè)結(jié)構(gòu)只有一個(gè)入口,一個(gè)出口,各單位之間接口簡(jiǎn)單,邏輯清晰;

(5)采用結(jié)構(gòu)化程序設(shè)計(jì)語言書寫程序,并采用一定的書寫格式使程序結(jié)構(gòu)清晰,易于閱讀;

(6)注意程序設(shè)計(jì)風(fēng)格。程序=模塊(函數(shù))+調(diào)用271.2程序設(shè)計(jì)方法面向?qū)ο蟪绦蛟O(shè)計(jì)方法(Object-orientedProgramming,縮寫為OOP)認(rèn)為客觀世界是由各種各樣的實(shí)體組成的,這些實(shí)體就是面向?qū)ο蠓椒ㄖ械膶?duì)象,也即對(duì)象是構(gòu)成軟件系統(tǒng)的基本單元。對(duì)象之間的交互通過發(fā)送消息來實(shí)現(xiàn),從而完成系統(tǒng)的功能。把數(shù)據(jù)看作程序開發(fā)中的基本元素,并且不允許它們?cè)谙到y(tǒng)中自由流動(dòng),將數(shù)據(jù)和操作這些數(shù)據(jù)的函數(shù)緊密連結(jié)在一起,保護(hù)數(shù)據(jù)不會(huì)被外界的函數(shù)意外的改變。面向?qū)ο蠹夹g(shù)關(guān)注問題本身->程序=對(duì)象+消息1.2.3面向?qū)ο蟪绦蛟O(shè)計(jì)方法28第1章C語言及程序設(shè)計(jì)概述1.1程序與程序設(shè)計(jì)語言

1.2程序設(shè)計(jì)方法

1.3C語言程序的基本結(jié)構(gòu)

1.4C語言的基本語法單位

1.5C語言程序的開發(fā)過程與環(huán)境291.3 C語言程序的基本結(jié)構(gòu)

一個(gè)完整的C語言程序,是由一個(gè)main()函數(shù)(又稱主函數(shù))和若干個(gè)其它函數(shù)結(jié)合而成的,或僅由一個(gè)main()函數(shù)構(gòu)成。程序運(yùn)行結(jié)果是在屏幕上顯示一行英文:HelloWorld!說明:(1)#include是編譯預(yù)處理命令,作用是將某個(gè)已存在的文件包含到程序中。(2)main()是主函數(shù)的函數(shù)名,表示這是一個(gè)主函數(shù)。(3)printf()函數(shù)是一個(gè)由系統(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一個(gè)簡(jiǎn)單的C語言程序301.3 C語言程序的基本結(jié)構(gòu)1.3.2C程序的結(jié)構(gòu)特點(diǎn)

(1)一個(gè)C語言源程序可以由一個(gè)或多個(gè)源文件組成。(2)每個(gè)源文件可由一個(gè)或多個(gè)函數(shù)組成,關(guān)于函數(shù)的內(nèi)容將在以后第四章介紹。(3)函數(shù)是C語言程序的基本單位。一個(gè)源程序不論由多少個(gè)文件組成,都有一個(gè)且只能有一個(gè)main()函數(shù),即主函數(shù)。(4)一個(gè)C語言程序,總是從main()函數(shù)開始執(zhí)行,而不論其在程序中的位置。當(dāng)主函數(shù)執(zhí)行完畢時(shí),程序執(zhí)行完畢。311.3 C語言程序的基本結(jié)構(gòu)1.3.2C程序的結(jié)構(gòu)特點(diǎn)

(5)源程序中可以有預(yù)處理命令(include命令僅為其中的一種),預(yù)處理命令通常應(yīng)放在源文件或源程序的最前面,以“#”開始。(6)每一個(gè)說明,每一個(gè)語句都必須以分號(hào)結(jié)尾。但預(yù)處理命令、函數(shù)頭和“}”之后不能加分號(hào)。(7)標(biāo)識(shí)符,關(guān)鍵字之間必須至少加一個(gè)空格以示間隔。若已有明顯的間隔符,也可不再加空格來間隔。(8)變量必須先定義后使用。(9)允許使用注釋。C語言的注釋格式為:

/*……*/321.3 C語言程序的基本結(jié)構(gòu)1)一個(gè)說明或一個(gè)語句占一行;2)用“{}”括起來的部分,通常表示某一層次結(jié)構(gòu);3)秒用縮進(jìn)格式;4)變量名稱命名規(guī)范統(tǒng)一。1.3.3代碼編寫風(fēng)格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ù)處理命令注釋34第1章C語言及程序設(shè)計(jì)概述1.1程序與程序設(shè)計(jì)語言

1.2程序設(shè)計(jì)方法

1.3C語言程序的基本結(jié)構(gòu)

1.4C語言的基本語法單位

1.5C語言程序的開發(fā)過程與環(huán)境351.4C語言的基本語法單位

1.4.1C語言的字符集

1.4.2關(guān)鍵字1.4.3標(biāo)識(shí)符1.4.4分隔符1.4.5注釋361.4.1C語言的字符集

字符是組成語言的最基本的元素。C語言字符集由字母,數(shù)字,空格,標(biāo)點(diǎn)和特殊字符組成。在字符常量,字符串常量和注釋中還可以使用漢字或其它可表示的圖形符號(hào)。(1)字母:小寫字母a~z共26個(gè),大寫字母A~Z共26個(gè);(2)數(shù)字:0~9共10個(gè);(3)空白符:空格符、制表符、換行符等統(tǒng)稱為空白符(4)標(biāo)點(diǎn)和特殊字符特殊字符通常指由1~2個(gè)符號(hào)組成的運(yùn)算符。算術(shù)運(yùn)算符:+-*/%++--

關(guān)系運(yùn)算符:<

>>=<===!=

邏輯運(yùn)算符:&&||!位運(yùn)算符:&|~^>><<

條件運(yùn)算符:?:和賦值運(yùn)算符:=

其他分隔符:()[]{}.,;371.4.2關(guān)鍵字

關(guān)鍵字是由C語言規(guī)定的具有特定意義的字符串,通常也稱為保留字。用戶定義的標(biāo)識(shí)符不應(yīng)與關(guān)鍵字相同。標(biāo)準(zhǔn)C定義的32個(gè)關(guān)鍵字如下表:381.4.3標(biāo)識(shí)符在程序中使用的變量名、函數(shù)名、標(biāo)號(hào)等統(tǒng)稱為標(biāo)識(shí)符。除庫函數(shù)的函數(shù)名由系統(tǒng)定義外,其余都由用戶自定義。C規(guī)定,標(biāo)識(shí)符只能是字母(A~Z,a~z)、數(shù)字(0~9)、下劃線(_)組成的字符串,并且其第一個(gè)字符必須是字母或下劃線。以下標(biāo)識(shí)符是合法的:

a x _3x BOOK_1 sum5以下標(biāo)識(shí)符是非法的:

3s 以數(shù)字開頭

s*T 出現(xiàn)非法字符*

-3x 以減號(hào)開頭且為非法字符

bowy-1 非法字符減號(hào)注:標(biāo)識(shí)符中,大小寫是有區(qū)別的。標(biāo)識(shí)符不能與關(guān)鍵字同名。391.4.4分隔符

C語言中采用的分隔符包括逗號(hào)、空格、制表符等。(1)逗號(hào)主要用在類型說明和函數(shù)參數(shù)表中,分隔各個(gè)變量,逗號(hào)也可以做運(yùn)算符。(2)空格多用于語句各單詞之間,作間隔符。在關(guān)鍵字,標(biāo)識(shí)符之間必須要有一個(gè)以上的空格符作間隔,否則將會(huì)出現(xiàn)語法錯(cuò)誤。例如,inta;不能寫成inta;因?yàn)镃編譯器會(huì)把inta當(dāng)成一個(gè)標(biāo)識(shí)符處理,其結(jié)果必然出錯(cuò)。401.4.5注釋

C語言的注釋符是以“/*”開頭并以“*/”結(jié)尾的串。程序編譯時(shí),不對(duì)注釋作任何處理。(1)“/*”和“*/”必須成對(duì)使用,且“/”和“*”、以及“*”和“/”之間不能有空格,否則出錯(cuò)。(2)注釋的位置,可以單占1行,也可以跟在語句的后面。(3)如果1行寫不下,可另起1行繼續(xù)寫。(4)注釋中允許使用漢字。在非中文操作系統(tǒng)下,漢字將以亂碼呈現(xiàn),但不影響程序運(yùn)行。41第1章C語言及程序設(shè)計(jì)概述1.1程序與程序設(shè)計(jì)語言

1.2程序設(shè)計(jì)方法

1.3C語言程序的基本結(jié)構(gòu)

1.4C語言的基本語法單位

1.5C語言程序的開發(fā)過程與環(huán)境42C語言是一種編譯型程序語言。1.5C

溫馨提示

  • 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. 人人文庫網(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)論