C程序設(shè)計初步知識實用_第1頁
C程序設(shè)計初步知識實用_第2頁
C程序設(shè)計初步知識實用_第3頁
C程序設(shè)計初步知識實用_第4頁
C程序設(shè)計初步知識實用_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

會計學(xué)1C程序設(shè)計初步知識實用從以上程序中,可以看到C程序有以下結(jié)構(gòu)特征:1.main是主函數(shù)名,C語言規(guī)定必須用main作為主函數(shù)名。其后的“()”中間可以是空的,但“()”不能省略。一個C程序可以包含任意多個不同名的函數(shù),但必須有且只有一個主函數(shù),C程序總是從主函數(shù)開始執(zhí)行。2.在函數(shù)的起始行后面是函數(shù)體,由一對大括號“{}”括起來的語句集合。函數(shù)體中一般包含變量定義語句和執(zhí)行語句。且執(zhí)行語句必須放在定義語句之后。3.每個語句和變量定義的最后必須要有一個分號(即使是程序的最后一個語句也應(yīng)包含分號)。分號是C語句的必要組成部分。第1頁/共38頁4.C語言用“/*……*/對程序進行注釋。注意“/”和“*”之間不能有空格。注釋可以出現(xiàn)在程序中任意合適的地方,必須成對出現(xiàn),它對程序的運行不起作用,但在注釋中可以說明變量的含義、程度段的功能等。一個好的C程序應(yīng)有必要的注釋,以便閱讀。5.“#include“stdio.h””通常稱為命令行,必須用“#”號開頭,最后不能加“;”,因為它不是C程序中的語句?!皊tdio”是系統(tǒng)提供的文件名,該文件中包含著有關(guān)輸入輸出函數(shù)的信息,調(diào)用不同的庫函數(shù),應(yīng)當(dāng)包含不同的頭文件。

※重點提示:

main是主函數(shù)名,C語言規(guī)定必須用main作為主函數(shù)名。每個語句和變量定義的最后必須要有一個分號,分號是C語句的必要組成部分?!埃nclude“stdio.h””是命令行,必須用“#”號開頭,最后不能加“;”,因為它不是C程序中的語句。第2頁/共38頁2.2常量、變量和標(biāo)識符2.2.1標(biāo)識符和其他高級語言一樣,用來標(biāo)識常量名、變量名、函數(shù)名、數(shù)組名、類型名、文件名等對象的有效字符序列稱為標(biāo)識符。簡單的說,標(biāo)識符就是一個名字。1.標(biāo)識符的命名規(guī)則(1)C語言規(guī)定標(biāo)識符只能由字母(大小寫均可)、數(shù)字和下劃線3種字符組成。(2)第1個字符必須為字母或下劃線。第3頁/共38頁2.注意事項(1)標(biāo)識符的命名是區(qū)分大小寫的,例如NAME、name及Name為3個不同的標(biāo)識符。習(xí)慣上變量名用小寫字母表示,符號常量一般使用大寫英文字母。(2)C語言中的關(guān)鍵字是一類特殊的標(biāo)識符,它們具有特定的含義,已被C語言本身使用,不能用作變量名、常量名、函數(shù)名等。(3)C語言中提供了大量的庫函數(shù)與頭文件,這些庫函數(shù)名和頭文件中定義的一些標(biāo)識符都統(tǒng)稱為預(yù)定義標(biāo)識符。用戶定義標(biāo)識符時應(yīng)注意避免和預(yù)定義標(biāo)識符重名。第4頁/共38頁3.標(biāo)識符的分類(1)關(guān)鍵字關(guān)鍵字在程序中代表著固定的含義,不能另作他用。如用來說明變量類型的標(biāo)識符char、float以及for、if等都已有專門的用途,它們不能用作變量名或函數(shù)名。(2)預(yù)定義標(biāo)識符預(yù)定義標(biāo)識符在C 語言中也有特定的含義,如庫函數(shù)的名字和預(yù)編譯處理命令等。C語言語法允許用戶把這類標(biāo)識符另作他用,但是失去了在系統(tǒng)中規(guī)定的原意。為了避免誤解,建議用戶不要把這些預(yù)定義標(biāo)識符另作它用。第5頁/共38頁(3)用戶標(biāo)識符由用戶根據(jù)需要定義的標(biāo)識符稱為用戶標(biāo)識符。一般用來給變量、函數(shù)、數(shù)組或文件等命名。如果用戶標(biāo)識符與關(guān)鍵字相同,程序會給出出錯信息;若與預(yù)定義標(biāo)識符相同,則預(yù)定義標(biāo)識符將失去原來的含義。

※重點提示:標(biāo)識符的命名規(guī)則:(1)C語言規(guī)定標(biāo)識符只能由字母(大小寫均可,但區(qū)分大小寫)、數(shù)字和下劃線3種字符組成(2)第1個字符必須為字母或下劃線(3)已被C語言本身使用,不能用作變量名、常量名、函數(shù)名等。第6頁/共38頁2.2.2常量在程序運行過程中,其值不能被改變的量稱為常量。C語言中有4中基本常量:整型常量、實型常量、字符常量和字符串常量。此外,C語言中還經(jīng)常使用兩種表現(xiàn)形式不同的常量:轉(zhuǎn)義字符常量和符號常量。1.整型常量整型常量也稱整數(shù),包括正整數(shù)、負整數(shù)和零。2.實型常量實型常量即實數(shù),又稱為浮點數(shù)。第7頁/共38頁3.字符常量字符常量使用一對單引號括起來的一個字符。如‘a(chǎn)’、‘B’、‘?’等。以下是關(guān)于字符常量的幾點說明。(1)單引號只是作為定界符使用,并不是字符常量的組成部分。(2)單引號內(nèi)的字符不允許是單引號或反斜杠。(3)字符常量具有數(shù)值,這個值就是該字符在規(guī)定的字符集中的ASCII代碼值。(4)字符常量在機器內(nèi)以整型常量的形式存放,因此字符常量與整型常量等價。第8頁/共38頁4.字符串常量字符串常量是由一對雙引號括起來的字符序列,如“hello”、“howareyou”等。C語言中沒有專門存放字符串的字符串變量,因此存放時需要放在一個字符型數(shù)組中。5.轉(zhuǎn)義字符常量轉(zhuǎn)義字符常量是以一個“\”開頭的字符序列。每個轉(zhuǎn)義字符都有其特定的含義和功能。具體含義將在后面的章節(jié)中詳細介紹。第9頁/共38頁6.符號常量

C語言中,允許用一個標(biāo)識符來代表一個常量,即常量可以用“符號”來代替,代替常量的符號就稱為符號常量。以下是幾點說明:(1)符號常量在使用之前必須先定義,定義方法為用宏替換“#define”使一個標(biāo)識符與某個常量相對應(yīng),其一般形式為:#define標(biāo)識符常量表達式<或字符串>。(2)一個#define只能定義一個符號常量。(3)符號常量定義式的行尾沒有分號。第10頁/共38頁2.2.3變量變量是指在程序運行期間其值可以發(fā)生變化的量。一個變量在內(nèi)存中占據(jù)一定的存儲單元,在程序中從變量中取值,實際上是通過變量名找到相應(yīng)的內(nèi)存地址,從其存儲單元中讀取數(shù)據(jù)。變量如常量一樣,也分為整型變量,實型變量,字符型變量等。在定義變量的同時要說明該變量的類型,系統(tǒng)編譯時根據(jù)變量及其類型為它分配相應(yīng)數(shù)量的存儲空間。

※重點提示:C語言中的基本數(shù)據(jù)類型有:整型、實型和字符型。第11頁/共38頁2.3整型數(shù)據(jù)2.3.1整型常量1.整型常量的表示形式

C語言中整型常量有如下三種表示形式:(1)十進制。用一串連續(xù)的數(shù)字來表示,如32768,-768,0等。(2)八進制。用數(shù)字0開頭,各位用0~7這8個數(shù)之一表示,如010,011等。在C程序中不能在一個十進制整數(shù)前面加前導(dǎo)零。(3)十六進制。用0x或0X開頭,各位用0~9以及A~F(或a~f)這16個數(shù)之一表示,如0x24B,0X34a等。整型常量又有短整型(shortint)、基本類型(longint)和無符號型(unsigned)的區(qū)分。第12頁/共38頁2.3.2整型變量整型變量是指值為整數(shù)的變量。其命名與標(biāo)識符的規(guī)則相同。變量一經(jīng)說明,在編譯時就能為其分配相應(yīng)的存儲單元。整型變量可分為基本型、短整型、長整型和無符號型四種?;拘偷恼妥兞坑妙愋兔P(guān)鍵字int進行定義,如

inta;或inta,b,c;基本型整型變量在一般微機中占用2個字節(jié)的存儲單元,該變量中允許存放的數(shù)值范圍是:-32768~32767。在程序中定義變量時,編譯程序會為相應(yīng)的變量開辟內(nèi)存單元,但并沒有在該單元中存放任何初值,這時變量中的值是無意義的,即稱為變量值“無定義”。C語言規(guī)定,可以在定義變量的同時給變量賦初值,即變量的初始化。如:main(){inta=1,b=4,i=8;……}第13頁/共38頁2.3.3整型數(shù)據(jù)的分類整型常量與變量有短整型(shortint)、基本整型(int)、長整型(longint)和無符號型(unsigned),以及有符號型的區(qū)分。不同的計算機系統(tǒng)對這幾類整型數(shù)所占用的字節(jié)數(shù)和數(shù)值范圍有不同規(guī)定,表2.1列出了微型機中這些類型的整型數(shù)所占用的字節(jié)數(shù)和數(shù)值范圍。在表示一個長整型常量時,應(yīng)該在其后面加一字母后綴L(或l),如123L,345l等。第14頁/共38頁基本型:以int

表示短整型:以shortint

或short

表示

1.類型長整型:以longint

或long

表示

(123l、123L)無符號基本型(unsignedint)

無符號型無符號短整型(unsignedshort)

無符號長整型(unsignedlong)一個無符號整型變量中可以存放的正數(shù)的范圍比一般整型變量中正數(shù)的范圍擴大一倍。inti;/*變量i的數(shù)值范圍:-32768~32768*/unsignedintj;/*變量j的數(shù)值范圍:0~65535*/第15頁/共38頁2.3.4整數(shù)在內(nèi)存中的存儲形式計算機中最小的存儲單位是“位(bite)”,8個二進制位組成一個“字節(jié)(byte)”,若干個字節(jié)組成一個“字(word)”。C語言中,一個int整數(shù)通常用兩個字節(jié)存放,其中最高位(最左邊一位)用來存放整數(shù)的符號,正整數(shù)時最高位為0,負整數(shù)時最高位為1。1.正整數(shù)

C語言中,正整數(shù)以原碼形式存放。如整數(shù)5在內(nèi)存中的二進制碼為:0000000000000101。第16頁/共38頁2.負整數(shù)

C語言中,負整數(shù)在內(nèi)存中是以整數(shù)的“補碼”形式存放。求某個二進制碼的補碼,步驟如下:(1)求原碼的反碼,即將0→1,1→0(2)將所得的反碼加1,即得原碼的補碼。3.無符號整數(shù)無符號整數(shù)的最高位不再用來存放整型的符號,因此無符號數(shù)不可能是負數(shù)。對于無符號整數(shù),最高位(最左邊一位)不再用來存儲整數(shù)的符號,全部用來存放整數(shù)。

※重點提示:在C語言中,對于有符號整數(shù),用最高位(最左邊一位)用來存儲整數(shù)的符號,若是正整數(shù),最高位為0,若是負數(shù),最高位放置1。對于正整數(shù)用“原碼”形式存放,對于負整數(shù)用“補碼”形式存放。第17頁/共38頁2.4實型數(shù)據(jù)2.4.1實型常量1.實型常量的表示形式實型常量又稱實數(shù)。在C語言中可以有兩種表示形式:(1)小數(shù)形式。由整數(shù)部分、小數(shù)點和小數(shù)部分組成。格式如下:

±整數(shù)部分.小數(shù)部分,小數(shù)點不能省略。如0.78,﹣.897,0.0都是合法實數(shù)表示。(2)指數(shù)形式。由尾數(shù)部分、字母E或e和指數(shù)部分組成,其格式如下:

±尾數(shù)部分E(或e)±指數(shù)部分,指數(shù)部分只能是整數(shù),且三個組成部分均不能省略。如12.34E+9,﹣5.453e﹣10是合法的實數(shù)表示,如果寫成e2、.6E3.5、.e2、e、E等都是不合法的指數(shù)形式。注意,在字母E(或e)的前后以及數(shù)字之間不得插入空格。

※重點提示:±尾數(shù)部分E(或e)±指數(shù)部分,指數(shù)部分只能是整數(shù),且三個組成部分均不能省略。第18頁/共38頁2.4.2實型變量1.實型變量是指值為實數(shù)的變量。其命名與標(biāo)識符的規(guī)則相同。2.實型變量分為兩種類型:(1)單精度型(float),分配4個字節(jié)的存儲單元,數(shù)值范圍約為﹣1038~1038,并提供7位有效位;小于1038的數(shù)被處理成零值。(2)雙精度型(double),分配8個字節(jié)的存儲單元,數(shù)值范圍約為﹣10308~10308,并提供15~16位的有效位;小于10308的數(shù)被處理成零值。在計算機內(nèi)存中,實數(shù)一律是以指數(shù)形式存放的,而不是小數(shù)的形式。例如:

floata;doubleb;a=123456.789e5;b=123456.789;

第19頁/共38頁2.5.1基本的算術(shù)運算符

C語言中基本的運算符是:

+、-、*、/、%。這些運算符需要兩個運算對象,稱為雙目運算符。除求余運算符外,運算對象可以是整型也可以是實型。說明:(1)乘號“*”不能省略,也不能寫成代數(shù)式中的“×”或“.”第20頁/共38頁(2)若雙目運算符兩邊的類型不一致,則系統(tǒng)將自動按照類型轉(zhuǎn)換規(guī)則使兩邊類型一致后再進行運算。如一邊是實型數(shù),一邊是整型數(shù)時,系統(tǒng)將自動把整型轉(zhuǎn)換為實型數(shù)再進行運算。(3)求余運算符“%”要求參與運算的量必須為整數(shù),且求余的結(jié)果符號與被除數(shù)相同。如14%-3的結(jié)果為2,-21%4的結(jié)果為-1。(4)在C語言中,所有實型數(shù)的運算均以雙精度方式進行。若是單精度數(shù),則在尾數(shù)部分補0,使之轉(zhuǎn)化為雙精度數(shù)。第21頁/共38頁2.5.2運算符的優(yōu)先級、綜合性和算術(shù)表達式在C語言中,常量、變量、函數(shù)調(diào)用以及按C語言語法規(guī)則用運算符把運算數(shù)連起來的式子都是合法的表達式。表達式都有一個值,即運算結(jié)果。1.算術(shù)運算符和圓括號的優(yōu)先級次序如下:(由高→低)()、﹢、﹣、*、/、%、+、-第22頁/共38頁2.算術(shù)運算符和圓括號的結(jié)合性以上所列的運算符,只有單目運算符“+”和“-”的結(jié)合性是從右到左,其余運算符的結(jié)合性都是從左到右。如,表達式(4+3)*5/2的運算結(jié)果是17,圓括號的優(yōu)先級要高于乘號和除號;而表達式4+3*5/2的運算結(jié)果是11,乘號和除號的優(yōu)先級要高于加號;表達式3*-4與3*(-4)是等價的,因為單目運算符”-“的優(yōu)先級高于乘號。第23頁/共38頁3.算術(shù)表達式用算術(shù)運算符和括號將運算對象連接起來的、符合C語法規(guī)則的式子,稱C算術(shù)表達式。運算對象可以是常量、變量、函數(shù)等。關(guān)于算術(shù)表達式的幾點說明:(1)在表達式中可以使用多層圓括號,但左右括號必須配對。運算時從內(nèi)層開始,由內(nèi)向外依次計算表達式的值。(2)在求解表達式的值時,若包含不同優(yōu)先級的運算符,則按運算符的優(yōu)先級別由高到低運行,若表達式中運算符的級別相同,則按運算符的結(jié)合方向進行。如表達式a+b-c,因為加號和減號的優(yōu)先級相同,它們的結(jié)合性為從左到右,因此先計算a+b,然后把所得的結(jié)果減去c。第24頁/共38頁2.5.3強制類型轉(zhuǎn)換表達式強制類型轉(zhuǎn)換表達式的形式:(類型名)(表達式)其中(類型名)稱為強制類型轉(zhuǎn)換運算符,例如:(float)(x)將x轉(zhuǎn)換成浮點型(double)(8%3)將8%3轉(zhuǎn)換成雙精度型

※重點提示:在求解表達式的值時,若包含不同優(yōu)先級的運算符,則按運算符的優(yōu)先級別由高到低運行,若表達式中運算符的級別相同,則按運算符的結(jié)合方向進行。第25頁/共38頁2.6賦值表達式2.6.1賦值運算符和賦值表達式1.賦值運算符賦值符號“=”稱為簡單運算符,其作用是將一個數(shù)據(jù)或運算表達式的值賦給另一個變量。例如:a=5的作用是把5賦給變量a,即把5存入變量a對應(yīng)的存儲單元。關(guān)于簡單的賦值運算,要注意以下2點:(1)賦值符“=”左邊必須是變量,右邊既可以是常量,變量,也可以是函數(shù)調(diào)用或表達式。如z=sqrt(3)+2*c。(2)賦值符“=”與數(shù)學(xué)中的等號“=”外觀相同,但含義、作用不同,如i=i+1,在數(shù)學(xué)中是不成立的,但在C語言中是正確的。它的含義是將i當(dāng)前值加1再賦給變量i。第26頁/共38頁2.賦值表達式用一個賦值運算符“=”將一個變量和一個表達式連接起來的式子稱為賦值表達式。其一般形式為:變量=表達式賦值號的左邊必須是一個代表某一存儲單元的變量名,或代表某存儲單元的表達式,賦值運算的功能是先求出右邊表達式的值,然后把該值賦給等號左邊的變量,即是把數(shù)據(jù)放入以該變量為標(biāo)識的存儲單元中去。如

a=1b=a/*是將常量1賦給變量a,再把a中的值賦給變量b,但a中的值不變*/第27頁/共38頁程序中可以多次給一個變量賦值,相應(yīng)的存儲單元當(dāng)前的數(shù)據(jù)就是最后一次所賦的那個數(shù)據(jù)。以下是幾點說明:(1)賦值表達式右邊的“表達式”,也可以是一個賦值表達式,即出現(xiàn)多個賦值符號的情況。例如:a=(b=3),它相當(dāng)于b=3。(2)賦值表達式中還可以包含復(fù)合的賦值運算符,例如:x+=y*=3也是一個賦值表達式,假設(shè)x的初值是5,y的初值是2,則該賦值表達式運算順序為:先進行y*=3的運算,再進行x+=6的運算,相當(dāng)于x=x+6=5+6,因此最后結(jié)果是11。第28頁/共38頁(3)如果在賦值表達式最后加一個分號就構(gòu)成了語句。(4)在C語言中規(guī)定最左邊變量所得到的新值就是賦值表達式的值,如a=18,則表明該表達式的值為18。(5)賦值運算符的左邊只能是變量,不能是常量或表達式。如a+b=c是不合法的賦值表達式。2.6.2復(fù)合的賦值表達式第29頁/共38頁2.6.2復(fù)合的賦值表達式1.復(fù)合的賦值運算符在賦值符“=”之前加上其他運算符,可以構(gòu)成復(fù)合的賦值運算符。例如在“=”前加上“+”運算符,就成了復(fù)合運算符“+=”。例如有:x+=4它相當(dāng)于表達式:x=x+4即先使x加4,再賦給x。第30頁/共38頁采用這種復(fù)合運算符,一是為了簡化程序,二是為了提高編譯效率,C語言規(guī)定可以使用以下10種復(fù)合賦值運算符,如下:+=、﹣=、*=、%=、<<=、>>=、&=、^=、\=、|=其中后五種是有關(guān)位運算方面的,將在后續(xù)章節(jié)中介紹。注意:復(fù)合賦值運算符的優(yōu)先級與賦值運算符的優(yōu)先級相同。第31頁/共38頁2.復(fù)合的賦值表達式如已有變量a,值為3,計算表達式a+=a-=a+a的值。因為賦值運算符與復(fù)合的賦值運算符的優(yōu)先級相同,且運算方向自右向左,所以計算步驟為:(1)先計算a+a,該表達式值為6。(2)再計算a-=6,即a=a-6,此時a的值仍為3,所以表達式值為-3。(3)最后計算a+=-3,即a=a+(-3),此時a的值已經(jīng)改變?yōu)?3,所以表達式的值為-6。即表達式a+=a-=a+a最終的值為-6,而a最終的值也是-6。第32頁/共38頁2.6.3賦值運算中的類型轉(zhuǎn)換如果賦值運算符兩側(cè)的類型不同,在賦值時系統(tǒng)要自動進行類型轉(zhuǎn)換,轉(zhuǎn)換原則是不論賦值號兩側(cè)類型級別高低如何,一律將賦值號右邊的類型轉(zhuǎn)換成左邊變量的類型,然后再賦值,具體規(guī)定如下:1.將實數(shù)賦給整型變量時,舍棄實數(shù)的小數(shù)部分(不是四舍五入)。例如i是整型變量,則i=2.99;結(jié)果i的值為2,在內(nèi)存中以整數(shù)形式存儲。2.將整數(shù)賦給單、雙精度變量時,數(shù)值不變,但將整數(shù)轉(zhuǎn)換成浮點數(shù)形式存放到左邊的變量中。例如:floatx,x=2,結(jié)果是將2轉(zhuǎn)換成2.000000賦給變量x。第33頁/共38頁3.將字符型賦給整型時,由于字符型為1個字

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論