版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第1章概述本章要點:C語言程序結(jié)構(gòu)和特點C語言程序的基本符號與關(guān)鍵字C語言程序的編輯及運行學習方法建議:學習本章內(nèi)容應(yīng)該從簡單C語言程序入手,重點掌握C語言程序的特點,C語言程序中的基本符號與關(guān)鍵字,以及編輯及運行C語言程序的簡單方法。1.1引例【例1.1】在計算機屏幕上輸出“Hello!”。源程序#include"stdio.h"/*編譯預處理命令*/voidmain(){printf("Hello!\n");/*輸出Hello!*/}【例1.2】用自定義函數(shù)求兩個數(shù)中的最大值并輸出。max(intx,inty)/*對max函數(shù)的定義*/{intz;if(x>y)z=x;elsez=y;return(z);}#include"stdio.h"/*編譯預處理命令*/voidmain(){inta,b,c;a=2;b=6;c=max(a,b);/*調(diào)用自定義函數(shù)max*/printf("max=%d\n",c);}(1)C語言程序是由函數(shù)構(gòu)成的,一個源程序可以包含若干個函數(shù),但必須有且只有一個函數(shù)為主函數(shù)main(),一個程序總是從主函數(shù)開始執(zhí)行。(2)函數(shù)可以自定義,也可以調(diào)用C語言已有的庫函數(shù)。(3)函數(shù)一般都有函數(shù)體。函數(shù)體用花括號“{}”包含,從左花括號“{”開始,到右花括號“}”結(jié)束;函數(shù)體中有定義(或說明)和執(zhí)行兩大部分語句。(4)每一語句以分號“;”結(jié)束。(5)書寫格式自由,可以在一行的任意位置書寫;一行可以寫一個語句,也可以寫多個語句。(6)注釋用“/**/”表示,它們之間的內(nèi)容為注釋部分,編譯時系統(tǒng)對注釋部分。1.1.1C語言程序的結(jié)構(gòu)
在計算機的發(fā)展過程中,開發(fā)性能卓越的操作系統(tǒng)是技術(shù)人員不斷追求的目標。在眾多的操作系統(tǒng)中,UNIX是成功中的典范。為描述和實現(xiàn)UNIX操作系統(tǒng)的需要,美國貝爾實驗室的KenThompson以BCPL語言為基礎(chǔ),于1970年開發(fā)了B語言,并用B語言編寫了UNIX操作系統(tǒng)。1972年至1973年間,貝爾實驗室的M.D.Ritchie在B語言基礎(chǔ)上設(shè)計出C語言,1973年,他和K.Thompson合作用C語言將UNIX操作系統(tǒng)90%以上的源代碼重新改寫。UNIX操作系統(tǒng)的一些主要特點,如可讀性強、易于修改、具有良好的可移植性等,在一定程度上得益于C語言,所以UNIX操作系統(tǒng)的成功與C語言是密不可分的。1.1.2C語言程序的發(fā)展史(1)語言表達能力強(2)語言簡潔(3)數(shù)據(jù)類型豐富(4)代碼執(zhí)行效率高(5)程序的可移植性好(6)C語言是一種結(jié)構(gòu)化的程序設(shè)計語言1.1.3C語言程序的特點1.2.1字符集字符集是構(gòu)成C語言的基本元素。用C語言編寫程序時,除字符型數(shù)據(jù)外,其他所有成份必須由字符集中的字符構(gòu)成。C語言的字符集由下列字符構(gòu)成:英文字母:A~Z,a~z。數(shù)字字符:0~9。特殊符號:空格!%*&^_(下劃線)+=-~<>/\'";.,()[]{}1.2C語言的基本符號與關(guān)鍵字
autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhile1.2.2關(guān)鍵字
用戶標識符即用戶根據(jù)需要自己定義的變量名、常量名、函數(shù)名、數(shù)組名等。C語言的用戶標識符必須按以下規(guī)則命名:(1)必須以英文字母或下劃線開始,并由字母、數(shù)字和下劃線組成。例如:chABC,intX,a1等都是合法的標識符,而5Str,-chabc,+intJ等則是非法的標識符。(2)每個標識符可以由多個字符組成,但只有前8個標識符為有效標識符。(3)大寫字母和小寫字母代表不同的標識符,例如:abc和ABC是兩個不同的標識符。(4)不能使用C語言的關(guān)鍵字作為用戶標識符。1.2.3用戶標識符1.2.4ASCII字符集在計算機中,所有的信息都用二進制代碼表示。二進制編碼的方式較多,應(yīng)用最為廣泛的是ASCII碼。我們使用的字符在計算機中就是以ASCII碼方式存儲的。
ASCII碼是美國標準信息交換碼(AmericanStandardCodeforInformationInterchange)。它已被國際標準化組織(ISO)認定為國際標準,詳見附錄1。1.3.1算法概念和特征算法是指為了解決某個特定問題而采用的確定且有效的步驟。計算機算法可分為兩大類:數(shù)值運算和非數(shù)值運算。數(shù)值運算的目的是求數(shù)值解,例如求方程的根、求圓的面積、求n的階乘等,都屬于數(shù)值運算。非數(shù)值運算包括的面十分廣泛,主要用于事務(wù)管理,例如人事管理、圖書管理、學籍管理等。算法有以下五個特性:1.3算法及其表示有窮性:算法包含有限個操作步驟,在執(zhí)行若干個操作之后,算法將結(jié)束。確定性:算法中的每一條指令必須有確切的含義,不能有二義性,對于相同的輸入必須能得出相同的結(jié)果。有效性:算法中的每一步都應(yīng)當有效執(zhí)行,并得到確定的結(jié)果。例如,若
b=0,則執(zhí)行a/b,是不能有效執(zhí)行的。有零個或多個輸入:計算機實現(xiàn)算法所需要的處理數(shù)據(jù),有些程序在執(zhí)行時需要通過輸入得到。而有些程序不需要輸入數(shù)據(jù)。有一個或多個輸出:算法的目的是求解(結(jié)果),結(jié)果要通過輸出得到。算法含有以下兩大要素。(1)操作:每個操作的確定不僅取決于問題的需求,還取決于它們?nèi)∽阅膫€操作集,它與使用的工具系統(tǒng)有關(guān)。計算機算法要由計算機實現(xiàn),組成它的操作集是計算機所能進行的操作。在高級語言中所描述的操作主要包括各種運算,如算術(shù)運算、關(guān)系運算、邏輯運算、函數(shù)運算、位運算和I/O操作等。計算機算法是由這些操作組成的。(2)控制結(jié)構(gòu):每一個算法都是由一系列的操作組成的。同一操作序列,不同的執(zhí)行順序,就會得出不同的結(jié)果??刂平Y(jié)構(gòu)即如何控制組成算法的各操作執(zhí)行的順序。在結(jié)構(gòu)化程序設(shè)計中,一個程序只能由三種基本控制結(jié)構(gòu)組成。這三種基本控制結(jié)構(gòu)可以組成任何結(jié)構(gòu)的算法,解決任何問題。1.3.2算法的組成要素
三種基本控制結(jié)構(gòu):順序結(jié)構(gòu):順序結(jié)構(gòu)中的語句是按書寫的順序執(zhí)行的,即語句執(zhí)行順序與書寫順序一致。選擇結(jié)構(gòu):最基本的選擇結(jié)構(gòu)是當程序執(zhí)行到某一語句時,要進行一下判斷,從兩種路徑中選擇一條。計算機的判斷能力就是通過選擇結(jié)構(gòu)實現(xiàn)的。循環(huán)結(jié)構(gòu):這種結(jié)構(gòu)是將一條或多條語句重復地執(zhí)行若干次。這種結(jié)構(gòu)充分利用了計算機速度快的優(yōu)勢,將復雜問題用循環(huán)結(jié)構(gòu)來實現(xiàn)。傳統(tǒng)流程圖由以下幾種基本框圖組成,如圖1-1所示。圖1-1傳統(tǒng)流程圖的基本符號1.3.3算法的表示【例1.3】求5!的算法用傳統(tǒng)流程圖表示。圖1-2N-S流程圖表示三種基本結(jié)構(gòu):【例1.3】求5!的算法(要求用N-S表示)?!纠?.4】求Fibonacci數(shù)列的前20個數(shù)。這個數(shù)列有如下特點,第1、2項均為1,從第3項開始,每一項是前兩項之和,即:f1=1(n=1)
f2=1(n=2)fn=fn-1+fn-2(n≥3)分析:已知f1=1,f2=1。其算法是:通過f1和f2求出下一對數(shù),即新的f1和f2(迭代)。計算公式是:f1=f1+f2;f2=f2+f1。對已給出第1對數(shù),直接輸出,只需再求出其余9對即可。1.4C語言程序的開發(fā)與運行1.4.1C語言程序的開發(fā)過程
1.編輯源程序設(shè)計好的源程序要利用程序編輯器輸入到計算機中,輸入的程序一般以文本文件的形式存放在磁盤上,文件的擴展名為.c。所用的編輯器可以是任何一種文本編輯軟件,比如像TurboC和VC++這樣的專用編輯系統(tǒng),或者是Windows系統(tǒng)提供的寫字板或字處理軟件等都可以用來編輯源程序。2.編譯源程序源程序是無法直接被計算機執(zhí)行的,因為計算機只能執(zhí)行二進制的機器指令,這就需要把源程序先翻譯成機器指令,然后計算機才能執(zhí)行翻譯好的程序,這個過程是由C語言的編譯系統(tǒng)完成的。源程序編譯之后生成的機器指令程序叫目標程序,其擴展名為.obj。3.連接程序在源程序中,輸入輸出等標準函數(shù)不是用戶自己編寫的,而是直接調(diào)用系統(tǒng)函數(shù)庫中的庫函數(shù)。因此,必須把目標程序與庫函數(shù)進行連接,才能生成擴展名為.exe的可執(zhí)行文件。4.運行程序執(zhí)行.exe文件,得到最終結(jié)果。C語言的標準已被大多數(shù)C和C++的開發(fā)環(huán)境所兼容,我們可以使用很多工具開發(fā)自己的C語言程序。下面以MicrosoftVisualC++6.0為上機平臺,介紹C程序的實現(xiàn)過程。VC++集成環(huán)境不僅支持C++程序的編譯和運行,而且也支持C語言程序的編譯和運行。通常C++集成環(huán)境約定:當源程序文件的擴展名為.c時,則為C程序,而當源程序文件的擴展名為.cpp時,則為C++程序。1.4.2MicrosoftVisualC++的集成開發(fā)環(huán)境上機實驗一、實驗目的1.熟悉MicrosoftVisualC++6.0運行環(huán)境;2.掌握C程序的基本結(jié)構(gòu)和書寫格式;3.學會運行C語言程序。1.輸入并運行例1.2程序代碼。1)運行MicrosoftVisualC++6.0應(yīng)用程序,進入MicrosoftVisualC++6.0編輯窗口。2)單擊“關(guān)閉”按鈕,選擇“文件”菜單的“新建”菜單項,打開“新建”窗口。單擊“文件”標簽,選中“C++SourceFile”,同時在右邊文件輸入框中輸入自己的文件名,如“g01.c”,在目錄框中選擇或輸入文件路徑,然后按“確定”按鈕。3)在編輯窗口輸入程序代碼。二、實驗內(nèi)容2.錯誤檢查與修改1)輸入以下源程序,參照實驗1運行并改正錯誤,注意觀察出錯信息。/*******exl.c********/#include(stdio.h);main()intc;a=23,b=2;c=a*bprintf("theresultis%d",c);}2)若將上述程序修改如下,觀察運行結(jié)果。/*******exl.c*****
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026廣東深圳南山區(qū)朗麓家園第一幼兒園招聘1人備考題庫完整答案詳解
- 2026江西九江市贛北勞動保障事務(wù)代理所招聘勞務(wù)派遣制員工22人備考題庫及一套參考答案詳解
- 2026天津市和平區(qū)選聘區(qū)管國有企業(yè)管理人員6人備考題庫及參考答案詳解
- 2025四川攀枝花市仁和區(qū)緊密型縣域醫(yī)共體招聘8人備考題庫及1套完整答案詳解
- 2025河北秦皇島市第五中學等2所學校公開招聘教師2名備考題庫(第二批)及完整答案詳解
- 2026江蘇省蘇豪控股集團派駐境外有關(guān)崗位招聘2人備考題庫及1套完整答案詳解
- 安康安康市林業(yè)局2025年事業(yè)單位招聘高層次人才筆試歷年參考題庫附帶答案詳解
- 大連大連醫(yī)科大學附屬第二醫(yī)院2025年招聘4名高層次人才(第三批)筆試歷年參考題庫附帶答案詳解
- 四川四川職業(yè)技術(shù)學院2025年下半年招聘35人筆試歷年參考題庫附帶答案詳解
- 吉林2025年吉林省省直事業(yè)單位招聘254人(2號)筆試歷年參考題庫附帶答案詳解
- 2026年中國航空傳媒有限責任公司市場化人才招聘備考題庫有答案詳解
- 2026年《全科》住院醫(yī)師規(guī)范化培訓結(jié)業(yè)理論考試題庫及答案
- 2026北京大興初二上學期期末語文試卷和答案
- 重力式擋土墻施工安全措施
- 葫蘆島事業(yè)單位筆試真題2025年附答案
- 2026年公平競爭審查知識競賽考試題庫及答案(一)
- 置業(yè)顧問2025年度工作總結(jié)及2026年工作計劃
- 金華市軌道交通控股集團有限公司招聘筆試題庫2026
- 2025年國考科技部英文面試題庫及答案
- 2026年AI輔助教學設(shè)計工具應(yīng)用指南與課程優(yōu)化技巧
- 2026屆陜西省西安市高新一中化學高二上期末聯(lián)考試題含答案
評論
0/150
提交評論