版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
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é)會用計(jì)算機(jī)語言編寫程序。 算法 語法 解題思路v看懂程序編寫簡單程序逐步深入。v學(xué)習(xí)重點(diǎn)放在最基本、最常用的內(nèi)容上。v常用編譯系統(tǒng)的使用。3http:/開發(fā)開發(fā)C C語言程序的步驟語言程序的步驟計(jì)算機(jī)工作方式回顧計(jì)算機(jī)工作方式回顧C(jī) C語言程序的結(jié)構(gòu)語言程序的結(jié)構(gòu)0 01 12 2Ch.1 程序設(shè)計(jì)和程序設(shè)計(jì)和C語言語言4http:/0.1 計(jì)算機(jī)工作方式回顧計(jì)算機(jī)工作方式回顧v 整個(gè)過程的執(zhí)行者是硬件,但硬件是受軟件控制的整
2、個(gè)過程的執(zhí)行者是硬件,但硬件是受軟件控制的v 編程,就是編寫軟件,使硬件按照人的意圖工作編程,就是編寫軟件,使硬件按照人的意圖工作5http:/續(xù)續(xù)輸入/輸出設(shè)備存儲器運(yùn)算器控制器源程序和輸入數(shù)據(jù)輸出結(jié)果取出數(shù)據(jù)存入數(shù)據(jù)操作命令存取命令取出程序指令輸入輸出命令計(jì)算結(jié)果CPU“馮諾依曼”結(jié)構(gòu) 大腦記憶裝置眼睛和耳朵程序和數(shù)據(jù)執(zhí)行結(jié)果6http:/v軟件軟件(Software)的形成的形成程序員程序員(Programmer)編寫程序)編寫程序源代碼源代碼(Source Code)編譯器編譯器(Compiler)把源代碼轉(zhuǎn)換為可被計(jì)算機(jī))把源代碼轉(zhuǎn)換為可被計(jì)算機(jī)理解的理解的機(jī)器代碼機(jī)器代碼(Mach
3、ine Code) 機(jī)器代碼以機(jī)器代碼以可可執(zhí)行文件執(zhí)行文件(Executable File)的形)的形式保存在磁盤上式保存在磁盤上續(xù)續(xù)7http:/軟件運(yùn)行過程軟件運(yùn)行過程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ì)語言的發(fā)展程序設(shè)計(jì)語言的發(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)算要簡單計(jì)算機(jī)進(jìn)行二進(jìn)制運(yùn)算比進(jìn)行十進(jìn)制運(yùn)算要簡單得多得多9http:/機(jī)器語言匯編語言高級語言面向過程面向?qū)ο驝PU指令系統(tǒng),由0、1序列構(gòu)成的指令碼組成如:10000000 加 10010000 減用助記符號描述的指令系統(tǒng)如 ADD A, B面向機(jī)器的語言程序設(shè)計(jì)是數(shù)據(jù)被加工的過程客觀世界可以分類,對象是類的實(shí)例對象是數(shù)據(jù)和方法的封裝對象間通過發(fā)送和接受消息發(fā)生聯(lián)系程序設(shè)計(jì)關(guān)鍵是定義類,并由類派生對象馮.諾依曼結(jié)構(gòu):計(jì)算機(jī)運(yùn)算器控制器存儲器主機(jī):I/
5、O設(shè)備:鍵盤、顯示器等中央處理器CPU0.2 程序設(shè)計(jì)語言的發(fā)展(續(xù))程序設(shè)計(jì)語言的發(fā)展(續(xù))10http:/v程序設(shè)計(jì)語言程序設(shè)計(jì)語言(Programming Language)(Programming Language) 是一組用來定義計(jì)算機(jī)程序的語法規(guī)則。是一組用來定義計(jì)算機(jī)程序的語法規(guī)則。是人與是人與計(jì)算機(jī)進(jìn)行交流的語言計(jì)算機(jī)進(jìn)行交流的語言 它是一種被標(biāo)準(zhǔn)化的交流技巧,用來向計(jì)算機(jī)發(fā)它是一種被標(biāo)準(zhǔn)化的交流技巧,用來向計(jì)算機(jī)發(fā)出指令。出指令。v機(jī)器語言機(jī)器語言(Machine Code) 是計(jì)算機(jī)直接能讀懂并能執(zhí)行的語言是計(jì)算機(jī)直接能讀懂并能執(zhí)行的語言 也叫機(jī)器代碼,是一種純粹的二進(jìn)制語
6、言也叫機(jī)器代碼,是一種純粹的二進(jìn)制語言0.3 程序設(shè)計(jì)語言與機(jī)器語言程序設(shè)計(jì)語言與機(jī)器語言11http:/續(xù)續(xù)v編譯編譯 采用某種程序設(shè)計(jì)語言設(shè)計(jì)的程序需要被翻譯成采用某種程序設(shè)計(jì)語言設(shè)計(jì)的程序需要被翻譯成計(jì)算機(jī)語言后才能被計(jì)算機(jī)所識別并執(zhí)行,這個(gè)計(jì)算機(jī)語言后才能被計(jì)算機(jī)所識別并執(zhí)行,這個(gè)過程稱為編譯(過程稱為編譯(CompiledCompiled)。)。 因此,因此,編譯編譯是指將所要翻譯的高級語言編寫的程是指將所要翻譯的高級語言編寫的程序代碼作為一個(gè)整體進(jìn)行翻譯,生成可以被計(jì)算序代碼作為一個(gè)整體進(jìn)行翻譯,生成可以被計(jì)算機(jī)所識別的二進(jìn)制代碼的過程。機(jī)所識別的二進(jìn)制代碼的過程。12http:/
7、v交互過程交互過程 一種程序設(shè)計(jì)語言對應(yīng)一種編譯器一種程序設(shè)計(jì)語言對應(yīng)一種編譯器 程序員按照該語言的語法編寫程序源代碼,把自程序員按照該語言的語法編寫程序源代碼,把自己的意圖融入到代碼中己的意圖融入到代碼中 編譯器讀入源代碼,把程序員的意圖轉(zhuǎn)換成可執(zhí)編譯器讀入源代碼,把程序員的意圖轉(zhuǎn)換成可執(zhí)行程序,供他人使用行程序,供他人使用續(xù)續(xù)13http:/程序設(shè)計(jì)語言的分類程序設(shè)計(jì)語言的分類 v按照語言級別:按照語言級別: 低級語言低級語言(Low-Level Programming Language)(Low-Level Programming Language) 高級語言高級語言(High-Leve
8、l Programming Language)(High-Level Programming Language)。 v按照應(yīng)用范圍:通用語言與專用語言。按照應(yīng)用范圍:通用語言與專用語言。 v按照使用方式:交互式語言和非交互式語言。按照使用方式:交互式語言和非交互式語言。 v按用戶的要求:過程式語言和非過程式語言。按用戶的要求:過程式語言和非過程式語言。 14http:/1.程序設(shè)計(jì)和程序設(shè)計(jì)和C語言語言語言出現(xiàn)的歷史背景語言出現(xiàn)的歷史背景12簡單的簡單的C C語言程序語言程序3運(yùn)行程序的步驟和方法運(yùn)行程序的步驟和方法4程序的特點(diǎn)程序的特點(diǎn)15http:/vC C語言是國際上流行的高級語言。語言
9、是國際上流行的高級語言。C C語言適合于語言適合于作為作為“系統(tǒng)描述語言系統(tǒng)描述語言”。它既可以用來編寫系。它既可以用來編寫系統(tǒng)軟件,也可以用來編寫應(yīng)用程序。統(tǒng)軟件,也可以用來編寫應(yīng)用程序。v背景:背景: 操作系統(tǒng)等系統(tǒng)軟件以前采用匯編語言編寫,操作系統(tǒng)等系統(tǒng)軟件以前采用匯編語言編寫,而匯編語言可讀性和可移植性都比較差;而匯編語言可讀性和可移植性都比較差; 而當(dāng)時(shí)的高級語言難以實(shí)現(xiàn)匯編語言的某些功而當(dāng)時(shí)的高級語言難以實(shí)現(xiàn)匯編語言的某些功能(如:內(nèi)存地址的讀寫能(如:內(nèi)存地址的讀寫- -直接硬件、二進(jìn)制位直接硬件、二進(jìn)制位的操作),不適宜編寫系統(tǒng)軟件。的操作),不適宜編寫系統(tǒng)軟件。1.1 語言出
10、現(xiàn)的歷史背景語言出現(xiàn)的歷史背景16http:/ALGOL 60高級語言離硬件較遠(yuǎn)CPL較ALGOL60接近一些硬件但規(guī)模比較大,難以實(shí)現(xiàn)B語言很簡單 很接近硬件但功能有限C語言精煉很接近硬件功能強(qiáng)大BCPLBCPL是對CPL進(jìn)行簡化后的一種語言。 C語言的發(fā)展歷程語言的發(fā)展歷程17http:/C語言的發(fā)展歷程語言的發(fā)展歷程19721973年年貝爾實(shí)驗(yàn)室 D.M.Ritchie 設(shè)計(jì)出C語言1973年年K.Thompson&D.M.Ritchie用C改寫出UNIX第五版1977年年出現(xiàn)了不依賴于具體機(jī)器的的C語言編譯文本可移植C語言編譯程序1978年年C語言先后移植到大、中、小、微型機(jī)上,獨(dú)立于
11、UNIX和PDP1978年年K&R合著了影響深遠(yuǎn)的The C Programming Language1983年年美國國家標(biāo)準(zhǔn)化協(xié)會制定ANSI C1990年年國際標(biāo)準(zhǔn)化組織ISO制定ISO C標(biāo)準(zhǔn)目前目前CC+ BuilderVisual C+Visual C#18http:/常見的常見的C語言版本語言版本 19http:/C程序設(shè)計(jì)語言的定位程序設(shè)計(jì)語言的定位vC C語言被分類為高級語言,但實(shí)際上它是一種介語言被分類為高級語言,但實(shí)際上它是一種介于高級語言和低級語言之間的語言中間語于高級語言和低級語言之間的語言中間語言言v很多流行語言、新生語言都借鑒了它的思想、很多流行語言、新生語言都借鑒
12、了它的思想、語法語法從從C+C+,到,到JavaJava,再到,再到C#C#v正確地學(xué)好正確地學(xué)好C C語言,是學(xué)習(xí)這些流行語言的基礎(chǔ)。語言,是學(xué)習(xí)這些流行語言的基礎(chǔ)。20http:/1.2 C語言的特點(diǎn)語言的特點(diǎn)按位取反(異或、或、與)運(yùn)算符,左(右)移運(yùn)算符、地址運(yùn)算符等。21http:/整型、實(shí)型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型,;續(xù)續(xù)22http:/不要過分依賴C編譯程序直接訪問內(nèi)存物理地址;續(xù)續(xù)23http:/續(xù)續(xù)24http:/C語言與其他語言的比較語言與其他語言的比較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種控制語句27http:/算術(shù)運(yùn)算符:+ - * / % + -關(guān)系運(yùn)算符: = !=邏輯運(yùn)算符:! & |位運(yùn)算符 : | &賦值運(yùn)算符:=
14、 及其擴(kuò)展條件運(yùn)算符:?:逗號運(yùn)算符:,指針運(yùn)算符:* &求字節(jié)數(shù) :sizeof強(qiáng)制類型轉(zhuǎn)換:(類型)分量運(yùn)算符:. -下標(biāo)運(yùn)算符:其它 :( ) -34種運(yùn)算符28http:/C C數(shù)數(shù)據(jù)據(jù)類類型型基本類型基本類型構(gòu)造類型構(gòu)造類型指針類型指針類型空類型空類型voidvoid定義類型定義類型typedeftypedef數(shù)值類數(shù)值類型型字符類型字符類型charchar枚舉類型枚舉類型enumenum整整 型型浮點(diǎn)型浮點(diǎn)型單精度型單精度型floatfloat雙精度型雙精度型doubledouble短整型短整型shortshort長整型長整型longlong整型整型intint數(shù)組數(shù)組結(jié)構(gòu)體結(jié)構(gòu)體
15、structstruct共用體共用體unionunion29http:/30http:/ 1.3 簡單的簡單的C語言程序語言程序#include void main( ) printf (This is a C program.n); /*文件包含*/*主函數(shù) */*函數(shù)體開始*/*輸出語句*/*函數(shù)體結(jié)束*/ 說明:說明: 本程序的作用是輸出一行信息本程序的作用是輸出一行信息: :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( ) /*主程序開始*/ int a,b,sum; /*聲明,定義變量為整型*/ /*以下3行為C語句 */ a=123; b=456; sum=a+b; printf(Sum is %dn, sum);說明說明:輸出一行信息輸出一行信息: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); /*對被調(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語言程序結(jié)構(gòu)特點(diǎn)語言程序結(jié)構(gòu)特點(diǎn) 格式特點(diǎn)格式特點(diǎn) 習(xí)慣用習(xí)慣用小寫小寫字母,大小寫敏感字母
18、,大小寫敏感 不使用行號,不使用行號,無程序行無程序行概念概念 可使用空行和空格可使用空行和空格 常用常用鋸齒形鋸齒形書寫格式書寫格式優(yōu)秀程序員的素質(zhì)之一:使用TAB縮進(jìn)對齊有足夠的注釋有合適的空行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開始,在開始,在main中結(jié)束,其它函數(shù)通過中結(jié)束,其它函數(shù)通過嵌套調(diào)用得以執(zhí)行。嵌套調(diào)用得以執(zhí)行。 程序語句程序語句 C程序由語句組成程序由語句組成 用用“ ; ”作為語句作為語句行行終止符終止符 注釋注釋 /* */為注釋為注釋
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 皮膚病學(xué)題庫與答案
- 班組安全培訓(xùn)試題帶答案(完整版)
- (完整版)安全生產(chǎn)知識測試題及答案
- 郵政入編考試題及答案
- 電工考試題易錯(cuò)題及答案
- 大專藝術(shù)概論試題及答案
- 護(hù)理人員服務(wù)意識與禮儀培養(yǎng)
- 未來五年洋蔥企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級戰(zhàn)略分析研究報(bào)告
- 中國金融電子化集團(tuán)有限公司2026校園招聘6人考試備考題庫附答案
- 關(guān)于區(qū)健共體部分成員單位2025年公開考核招聘事業(yè)編制工作人員的參考題庫附答案
- 箱涵預(yù)制、安裝、現(xiàn)澆施工方案
- 2026屆杭州高級中學(xué)高二上數(shù)學(xué)期末聯(lián)考試題含解析
- 2026年及未來5年中國無取向硅鋼片行業(yè)市場深度分析及發(fā)展趨勢預(yù)測報(bào)告
- 棄土場規(guī)范規(guī)章制度
- 2026年水下機(jī)器人勘探報(bào)告及未來五至十年深海資源報(bào)告
- 安徽省蕪湖市鳩江區(qū)2024-2025學(xué)年高一上學(xué)期期末考試生物試卷
- 2025年對中國汽車行業(yè)深度變革的觀察與思考報(bào)告
- 雙重預(yù)防體系建設(shè)自評報(bào)告模板
- 福建省泉州市晉江市2024-2025學(xué)年八年級上學(xué)期1月期末考試英語試題(含答案無聽力音頻及原文)
- 心血管疾病風(fēng)險(xiǎn)評估
- 慢性肝病患者營養(yǎng)支持護(hù)理培訓(xùn)
評論
0/150
提交評論