版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
模塊一認(rèn)識C語言程序模塊學(xué)習(xí)目標(biāo)1.熟練掌握VisualC++2010的C語言程序開發(fā)流程;2.熟練掌握C語言的基本數(shù)據(jù)類型、常量和變量、運(yùn)算符和表達(dá)式;3.理解輸入/輸出函數(shù)、順序結(jié)構(gòu)程序設(shè)計(jì)、選擇結(jié)構(gòu)程序設(shè)計(jì)和循環(huán)結(jié)構(gòu)程序設(shè)計(jì);4.初步掌握利用C語言進(jìn)行軟件開發(fā)的基本方法和步驟。程序與程序設(shè)計(jì)語言C語言程序設(shè)計(jì)的特點(diǎn)C語言程序的編輯、編輯、鏈接和運(yùn)行第一個(gè)C語言程序--“Hello,World!”算法認(rèn)識C語言程序1.1程序與程序設(shè)計(jì)語言程序是為實(shí)現(xiàn)特定目標(biāo)或解決特定問題而用計(jì)算機(jī)語言(程序設(shè)計(jì)語言)編寫的一系列語句和指令,程序的執(zhí)行過程就是執(zhí)行這些指令并實(shí)現(xiàn)其功能的過程。程序設(shè)計(jì)語言提供了數(shù)據(jù)表達(dá)與數(shù)據(jù)處理功能,編程人員必須按照程序設(shè)計(jì)語言的語法要求進(jìn)行編程。程序具有以下特點(diǎn):(1)可完成某一特定的任務(wù);(2)應(yīng)使用某種程序設(shè)計(jì)語言描述如何完成該任務(wù);(3)存儲在計(jì)算機(jī)中,并且被運(yùn)行后才能起作用。1.1程序與程序設(shè)計(jì)語言一、程序設(shè)計(jì)語言的發(fā)展第一代計(jì)算機(jī)語言——機(jī)器語言機(jī)器語言是低級語言,是機(jī)器指令的集合。它由二進(jìn)制0、1代碼指令構(gòu)成,特點(diǎn)是不需翻譯即可由計(jì)算機(jī)直接識別和解讀。用機(jī)器語言編寫的程序稱為目標(biāo)程序(ObjectProgram)。機(jī)器語言的缺點(diǎn)為:難編寫、難修改和難維護(hù),需要用戶直接對存儲空間進(jìn)行分配,編程效率極低。第二代計(jì)算機(jī)語言——匯編語言匯編語言是面向機(jī)器的程序設(shè)計(jì)語言。它用助記符代替機(jī)器指令,用地址符號或標(biāo)號代替指令或操作數(shù)的地址。匯編語言的優(yōu)點(diǎn)為:可直接訪問系統(tǒng)接口,因此由匯編程序翻譯成的機(jī)器語言程序的執(zhí)行效率較高。1.1程序與程序設(shè)計(jì)語言一、程序設(shè)計(jì)語言的發(fā)展第三代計(jì)算機(jī)語言——高級語言(1)非結(jié)構(gòu)化的語言。早期的Basic就屬于非結(jié)構(gòu)化的語言。(2)結(jié)構(gòu)化的語言。1970年,出現(xiàn)了第一個(gè)結(jié)構(gòu)化程序設(shè)計(jì)語言——Pascal語言。結(jié)構(gòu)化程序設(shè)計(jì)采用自頂向下、逐步求精的設(shè)計(jì)方法,各個(gè)模塊通過“順序、選擇和循環(huán)”的控制結(jié)構(gòu)進(jìn)行連接,并且只有一個(gè)入口和一個(gè)出口。QBasic、Pascal和C都屬于結(jié)構(gòu)化的語言。(3)面向?qū)ο蟮恼Z言。自20世紀(jì)80年代開始,提出了面向?qū)ο?ObjectOriented)的程序設(shè)計(jì)思想。面向?qū)ο笳Z言是一類以對象作為基本程序結(jié)構(gòu)單位的程序設(shè)計(jì)語言,其描述的設(shè)計(jì)是以對象為核心的,而對象是程序運(yùn)行時(shí)刻的基本成分。C++、C#和Java都屬于面向?qū)ο蟮恼Z言。1.1程序與程序設(shè)計(jì)語言二、程序設(shè)計(jì)語言的功能程序設(shè)計(jì)語言是人與計(jì)算機(jī)進(jìn)行交流的橋梁,人要讓計(jì)算機(jī)按照自己的意愿處理數(shù)據(jù),就必須用程序設(shè)計(jì)語言表達(dá)所要處理的數(shù)據(jù)以及控制數(shù)據(jù)處理的流程。因此,程序設(shè)計(jì)語言必須具有數(shù)據(jù)表達(dá)(即定義變量)與數(shù)據(jù)處理(即流程控制)的能力。1.數(shù)據(jù)表達(dá)數(shù)據(jù)是計(jì)算機(jī)處理的對象,在解決實(shí)際問題時(shí),通常會包含各種類型的數(shù)據(jù),數(shù)據(jù)類型就是對某些具有相同性質(zhì)的數(shù)據(jù)集的總稱。數(shù)據(jù)類型具有兩層含義,即該數(shù)據(jù)類型所能表示的數(shù)據(jù)(取值范圍)和對該數(shù)據(jù)類型所能進(jìn)行的操作(運(yùn)算類型)。1.1程序與程序設(shè)計(jì)語言2.流程控制計(jì)算機(jī)對數(shù)據(jù)的處理是通過程序語言的一系列流程控制語句實(shí)現(xiàn)的。按照結(jié)構(gòu)化程序設(shè)計(jì)的特征,任何程序的基本結(jié)構(gòu)都可以通過3種基本的控制結(jié)構(gòu)進(jìn)行組合來實(shí)現(xiàn)。(1)順序控制結(jié)構(gòu):一條語句執(zhí)行后,按照自上而下的自然順序執(zhí)行下一條語句。(2)選擇控制結(jié)構(gòu):計(jì)算機(jī)在執(zhí)行程序時(shí),常常需要根據(jù)不同的條件選擇執(zhí)行不同的語句。(3)循環(huán)控制結(jié)構(gòu):在滿足條件的情況下,重復(fù)執(zhí)行相同的語句。1.1程序與程序設(shè)計(jì)語言3.種基本控制結(jié)構(gòu)的共同特點(diǎn)如下:
①只有單一的入口和單一的出口;
②結(jié)構(gòu)中的每個(gè)部分都有被執(zhí)行的可能;
③結(jié)構(gòu)內(nèi)不能出現(xiàn)永不終止的死循環(huán)。
1.2C語言程序設(shè)計(jì)的特點(diǎn)
一、C語言的發(fā)展歷史1967年,劍橋大學(xué)的MartinRichards對CPL(CombinedProgrammingLanguage)語言進(jìn)行了簡化,于是產(chǎn)生了BCPL(BasicCombinedProgrammingLanguage)語言。1970年,KenThompson以BCPL語言為基礎(chǔ),設(shè)計(jì)出很簡單且很接近硬件的B語言(取BCPL的首字母)。他還用B語言寫了第一個(gè)UNIX操作系統(tǒng)。
1.2C語言程序設(shè)計(jì)的特點(diǎn)
1971年,同樣酷愛SpaceTravel游戲的美國貝爾實(shí)驗(yàn)室的DennisM.Ritchie為了能早點(diǎn)玩上游戲,加入了Thompson的開發(fā)項(xiàng)目,合作開發(fā)UNIX操作系統(tǒng)。1972年,DennisM.Ritchie在B語言的基礎(chǔ)上最終設(shè)計(jì)出了一種新的語言,他取BCPL的第二個(gè)字母作為這種語言的名字,這就是C語言。1973年,C語言的主體部分被設(shè)計(jì)完成。緊接著,Thompson和Ritchie迫不及待地用C語言完全重寫了UNIX操作系統(tǒng)。此時(shí),編程的樂趣使他們完全忘記了SpaceTravel游戲,他們一門心思地投入到了UNIX和C語言的開發(fā)中。隨著UNIX的發(fā)展,C語言自身也在不斷地完善。直到2021年,各種版本的UNIX內(nèi)核和周邊工具仍然使用C語言作為最主要的開發(fā)語言,其中還有不少代碼是繼承Thompson和Ritchie的源代碼。
1.2C語言程序設(shè)計(jì)的特點(diǎn)二、C語言的特點(diǎn)簡潔的語言具有結(jié)構(gòu)化的控制語句豐富的數(shù)據(jù)類型豐富的運(yùn)算符可對物理地址進(jìn)行直接操作代碼具有較好的可移植性可生成高質(zhì)量、目標(biāo)代碼執(zhí)行效率高的程序1.3C語言程序的編輯、編譯、鏈接和運(yùn)行
一、程序設(shè)計(jì)的步驟使用計(jì)算機(jī)解決實(shí)際問題的過程,一般由以下幾個(gè)步驟組成。1.分析問題2.設(shè)計(jì)算法3.程序設(shè)計(jì)4.運(yùn)行并調(diào)試程序5.分析程序運(yùn)行結(jié)果6.編寫程序文檔1.3C語言程序的編輯、編譯、鏈接和運(yùn)行二、運(yùn)行C程序的步驟和方法使用C語言解決實(shí)際問題,從編寫程序到上機(jī)運(yùn)行,一般要經(jīng)過編輯源程序→對源程序進(jìn)行編譯→與庫函數(shù)鏈接→運(yùn)行目標(biāo)程序等步驟,如圖1-3-1所示。
圖1-3-1程序的編輯、編譯和運(yùn)行流程1.3C語言程序的編輯、編譯、鏈接和運(yùn)行1.編輯源文件首先將編寫的C語言源程序輸入到計(jì)算機(jī)中,并以文件的形式保存起來,C語言源程序的擴(kuò)展名為.c,如hello.c。C語言源程序?yàn)槲谋疚募?,可以用文本編輯?如記事本)編輯,也可以用C編譯系統(tǒng)提供的集成開發(fā)系統(tǒng)進(jìn)行編輯。2.編譯C語言源程序編輯好后,接下來要做的是編譯。編譯程序所要做的工作就是通過詞法分析和語法分析,在確認(rèn)所有的指令都符合語法規(guī)則之后,將其翻譯成二進(jìn)制目標(biāo)程序文件。文件擴(kuò)展名為.obj,如hello.obj。1.3C語言程序的編輯、編譯、鏈接和運(yùn)行3.鏈接編譯生成目標(biāo)程序后,還要進(jìn)行鏈接。鏈接就是將目標(biāo)程序與系統(tǒng)提供的庫函數(shù)或者其他目標(biāo)程序進(jìn)行鏈接,得到最終的二進(jìn)制可執(zhí)行文件。4.運(yùn)行可執(zhí)行文件運(yùn)行后,結(jié)果會顯示在屏幕上,這時(shí)要驗(yàn)證程序的運(yùn)行結(jié)果,如果發(fā)現(xiàn)運(yùn)行結(jié)果與設(shè)計(jì)目的不相符,說明程序在設(shè)計(jì)思路或算法上出現(xiàn)了問題,還需要重新檢查源程序,找出問題并進(jìn)行修改。
1.4第一個(gè)C語言程序——“Hello,World!”一、“Hello,World!”程序
1.4第一個(gè)C語言程序——“Hello,World!”二、C語言程序的基本組成部分預(yù)處理器指令、函數(shù)、變量、語句&表達(dá)式、注釋。
1.4第一個(gè)C語言程序——“Hello,World!”1.#include稱為文件包含命令#include命令告訴預(yù)處理器將指定頭文件的內(nèi)容插入到預(yù)處理器命令的相應(yīng)位置。采用#include命令所插入的文件,通常文件擴(kuò)展名是.h,文件包括函數(shù)原型、宏定義和類型定義。只要使用#include命令,這些定義就可被任何源文件使用。有兩種方式可以指定插入頭文件:第一種:#include<文件名>第二種:#include"文件名"如果需要包含標(biāo)準(zhǔn)庫頭文件或者實(shí)現(xiàn)版本所提供的頭文件,應(yīng)該使用第一種格式。如下例所示:#include<math.h>如果需要包含針對程序所開發(fā)的源文件,則應(yīng)該使用第二種格式。如下例所示:#include"myproject.h"http://用在當(dāng)前項(xiàng)目中的函數(shù)原型、類型定義和宏
1.4第一個(gè)C語言程序——“Hello,World!”2.main函數(shù)intmain()是C語言main函數(shù)的一種聲明方式。其中int表示函數(shù)的返回值類型,表示該主函數(shù)的返回值是一個(gè)int類型的值;main表示主函數(shù),是C語言約定的程序執(zhí)行入口,其標(biāo)準(zhǔn)的定義格式為:intmain(intargc,char*argv[])在intmain()中,()中沒有數(shù)值表示參數(shù)為空,等同于intmain(void)。
1.4第一個(gè)C語言程序——“Hello,World!”三、C語言程序的結(jié)構(gòu)特點(diǎn)(1)一個(gè)C語言程序可以由一個(gè)或多個(gè)源文件組成,每個(gè)源文件可由一個(gè)或多個(gè)函數(shù)組成,函數(shù)是C語言程序的基本模塊單元,每個(gè)函數(shù)完成相對獨(dú)立的功能。(2)一個(gè)C語言程序不論由多少個(gè)源文件組成,都有一個(gè)且只能有一個(gè)main函數(shù),即主函數(shù),且程序的執(zhí)行總是從主函數(shù)開始的。(3)源程序中可以有預(yù)處理命令,預(yù)處理命令通常應(yīng)放在C語言程序或源文件的最前面。(4)每一個(gè)說明和每一個(gè)語句都必須以分號結(jié)尾。但預(yù)處理命令和函數(shù)頭之后不能加分號。(5)標(biāo)識符、關(guān)鍵字之間必須至少加一個(gè)空格以示間隔。若已有明顯的間隔符,也可以不再加空格來表示間隔。
1.4第一個(gè)C語言程序——“Hello,World!”四、書寫程序時(shí)應(yīng)遵循的規(guī)則(1)一個(gè)說明或一個(gè)語句占一行。(2)用{}括起來的部分,通常表示程序的某一層次結(jié)構(gòu)。{}一般與該結(jié)構(gòu)語句的第一個(gè)字母對齊,并單獨(dú)占一行。(3)低一層次的語句或說明應(yīng)比高一層次的語句或說明縮進(jìn)若干格,以便層次更加清晰,增加程序的可讀性。(4)C語言嚴(yán)格區(qū)分大小寫。一般用小寫字母書寫,只有符號常量或其他特殊用途的符號才使用大寫字母,所有關(guān)鍵字必須小寫,如if、else、int等。1.5算法
計(jì)算機(jī)要解決某個(gè)問題,首先必須針對該問題設(shè)計(jì)一個(gè)解題步驟,然后再據(jù)此編寫出程序并交給計(jì)算機(jī)執(zhí)行。這里所說的解題步驟就是“算法”,采用程序設(shè)計(jì)語言對問題的對象和解題步驟進(jìn)行的描述就是程序。1.5算法一、算法的特性(1)有窮性(Finiteness):算法必須在執(zhí)行有限個(gè)步驟之后終止。(2)確切性(Definiteness):算法的每一步驟必須有確切的定義。(3)輸入項(xiàng)(Input):一個(gè)算法有0個(gè)或多個(gè)輸入,以反映運(yùn)算對象的初始情況。所謂0個(gè)輸入,是指算法本身定義了初始條件。(4)輸出項(xiàng)(Output):一個(gè)算法有一個(gè)或多個(gè)輸出,以反映對輸入數(shù)據(jù)加工后的結(jié)果。沒有輸出的算法是毫無意義的。(5)可行性(Effectiveness):算法中執(zhí)行的任何計(jì)算步驟都是可以被分解為基本的可執(zhí)行的操作步驟,即每個(gè)計(jì)算步驟都可以在有限時(shí)間內(nèi)完成(也稱之為有效性)。1.5算法一、算法的描述算法的描述有多種形式:文字描述、流程圖描述、偽代碼描述和程序設(shè)計(jì)語言描述等。1.5算法1.用文字描述算法在日常生活中,人們通常采用自然語言的形式來描述一件事情的經(jīng)過。實(shí)例1-5-1:有10個(gè)兩位的正整數(shù),找出其中最大的數(shù),寫出其算法。(1)輸入第一個(gè)數(shù),放入max中;(2)用i統(tǒng)計(jì)比較的次數(shù),將其初值置為1;(3)若i≤9,轉(zhuǎn)第(4)步,否則轉(zhuǎn)第(8)步;(4)再輸入一個(gè)數(shù),放在x中;(5)比較x和max中的數(shù),若x>max,則將x的值賦給max,否則max的值不變;(6)i增加1;(7)返回到第(3)步;(8)輸出max中的數(shù),此時(shí)max中的數(shù)即為10個(gè)數(shù)中最大的數(shù)。1.5算法1.用文字描述算法實(shí)例1-5-2:寫出求兩個(gè)自然數(shù)的最大公約數(shù)的算法。本實(shí)例采用古希臘數(shù)學(xué)家歐幾里得提出的“歐幾里得算法”。該算法描述如下:(1)輸入兩個(gè)自然數(shù)a、b;(2)求a除以b的余數(shù)r;(3)若r≠0,則執(zhí)行步驟(4),否則轉(zhuǎn)第(7)步;(4)使a=b,即用b代替a;(5)使b=r,即用r代替b;(6)返回到第(2)步;(7)輸出b,b即為a和b的最大公約數(shù)。缺點(diǎn):很難“系統(tǒng)”并“精確”地表達(dá)算法,且有時(shí)敘述冗長,不容易理解。1.5算法2.用流程圖描述算法流程圖也稱框圖,傳統(tǒng)的流程圖由幾種基本圖形符號組成。它是用一些幾何框圖、流程線和文字說明來表示各種類型的操作。一般用矩形框表示處理,有一個(gè)入口和一個(gè)出口;用菱形框表示判斷,有一個(gè)入口和兩個(gè)出口;用帶箭頭的流程線表示操作的走向。在矩形框或菱形框中的文字或符號表示具體的操作?;緢D形符號如圖下圖所示。1.5算
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 設(shè)備采購合同范本15篇
- 《魯濱遜漂流記》讀后感15篇
- 《倍的認(rèn)識和有關(guān)倍的簡單實(shí)際問題》(教學(xué)實(shí)錄)-2024-2025學(xué)年三年級上冊數(shù)學(xué)蘇教版
- 2023七年級數(shù)學(xué)上冊 第4章 圖形的初步認(rèn)識4.1 生活中的立體圖形教學(xué)實(shí)錄 (新版)華東師大版
- 售后服務(wù)部年終工作總結(jié)7篇
- 物業(yè)客服個(gè)人工作計(jì)劃
- 交通工作計(jì)劃四篇
- 醫(yī)藥行業(yè)人員個(gè)人工作總結(jié)
- 轉(zhuǎn)讓協(xié)議書模板合集五篇
- 孝道演講稿范文集錦7篇
- 特殊焊接作業(yè) 安全要求
- 內(nèi)鏡下鈦夾止血治療課件
- 小學(xué)生血液知識講座課件
- DB2101 T0048-2022 超低能耗居住建筑節(jié)能設(shè)計(jì)標(biāo)準(zhǔn)
- 變壓器安裝施工工藝-課件
- 一年級語文上冊新教材教法講座培訓(xùn)課件
- 保護(hù)投退申請單、登記簿1
- 鉆孔樁鉆孔施工記錄
- 【經(jīng)典閱讀】六年級語文閱讀理解之環(huán)境描寫(知識梳理 技法點(diǎn)撥 例文分析)(含答案)
- 漢語教程我聽過鋼琴協(xié)奏曲黃河課件
- 工廠生產(chǎn)質(zhì)檢部年度工作總結(jié)精編ppt
評論
0/150
提交評論