




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
智能小車C語言程序控制秦磊
梁爽
主編第三章:初識C語言3.1PARTONE概述程序設(shè)計是開發(fā)人員通過編寫計算機軟件程序來解決某種特定問題的過程,而程序設(shè)計語言就是開發(fā)人員在編寫程序時所使用的,用來描述程序執(zhí)行過程中的指令、規(guī)則的符號集合,通常包含語法、語義和語用等方面的內(nèi)容。自20世紀(jì)60年代以來,程序設(shè)計語言一直在不斷地發(fā)展迭代,產(chǎn)生了第一代機器語言、第二代匯編語言、第三代高級語言等。其中,C語言作為第三代高級語言中應(yīng)用最廣泛的語言之一,具有功能豐富、表達能力強、有豐富的運算符和數(shù)據(jù)類型、使用靈活方便、應(yīng)用面廣、移植能力強、編譯質(zhì)量高、目標(biāo)程序執(zhí)行效率高等優(yōu)點。同時,C語言還具有低級語言的許多特點,如允許直接訪問物理地址,能進行位操作,能實現(xiàn)匯編語言的大部分功能,可以直接對硬件進行操作等。用C語言編譯程序產(chǎn)生的目標(biāo)程序,其質(zhì)量可以與匯編語言產(chǎn)生的目標(biāo)程序相媲美,因此C語言具有“可移植的匯編語言”的美稱,成為編寫應(yīng)用軟件、操作系統(tǒng)和編譯程序的重要語言之一。3.1概述3.2PARTTWOC語言的產(chǎn)生和發(fā)展C語言集高級語言和匯編語言的優(yōu)勢于一身,能夠滿足系統(tǒng)軟件和應(yīng)用軟件兩方面的應(yīng)用需求。C語言的原型是ALGOL60語言,即A語言。1963年,劍橋大學(xué)將ALGOL60語言發(fā)展成為組合程序設(shè)計語言(CombinedProgrammingLanguage,CPL),并于1967年對其進行簡化,形成了BCPL。接著,美國貝爾實驗室的KenThompson在1970年對BCPL進行了修改,將其命名為“B語言”,并用B語言寫出了第一個UNIX操作系統(tǒng)。1973年,美國貝爾實驗室的DennisM.Ritchie在B語言的基礎(chǔ)上設(shè)計出了一種新的語言,他將BCPL的第二個字母作為這種語言的名字,這就是C語言。為了推廣UNIX操作系統(tǒng),DennisM.Ritchie在1977年發(fā)表了不依賴具體機器系統(tǒng)的C語言編譯文本《可移植的C語言編譯程序》。1978年,BrianW.Kernighian和DennisM.Ritchie出版了著名的《C程序設(shè)計語言》(TheCProgrammingLanguage),奠定了C語言作為目前最高級的程序設(shè)計語言的地位。3.2C語言的產(chǎn)生和發(fā)展1987年,隨著微型計算機的日益普及,出現(xiàn)了多種C語言版本。由于沒有統(tǒng)一的標(biāo)準(zhǔn),各種版本之間存在很大差異。為了改變這種情況,美國國家標(biāo)準(zhǔn)研究所(ANSI)為C語言制定了一套ANSI標(biāo)準(zhǔn),后來成為現(xiàn)行的C語言標(biāo)準(zhǔn)。1990年,國際標(biāo)準(zhǔn)化組織(ISO)接受ANSIC為ISOC的標(biāo)準(zhǔn)(ISO9899—1990)。1994年,ISO修訂了C語言的標(biāo)準(zhǔn)。目前流行的C語言編譯系統(tǒng)大多是以ANSIC為基礎(chǔ)開發(fā)的,但不同版本的C語言編譯系統(tǒng)所實現(xiàn)的語言功能和語法規(guī)則略有差別。C語言被稱為“編程之本”,很多人的編程之路都是從C語言開始的。C語言在現(xiàn)今社會的各個領(lǐng)域應(yīng)用十分廣泛,如大數(shù)據(jù)、云計算、人工智能等。C語言不僅適用于各大主流操作系統(tǒng)(如Windows、Linux、UNIX等),在一些主流開發(fā)框架(如TensorFlow、Bitcoin和OpenGL等)和一些主流服務(wù)器(如Nginx、ApacheTomcat7等)中也有很廣泛的應(yīng)用。3.2C語言的產(chǎn)生和發(fā)展3.3PARTTHREEC語言的特點C語言作為目前最流行的編程語言之一,能夠滿足不同系統(tǒng)軟件與應(yīng)用軟件的要求。C語言有以下幾個特點。(1)C語言簡潔、緊湊,使用靈活方便。C語言共有32個關(guān)鍵字和9種控制語句,程序書寫自由,大部分用小寫字母表示。它不僅能夠?qū)崿F(xiàn)高級語言的基本結(jié)構(gòu),也能達到低級語言對實用性的要求。(2)運算符豐富。C語言共有34個運算符,使得C語言中的運算類型豐富、表達形式多樣化,能夠完成各種復(fù)雜運算。(3)數(shù)據(jù)類型豐富。3.3C語言的特點C語言作為目前最流行的編程語言之一,能夠滿足不同系統(tǒng)軟件與應(yīng)用軟件的要求。C語言有以下幾個特點。(1)C語言簡潔、緊湊,使用靈活方便。C語言共有32個關(guān)鍵字和9種控制語句,程序書寫自由,大部分用小寫字母表示。它不僅能夠?qū)崿F(xiàn)高級語言的基本結(jié)構(gòu),也能達到低級語言對實用性的要求。(2)運算符豐富。C語言共有34個運算符,使得C語言中的運算類型豐富、表達形式多樣化,能夠完成各種復(fù)雜運算。(3)數(shù)據(jù)類型豐富。C語言中的數(shù)據(jù)類型有整型、實型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型等,能實現(xiàn)各種復(fù)雜數(shù)據(jù)類型的運算。C語言引入了指針概念,使程序執(zhí)行效率更高。(4)C語言具有結(jié)構(gòu)化的控制語句,可實現(xiàn)程序設(shè)計結(jié)構(gòu)化、模塊化。C語言能夠做到代碼和數(shù)據(jù)分段隔離,程序的各個部分除必要的信息交換外彼此互不影響,使得程序?qū)哟吻逦?,便于使用、維護及調(diào)試。另外,C語言中提供了大量函數(shù),這些函數(shù)可方便地調(diào)用。C語言中還提供了多種循環(huán)、條件語句控制程序流向,可實現(xiàn)程序設(shè)計結(jié)構(gòu)化。3.3C語言的特點C語言作為目前最流行的編程語言之一,能夠滿足不同系統(tǒng)軟件與應(yīng)用軟件的要求。C語言有以下幾個特點。(5)C語言語法限制不太嚴(yán)格,程序設(shè)計自由度大。一般的高級語言語法檢查比較嚴(yán)格,能夠檢查出幾乎所有的語法錯誤。而C語言賦予程序編寫者較大的自由度,一行可以寫多條語句,變量類型使用靈活。(6)C語言允許直接訪問物理地址,可直接操作硬件。C語言既具有高級語言的功能,又具有低級語言的許多功能,能夠像匯編語言一樣對位、字節(jié)和地址進行操作,而這三者是計算機最基本的工作單元,可以用來編寫系統(tǒng)軟件。(7)目標(biāo)代碼質(zhì)量高,代碼量小。程序執(zhí)行效率高,執(zhí)行速度快,功能強大。(8)可移植性好??梢浦残允侵敢环N軟件在不同種類的計算機系統(tǒng)上運行的可能性,C語言適用于多種不同的操作系統(tǒng),如DOS、UNIX、Windows等。總而言之,C語言既有高級語言的特點,又有匯編語言的特點;既是一個成功的系統(tǒng)設(shè)計語言,又是一個實用的程序設(shè)計語言;既能用來編寫不依賴計算機硬件的應(yīng)用程序,又能用來編寫各種系統(tǒng)程序。3.3C語言的特點3.4PARTFOURC語言的基本框架1.C語言的基本元素一個C語言程序是由若干語句構(gòu)成的,語句又是由若干字符構(gòu)成的,字符是C語言中最基本的元素。1)基本字符集字母:26個小寫字母a~z,26個大寫字母A~Z。數(shù)字:10個阿拉伯?dāng)?shù)字0~9。空白符:包括空格符、制表符、換行符等??瞻追挥迷谧址A亢妥址A恐?,目的是提高程序的可讀性。標(biāo)點符號和特殊字符:C語言中有28個標(biāo)點符號和特殊字符。2)標(biāo)識符標(biāo)識符是用來標(biāo)識常量名、變量名、函數(shù)名及文件名等的字符序列。使用時應(yīng)滿足以下條件:標(biāo)識符應(yīng)以字母或下畫線開頭。標(biāo)識符只能由字母、數(shù)字、下畫線組成。3.4C語言的基本框架1.C語言的基本元素3)關(guān)鍵字關(guān)鍵字是C語言中有固定含義的標(biāo)識符,又稱保留字,例如:數(shù)據(jù)類型:int、double等。語句種類:if、for等。程序元素的其他性質(zhì):define、static等。注意:關(guān)鍵字必須小寫。例如,else與ELSE代表不同含義,else是關(guān)鍵字,ELSE是普通標(biāo)識符。4)運算符運算符用于對對象進行系統(tǒng)預(yù)定義的運算,并得到運算結(jié)果。運算符通常由1個或2個字符組成,如“+”表示加法運算,“=”表示賦值運算,“==”表示相等的判斷等。5)分隔符分隔符用于表示程序中一個實體的結(jié)束和另一個實體的開始。常用的分隔符有括號、逗號、分號等。分隔符沒有具體含義,只是對程序結(jié)構(gòu)進行劃分。3.4C語言的基本框架1.C語言的基本元素6)注釋注釋用于對程序進行說明,注釋內(nèi)容可以有一行或多行,可以放在程序開頭,也可以放在程序末尾。注釋的一般形式如下:/*注釋內(nèi)容*//*一行或多行注釋*///注釋當(dāng)前行7)標(biāo)準(zhǔn)標(biāo)識符標(biāo)準(zhǔn)標(biāo)識符是C語言中被賦予特定意義的標(biāo)識符。例如:printf:格式化輸出庫函數(shù)的函數(shù)名。scanf:格式化輸入庫函數(shù)的函數(shù)名。INT_MAX:整數(shù)類型的最大數(shù)據(jù)。8)控制語句C語言中有9種控制語句,用小寫字母書寫,作用是壓縮不必要的語句內(nèi)容。3.4C語言的基本框架1.C語言的基本元素6)注釋注釋用于對程序進行說明,注釋內(nèi)容可以有一行或多行,可以放在程序開頭,也可以放在程序末尾。注釋的一般形式如下:/*注釋內(nèi)容*//*一行或多行注釋*///注釋當(dāng)前行7)標(biāo)準(zhǔn)標(biāo)識符標(biāo)準(zhǔn)標(biāo)識符是C語言中被賦予特定意義的標(biāo)識符。例如:printf:格式化輸出庫函數(shù)的函數(shù)名。scanf:格式化輸入庫函數(shù)的函數(shù)名。INT_MAX:整數(shù)類型的最大數(shù)據(jù)。8)控制語句C語言中有9種控制語句,用小寫字母書寫,作用是壓縮不必要的語句內(nèi)容。3.4C語言的基本框架2.C語言程序結(jié)構(gòu)C語言通過一個或多個函數(shù)來實現(xiàn)程序功能,函數(shù)是C語言的基本組成部分。C語言程序中必有一個主函數(shù)main(),它是每個程序執(zhí)行過程的起始位置。(1)C語言程序中包含3種函數(shù)。
main():主函數(shù),每個C語言程序有且僅有一個主函數(shù)。系統(tǒng)提供的庫函數(shù),如printf()、scanf()等。程序員自行設(shè)置的函數(shù),如max()。(2)一個完整的函數(shù)主要由以下兩部分組成。函數(shù)首部(函數(shù)頭),包括函數(shù)名、函數(shù)類型(返回值類型)、函數(shù)屬性、形式參數(shù)名、形式參數(shù)類型等。函數(shù)體,即大括號中的部分。函數(shù)體中包含變量定義部分和執(zhí)行部分。3.4C語言的基本框架2.C語言程序結(jié)構(gòu)下面以主函數(shù)為例說明函數(shù)的結(jié)構(gòu):main() //函數(shù)首部,指定函數(shù)名、函數(shù)參數(shù)等信息{ //函數(shù)體的開始
//函數(shù)體內(nèi)的語句} //函數(shù)體的結(jié)束(3)程序中的每條語句均以分號結(jié)束。例如:c=a+b;(4)C語言程序書寫格式自由,一條語句可以占多行,一行也可以有多條語句。(5)C語言程序從主函數(shù)開始執(zhí)行,隨著主函數(shù)的結(jié)束而結(jié)束,其他函數(shù)通過函數(shù)嵌套來執(zhí)行。(6)C語言程序用函數(shù)進行輸入和輸出。3.4C語言的基本框架3.5PARTFIVEC語言程序設(shè)計過程C語言程序設(shè)計過程主要包含以下幾個步驟。(1)需求分析:通過分析用戶的特定需求,找到解決問題的方法。(2)算法設(shè)計:給出解決問題的具體算法與實施步驟。(3)編寫程序:將算法翻譯成計算機程序設(shè)計語言,對源程序進行編輯、編譯和鏈接。(4)運行和調(diào)試程序:運行可執(zhí)行程序,得到運行結(jié)果,并對運行結(jié)果進行分析。若結(jié)果不合理,則需要對程序進行調(diào)試,以排除程序中的錯誤。(5)編寫程序文檔:程序調(diào)試完成后,須向用戶提供程序說明書,包括程序名稱、程序功能、執(zhí)行環(huán)境、注意事項等。3.5C語言程序設(shè)計過程C語言程序要經(jīng)過編輯、編譯、鏈接和運行等環(huán)節(jié)才能實現(xiàn)具體功能。具體實現(xiàn)過程如圖所示。3.5C語言程序設(shè)計過程(1)編輯源程序。在IDE的相關(guān)程序編輯器中完成對原始代碼的編輯,輸入的語句一般以文本形式存儲在計算機中,文件擴展名為.c。其中,編輯器可以是ArduinoIDE和Dev-C++等自帶的文本編輯器,也可以是Windows操作系統(tǒng)提供的“寫字板”或各種字符處理軟件等。(2)編譯源程序。寫好的原始代碼是無法直接被計算機執(zhí)行的,計算機只能執(zhí)行0和1的機器指令,因此需要將源程序翻譯成機器指令,這個過程稱為源程序的編譯過程。源程序編譯之后生成的機器指令程序稱為目標(biāo)程序,其文件擴展名為.obj。(3)鏈接程序。在源程序中使用的標(biāo)準(zhǔn)函數(shù),如scanf()、printf()等,是從系統(tǒng)函數(shù)庫中調(diào)用的庫函數(shù)。因此,必須將目標(biāo)程序與庫函數(shù)進行鏈接,才能生成擴展名為.exe的可執(zhí)行程序文件。(4)運行程序。執(zhí)行.exe文件,得到最終結(jié)果。3.5C語言程序設(shè)計過程3.6PARTSIX編寫簡單的C語言程序【例3-6-1】第一個程序“Hello,World!”行業(yè)PPT模板/hangye/#include<stdio.h>intmain(){printf("Hello,World!\n");}程序運行結(jié)果如圖所示。行業(yè)PPT模板/hangye/
小貼士(1)C程序一般用小寫字母書寫。(2)每個C程序有且僅有一個主函數(shù)。(3)程序體必須放在一對大括號中。(4)每條語句的結(jié)尾處必須有分號。(5)printf()函數(shù)的功能是顯示程序運行結(jié)果。(6)“\n”是換行符,即回車換行。(7)“#include”是文件包含命令,屬于預(yù)處理命令,通常放在主函數(shù)之前,用于將有關(guān)的頭文件包含到用戶源文件中。被包含的文件通常是由系統(tǒng)提供的,其擴展名為.h。“stdio.h”為標(biāo)準(zhǔn)輸入/輸出庫文件,其內(nèi)定義了printf()函數(shù)的原型?!纠?-6-2】求兩個整數(shù)中的大數(shù)行業(yè)PPT模板/hangye/#include<stdio.h>intmax(intx,inty){ intz; if(x>y)z=x;elsez=y; return(z);}main(){ inta,b,c; printf("請輸入兩個整數(shù):");scanf("%d,%d",&a,&b); c=max(a,b); printf("%d,%d中的大數(shù)為:%d\n\n\n",a,b,c);}程序運行結(jié)果如圖所示。行業(yè)PPT模板/hangye/
小貼士(1)本程序的功能是輸入兩個整數(shù),輸出其中較大的數(shù)。(2)本程序由兩個函數(shù)模塊組成:主函數(shù)main()和子函數(shù)max()。子函數(shù)max()是一個用戶自定義函數(shù),功能是比較兩個數(shù)的大小,然后把較大的數(shù)返回給主函數(shù)。(3)標(biāo)準(zhǔn)庫函數(shù)由系統(tǒng)定義,用戶在程序中直接調(diào)用即可,比如程序中的輸入/輸出函數(shù)scanf()和printf()。與標(biāo)準(zhǔn)庫函數(shù)不同,自定義函數(shù)由用戶定義,定義好后就可以像標(biāo)準(zhǔn)庫函數(shù)一樣使用。(4)本程序從main()函數(shù)開始執(zhí)行,執(zhí)行到語句“c=max(a,b);”時轉(zhuǎn)到max()函數(shù),遇到return語句返回主函數(shù)繼續(xù)執(zhí)行,直到程序結(jié)束。(5)本程序的執(zhí)行過程如下:首先在屏幕上顯示提示字符串,請用戶輸入兩個數(shù),回車后由scanf()函數(shù)語句接收這兩個數(shù),并送入變量a和b中,然后調(diào)用max()函數(shù),把a和b的值傳給max()函數(shù)的參數(shù)x和y,在max()函數(shù)中比較x和y的大小,把大者通過中間變量返回給主函數(shù)中的變量c,最后在屏幕上輸出c的值?!?/p>
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)村建私房合同范本
- Module1Unit 2 I feel nervous when I speak Chinese.教學(xué)設(shè)計- 2024-2025學(xué)年外研版英語八年級下冊
- 專家工作合同范本模板
- 公寓購房合同范本
- 保潔人員勞務(wù)合同范本
- 刺繡行業(yè)雇工合同范本
- 分公司設(shè)立合同范本
- 農(nóng)戶銷售果樹合同范本
- 農(nóng)用農(nóng)機出售合同范本
- 保險條款合同范本
- 焊工(初級)考試題庫及答案
- 2024年云南省中考物理試題含答案
- 外來施工人員安全培訓(xùn)考核試卷
- Module1Unit1Welivedinasmallhouse (教案) 英語五年級下冊
- 公共建筑能源費用托管型合同能源管理服務(wù)規(guī)范(TCECA-G 0223-2023)
- 2024年老年急危重癥容量管理急診專家共識
- 人教鄂教版四年級下冊科學(xué)全冊練習(xí)帶答案(一課一練)
- 小區(qū)物業(yè)服務(wù)投標(biāo)方案(技術(shù)方案)
- 《導(dǎo)游基礎(chǔ)知識》課件-第二章 中國民族民俗
- 2024年全國職業(yè)院校技能大賽高職組(建筑裝飾數(shù)字化施工賽項)備賽試題庫(含答案)
- 2024年單招職業(yè)技能測試題庫及參考答案(基礎(chǔ)題)
評論
0/150
提交評論