




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1http:/西安財(cái)經(jīng)學(xué)院西安財(cái)經(jīng)學(xué)院 信息學(xué)院信息學(xué)院 C Programming2022-7-72學(xué)習(xí)程序設(shè)計(jì)課程的目的學(xué)習(xí)程序設(shè)計(jì)課程的目的v掌握設(shè)計(jì)程序的思路,學(xué)會(huì)用計(jì)算機(jī)語(yǔ)言編寫(xiě)程序。 算法 語(yǔ)法 解題思路v看懂程序編寫(xiě)簡(jiǎn)單程序逐步深入。v學(xué)習(xí)重點(diǎn)放在最基本、最常用的內(nèi)容上。v常用編譯系統(tǒng)的使用。3http:/開(kāi)發(fā)開(kāi)發(fā)C C語(yǔ)言程序的步驟語(yǔ)言程序的步驟計(jì)算機(jī)工作方式回顧計(jì)算機(jī)工作方式回顧C(jī) C語(yǔ)言程序的結(jié)構(gòu)語(yǔ)言程序的結(jié)構(gòu)0 01 12 2Ch.1 程序設(shè)計(jì)和程序設(shè)計(jì)和C語(yǔ)言語(yǔ)言4http:/0.1 計(jì)算機(jī)工作方式回顧計(jì)算機(jī)工作方式回顧v 整個(gè)過(guò)程的執(zhí)行者是硬件,但硬件是受軟件控制的整
2、個(gè)過(guò)程的執(zhí)行者是硬件,但硬件是受軟件控制的v 編程,就是編寫(xiě)軟件,使硬件按照人的意圖工作編程,就是編寫(xiě)軟件,使硬件按照人的意圖工作5http:/續(xù)續(xù)輸入/輸出設(shè)備存儲(chǔ)器運(yùn)算器控制器源程序和輸入數(shù)據(jù)輸出結(jié)果取出數(shù)據(jù)存入數(shù)據(jù)操作命令存取命令取出程序指令輸入輸出命令計(jì)算結(jié)果CPU“馮諾依曼”結(jié)構(gòu) 大腦記憶裝置眼睛和耳朵程序和數(shù)據(jù)執(zhí)行結(jié)果6http:/v軟件軟件(Software)的形成的形成程序員程序員(Programmer)編寫(xiě)程序)編寫(xiě)程序源代碼源代碼(Source Code)編譯器編譯器(Compiler)把源代碼轉(zhuǎn)換為可被計(jì)算機(jī))把源代碼轉(zhuǎn)換為可被計(jì)算機(jī)理解的理解的機(jī)器代碼機(jī)器代碼(Mach
3、ine Code) 機(jī)器代碼以機(jī)器代碼以可可執(zhí)行文件執(zhí)行文件(Executable File)的形)的形式保存在磁盤(pán)上式保存在磁盤(pán)上續(xù)續(xù)7http:/軟件運(yùn)行過(guò)程軟件運(yùn)行過(guò)程v 軟件的運(yùn)行軟件的運(yùn)行 計(jì)算機(jī)把機(jī)器代碼讀入到計(jì)算機(jī)把機(jī)器代碼讀入到內(nèi)存內(nèi)存(Memory) 由由CPU運(yùn)行這些代碼運(yùn)行這些代碼 讀取輸入(讀取輸入(Input) 產(chǎn)生輸出(產(chǎn)生輸出(Output) 完成程序員預(yù)定的功能完成程序員預(yù)定的功能8http:/0.2 程序設(shè)計(jì)語(yǔ)言的發(fā)展程序設(shè)計(jì)語(yǔ)言的發(fā)展v計(jì)算機(jī)為什么用二進(jìn)制呢?而不是采用我們?nèi)粘S?jì)算機(jī)為什么用二進(jìn)制呢?而不是采用我們?nèi)粘J煜さ氖M(jìn)制呢?熟悉的十進(jìn)制呢? 二進(jìn)制
4、在在電器元件中容易實(shí)現(xiàn)(只需要二個(gè)穩(wěn)二進(jìn)制在在電器元件中容易實(shí)現(xiàn)(只需要二個(gè)穩(wěn)定的電路狀態(tài))定的電路狀態(tài)) 計(jì)算機(jī)進(jìn)行二進(jìn)制運(yùn)算比進(jìn)行十進(jìn)制運(yùn)算要簡(jiǎn)單計(jì)算機(jī)進(jìn)行二進(jìn)制運(yùn)算比進(jìn)行十進(jìn)制運(yùn)算要簡(jiǎn)單得多得多9http:/機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言面向過(guò)程面向?qū)ο驝PU指令系統(tǒng),由0、1序列構(gòu)成的指令碼組成如:10000000 加 10010000 減用助記符號(hào)描述的指令系統(tǒng)如 ADD A, B面向機(jī)器的語(yǔ)言程序設(shè)計(jì)是數(shù)據(jù)被加工的過(guò)程客觀世界可以分類(lèi),對(duì)象是類(lèi)的實(shí)例對(duì)象是數(shù)據(jù)和方法的封裝對(duì)象間通過(guò)發(fā)送和接受消息發(fā)生聯(lián)系程序設(shè)計(jì)關(guān)鍵是定義類(lèi),并由類(lèi)派生對(duì)象馮.諾依曼結(jié)構(gòu):計(jì)算機(jī)運(yùn)算器控制器存儲(chǔ)器主機(jī):I/
5、O設(shè)備:鍵盤(pán)、顯示器等中央處理器CPU0.2 程序設(shè)計(jì)語(yǔ)言的發(fā)展(續(xù))程序設(shè)計(jì)語(yǔ)言的發(fā)展(續(xù))10http:/v程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)語(yǔ)言(Programming Language)(Programming Language) 是一組用來(lái)定義計(jì)算機(jī)程序的語(yǔ)法規(guī)則。是一組用來(lái)定義計(jì)算機(jī)程序的語(yǔ)法規(guī)則。是人與是人與計(jì)算機(jī)進(jìn)行交流的語(yǔ)言計(jì)算機(jī)進(jìn)行交流的語(yǔ)言 它是一種被標(biāo)準(zhǔn)化的交流技巧,用來(lái)向計(jì)算機(jī)發(fā)它是一種被標(biāo)準(zhǔn)化的交流技巧,用來(lái)向計(jì)算機(jī)發(fā)出指令。出指令。v機(jī)器語(yǔ)言機(jī)器語(yǔ)言(Machine Code) 是計(jì)算機(jī)直接能讀懂并能執(zhí)行的語(yǔ)言是計(jì)算機(jī)直接能讀懂并能執(zhí)行的語(yǔ)言 也叫機(jī)器代碼,是一種純粹的二進(jìn)制語(yǔ)
6、言也叫機(jī)器代碼,是一種純粹的二進(jìn)制語(yǔ)言0.3 程序設(shè)計(jì)語(yǔ)言與機(jī)器語(yǔ)言程序設(shè)計(jì)語(yǔ)言與機(jī)器語(yǔ)言11http:/續(xù)續(xù)v編譯編譯 采用某種程序設(shè)計(jì)語(yǔ)言設(shè)計(jì)的程序需要被翻譯成采用某種程序設(shè)計(jì)語(yǔ)言設(shè)計(jì)的程序需要被翻譯成計(jì)算機(jī)語(yǔ)言后才能被計(jì)算機(jī)所識(shí)別并執(zhí)行,這個(gè)計(jì)算機(jī)語(yǔ)言后才能被計(jì)算機(jī)所識(shí)別并執(zhí)行,這個(gè)過(guò)程稱為編譯(過(guò)程稱為編譯(CompiledCompiled)。)。 因此,因此,編譯編譯是指將所要翻譯的高級(jí)語(yǔ)言編寫(xiě)的程是指將所要翻譯的高級(jí)語(yǔ)言編寫(xiě)的程序代碼作為一個(gè)整體進(jìn)行翻譯,生成可以被計(jì)算序代碼作為一個(gè)整體進(jìn)行翻譯,生成可以被計(jì)算機(jī)所識(shí)別的二進(jìn)制代碼的過(guò)程。機(jī)所識(shí)別的二進(jìn)制代碼的過(guò)程。12http:/
7、v交互過(guò)程交互過(guò)程 一種程序設(shè)計(jì)語(yǔ)言對(duì)應(yīng)一種編譯器一種程序設(shè)計(jì)語(yǔ)言對(duì)應(yīng)一種編譯器 程序員按照該語(yǔ)言的語(yǔ)法編寫(xiě)程序源代碼,把自程序員按照該語(yǔ)言的語(yǔ)法編寫(xiě)程序源代碼,把自己的意圖融入到代碼中己的意圖融入到代碼中 編譯器讀入源代碼,把程序員的意圖轉(zhuǎn)換成可執(zhí)編譯器讀入源代碼,把程序員的意圖轉(zhuǎn)換成可執(zhí)行程序,供他人使用行程序,供他人使用續(xù)續(xù)13http:/程序設(shè)計(jì)語(yǔ)言的分類(lèi)程序設(shè)計(jì)語(yǔ)言的分類(lèi) v按照語(yǔ)言級(jí)別:按照語(yǔ)言級(jí)別: 低級(jí)語(yǔ)言低級(jí)語(yǔ)言(Low-Level Programming Language)(Low-Level Programming Language) 高級(jí)語(yǔ)言高級(jí)語(yǔ)言(High-Leve
8、l Programming Language)(High-Level Programming Language)。 v按照應(yīng)用范圍:通用語(yǔ)言與專用語(yǔ)言。按照應(yīng)用范圍:通用語(yǔ)言與專用語(yǔ)言。 v按照使用方式:交互式語(yǔ)言和非交互式語(yǔ)言。按照使用方式:交互式語(yǔ)言和非交互式語(yǔ)言。 v按用戶的要求:過(guò)程式語(yǔ)言和非過(guò)程式語(yǔ)言。按用戶的要求:過(guò)程式語(yǔ)言和非過(guò)程式語(yǔ)言。 14http:/1.程序設(shè)計(jì)和程序設(shè)計(jì)和C語(yǔ)言語(yǔ)言語(yǔ)言出現(xiàn)的歷史背景語(yǔ)言出現(xiàn)的歷史背景12簡(jiǎn)單的簡(jiǎn)單的C C語(yǔ)言程序語(yǔ)言程序3運(yùn)行程序的步驟和方法運(yùn)行程序的步驟和方法4程序的特點(diǎn)程序的特點(diǎn)15http:/vC C語(yǔ)言是國(guó)際上流行的高級(jí)語(yǔ)言。語(yǔ)言
9、是國(guó)際上流行的高級(jí)語(yǔ)言。C C語(yǔ)言適合于語(yǔ)言適合于作為作為“系統(tǒng)描述語(yǔ)言系統(tǒng)描述語(yǔ)言”。它既可以用來(lái)編寫(xiě)系。它既可以用來(lái)編寫(xiě)系統(tǒng)軟件,也可以用來(lái)編寫(xiě)應(yīng)用程序。統(tǒng)軟件,也可以用來(lái)編寫(xiě)應(yīng)用程序。v背景:背景: 操作系統(tǒng)等系統(tǒng)軟件以前采用匯編語(yǔ)言編寫(xiě),操作系統(tǒng)等系統(tǒng)軟件以前采用匯編語(yǔ)言編寫(xiě),而匯編語(yǔ)言可讀性和可移植性都比較差;而匯編語(yǔ)言可讀性和可移植性都比較差; 而當(dāng)時(shí)的高級(jí)語(yǔ)言難以實(shí)現(xiàn)匯編語(yǔ)言的某些功而當(dāng)時(shí)的高級(jí)語(yǔ)言難以實(shí)現(xiàn)匯編語(yǔ)言的某些功能(如:內(nèi)存地址的讀寫(xiě)能(如:內(nèi)存地址的讀寫(xiě)- -直接硬件、二進(jìn)制位直接硬件、二進(jìn)制位的操作),不適宜編寫(xiě)系統(tǒng)軟件。的操作),不適宜編寫(xiě)系統(tǒng)軟件。1.1 語(yǔ)言出
10、現(xiàn)的歷史背景語(yǔ)言出現(xiàn)的歷史背景16http:/ALGOL 60高級(jí)語(yǔ)言離硬件較遠(yuǎn)CPL較ALGOL60接近一些硬件但規(guī)模比較大,難以實(shí)現(xiàn)B語(yǔ)言很簡(jiǎn)單 很接近硬件但功能有限C語(yǔ)言精煉很接近硬件功能強(qiáng)大BCPLBCPL是對(duì)CPL進(jìn)行簡(jiǎn)化后的一種語(yǔ)言。 C語(yǔ)言的發(fā)展歷程語(yǔ)言的發(fā)展歷程17http:/C語(yǔ)言的發(fā)展歷程語(yǔ)言的發(fā)展歷程19721973年年貝爾實(shí)驗(yàn)室 D.M.Ritchie 設(shè)計(jì)出C語(yǔ)言1973年年K.Thompson&D.M.Ritchie用C改寫(xiě)出UNIX第五版1977年年出現(xiàn)了不依賴于具體機(jī)器的的C語(yǔ)言編譯文本可移植C語(yǔ)言編譯程序1978年年C語(yǔ)言先后移植到大、中、小、微型機(jī)上,獨(dú)立于
11、UNIX和PDP1978年年K&R合著了影響深遠(yuǎn)的The C Programming Language1983年年美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)制定ANSI C1990年年國(guó)際標(biāo)準(zhǔn)化組織ISO制定ISO C標(biāo)準(zhǔn)目前目前CC+ BuilderVisual C+Visual C#18http:/常見(jiàn)的常見(jiàn)的C語(yǔ)言版本語(yǔ)言版本 19http:/C程序設(shè)計(jì)語(yǔ)言的定位程序設(shè)計(jì)語(yǔ)言的定位vC C語(yǔ)言被分類(lèi)為高級(jí)語(yǔ)言,但實(shí)際上它是一種介語(yǔ)言被分類(lèi)為高級(jí)語(yǔ)言,但實(shí)際上它是一種介于高級(jí)語(yǔ)言和低級(jí)語(yǔ)言之間的語(yǔ)言中間語(yǔ)于高級(jí)語(yǔ)言和低級(jí)語(yǔ)言之間的語(yǔ)言中間語(yǔ)言言v很多流行語(yǔ)言、新生語(yǔ)言都借鑒了它的思想、很多流行語(yǔ)言、新生語(yǔ)言都借鑒
12、了它的思想、語(yǔ)法語(yǔ)法從從C+C+,到,到JavaJava,再到,再到C#C#v正確地學(xué)好正確地學(xué)好C C語(yǔ)言,是學(xué)習(xí)這些流行語(yǔ)言的基礎(chǔ)。語(yǔ)言,是學(xué)習(xí)這些流行語(yǔ)言的基礎(chǔ)。20http:/1.2 C語(yǔ)言的特點(diǎn)語(yǔ)言的特點(diǎn)按位取反(異或、或、與)運(yùn)算符,左(右)移運(yùn)算符、地址運(yùn)算符等。21http:/整型、實(shí)型、字符型、數(shù)組類(lèi)型、指針類(lèi)型、結(jié)構(gòu)體類(lèi)型、共用體類(lèi)型,;續(xù)續(xù)22http:/不要過(guò)分依賴C編譯程序直接訪問(wèn)內(nèi)存物理地址;續(xù)續(xù)23http:/續(xù)續(xù)24http:/C語(yǔ)言與其他語(yǔ)言的比較語(yǔ)言與其他語(yǔ)言的比較25http:/auto break case char constcontinue defa
13、ult do double elseenum extern float for gotoif int long register returnshort signed sizeof static structswitch typedef unsigned union voidvolatile while32個(gè)關(guān)鍵字26http:/if( )elsefor( )while( )dowhile( )continuebreakswitchgotoreturn9種控制語(yǔ)句27http:/算術(shù)運(yùn)算符:+ - * / % + -關(guān)系運(yùn)算符: = !=邏輯運(yùn)算符:! & |位運(yùn)算符 : | &賦值運(yùn)算符:=
14、 及其擴(kuò)展條件運(yùn)算符:?:逗號(hào)運(yùn)算符:,指針運(yùn)算符:* &求字節(jié)數(shù) :sizeof強(qiáng)制類(lèi)型轉(zhuǎn)換:(類(lèi)型)分量運(yùn)算符:. -下標(biāo)運(yùn)算符:其它 :( ) -34種運(yùn)算符28http:/C C數(shù)數(shù)據(jù)據(jù)類(lèi)類(lèi)型型基本類(lèi)型基本類(lèi)型構(gòu)造類(lèi)型構(gòu)造類(lèi)型指針類(lèi)型指針類(lèi)型空類(lèi)型空類(lèi)型voidvoid定義類(lèi)型定義類(lèi)型typedeftypedef數(shù)值類(lèi)數(shù)值類(lèi)型型字符類(lèi)型字符類(lèi)型charchar枚舉類(lèi)型枚舉類(lèi)型enumenum整整 型型浮點(diǎn)型浮點(diǎn)型單精度型單精度型floatfloat雙精度型雙精度型doubledouble短整型短整型shortshort長(zhǎng)整型長(zhǎng)整型longlong整型整型intint數(shù)組數(shù)組結(jié)構(gòu)體結(jié)構(gòu)體
15、structstruct共用體共用體unionunion29http:/30http:/ 1.3 簡(jiǎn)單的簡(jiǎn)單的C語(yǔ)言程序語(yǔ)言程序#include void main( ) printf (This is a C program.n); /*文件包含*/*主函數(shù) */*函數(shù)體開(kāi)始*/*輸出語(yǔ)句*/*函數(shù)體結(jié)束*/ 說(shuō)明:說(shuō)明: 本程序的作用是輸出一行信息本程序的作用是輸出一行信息: :This is a C program.This is a C program.例例1.11.1:打印一行信息:打印一行信息31http:/例例1.2 1.2 求兩數(shù)之和求兩數(shù)之和#include void mai
16、n( ) /*主程序開(kāi)始*/ int a,b,sum; /*聲明,定義變量為整型*/ /*以下3行為C語(yǔ)句 */ a=123; b=456; sum=a+b; printf(Sum is %dn, sum);說(shuō)明說(shuō)明:輸出一行信息輸出一行信息:sum is 579:sum is 57932http:/例例1.3 1.3 求求2 2個(gè)數(shù)中較大者個(gè)數(shù)中較大者#include void main( ) /* 主函數(shù)*/ int max(int x,int y); /*對(duì)被調(diào)用函數(shù)max的聲明 */ int a, b, c; /*定義變量a、b、c */ scanf(d,d,&a,&b); /*輸入變
17、量a和b的值*/ c=max(a,b); /*調(diào)用max函數(shù),將得到的值賦給c */ printf(max=dn,c); /*輸出c的值*/v 程序運(yùn)行情況如下程序運(yùn)行情況如下:v 8,5 8,5 ( (輸入輸入8 8和和5 5賦給賦給a a和和b)b)v max=8 (max=8 (輸出輸出c c的值的值) )int max(int x, int y) int z; if (xy) z=x; else z=y; return (z); max(max(a a, ,b b););? 33http:/ C語(yǔ)言程序結(jié)構(gòu)特點(diǎn)語(yǔ)言程序結(jié)構(gòu)特點(diǎn) 格式特點(diǎn)格式特點(diǎn) 習(xí)慣用習(xí)慣用小寫(xiě)小寫(xiě)字母,大小寫(xiě)敏感字母
18、,大小寫(xiě)敏感 不使用行號(hào),不使用行號(hào),無(wú)程序行無(wú)程序行概念概念 可使用空行和空格可使用空行和空格 常用常用鋸齒形鋸齒形書(shū)寫(xiě)格式書(shū)寫(xiě)格式優(yōu)秀程序員的素質(zhì)之一:使用TAB縮進(jìn)對(duì)齊有足夠的注釋有合適的空行34http:/ 結(jié)構(gòu)特點(diǎn)結(jié)構(gòu)特點(diǎn) 函數(shù)與主函數(shù)函數(shù)與主函數(shù) 程序由一個(gè)或多個(gè)函數(shù)組成程序由一個(gè)或多個(gè)函數(shù)組成 必須有且只能有一個(gè)主函數(shù)必須有且只能有一個(gè)主函數(shù)main() 程序執(zhí)行從程序執(zhí)行從main開(kāi)始,在開(kāi)始,在main中結(jié)束,其它函數(shù)通過(guò)中結(jié)束,其它函數(shù)通過(guò)嵌套調(diào)用得以執(zhí)行。嵌套調(diào)用得以執(zhí)行。 程序語(yǔ)句程序語(yǔ)句 C程序由語(yǔ)句組成程序由語(yǔ)句組成 用用“ ; ”作為語(yǔ)句作為語(yǔ)句行行終止符終止符 注釋注釋 /* */為注釋為注釋
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030茶葉種植行業(yè)市場(chǎng)發(fā)展前景及發(fā)展趨勢(shì)與投資機(jī)會(huì)研究報(bào)告
- 2025-2030老年護(hù)理應(yīng)用程序行業(yè)市場(chǎng)現(xiàn)狀供需分析及重點(diǎn)企業(yè)投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025-2030箱式房產(chǎn)業(yè)規(guī)劃專項(xiàng)研究報(bào)告
- 2025-2030石膏澆鑄行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025-2030月餅行業(yè)市場(chǎng)發(fā)展分析及前景趨勢(shì)與投資研究報(bào)告
- 快餐連鎖食品安全監(jiān)控措施
- 江蘇省鹽城市五校聯(lián)考2023-2024學(xué)年高二下學(xué)期期中考試歷史試題 (解析版)
- 外研社寫(xiě)作中的文化差異探討
- 技術(shù)支持在非盈利組織中的價(jià)值-心得體會(huì)
- 電梯改造項(xiàng)目風(fēng)險(xiǎn)評(píng)估及措施
- 兒童早期綜合發(fā)展課件
- 剪力墻平法識(shí)圖講義(PPT格式105)
- 北京中考英語(yǔ)詞匯表(1600詞匯)
- 專業(yè)工程分包業(yè)主審批表
- 藥劑科終止妊娠藥品管理制度
- 除草劑分類(lèi)和使用方法
- 中遠(yuǎn)集團(tuán)養(yǎng)老保險(xiǎn)工作管理程序
- 留守兒童幫扶記錄表
- 變電站第二種工作票
- 煤礦機(jī)電運(yùn)輸專業(yè)質(zhì)量標(biāo)準(zhǔn)化管理制度
- 機(jī)電一體化專業(yè)畢業(yè)論文43973
評(píng)論
0/150
提交評(píng)論