下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、源程序的結(jié)構(gòu)特點(diǎn) 為了說明語(yǔ)言源程序結(jié)構(gòu)的特點(diǎn),先看以下幾個(gè)程序。這幾個(gè)程 序由簡(jiǎn)到難,表現(xiàn)了語(yǔ)言源程序在組成結(jié)構(gòu)上的特點(diǎn)。雖然有關(guān)內(nèi)容還未介紹,但可從這些例子中了解到組成一個(gè)C源程序的基本部分和書寫格式。 main() printf("c語(yǔ)言世界,您好!n"); main是主函數(shù)的函數(shù)名,表示這是一個(gè)主函數(shù)。每一個(gè)C源程序都必須有,且只能有一個(gè)主函數(shù)(main函數(shù))。函數(shù)調(diào)用語(yǔ)句,printf函數(shù)的功能是把要輸出的內(nèi)容送到顯示器去顯示。printf函數(shù)是一個(gè)由系統(tǒng)定義的標(biāo)準(zhǔn)函數(shù),可在程序中直接調(diào)用。 #include "stdio.h"
2、#include "math.h" main() double x,s; printf("input number:n"); scanf("%lf",&x); s=sin(x); printf("sine of %lf is %lfn",x,s); 每行注釋 include稱為文件包含命令擴(kuò)展名為.h的文件也稱為頭文件或首部文件 定義兩個(gè)實(shí)數(shù)變量,以被后面程序使用 顯示提示信息 從鍵盤獲得一個(gè)實(shí)數(shù)x 求x的正弦,并把它賦給變量s 顯示程序
3、運(yùn)算結(jié)果 main函數(shù)結(jié)束 程序的功能是從鍵盤輸入一個(gè)數(shù)x,求x的正弦值,然后輸出結(jié)果。在main()之前的兩行稱為預(yù)處理命令(詳見后面)。預(yù)處理命令還有其它幾種,這里的include 稱為文件包含命令,其意義是把尖括號(hào)""或引號(hào)<>內(nèi)指定的文件包含到本程序來,成為本程序的一部分。被包含的文件通常是由系統(tǒng)提供的,其擴(kuò)展名為.h。因此也稱為頭文件或首部文件。語(yǔ)言的頭文件中包括了各個(gè)標(biāo)準(zhǔn)庫(kù)函數(shù)的函數(shù)原型。因此,凡是在程序中調(diào)用一個(gè)庫(kù)函數(shù)時(shí),都必須包含該函數(shù)原型所在的頭文件。在本例中,使用了三個(gè)庫(kù)函數(shù):輸入函數(shù)scanf,正弦函數(shù)sin,輸出函數(shù)printf。sin函
4、數(shù)是數(shù)學(xué)函數(shù),其頭文件為math.h文件,因此在程序的主函數(shù)前用include命令包含了math.h。scanf和printf是標(biāo)準(zhǔn)輸入輸出函數(shù),其頭文件為stdio.h,在主函數(shù)前也用include命令包含了stdio.h文件。 需要說明的是,C語(yǔ)言規(guī)定對(duì)scanf和printf這兩個(gè)函數(shù)可以省去對(duì)其頭文件的包含命令。所以在本例中也可以刪去第二行的包含命令#include。同樣,在例1.1中使用了printf函數(shù),也省略了包含命令。 在例題中的主函數(shù)體中又分為兩部分,一部分為說明部分,另一部分執(zhí)行部分。說明是指變量的類型說明。例題中未使用任何變量,因此無說明部分。語(yǔ)言規(guī)定,源程序中所有用到的
5、變量都必須先說明,后使用,否則將會(huì)出錯(cuò)。這一點(diǎn)是編譯型高級(jí)程序設(shè)計(jì)語(yǔ)言的一個(gè)特點(diǎn),與解釋型的BASIC語(yǔ)言是不同的。說明部分是C源程序結(jié)構(gòu)中很重要的組成部分。本例中使用了兩個(gè)變量x,s,用來表示輸入的自變量和sin函數(shù)值。由于sin函數(shù)要求這兩個(gè)量必須是雙精度浮點(diǎn)型,故用類型說明符double來說明這兩個(gè)變量。說明部分后的四行為執(zhí)行部分或稱為執(zhí)行語(yǔ)句部分,用以完成程序的功能。執(zhí)行部分的第一行是輸出語(yǔ)句,調(diào)用printf函數(shù)在顯示器上輸出提示字符串,請(qǐng)操作人員輸入自變量x的值。第二行為輸入語(yǔ)句,調(diào)用scanf函數(shù),接受鍵盤上輸入的數(shù)并存入變量x中。第三行是調(diào)用sin函數(shù)并把函數(shù)值送到變量s中。第
6、四行是用printf 函數(shù)輸出變量s的值,即x的正弦值。程序結(jié)束。 printf("input number:n"); scanf("%lf",C10F10&x); s=sin(x); printf("sine of %lf is %lfn",C10F10x,s); 運(yùn)行本程序時(shí),首先在顯示器屏幕上給出提示串input number,這是由執(zhí)行部分的第一行完成的。用戶在提示下從鍵盤上鍵入某一數(shù),如5,按下回車鍵,接著在屏幕上給出計(jì)算結(jié)果。 輸入和輸出函數(shù) 在前兩個(gè)例子中用到了輸入和輸出函數(shù)scanf和 printf,在第三章中
7、我們要詳細(xì)介紹。這里我們先簡(jiǎn)單介紹一下它們的格式,以便下面使用。scanf和 printf這兩個(gè)函數(shù)分別稱為格式輸入函數(shù)和格式輸出函數(shù)。其意義是按指定的格式輸入輸出值。因此,這兩個(gè)函數(shù)在括號(hào)中的參數(shù)表都由以下兩部分組成:“格式控制串”,參數(shù)表 格式控制串是一個(gè)字符串,必須用雙引號(hào)括起來,它表示了輸入輸出量的數(shù)據(jù)類型。各種類型的格式表示法可參閱第三章。在printf函數(shù)中還可以在格式控制串內(nèi)出現(xiàn)非格式控制字符,這時(shí)在顯示屏幕上將原文照印。參數(shù)表中給出了輸入或輸出的量。當(dāng)有多個(gè)量時(shí),用逗號(hào)間隔。例如: printf("sine of %lf is %lfn",x,s); 其中%
8、lf為格式字符,表示按雙精度浮點(diǎn)數(shù)處理。它在格式串中兩次現(xiàn),對(duì)應(yīng)了x和s兩個(gè)變量。其余字符為非格式字符則照原樣輸出在屏幕上 int max(int a,int b); main() int x,y,z; printf("input two numbers:n"); scanf("%d%d",&x,&y); z=max(x,y); printf("maxmum=%d",z); int max(int a,int b) if(a>b)
9、return a; else return b; 此函數(shù)的功能是輸入兩個(gè)整數(shù),輸出其中的大數(shù)。 /*函數(shù)說明*/ /*主函數(shù)*/ /*變量說明*/ /*輸入x,y值*/ /*調(diào)用max函數(shù)*/ /*輸出*/ /*定義max函數(shù)*/ /*把結(jié)果返回主調(diào)函數(shù)*/ 上面例中程序的功能是由用戶輸入兩個(gè)整數(shù),程序執(zhí)行后輸出其中較大的數(shù)。本程序由兩個(gè)函數(shù)組成,主函數(shù)和max 函數(shù)。函數(shù)之間是并列關(guān)系??蓮闹骱瘮?shù)中調(diào)用其它函數(shù)。max 函數(shù)的功能是比較兩個(gè)數(shù),然后把較大的數(shù)返回給主函數(shù)。max 函數(shù)是一個(gè)用戶自定義函數(shù)。因此在主函數(shù)中要給出說明(程序第三行)??梢?,在程
10、序的說明部分中,不僅可以有變量說明,還可以有函數(shù)說明。關(guān)于函數(shù)的詳細(xì)內(nèi)容將在第五章介紹。在程序的每行后用/*和*/括起來的內(nèi)容為注釋部分,程序不執(zhí)行注釋部分。 上例中程序的執(zhí)行過程是,首先在屏幕上顯示提示串,請(qǐng)用戶輸入兩個(gè)數(shù),回車后由scanf函數(shù)語(yǔ)句接收這兩個(gè)數(shù)送入變量x,y中,然后調(diào)用max函數(shù),并把x,y 的值傳送給max函數(shù)的參數(shù)a,b。在max函數(shù)中比較a,b的大小,把大者返回給主函數(shù)的變量z,最后在屏幕上輸出z的值。 源程序的結(jié)構(gòu)特點(diǎn) 1.一個(gè)語(yǔ)言源程序可以由一個(gè)或多個(gè)源文件組成。 2.每個(gè)源文件可由一個(gè)或多個(gè)函數(shù)組成。 3.一個(gè)源程序不論由多少個(gè)文件組成,都有一個(gè)且只能有一個(gè)ma
11、in函數(shù),即主函數(shù)。 4.源程序中可以有預(yù)處理命令(include 命令僅為其中的一種),預(yù)處理命令通常應(yīng)放在源文件或源程序的最前面。 5.每一個(gè)說明,每一個(gè)語(yǔ)句都必須以分號(hào)結(jié)尾。但預(yù)處理命令,函數(shù)頭和花括號(hào)“”之后不能加分號(hào)。 6.標(biāo)識(shí)符,關(guān)鍵字之間必須至少加一個(gè)空格以示間隔。若已有明顯的間隔符,也可不再加空格來間隔。 書寫程序時(shí)應(yīng)遵循的規(guī)則 從書寫清晰,便于閱讀,理解,維護(hù)的角度出發(fā),在書寫程序時(shí) 應(yīng)遵循以下規(guī)則: 1.一個(gè)說明或一個(gè)語(yǔ)句占一行。 2.用 括起來的部分,通常表示了程序的某一層次結(jié)構(gòu)。一般與該結(jié)構(gòu)語(yǔ)句的第一個(gè)字母對(duì)齊,并單獨(dú)占一行。 3.低一層次的語(yǔ)句或說明可比高一層次的語(yǔ)句
12、或說明縮進(jìn)若干格后書寫。以便看起來更加清晰,增加程序的可讀性。在編程時(shí)應(yīng)力求遵循這些規(guī)則,以養(yǎng)成良好的編程風(fēng)格。 語(yǔ)言的字符集 字符是組成語(yǔ)言的最基本的元素。語(yǔ)言字符集由字母,數(shù)字,空格,標(biāo)點(diǎn)和特殊字符組成。在字符常量,字符串常量和注釋中還可以使用漢字或其它可表示的圖形符號(hào)。 1.字母小寫字母az共26個(gè),大寫字母AZ共26個(gè) 2.數(shù)字09共10個(gè) 3.空白符空格符、制表符、換行符等統(tǒng)稱為空白符??瞻追辉谧址A亢妥址A恐衅鹱饔?。在其它地方出現(xiàn)時(shí),只起間隔作用, 編譯程序?qū)λ鼈兒雎?。因此在程序中使用空白符與否,對(duì)程序的編譯不發(fā)生影響,但在程序中適當(dāng)?shù)牡胤绞褂每瞻追麑⒃黾映绦虻那逦院涂勺x
13、性。 4.標(biāo)點(diǎn)和特殊字符 語(yǔ)言詞匯 在語(yǔ)言中使用的詞匯分為六類:標(biāo)識(shí)符,關(guān)鍵字,運(yùn)算符,分隔符,常量,注釋符等。1.標(biāo)識(shí)符 在程序中使用的變量名、函數(shù)名、標(biāo)號(hào)等統(tǒng)稱為標(biāo)識(shí)符。除庫(kù)函數(shù)的函數(shù)名由系統(tǒng)定義外,其余都由用戶自定義。C 規(guī)定,標(biāo)識(shí)符只能是字母(AZ,az)、數(shù)字(09)、下劃線()組成的字符串,并且其第一個(gè)字符必須是字母或下劃線。 以下標(biāo)識(shí)符是合法的: a,x,_3x,BOOK_1,sum5 以下標(biāo)識(shí)符是非法的: 3s 以數(shù)字開頭 s*T 出現(xiàn)非法字符* -3x 以減號(hào)開頭 bowy-1 出現(xiàn)非法字符-(減號(hào)) 在使用標(biāo)識(shí)符時(shí)還必須注意以下幾點(diǎn): (1)標(biāo)準(zhǔn)C不限制標(biāo)識(shí)符的長(zhǎng)度,但它受
14、各種版本的C 語(yǔ)言編譯系統(tǒng)限制,同時(shí)也受到具體機(jī)器的限制。例如在某版本C 中規(guī)定標(biāo)識(shí)符前八位有效,當(dāng)兩個(gè)標(biāo)識(shí)符前八位相同時(shí),則被認(rèn)為是同一個(gè)標(biāo)識(shí)符。 (2)在標(biāo)識(shí)符中,大小寫是有區(qū)別的。例如BOOK和book 是兩個(gè)不同的標(biāo)識(shí)符。 (3)標(biāo)識(shí)符雖然可由程序員隨意定義,但標(biāo)識(shí)符是用于標(biāo)識(shí)某個(gè)量的符號(hào)。因此,命名應(yīng)盡量有相應(yīng)的意義,以便閱讀理解,作到“顧名思義”。 2.關(guān)鍵字 關(guān)鍵字是由語(yǔ)言規(guī)定的具有特定意義的字符串,通常也稱為保留字。用戶定義的標(biāo)識(shí)符不應(yīng)與關(guān)鍵字相同。語(yǔ)言的關(guān)鍵字分為以下幾類: (1)類型說明符 用于定義、說明變量、函數(shù)或其它數(shù)據(jù)結(jié)構(gòu)的類型。如前面例題中用到的int,double等 (2)語(yǔ)句定義符 用于表示一個(gè)語(yǔ)句的功能。如例1.3中用到的if else就是條件語(yǔ)句的語(yǔ)句定義符。 (3)預(yù)處理命令字 用于表示一個(gè)預(yù)處理命令。如前面各例中用到的include。 3.運(yùn)算符 語(yǔ)言中含有相當(dāng)豐富的運(yùn)算符。運(yùn)算符與變量,函數(shù)一起組成表達(dá)式,表示各種運(yùn)算功能。運(yùn)算符由一個(gè)或多個(gè)字符組成。 4.分隔符 在語(yǔ)言中采用的分隔符有逗號(hào)和空格兩種。逗號(hào)主要用在類型說明和函數(shù)參數(shù)表中,分隔各個(gè)變量??崭穸嘤糜谡Z(yǔ)句各單詞之間,作間隔符。在關(guān)鍵字,標(biāo)識(shí)符之間必須要有一個(gè)以上的空格符作間隔, 否則將會(huì)出現(xiàn)語(yǔ)法錯(cuò)誤,例如把int a;寫成 inta;C編譯器會(huì)把i
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個(gè)人心理咨詢與輔導(dǎo)服務(wù)合同3篇
- 2025年度林業(yè)權(quán)屬林權(quán)登記與林業(yè)碳匯項(xiàng)目實(shí)施合同4篇
- 2025年福建貨運(yùn)從業(yè)資格證新政
- 七夕節(jié)趣味活動(dòng)策劃方案
- 二零二五年度高速鐵路鋁合金門窗安全檢測(cè)與安裝合同4篇
- 二零二五年度0號(hào)柴油環(huán)保油品居間服務(wù)合同3篇
- 2025年度個(gè)人房產(chǎn)交易過戶手續(xù)辦理協(xié)議3篇
- 二零二五年度土地租賃及經(jīng)營(yíng)權(quán)轉(zhuǎn)讓合同樣本-@-1
- 二零二五年度離婚房產(chǎn)分割與子女醫(yī)療費(fèi)用承擔(dān)合同3篇
- 二零二五年度企業(yè)員工培訓(xùn)課程版權(quán)購(gòu)買協(xié)議4篇
- 2024年社區(qū)警務(wù)規(guī)范考試題庫(kù)
- 2024年食用牛脂項(xiàng)目可行性研究報(bào)告
- 2024-2030年中國(guó)戶外音箱行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略分析報(bào)告
- 家務(wù)分工與責(zé)任保證書
- 消防安全隱患等級(jí)
- (新版)國(guó)民經(jīng)濟(jì)行業(yè)分類代碼表(八大行業(yè))
- 北京地鐵13號(hào)線
- 2023山東春季高考數(shù)學(xué)真題(含答案)
- 為加入燒火佬協(xié)會(huì)致辭(7篇)
- 職業(yè)衛(wèi)生法律法規(guī)和標(biāo)準(zhǔn)培訓(xùn)課件
- 高二下學(xué)期英語(yǔ)閱讀提升練習(xí)(二)
評(píng)論
0/150
提交評(píng)論