講稿語(yǔ)言程序設(shè)計(jì)第02章_第1頁(yè)
講稿語(yǔ)言程序設(shè)計(jì)第02章_第2頁(yè)
講稿語(yǔ)言程序設(shè)計(jì)第02章_第3頁(yè)
講稿語(yǔ)言程序設(shè)計(jì)第02章_第4頁(yè)
講稿語(yǔ)言程序設(shè)計(jì)第02章_第5頁(yè)
已閱讀5頁(yè),還剩35頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第2章 基本數(shù)據(jù)類型2.1 字符集及詞法約定2.2 常 量2.3 簡(jiǎn) 單 變 量2.4 基本數(shù)據(jù)類型及其轉(zhuǎn)換2.5 printf()和scanf()函數(shù)的一般使用2.1 字符集及詞法約定2.1.1 字符集利用C 語(yǔ)言編寫源程序時(shí)用到的字符集中有數(shù)字、字母、圖形符號(hào)、轉(zhuǎn)義序列和三聯(lián)字符序列等。 數(shù)字:0,1,9。 字母:A、B、Z和a、b、z。 圖形符號(hào):! “ # & ( ) * , / ; : ? _ | 。 轉(zhuǎn)義序列。 三聯(lián)字符序列。2.1.2 詞法約定在C語(yǔ)言中主要包括6類單詞:標(biāo)識(shí)符、關(guān)鍵字、常量、字符串字面量、運(yùn)算符和標(biāo)點(diǎn)符。(1)注釋以“/*”開頭、“*/”結(jié)束的一個(gè)字符串。(2)

2、標(biāo)識(shí)符在C語(yǔ)言中,標(biāo)識(shí)符用來標(biāo)記常量、變量、數(shù)據(jù)類型、函數(shù)及程序的名字。必須符合下列語(yǔ)法規(guī)則: 應(yīng)以字母(大小寫皆可)或下線符(_)中任一個(gè)字符開頭。 在第一個(gè)字母后,可以是任意字母、下線符和數(shù)字組成的字符序列,此序列可為空串。下列字符序列是合法的標(biāo)識(shí)符: NAME1 name1 Total_5 Paper _i3 _out以下字符序列不是合法的標(biāo)識(shí)符: NAME 1 中間留有空格,它不是字母數(shù)字串 name$2 中間有$,它為非字母、數(shù)字字符 5t 開頭的是數(shù)字,而不是字母 $4 開頭的是一般字符,不是字母標(biāo)識(shí)符必須選擇恰當(dāng),使程序易讀,也可以減少書寫程序或修改程序時(shí)由于疏忽而產(chǎn)生的錯(cuò)誤。在

3、選擇標(biāo)識(shí)符時(shí),還要盡量避免使用容易混淆的字符。一般情況下,C語(yǔ)言中大寫字母和小寫字母是不同的。另外,標(biāo)識(shí)符的最大長(zhǎng)度受實(shí)現(xiàn)限制。(3)關(guān)鍵字又稱作保留字,它是具有特定含義、專門用作語(yǔ)言的特定成分的一類標(biāo)識(shí)符,不能當(dāng)作一般標(biāo)識(shí)符來使用。(4)標(biāo)點(diǎn)符C語(yǔ)言中的標(biāo)點(diǎn)符共有13個(gè),即: ( ) * , : = ; # 2.2 常 量在C語(yǔ)言中有不同類型的常量,如整型常量、浮點(diǎn)常量、字符常量和字符串常量。常量在C語(yǔ)言中出現(xiàn)的形式一般有兩種。字面量。符號(hào)常量。2.2.1 整型常量C語(yǔ)言中普通整常量在機(jī)器中占一個(gè)字長(zhǎng)。在C語(yǔ)言中,整常量又分為十進(jìn)制整常量、八進(jìn)制整常量和十六進(jìn)制整常量。1十進(jìn)制整常量十進(jìn)制整

4、常量是帶正負(fù)號(hào)的整數(shù)。2八進(jìn)制整常量八進(jìn)制整常量是以數(shù)字0開頭的八進(jìn)制數(shù)字串,其中只能出現(xiàn)數(shù)字07。3十六進(jìn)制整常量十六進(jìn)制整常量是以0 x或0X開頭的十六進(jìn)制數(shù)字串,可用的數(shù)字有:09、af或AF。4整常量的后綴(1)無(wú)符號(hào)型后綴 無(wú)符號(hào)型后綴用小寫字母u或者大寫字母U表示 (unsigned int)。(2)長(zhǎng)型后綴長(zhǎng)型后綴用小寫字母l或大寫字母L表示 (long int)。如果一個(gè)整常量后面同時(shí)帶有后綴l(L)和u(U),那么,它的類型就是unsigned long int。2.2.2 浮點(diǎn)常量它有兩種表示形式:(1)十進(jìn)制數(shù)形式3.14、0.618、.618、10.0和123.。必須有

5、小數(shù)點(diǎn),并且小數(shù)點(diǎn)的前面或者后面必須有數(shù)字。(2)指數(shù)形式2.98e6( 或2.98E6)、3.0e8(或3.0E8)、6.E5、6e5和.123E4。必須有階碼標(biāo)志e(或E),并且e之前必須有數(shù)字,e之后的指數(shù)必須是整數(shù)。浮點(diǎn)常量不帶后綴,類型就是雙精度型(double)。后面帶有后綴字母F或f,類型就是單精度浮點(diǎn)型(float),字母l或L,類型就是長(zhǎng)雙精度型(long double)。在一般系統(tǒng)中,單精度浮點(diǎn)數(shù)占用4個(gè)字節(jié)(32位)的存儲(chǔ)單元,而雙精度浮點(diǎn)數(shù)占用8個(gè)字節(jié)。2.2.3 字符常量字符常量是用單引號(hào)括起來的一個(gè)字符或字符序列,如 x、AB、9和*等。在C語(yǔ)言中轉(zhuǎn)義序列有三種:簡(jiǎn)

6、單轉(zhuǎn)義序列、八進(jìn)制轉(zhuǎn)義序列和十六進(jìn)制轉(zhuǎn)義序列。(1)簡(jiǎn)單轉(zhuǎn)義序列 ? a b f n r t v(2)八進(jìn)制轉(zhuǎn)義序列 如:014、75和6等。(3)十六進(jìn)制轉(zhuǎn)義序列如:x9、x1A和x123等。八進(jìn)制轉(zhuǎn)義序列和十六進(jìn)制轉(zhuǎn)義序列在構(gòu)成形式上雖然出現(xiàn)多個(gè)字符,但在相應(yīng)的字符常量或字符串常量中卻只代表一個(gè)字符。字符常量的類型是int。它的值就是該字符在相應(yīng)字符集中的編碼值。字符常量可像其他整數(shù)一樣參與數(shù)值運(yùn)算。在C語(yǔ)言中,用0表示空字符NUL,它所占字節(jié)的各位都是0,因而它的值也是0??兆址皇强瞻鬃址_€應(yīng)注意0與0的區(qū)別。2.2.4 字符串常量它是用一對(duì)雙引號(hào)括起來的零個(gè)或多個(gè)字符組成的序列,如

7、: Hello! This is a character string 1234567890 (在雙引號(hào)中沒有任何字符) 字符串常量也可以看成是一個(gè)數(shù)組,這個(gè)數(shù)組的元素為一個(gè)一個(gè)的字符。編譯程序會(huì)自動(dòng)在每個(gè)字符串末尾放上空字符“0”,作為字符串的結(jié)尾。每個(gè)字符串所需要的實(shí)際空間要比用戶給出的字符數(shù)多一個(gè)字節(jié)。x就不同于“x”。前者是單獨(dú)一個(gè)字符,后者包含了兩個(gè)字符:字母“x”和一個(gè)字符“0”。字符0是編譯程序自動(dòng)加上的,在字符串末尾,所以在計(jì)算字符串長(zhǎng)度時(shí),并不把它計(jì)算在內(nèi)。2.3 簡(jiǎn) 單 變 量在程序中使用一個(gè)變量之前,先要對(duì)它進(jìn)行定義:int i;int i,j,k;float price

8、,total;在C語(yǔ)言中定義變量的一般形式是: 數(shù)據(jù)類型 變量名;或者 數(shù)據(jù)類型 變量名1,變量名2,;其中數(shù)據(jù)類型部分是表示相應(yīng)數(shù)據(jù)類型的關(guān)鍵字。在對(duì)變量進(jìn)行定義時(shí),還應(yīng)注意以下幾點(diǎn): 不同類型的變量應(yīng)在各自數(shù)據(jù)說明行上定義,不要把它們統(tǒng)統(tǒng)寫在一行上,以增加程序的可讀性。 在程序的同一部分,不允許對(duì)同一標(biāo)識(shí)符做重復(fù)定義。例如:1 main()2 3 int a,b,sum;4 float price,sum;5 char a,flag;. 數(shù)據(jù)說明語(yǔ)句的最后是以分號(hào)結(jié)尾,而同一說明語(yǔ)句的各個(gè)變量名之間則以逗號(hào)隔開。例如: int i,j,k;2.4 基本數(shù)據(jù)類型及其轉(zhuǎn)換2.4.1 整型int

9、及其相關(guān)類型表示整型量的關(guān)鍵字是int。 int i;在目前大多數(shù)實(shí)現(xiàn)中,整型變量的取值范圍因機(jī)器字長(zhǎng)而異。在字長(zhǎng)為16位的機(jī)器上,整型變量i的取值范圍是:32768i32767對(duì)它們可以施行如下算術(shù)運(yùn)算:(加) (減) *(乘) (除) (取模)整型數(shù)據(jù)還可使用下述關(guān)系運(yùn)算符: !C語(yǔ)言中與int有關(guān)的類型還有: short int,簡(jiǎn)寫為short,是短整型。 long int,簡(jiǎn)寫為long,是長(zhǎng)整型。 unsigned int,簡(jiǎn)寫為unsigned,是無(wú)符號(hào)整數(shù)。2.4.2 字符型char及其相關(guān)類型表示字符類型變量的關(guān)鍵字是char。char c;一個(gè)字符型變量所占用的內(nèi)存空間應(yīng)足

10、以存放所用基本字符集中任何一個(gè)字符。通常占用一個(gè)字節(jié),即8位。在ANSI C 和ISO C中,還規(guī)定了signed char和 unsigned char兩種類型,unsigned char型量的取值范圍是0255,signed char型量的取值范圍是127127。當(dāng)把一個(gè)字符常量賦給一個(gè)字符變量時(shí),該字符變量的值就是相應(yīng)字符的編碼值。在C語(yǔ)言中字符數(shù)據(jù)往往可以像整型數(shù)據(jù)那樣進(jìn)行有關(guān)運(yùn)算。字符數(shù)據(jù)可以以字符形式輸出,也可以用整數(shù)形式輸出。2.4.3 浮點(diǎn)型float基本浮點(diǎn)類型的關(guān)鍵字是float。float f;C語(yǔ)言中還提供其他兩種浮點(diǎn)類型:double和long double,分別稱作

11、雙精度類型和長(zhǎng)雙精度類型。一般機(jī)器上float型量占4個(gè)字節(jié)(32位),double型量占8個(gè)字節(jié)(64位),而long double型量要占16個(gè)字節(jié)(128位)。浮點(diǎn)變量可進(jìn)行的算術(shù)運(yùn)算有下述4種:*其運(yùn)算結(jié)果仍是一個(gè)浮點(diǎn)量。但大家應(yīng)注意,取模運(yùn)算符“”不能作用于浮點(diǎn)類型的量上。為了保持運(yùn)算精度,在運(yùn)算時(shí)所有的float型量都被轉(zhuǎn)換成double型。2.4.4 類型轉(zhuǎn)換如果一個(gè)運(yùn)算符有兩個(gè)不同類型的運(yùn)算分量,那么,在操作之前先將“較低”的類型提升為“較高”的類型,使二者類型統(tǒng)一,然后進(jìn)行操作;其結(jié)果是“較高”類型。而類型的高低是由其屬性(取值范圍、精度、作用等)來決定的。由算術(shù)運(yùn)算符對(duì)運(yùn)算

12、分量自動(dòng)實(shí)施的類型轉(zhuǎn)換稱為普通算術(shù)轉(zhuǎn)換。也稱為隱式轉(zhuǎn)換。在進(jìn)行運(yùn)算之前,所有char型和short型數(shù)據(jù)都轉(zhuǎn)換成int型,所有float型數(shù)據(jù)都轉(zhuǎn)換成double型,以提高運(yùn)算精度。在賦值語(yǔ)句中,賦值號(hào)右邊表達(dá)式的值的類型要轉(zhuǎn)換成賦值號(hào)左邊變量的類型。 int i=10; float pi=3.14; double f; f=i*pi;例2-2:分析下面程序輸出的結(jié)果。/* Basic conversions in C */void main() int a,b=550; char c=7; float f1=3.142,f2; a=b/c; /* integer divided by a c

13、haracter */ printf(a=dn,a); a=f1; /* float to integer conversion */ printf(f1=fa=dn,f1,a); f1=b;/* integer to float conversion */ printf(b=df1=fnb,f1); f2=b/50.0;/* integer divided by a float */ printf(b=d,f2=fn,b,f2);輸出結(jié)果是: a=10 f1=3.142000a=3 b=550f1=550.000000 b=550,f2=11.000000顯式類型轉(zhuǎn)換,這就是利用類型強(qiáng)制轉(zhuǎn)換運(yùn)算符“(類型名)表達(dá)式”形式中的一對(duì)圓括號(hào),強(qiáng)行把其后表達(dá)式的類型轉(zhuǎn)換成圓括號(hào)中給定的類型。2.5 printf()和scanf()函數(shù)的一般使用(1)printf()函數(shù)printf()函數(shù)的功能是按指定的格式控制要求把相應(yīng)的參數(shù)值在標(biāo)準(zhǔn)輸出設(shè)備(通常是終端)上顯示出

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論