版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
程序設計基礎(C語言)徐兵blogzjou@126.com主要學習內(nèi)容基本數(shù)據(jù)類型運算符和表達式輸入輸出程序控制結(jié)構(gòu)數(shù)組函數(shù)指針結(jié)構(gòu)體、共用體編譯、文件2學習目標理解計算機程序設計的基本原理掌握程序設計的基本方法和技術(shù)掌握結(jié)構(gòu)化程序設計的開發(fā)方法結(jié)合C語言學習開發(fā)小型應用系統(tǒng)3基本要求認真閱讀、理解書本相關概念和理論方法全面掌握書本所有例題獨立完成實驗指導書要求的所有實驗達到計算機等級考試的要求多做實驗,勤做實驗!4第一章:計算機及程序設計概述計算機和計算機程序計算機的基本工作原理6計算機硬件和計算機軟件計算機硬件主機外部設備計算機軟件裸機要使計算機解決各種實際問題,必須有軟件的支持,計算機軟件著重研究如何管理計算機和使用計算機的問題,沒有軟件支持的計算機就是一堆廢鐵7指令與程序指令指令就是計算機執(zhí)行某種操作的命令,是硬件能理解并能執(zhí)行的語言,是機器語言的一個語句,是程序員進行程序設計的最小語言單位。指令的組成指令由操作碼和操作數(shù)構(gòu)成Mov3,reg1Mov5,reg2Addreg1,reg2End8指令與程序程序程序(program)是為實現(xiàn)特定目標或解決特定問題而用計算機語言編寫的、可以連續(xù)執(zhí)行并能夠完成一定任務的指令序列的集合。程序的開發(fā)描述問題(算法)程序設計語言計算機軟件9程序設計語言機器語言二進制指令與計算機硬件的設計密切相關匯編語言匯編語言與機器語言的指令具有一一對應的關系,指令的操作碼和操作數(shù)地址全部用指定的符號表示匯編語言依然依賴于計算機系統(tǒng)結(jié)構(gòu),只能為特定的機器所識別,是面向機器的語言
10程序設計語言高級語言與具體的計算機指令系統(tǒng)無關的計算機語言高級語言的分類面向過程的語言C、Pascal面向?qū)ο蟮恼Z言C++、Java、.Net面向特定應用的語言SQL11WhyC?C語言是目前實際程序設計工作中使用最廣泛的語言之一它包含了程序設計需要理解和使用的基本程序機理和主要機制掌握這些機制就可以理解程序與程序設計的主要問題。目前有許多軟件系統(tǒng)是用C編寫的,或基本上是用C編寫的學習程序設計的同時也能掌握一種實用的程序設計工具C語言是一種很靈活的語言既可以在較高層次上做,也可以在較低級的層次上做很多新型的語言都是衍生自C語言有些本身就是C語言的擴充和發(fā)展程序設計是計算機領域的基礎課程C語言適合作為計算機領域許多后續(xù)課程的教學語言12授課重點側(cè)重學習一個具體問題的算法化的過程學習應該掌握的基本編程技巧以及C編程的風格和藝術(shù)討論怎樣編寫出一個好的程序?簡單、實用的原則13本課程的組織第一部分基礎第二部分簡單程序設計第三部分高級程序設計算法概念、編程原理、編程風格、基本數(shù)據(jù)類型定義、算術(shù)運算符及表達式順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、數(shù)組的定義及應用、程序設計過程函數(shù)、變量的存儲類別、指針、結(jié)構(gòu)體與共用體、文件14程序設計什么是程序設計?使用某種程序語言編寫程序的過程,就是用計算機語言對所要解決的問題中的數(shù)據(jù)以及處理問題的方法和步驟所做的完整而準確的描述的過程怎樣進行程序設計?分析問題確定算法編制程序調(diào)試程序15程序設計一個完整的程序數(shù)據(jù)結(jié)構(gòu)、算法、編程語言和程序設計方法對數(shù)據(jù)的描述(數(shù)據(jù)流)指定數(shù)據(jù)的類型和數(shù)據(jù)的結(jié)構(gòu)對操作的描述(控制流)指定操作的步驟,既算法程序=數(shù)據(jù)結(jié)構(gòu)+算法16算法什么是算法(Algorithm)?就是為了解決一個特定的問題而采取的確定的、有限的、按照一定次序進行的、缺一不可的執(zhí)行步驟注意為了有效地利用計算機解決實際問題,在設計算法時不僅要保證計算機執(zhí)行算法的正確性,還要考慮算法的質(zhì)量,選擇適合于具體問題的算法17算法通常計算機算法分為兩大類:數(shù)值運算算法和非數(shù)值運算算法數(shù)值運算是指對問題求數(shù)值解有確定的數(shù)學模型非數(shù)值運算是指事務處理過程種類繁多,很難提供統(tǒng)一規(guī)范的算法更多的是需要用戶設計其算法的18算法例1:猴子吃桃問題。有一堆桃子不知數(shù)目,猴子第一天吃掉一半,又多吃了一個,第二天照此方法,吃掉剩下桃子的一半又多一個,天天如此,到第11天早上,猴子發(fā)現(xiàn)只剩一只桃子了,問這堆桃子原來有多少個?數(shù)學模型:ai=2*(ai+1+1)i=9,8,7,…1;Step1:peach1=1;i=10;Step2:peach0=2*(peach1+1);Step3:peach1=peach0;Step4:i=i-1;Step5:若i>=1,繼續(xù)循環(huán)執(zhí)行Step2;Step6:輸出peach0的值。
19算法輸入三個數(shù),然后輸出最大的數(shù)算法的兩個要素基本功能操作數(shù)據(jù)運算和傳輸控制結(jié)構(gòu)順序、選擇和循環(huán)三種基本控制流程算法可以寫成:(1)輸入A,B,C;(2)若A>B,則A->MAX;若A<B,則B->MAX。(3)若C>MAX,則C->MAX。(4)輸出MAX,MAX是最大數(shù)。20算法的特性有窮性應含有有限的操作步驟,不能是無限的。有窮性指在“合理的限度之內(nèi)”唯一性每一個步驟都是確定的,只有一個涵義,不可以為二義性有零個或多個輸入在執(zhí)行算法時需要從外界獲取必要的信息有一個或多個輸出算法執(zhí)行的目的就是為了求解,“解”就是輸出的信息沒有輸出的算法是沒有意義的正確性每一個步驟應當被有效的執(zhí)行,并得到確定的結(jié)果21算法的表示流程圖端點:表示程序的轉(zhuǎn)向,常用來表示程序的開始和結(jié)束。處理:操作的功能判斷:單入口多出口,表明判斷的條件流線:表示程序的執(zhí)行方向和順序。輸入/輸出:表示數(shù)據(jù)的名稱、類型和用途等。22算法的表示流程圖開始輸入A,B,CA>B?TNMAX=AMAX=BC>MAX?NTMAX=C輸出MAX結(jié)束23算法的表示N-S圖是適合結(jié)構(gòu)化程序設計方法的圖形工具N-S流程圖無法表示非結(jié)構(gòu)化的程序P12TN當〈條件〉滿足a1=1i=9當i>=1時,循環(huán)a0=2*(a1+1)a1=a0i=i-1輸出a024算法的表示UML面向?qū)ο蟮姆治雠c設計工具適合于描述復雜系統(tǒng)元素之間的關系,不關注具體算法25程序設計基本步驟確定數(shù)學模型實際問題的準確描述算法描述解決問題的具體步驟編寫程序?qū)⒁言O計好的算法表達出來程序測試保證程序的正確性26結(jié)構(gòu)化的程序設計方法程序的三種基本結(jié)構(gòu)問題的提出結(jié)構(gòu)化程序設計必須采用的結(jié)構(gòu)順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)被稱為程序設計的三種基本結(jié)構(gòu)算法的實現(xiàn)過程是由一系列操作組成的,這些操作之間的執(zhí)行次序就是程序的控制結(jié)構(gòu)總體結(jié)構(gòu)流程都是自上而下順序執(zhí)行的。27結(jié)構(gòu)化的程序設計方法程序的三種基本結(jié)構(gòu)順序結(jié)構(gòu),順序結(jié)構(gòu)表示程序中的各操作是按照它們出現(xiàn)的先后順序執(zhí)行的選擇結(jié)構(gòu),表示程序的處理出現(xiàn)了分支,它需要根據(jù)某一特定的條件選擇其中的一個分支執(zhí)行循環(huán)結(jié)構(gòu),程序反復執(zhí)行某個或某些操作,直到某條件為假(或為真)時才可終止循環(huán)28結(jié)構(gòu)化的程序設計方法結(jié)構(gòu)化程序設計方法公認的面向過程編程應遵循的基本方法和原則結(jié)構(gòu)化程序設計特征采用模塊化結(jié)構(gòu)自頂而下的設計方法便于對問題的分解和模塊的劃分程序由三種基本控制結(jié)構(gòu)組成有限制地使用轉(zhuǎn)移語句采用結(jié)構(gòu)化程序設計語言書寫程序結(jié)構(gòu)化程序設計語言書寫程序注意書寫風格29其他程序設計方法面向?qū)ο蟪绦蛟O計方法結(jié)構(gòu)化程序設計方法作為一種面向過程的程序設計方法,將解決問題的重點放在了描述實現(xiàn)過程的細節(jié)上,盡量保證程序的客觀性,避免人對于程序設計的干擾。面向?qū)ο蠓椒ǖ幕驹瓌t是盡可能地模擬現(xiàn)實世界中人類的思維方式,使開發(fā)軟件的方法和過程盡可能地接近人類解決問題的方法和過程。并行程序設計基于組件的程序設計30什么是C語言?1973年由美國貝爾實驗室設計發(fā)布的目前是計算機程序設計語言的主流語種是世界上最為廣泛使用的語言之一C語言的流行歸功于兩個主要因素使用正確的C語言指令幾乎可以完成任何任務是可移植的C編譯系統(tǒng)的廣泛采用C語言是一種能夠讓軟件工程師與計算機進行有效對話的介于匯編語言和高級語言之間的編程語言31什么是C語言?C語言標準1978年,正式出版的《TheCProgrammingLanguage》書中介紹的c語言,稱為標準c語言1983年,美國國家標準化協(xié)會(ANSI)根據(jù)各種c語言版本對c的擴充和發(fā)展,頒布了c語言的新標準ANSIcANSIc比標準c有了很大的擴充和發(fā)展1987年,美國國家標準化協(xié)會又頒布新標準,稱為87ANSIC1990年,國際標準化組織ISO接受了87ANSIC作為ISOC的標準目前功能最完善、性能最優(yōu)良的C新版本目前流行的C編譯系統(tǒng)都是以它為基礎的32什么是C語言?C語言的特點適合開發(fā)系統(tǒng)軟件結(jié)構(gòu)化的程序設計語言豐富的數(shù)據(jù)類型和數(shù)據(jù)結(jié)構(gòu)運算符多樣化可移植性好語句簡潔緊湊編程風格靈活,語法限制少,使用靈活具有預處理功能面向?qū)ο蟪绦蛟O計的基礎33編寫一個加法運算程序P18#include〈stdio.h〉main(){
inta,b;/*定義兩個整形變量*/a=1;b=5;/*給兩個變量賦值*/
printf(“%d+%d=%d\n”,a,b,a+b);/*打印a和b之和*/}
C語言嚴格區(qū)分大、小寫英文字母。C語言程序習慣上使用小寫英文字母,而大寫英文字母通常作為常量的宏定義和其他特殊的用途。什么是C語言?34#include〈stdio.h〉main(){
inta,b;/*定義兩個整形變量*/a=1;b=5;/*給兩個變量賦值*/
printf(“%d+%d=%d\n”,a,b,a+b);/*打印a和b之和*/}
C語言嚴格區(qū)分大、小寫英文字母。什么是C語言?
C語言程序是由一個個的語句組成。每個語句都具有規(guī)定的語法格式和特定的功能。編寫一個加法運算程序35#include〈stdio.h〉main(){
inta,b;/*定義兩個整形變量*/a=1;b=5;/*給兩個變量賦值*/
printf(“%d+%d=%d\n”,a,b,a+b);/*打印a和b之和*/}
C語言嚴格區(qū)分大、小寫英文字母。什么是C語言?
C語言程序是由一個個的語句組成。
C語言程序使用“;”作為語句的終止符和分隔符。可以任意書寫,即一行中可以書寫多個語句,一個語句也可以占用任意多行,語句之間必須用“;”分隔。初學時建議在一行內(nèi)書寫一條語句。編寫一個加法運算程序36#include〈stdio.h〉main(){
inta,b;/*定義兩個整形變量*/a=1;b=5;/*給兩個變量賦值*/
printf(“%d+%d=%d\n”,a,b,a+b);/*打印a和b之和*/}
C語言嚴格區(qū)分大、小寫英文字母。什么是C語言?
C語言程序是由一個個的語句組成。
C語言程序使用“;”作為語句的終止符和分隔符。
C語言程序中用大括號對“{}”表示程序的結(jié)構(gòu)層次范圍。一個完整的程序模塊要用一對花括號括起來,用以表示模塊的范圍。為了清晰地表現(xiàn)出程序的結(jié)構(gòu),建議使用右縮進鋸齒型程序書寫格式。編寫一個加法運算程序37#include〈stdio.h〉main(){
inta,b;/*定義兩個整形變量*/a=1;b=5;/*給兩個變量賦值*/
printf(“%d+%d=%d\n”,a,b,a+b);/*打印a和b之和*/}
C語言嚴格區(qū)分大、小寫英文字母。什么是C語言?
C語言程序是由一個個的語句組成。
C語言程序使用“;”作為語句的終止符和分隔符。
C語言程序中用大括號對“{}”表示程序的結(jié)構(gòu)層次范圍。
C語言程序可以使用注釋。注釋部分的格式是:/*注釋內(nèi)容*/注釋部分不參與程序的執(zhí)行,對程序的運行結(jié)果沒有影響,只是用來提示或助記。編寫一個加法運算程序P1838什么是C語言?C程序結(jié)構(gòu)組成C程序為函數(shù)模塊結(jié)構(gòu),整個程序都是由一個或多個函數(shù)組成函數(shù)是由函數(shù)說明和函數(shù)體兩部分組成一個C程序總是從main()函數(shù)開始執(zhí)行被調(diào)用的函數(shù)可以是系統(tǒng)提供的庫函數(shù),也可以是用戶根據(jù)需要自己編制設計的函數(shù)(用戶自定義函數(shù))一個C程序可以由一個文件組成,也可以由若干個文件組成分析下面程序:#include<stdio.h>main(){
inta=1,b=5,c;c=add(a,b);
printf(“c=%d\n”,c);}
int
add(intx,inty){return(x+y);}39
C程序源程序文件1源程序文件i源程序文件n預編譯命令函數(shù)1函數(shù)n函數(shù)體函數(shù)首部C程序結(jié)構(gòu)組成什么是C語言?40什么是C語言?"標識符"每種程序語言都規(guī)定了在程序里描述名字的規(guī)則這些名字包括:變量名、常數(shù)名、數(shù)組名、函數(shù)名、文件名、類型名等,被統(tǒng)稱為"標識符"C語言標識符C語言的標識符是滿足如下條件的字符序列只能由英文字母、數(shù)字和下劃線組成必須以英文字母或下劃線開頭注意C語言對大、小寫字母嚴格區(qū)分根據(jù)ANSI標準,只有前31個字符是有意義,但一般系統(tǒng)使用的標識符,其有效長度不超過8個字符標識符不要與關鍵字同名41什么是C語言?關鍵字具有特定含義的,用作專用的標識符C語言中關鍵字絕大多數(shù)是由小寫字母構(gòu)成的字符序列注意:這些特定的關鍵字不允許用戶作為自定義的標識符使用例:指出合法的標識符與關鍵字
“ABA”S05file.c
Abc
10pageprintf
yellow_red
a&b-113_ACG
42什么是C語言?語句語句是組成程序的基本單位它能完成特定操作所有程序設計語言都提供了滿足編寫程序要求的一系列語句有確定的形式和功能C語言中的語句43C語言的開發(fā)與運行開發(fā)一個C程序,一般過程
編輯:使用一個文本編輯器將編寫好的C程序輸入計算機,并以文本文件的形式保存C語言源程序,其文件擴展名為“.C”
編譯:使用一個C語言編譯系統(tǒng)(如TurboC2.0)對C語言源程序進行語法檢查和翻譯,生成同名的“.OBJ”目標文件
鏈接:將目標文件和系統(tǒng)提供的標準庫函數(shù)等連接在一起,生成一個同名的“.EXE”可執(zhí)行文件
執(zhí)行:脫離C語言編譯系統(tǒng),可在操作系統(tǒng)下鍵入文件名直接運行44C語言的開發(fā)與運行示例使用VisualC++6.0編寫兩個數(shù)相加的程序P23案例1固體密度測量問題輸入是什么?輸出是什么?算法是什么?體積質(zhì)量密度密度公式m/v45課后作業(yè)參考書本例題1-6,1-7完成課后習題P25第5題求三個數(shù)據(jù)的和值和平均值。46二進制數(shù)與十進制轉(zhuǎn)換用2輾轉(zhuǎn)相除至結(jié)果為1
將余數(shù)和最后的1從下向上倒序?qū)懢褪墙Y(jié)果
例如302
302/2=151余0
151/2=75余1
75/2=37余1
37/2=18余1
18/2=9余0
9/2=4余1
4/2=2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度木工班組承包節(jié)能減排合同范本3篇
- 二手挖掘機買賣合同的簽訂主體資格
- 2025辦公家具定制合同
- 2025年度智能設備研發(fā)項目承擔連帶責任擔保借款合同4篇
- 二零二五年度木門行業(yè)新材料研發(fā)采購合同3篇
- 2025版出口貿(mào)易融資合同3篇
- 2025年度拆除工程合同風險評估報告模板4篇
- 2025年西瓜種植與冷鏈物流一體化承包服務合同3篇
- 2025年度寵物醫(yī)療連鎖機構(gòu)獸醫(yī)崗位競聘及培養(yǎng)計劃合同3篇
- 2025年度海洋工程承包合同補充協(xié)議(深??碧?4篇
- 廣東省佛山市2025屆高三高中教學質(zhì)量檢測 (一)化學試題(含答案)
- 人教版【初中數(shù)學】知識點總結(jié)-全面+九年級上冊數(shù)學全冊教案
- 2024年全國體育單招英語考卷和答案
- 食品安全管理制度可打印【7】
- 2024年九年級語文中考名著閱讀《儒林外史》考前練附答案
- 抖音麗人行業(yè)短視頻直播項目運營策劃方案
- 2024年江蘇揚州市邗城文化旅游發(fā)展有限公司招聘筆試參考題庫含答案解析
- 小學六年級數(shù)學100道題解分數(shù)方程
- 社區(qū)獲得性肺炎護理查房內(nèi)科
- 淺談提高中學生歷史學習興趣的策略
- 項目管理實施規(guī)劃-無錫萬象城
評論
0/150
提交評論