高中信息技術(shù) 信息學(xué)奧賽C語言第一章 C語言基礎(chǔ)知識(shí)課件_第1頁
高中信息技術(shù) 信息學(xué)奧賽C語言第一章 C語言基礎(chǔ)知識(shí)課件_第2頁
高中信息技術(shù) 信息學(xué)奧賽C語言第一章 C語言基礎(chǔ)知識(shí)課件_第3頁
高中信息技術(shù) 信息學(xué)奧賽C語言第一章 C語言基礎(chǔ)知識(shí)課件_第4頁
高中信息技術(shù) 信息學(xué)奧賽C語言第一章 C語言基礎(chǔ)知識(shí)課件_第5頁
已閱讀5頁,還剩63頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、C語言程序設(shè)計(jì)語言程序設(shè)計(jì)第第1章章 語言基礎(chǔ)知識(shí)語言基礎(chǔ)知識(shí)第一節(jié)第一節(jié) 語言程序的結(jié)構(gòu)語言程序的結(jié)構(gòu)第二節(jié)第二節(jié) 整型數(shù)據(jù)整型數(shù)據(jù)第三節(jié)第三節(jié) 實(shí)型數(shù)據(jù)實(shí)型數(shù)據(jù)第四節(jié)第四節(jié) 算術(shù)表達(dá)式算術(shù)表達(dá)式第五節(jié)第五節(jié) 賦值表達(dá)式賦值表達(dá)式第六節(jié)第六節(jié) Turbo C的基本操作的基本操作第一節(jié)第一節(jié) 語言程序的結(jié)構(gòu)語言程序的結(jié)構(gòu)語言程序的總體結(jié)構(gòu)語言程序的總體結(jié)構(gòu) 一個(gè)完整的語言程序,是由一個(gè)一個(gè)完整的語言程序,是由一個(gè)main()函數(shù)(又稱主函數(shù))和若干個(gè)其它函數(shù)結(jié)合而成函數(shù)(又稱主函數(shù))和若干個(gè)其它函數(shù)結(jié)合而成的,或僅由一個(gè)的,或僅由一個(gè)main()函數(shù)構(gòu)成。函數(shù)構(gòu)成。案例案例1.1 僅由main

2、()函數(shù)構(gòu)成的語言程序。/*案例代碼文件名:AL1_1.C*/*功能:僅由main()函數(shù)構(gòu)成的語言程序示例*/main() printf(“This is a C program.n”); 程序運(yùn)行結(jié)果:This is a C program. 案例案例1.2 計(jì)算兩個(gè)整數(shù)之和的語言程序。計(jì)算兩個(gè)整數(shù)之和的語言程序。#include “stdio.h”main() int a,b,sum; /*變量說明*/ a=10; /*把整數(shù)10賦值給變量a*/ b=20; /*把整數(shù)20賦值給變量b*/ sum = a+b; /*把兩數(shù)之和賦值給變量sum */ printf(“a=%d,b=%d,s

3、um=%dn”, a,b,sum); 程序運(yùn)行情況: a=10,b=20,sum=30 函數(shù)體函數(shù)體以分號(hào)結(jié)尾,以分號(hào)結(jié)尾,叫做語句。叫做語句。編譯預(yù)處理命令編譯預(yù)處理命令main()函數(shù)函數(shù) 一個(gè)語言程序,總是從一個(gè)語言程序,總是從main()函數(shù)函數(shù)開始執(zhí)行,而不論其在程序中的位置。開始執(zhí)行,而不論其在程序中的位置。當(dāng)主函數(shù)執(zhí)行完畢時(shí),亦即程序執(zhí)行完畢。當(dāng)主函數(shù)執(zhí)行完畢時(shí),亦即程序執(zhí)行完畢。源程序書寫格式源程序書寫格式n任何一個(gè)任何一個(gè)C程序都必須包含程序都必須包含main()函數(shù)。函數(shù)。nC語言的函數(shù)體可以分為兩個(gè)部分:語言的函數(shù)體可以分為兩個(gè)部分:n定義部分和執(zhí)行部分。其中,定義部分必

4、定義部分和執(zhí)行部分。其中,定義部分必須在執(zhí)行部分的前面。須在執(zhí)行部分的前面。nC程序中用到的變量都必須先定義后使用,程序中用到的變量都必須先定義后使用,定義變量必須放在程序的定義部分。定義變量必須放在程序的定義部分。n所有語句都必須以分號(hào)所有語句都必須以分號(hào)“;”結(jié)束,函數(shù)的結(jié)束,函數(shù)的最后一個(gè)語句也不例外。最后一個(gè)語句也不例外。1.程序行的書寫格式自由,既允許程序行的書寫格式自由,既允許1行內(nèi)寫幾行內(nèi)寫幾條語句,也允許條語句,也允許1條語句分寫在幾行上。條語句分寫在幾行上。n允許使用注釋允許使用注釋。 C語言的注釋格式為: /* */(1) “/*”和“*/” 必須成對(duì)使用,且“/”和“*”

5、、以及“*”和“/”之間不能有空格,否則都出錯(cuò)。(2)注釋的位置,可以單占1行,也可以跟在語句的后面。(3)如果1行寫不下,可另起1行繼續(xù)寫。(4)注釋中允許使用漢字。在非中文操作系統(tǒng)下,看到的是一串亂碼,但不影響程序運(yùn)行。二、標(biāo)識(shí)符在C語言中用于標(biāo)識(shí)名字的有效字符序列稱為標(biāo)識(shí)符標(biāo)識(shí)符。標(biāo)識(shí)符可以用作常量名、變量名、符號(hào)名、函數(shù)名和指針名等等。C語言的命名規(guī)則如下:(1)標(biāo)識(shí)符只能由字母、數(shù)字和下劃線組成(2)標(biāo)識(shí)符的第一個(gè)字符必須是字母或下滑線。C語言中字母的大小寫是有區(qū)別的。合法的標(biāo)識(shí)符:a x sum spels _to file_5非法的標(biāo)識(shí)符: yes? 234a yes no ye

6、s/no標(biāo)識(shí)符的分類(1)關(guān)鍵字)關(guān)鍵字 關(guān)鍵字在程序中代表著固定的含義。如標(biāo)識(shí)符char、float以及for、if等都已有專門的用途,它們不能用作變量名或函數(shù)名。3232個(gè)關(guān)鍵字:個(gè)關(guān)鍵字:auto break case char constcontinue default do double elseenum extern float for gotoif int long register returnshort signed sizeof static structswitch typedef unsigned union voidvolatile while(2 2)預(yù)定義標(biāo)識(shí)符)

7、預(yù)定義標(biāo)識(shí)符預(yù)定義標(biāo)識(shí)符在預(yù)定義標(biāo)識(shí)符在C語言中也有特定的含義,語言中也有特定的含義,如庫函數(shù)的名字和預(yù)編譯處理命令等。如庫函數(shù)的名字和預(yù)編譯處理命令等。C語言語法允許用戶把這類標(biāo)識(shí)符另作他用,語言語法允許用戶把這類標(biāo)識(shí)符另作他用,但是失去了在系統(tǒng)中規(guī)定的原意。但是失去了在系統(tǒng)中規(guī)定的原意。為了避免誤解,建議用戶不要把這些預(yù)定為了避免誤解,建議用戶不要把這些預(yù)定義標(biāo)識(shí)符另作它用。義標(biāo)識(shí)符另作它用。(3 3)用戶標(biāo)識(shí)符)用戶標(biāo)識(shí)符由用戶根據(jù)需要定義的標(biāo)識(shí)符稱為由用戶根據(jù)需要定義的標(biāo)識(shí)符稱為用戶標(biāo)用戶標(biāo)識(shí)符識(shí)符。一般用來給變量、函數(shù)、數(shù)組或文。一般用來給變量、函數(shù)、數(shù)組或文件等命名。件等命名。如果

8、用戶標(biāo)識(shí)符與關(guān)鍵字相同,程序會(huì)給如果用戶標(biāo)識(shí)符與關(guān)鍵字相同,程序會(huì)給出出錯(cuò)信息;出出錯(cuò)信息;若與預(yù)定義標(biāo)識(shí)符相同,則預(yù)定義標(biāo)識(shí)符若與預(yù)定義標(biāo)識(shí)符相同,則預(yù)定義標(biāo)識(shí)符將失去原來的含義將失去原來的含義。重點(diǎn)提示重點(diǎn)提示:標(biāo)識(shí)符的命名規(guī)則:(1)C語言規(guī)定標(biāo)識(shí)符只能由字母(大小寫均可,但區(qū)分大小寫)、數(shù)字和下劃線3種字符組成(2)第1個(gè)字符必須為字母或下劃線(3)已被C語言本身使用,不能用作變量名、常量名、函數(shù)名等。三、常量 在程序運(yùn)行過程中,其值不能被改變的量稱為常量常量。 C語言中有4中基本常量:整型常量整型常量、實(shí)型實(shí)型常量常量、字符常量字符常量和字符串常量字符串常量。 此外,C語言中還經(jīng)常使

9、用兩種表現(xiàn)形式不同的常量:轉(zhuǎn)義字符常量轉(zhuǎn)義字符常量和符號(hào)常量符號(hào)常量。1整型常量整型常量整型常量也稱整數(shù),包括正整數(shù)、負(fù)整數(shù)和零。如:3、10、100、-5、-35等。2實(shí)型常量實(shí)型常量 實(shí)型常量即實(shí)數(shù),又稱為浮點(diǎn)數(shù)。如:3.1415926、-15.25等。整型常量和實(shí)型常量又稱為數(shù)值型常量數(shù)值型常量。3字符常量字符常量字符常量使用一對(duì)單引號(hào)括起來的一個(gè)字符。如a、B、?等。 以下是關(guān)于字符常量的幾點(diǎn)說明。(1)單引號(hào)只是作為定界符使用,并不是字符常量的組成部分。(2)單引號(hào)內(nèi)的字符不允許是單引號(hào)或反斜杠。(3)字符常量具有數(shù)值,這個(gè)值就是該字符在規(guī)定的字符集中的ASCII代碼值。P140(4

10、)字符常量在機(jī)器內(nèi)以整型常量的形式存放,因此字符常量與整型常量等價(jià)。4字符串常量字符串常量字符串常量是由一對(duì)雙引號(hào)括起來的字符序列,如“hello”、“how are you”等。 注意注意:C語言中沒有專門存放字符串的字符串變量,因此存放時(shí)需要放在一個(gè)字符型數(shù)組中。5轉(zhuǎn)義字符常量轉(zhuǎn)義字符常量 轉(zhuǎn)義字符常量是以一個(gè)“”開頭的字符序列。每個(gè)轉(zhuǎn)義字符都有其特定的含義和功能。6符號(hào)常量符號(hào)常量C語言中,允許用一個(gè)標(biāo)識(shí)符來代表一個(gè)常量,即常量可以用“符號(hào)”來代替,代替常量的符號(hào)就稱為符號(hào)常量符號(hào)常量。 以下是幾點(diǎn)說明:(1)符號(hào)常量在使用之前必須先定義,定義方法為用宏替換“#define”使一個(gè)標(biāo)識(shí)符

11、與某個(gè)常量相對(duì)應(yīng),其一般形式為: define 標(biāo)識(shí)符標(biāo)識(shí)符 常量表達(dá)式常量表達(dá)式。(2)一個(gè)define只能定義一個(gè)符號(hào)常量。(3)符號(hào)常量定義式的行尾沒有分號(hào)。四、變量 變量變量是指在程序運(yùn)行期間其值可以發(fā)生變化的一個(gè)變量在內(nèi)存中占據(jù)一定的存儲(chǔ)單元,在程序中從變量中取值,實(shí)際上是通過變量名找到相應(yīng)的內(nèi)存地址,從其存儲(chǔ)單元中讀取數(shù)據(jù)。C語言中的任何變量,使用前都必須定義,也就是必須先定義后使用先定義后使用。第二節(jié) 整型數(shù)據(jù)一、數(shù)值轉(zhuǎn)換一、數(shù)值轉(zhuǎn)換 2 進(jìn)制數(shù)碼:進(jìn)制數(shù)碼:0 和和 1,后綴為后綴為B(10,11,12,13,14,15)8進(jìn)制數(shù)碼:進(jìn)制數(shù)碼:0,1,2,3,4,5,6,7,后

12、綴為后綴為O10進(jìn)制數(shù)碼:進(jìn)制數(shù)碼:0,1,2,3,4,5,6,7,8,9后綴為后綴為D16進(jìn)制數(shù)碼:進(jìn)制數(shù)碼: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,后綴為后綴為H 任意進(jìn)制轉(zhuǎn)換到十進(jìn)制任意進(jìn)制轉(zhuǎn)換到十進(jìn)制:任意任意R進(jìn)制的一個(gè)數(shù)轉(zhuǎn)換為十進(jìn)制數(shù):進(jìn)制的一個(gè)數(shù)轉(zhuǎn)換為十進(jìn)制數(shù):(325.76)8=382+281+580+78-1+68-2= (213.96875)10n 十進(jìn)制與二、八、十六進(jìn)制的轉(zhuǎn)換十進(jìn)制與二、八、十六進(jìn)制的轉(zhuǎn)換 (kn-1 kn-2 k0.k-1k-2k-m)R =(kn-1Rn-1+k0R0+k-1R-1+k-mR-m)10(11010.1)2=1

13、24+123+022+121+020+12-1= (26. 5)10例如:例如:2. 十進(jìn)制轉(zhuǎn)換到其它進(jìn)制十進(jìn)制轉(zhuǎn)換到其它進(jìn)制:整數(shù)部分和小數(shù)部分分別轉(zhuǎn)換整數(shù)部分和小數(shù)部分分別轉(zhuǎn)換小數(shù)部分采小數(shù)部分采 用基用基值重復(fù)值重復(fù)相乘。直相乘。直到乘積為到乘積為0。即即乘基值乘基值取取整數(shù)整數(shù)法法整數(shù)部分采用基整數(shù)部分采用基值重復(fù)值重復(fù)相除。直相除。直到商為到商為0。即即除除基值基值取取余數(shù)余數(shù)法法2 2152 107 12 53 12 26 12 13 02 6 12 3 02 1 1 0 1低位低位高位高位(215)10 =(11010111)2(0.6875)10 =?20.6875 21 .

14、3750整數(shù)整數(shù)10.37520 . 75000. 50 21 . 00 10.75 21 . 501轉(zhuǎn)換結(jié)果為:轉(zhuǎn)換結(jié)果為:(0.6875)10=(0.1011)2 2 13 2 6 1 2 3 0 2 1 1 0 1低位低位 高位高位 (13)10 =(1101)20.8775 21.7550整數(shù)整數(shù)10.755 21.51010.510 21.0201(0.8775)10(0.111)2(13.8775)10 =?2 (保留保留3位小數(shù)位小數(shù))(13.8775)10 (1101.111)2注意注意:實(shí)際上將十進(jìn)制小數(shù)轉(zhuǎn)換成二進(jìn)制、八進(jìn)實(shí)際上將十進(jìn)制小數(shù)轉(zhuǎn)換成二進(jìn)制、八進(jìn)制、十六進(jìn)制小數(shù)過

15、程中小數(shù)部分可能始制、十六進(jìn)制小數(shù)過程中小數(shù)部分可能始終不為零,因此只能限定取若干位為止。終不為零,因此只能限定取若干位為止。將十進(jìn)制數(shù)轉(zhuǎn)換為八進(jìn)制、十六進(jìn)制數(shù)的將十進(jìn)制數(shù)轉(zhuǎn)換為八進(jìn)制、十六進(jìn)制數(shù)的規(guī)則和方法與之相同,只是規(guī)則和方法與之相同,只是R(基數(shù))的?。ɑ鶖?shù))的取值不同。值不同。(279.6875)10 =?8 8 279 8 34 7 8 4 2 8 0 4低位低位高位高位 (279)10 =(427)80.6875 85.5000 整數(shù)整數(shù)5 0.5 8 4.04(0.6875)10=(0.54)8(279.6875)10 =(427.54)8(172.6875)10 =?16 1

16、6 172 16 10 12(C) 0 10(A)低位低位 高位高位 (172)10 =(AC)160.6875 16 41250 687511.0000整數(shù)整數(shù)11(B)(0.6875)10 =(0.B)16(172.6875)10 =(AC.B)16因?yàn)橐驗(yàn)?3=8,24=16,一位十六進(jìn)制數(shù)可由四位二進(jìn)制數(shù)來表示一位十六進(jìn)制數(shù)可由四位二進(jìn)制數(shù)來表示一位八進(jìn)制數(shù)可由三位二進(jìn)制數(shù)來表示。一位八進(jìn)制數(shù)可由三位二進(jìn)制數(shù)來表示。作反向轉(zhuǎn)換:作反向轉(zhuǎn)換:三位二進(jìn)制數(shù)可用一位八進(jìn)制數(shù)表示三位二進(jìn)制數(shù)可用一位八進(jìn)制數(shù)表示四位二進(jìn)制數(shù)可用一位十六進(jìn)制數(shù)來表示四位二進(jìn)制數(shù)可用一位十六進(jìn)制數(shù)來表示n 二進(jìn)制與

17、其他進(jìn)制數(shù)的轉(zhuǎn)二進(jìn)制與其他進(jìn)制數(shù)的轉(zhuǎn)換換 最后一組最后一組不足用不足用0補(bǔ)!補(bǔ)!將二進(jìn)制整數(shù)將二進(jìn)制整數(shù)從右向左從右向左每隔每隔3位位/4位分位分為一組為一組1.1.二進(jìn)制到八二進(jìn)制到八/ /十六進(jìn)制十六進(jìn)制將每組按二進(jìn)將每組按二進(jìn)制數(shù)向十進(jìn)制制數(shù)向十進(jìn)制數(shù)轉(zhuǎn)換的方法數(shù)轉(zhuǎn)換的方法進(jìn)行轉(zhuǎn)換進(jìn)行轉(zhuǎn)換整數(shù)整數(shù)將二進(jìn)制小數(shù)將二進(jìn)制小數(shù)從左向右從左向右每隔每隔3位位/4位分位分為一組為一組將每組按二進(jìn)將每組按二進(jìn)制數(shù)向十進(jìn)制制數(shù)向十進(jìn)制數(shù)轉(zhuǎn)換的方法數(shù)轉(zhuǎn)換的方法進(jìn)行轉(zhuǎn)換進(jìn)行轉(zhuǎn)換小數(shù)小數(shù)010 110 101010 110 101 2 6 5 2 6 50. 101 1000. 101 1000. 5 40

18、. 5 4最后一組最后一組不足用不足用0補(bǔ)!補(bǔ)! 1011 0101 1011 0101 B 5 B 50.1011 10000.1011 10000. B 80. B 8最后一組最后一組不足用不足用0補(bǔ)!補(bǔ)!2. 2. 八八/ /十六進(jìn)制到二進(jìn)制十六進(jìn)制到二進(jìn)制:0.1011 01110.1011 01110. B 70. B 7例:例:(0.B7)16 = (?)2 0. 101 1000. 101 1000. 5 40. 5 4例:例:(0.54)8= (?)2 3. 十六進(jìn)制與八進(jìn)制的轉(zhuǎn)換十六進(jìn)制與八進(jìn)制的轉(zhuǎn)換十六/八進(jìn)制的轉(zhuǎn)換可以按以下規(guī)則進(jìn)行:十六進(jìn)制十六進(jìn)制二進(jìn)制二進(jìn)制八進(jìn)制八進(jìn)

19、制(EA.15)16 =(1110 1010 . 0001 0101)2 =(11101010 . 00010101)2 =(011 101 010.000 101 010)2 =(352.052)8二、八、十六進(jìn)制對(duì)照表二進(jìn)制數(shù)八進(jìn)制數(shù)00000011010201131004101511061117二進(jìn)制數(shù)十六進(jìn)制數(shù)二進(jìn)制數(shù)十六進(jìn)制數(shù)00000100080001110019001021010A001131011B010041100C010151101D011061110E011171111F表表1.1 二、八進(jìn)制數(shù)字對(duì)照表二、八進(jìn)制數(shù)字對(duì)照表表表1.2 二、十六進(jìn)制數(shù)字對(duì)照表二、十六進(jìn)制數(shù)字

20、對(duì)照表二、整型常量二、整型常量1整型常量的表示形式C語言中整型常量有如下三種表示形式:(1)十進(jìn)制)十進(jìn)制。用一串連續(xù)的數(shù)字來表示,如32768,768,0等。(2)八進(jìn)制。)八進(jìn)制。用數(shù)字0開頭,各位用07這8個(gè)數(shù)之一表示,如010,011等。在C程序中不能在一個(gè)十進(jìn)制整數(shù)前面加前導(dǎo)零。(3)十六進(jìn)制。)十六進(jìn)制。用0 x或0X開頭,各位用09以及AF(或af)這16個(gè)數(shù)之一表示,如0 x24B,0X34a等。三、三、 整型變量整型變量整型變量是用于存儲(chǔ)整型值的變量。整型變量可分為基本型、短整型、長(zhǎng)整型和無符號(hào)型四種?;拘偷恼妥兞坑妙愋兔P(guān)鍵字int進(jìn)行定義,如 int a; 或 int

21、 a, b, c;基本型整型變量在一般微機(jī)中占用2個(gè)字節(jié)的存儲(chǔ)單元,該變量中允許存放的數(shù)值范圍是:3276832767。在程序中定義變量時(shí),編譯程序會(huì)為相應(yīng)的變量開辟內(nèi)存單元,但并沒有在該單元中存放任何初值,這時(shí)變量中的值是無意義的,即稱為變量值“無定義”。C語言規(guī)定,可以在定義變量的同時(shí)給變量賦初值,即變量的初始化。 如:main() int a=1, b=4, i=8; 整型分配的內(nèi)存空間00000000 00000110整數(shù)6在內(nèi)存中的形式整型數(shù)據(jù)的分類整型數(shù)據(jù)的分類整型常量與變量有短整型(short int)、基本整型(int)、長(zhǎng)整型(long int)和無符號(hào)型(unsigned)

22、,以及有符號(hào)型的區(qū)分。在表示一個(gè)長(zhǎng)整型常量時(shí),應(yīng)該在其后面加一字母后綴L(或l),如123L,345l等。無論是短整型常量還是長(zhǎng)整型常量,C語言系統(tǒng)都默認(rèn)為是有符號(hào)整數(shù)。無符號(hào)整數(shù)在數(shù)字的后面加上一個(gè)字母后綴u或者是U。若是長(zhǎng)整型無符號(hào)整型常量,則應(yīng)該加后綴lu或者是LU。 例1.8 p9四、整數(shù)在內(nèi)存中的存儲(chǔ)形式計(jì)算機(jī)中最小的存儲(chǔ)單位是“位(bite)”,8個(gè)二進(jìn)制位組成一個(gè)“字節(jié)(byte)”,若干個(gè)字節(jié)組成一個(gè)“字(word)”。C語言中,一個(gè)int整數(shù)通常用兩個(gè)字節(jié)存放,其中最高位(最左邊一位)用來存放整數(shù)的符號(hào),正整數(shù)時(shí)最高位為0,負(fù)整數(shù)時(shí)最高位為1。1正整數(shù)正整數(shù) C語言中,正整數(shù)

23、以原碼形式存放。如整數(shù)5在內(nèi)存中的二進(jìn)制碼為:0000000000000101。 最大有符號(hào)正整數(shù)是0111111111111111,它對(duì)應(yīng)的十進(jìn)制整數(shù)是215-1=327767。2負(fù)整數(shù)負(fù)整數(shù) C語言中,負(fù)整數(shù)在內(nèi)存中是以整數(shù)的“補(bǔ)碼”形式存放。 求某個(gè)二進(jìn)制碼的補(bǔ)碼,步驟如下:(1)求原碼的反碼,即將01,10(2)將所得的反碼加1,即得原碼的補(bǔ)碼。例如例如:求-6在內(nèi)存中存放的形式,步驟如下: (1)6的原碼:0000000000000110 (2)6的反碼:1111111111111001 (3)-6的補(bǔ)碼:1111111111111010反過來,如何利用補(bǔ)碼來計(jì)算對(duì)應(yīng)的負(fù)整數(shù)?例如,

24、在內(nèi)存中某一補(bǔ)碼1111111111111101轉(zhuǎn)換步驟:(1)將補(bǔ)碼的各位取反,得到0000000000000010(2)將得到的結(jié)果加上1,得0000000000000011(3)把該二進(jìn)制轉(zhuǎn)換為十進(jìn)制得數(shù)為:3.(4)因?yàn)檠a(bǔ)碼的最高位為1,表示為負(fù)數(shù)。因此,所得的數(shù)為-3。3無符號(hào)正整數(shù)無符號(hào)正整數(shù)無符號(hào)整數(shù)的最高位不再用來存放整型的符號(hào),因此無符號(hào)數(shù)不可能是負(fù)數(shù)。對(duì)于無符號(hào)整數(shù),最高位(最左邊一位)不再用來存儲(chǔ)整數(shù)的符號(hào),全部用來存放整數(shù)。 例如,11111111 11111111重點(diǎn)提示:重點(diǎn)提示: 在C語言中,對(duì)于有符號(hào)整數(shù),用最高位(最左邊一位)用來存儲(chǔ)整數(shù)的符號(hào),若是正整數(shù),最

25、高位為0,若是負(fù)數(shù),最高位放置1。對(duì)于正整數(shù)用“原碼”形式存放,對(duì)于負(fù)整數(shù)用“補(bǔ)碼”形式存放。第三節(jié) 實(shí)型數(shù)據(jù)一、實(shí)型常量一、實(shí)型常量在C語言中可以有兩種表示形式:小數(shù)形式和整數(shù)形式。 (1)小數(shù)形式)小數(shù)形式。由整數(shù)部分、小數(shù)點(diǎn)和小數(shù)部分組成。小數(shù)點(diǎn)的前面或后面可以沒有數(shù)字,但是不能同時(shí)沒有數(shù)字。 如,3.14159、.36、0.0、12.、0.158(2)指數(shù)形式。)指數(shù)形式。由尾數(shù)部分、字母E或e和指數(shù)部分組成,其格式如下:尾數(shù)部分尾數(shù)部分E(或(或e)指數(shù)部分指數(shù)部分 指數(shù)部分只能是整數(shù),且三個(gè)組成部分均指數(shù)部分只能是整數(shù),且三個(gè)組成部分均不能省略不能省略。 如, 合法:12.34E+

26、9, 5.453e10 非法:e2、.6E3.5、.e2、e、E 注意注意,在字母E(或e)的前后以及數(shù)字之間不得插入空格。二、二、 實(shí)型變量實(shí)型變量 實(shí)型變量分為兩種類型:(1)單精度型(float),分配4個(gè)字節(jié)的存儲(chǔ)單元,數(shù)值范圍約為10381038,并提供7位有效位;小于1038的數(shù)被處理成零值。(2)雙精度型(double),分配8個(gè)字節(jié)的存儲(chǔ)單元,數(shù)值范圍約為1030810308,并提供1516位的有效位;小于10308的數(shù)被處理成零值。在計(jì)算機(jī)內(nèi)存中,實(shí)數(shù)一律是以指數(shù)形式在計(jì)算機(jī)內(nèi)存中,實(shí)數(shù)一律是以指數(shù)形式存放的,而不是小數(shù)的形式。存放的,而不是小數(shù)的形式。例如:例如: floa

27、t a; double b; a=123456.789e5 ; b=123456.789 ; 第四節(jié) 算術(shù)表達(dá)式C語言中基本的運(yùn)算符是: +、-、*、/、%。這些運(yùn)算符需要兩個(gè)運(yùn)算對(duì)象,稱為雙目運(yùn)算符。除求余運(yùn)算符外,運(yùn)算對(duì)象可以是整型也可以是實(shí)型。說明:(1)乘號(hào)“*”不能省略,也不能寫成代數(shù)式中的“”或“”(2)算術(shù)運(yùn)算符兩邊的運(yùn)算對(duì)象類型必須保持一致才能運(yùn)算。(3)若雙目運(yùn)算符兩邊的類型不一致,則系統(tǒng)將自動(dòng)按照類型轉(zhuǎn)換規(guī)則使兩邊類型一致后再進(jìn)行運(yùn)算。(4)求余運(yùn)算符“%”要求參與運(yùn)算的量必須為整數(shù),且求余的結(jié)果符號(hào)與被除數(shù)相同。如14-3的結(jié)果為2,-21%4的結(jié)果為-1。(5)在C語言

28、中,所有實(shí)型數(shù)的運(yùn)算均以雙精度方式進(jìn)行。若是單精度數(shù),則在尾數(shù)部分補(bǔ)0,使之轉(zhuǎn)化為雙精度數(shù)。一、運(yùn)算符的優(yōu)先級(jí)、結(jié)合性和算術(shù)表達(dá)式一、運(yùn)算符的優(yōu)先級(jí)、結(jié)合性和算術(shù)表達(dá)式 在C語言中,常量、變量、函數(shù)調(diào)用以及按C語言語法規(guī)則用運(yùn)算符把運(yùn)算數(shù)連起來的式子都是合法的表達(dá)式。1算術(shù)運(yùn)算符和圓括號(hào)的優(yōu)先級(jí)次序如下: (由高低)( )、 、* 、/ 、% 、 、 2算術(shù)運(yùn)算符和圓括號(hào)的結(jié)合性以上所列的運(yùn)算符,只有單目運(yùn)算符“”和“”的結(jié)合性是從右到左,其余運(yùn)算符的結(jié)合性都是從左到右。3算術(shù)表達(dá)式用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象連接起來的、符合C語法規(guī)則的式子,稱C算術(shù)表達(dá)算術(shù)表達(dá)式式。運(yùn)算對(duì)象運(yùn)算對(duì)象可以是常

29、量、變量、函數(shù)等。關(guān)于算術(shù)表達(dá)式的幾點(diǎn)說明關(guān)于算術(shù)表達(dá)式的幾點(diǎn)說明:(1)在表達(dá)式中可以使用多層圓括號(hào),但左右括號(hào)必須配對(duì)。運(yùn)算時(shí)從內(nèi)層開始,由內(nèi)向外依次計(jì)算表達(dá)式的值。(2)在求解表達(dá)式的值時(shí),若包含不同優(yōu)先級(jí)的運(yùn)算符,則按運(yùn)算符的優(yōu)先級(jí)別由高到低運(yùn)行,若表達(dá)式中運(yùn)算符的級(jí)別相同,則按運(yùn)算符的結(jié)合方向進(jìn)行。 如表達(dá)式a+b-c,因?yàn)榧犹?hào)和減號(hào)的優(yōu)先級(jí)相同,它們的結(jié)合性為從左到右,因此先計(jì)算a+b,然后把所得的結(jié)果減去c。二、強(qiáng)制類型轉(zhuǎn)換表達(dá)式二、強(qiáng)制類型轉(zhuǎn)換表達(dá)式強(qiáng)制類型轉(zhuǎn)換表達(dá)式的形式: (類型名)(表達(dá)式)(類型名)(表達(dá)式)其中(類型名)稱為強(qiáng)制類型轉(zhuǎn)換運(yùn)算符。 例如: (float)

30、(x) 將x轉(zhuǎn)換成浮點(diǎn)型 (double)(8%3)將8%3轉(zhuǎn)換成雙精度型重點(diǎn)提示重點(diǎn)提示:在求解表達(dá)式的值時(shí),若包含不同優(yōu)先級(jí)的運(yùn)算符,則按運(yùn)算符的優(yōu)先級(jí)別由高到低運(yùn)行,若表達(dá)式中運(yùn)算符的級(jí)別相同,則按運(yùn)算符的結(jié)合方向進(jìn)行。第五節(jié) 賦值表達(dá)式一、賦值運(yùn)算符和賦值表達(dá)式一、賦值運(yùn)算符和賦值表達(dá)式1賦值運(yùn)算符賦值運(yùn)算符賦值符號(hào)“”稱為賦值運(yùn)算符,由賦值運(yùn)算符組成的表達(dá)式為賦值表達(dá)式。 格式如下: 變量名=表達(dá)式; 其作用是將一個(gè)表達(dá)式的值賦給另一個(gè)變量。 例如:a5的作用是把5賦給變量a,即把5存入變量a對(duì)應(yīng)的存儲(chǔ)單元。 關(guān)于簡(jiǎn)單的賦值運(yùn)算,要注意以下幾點(diǎn):(1)賦值符“”左邊必須是變量,右邊既

31、可以是常量,變量,也可以是函數(shù)調(diào)用或表達(dá)式。如 z=sqrt(3)+2*c。(2)賦值表達(dá)式右邊的“表達(dá)式”,也可以是一個(gè)賦值表達(dá)式,即出現(xiàn)多個(gè)賦值符號(hào)的情況。例如:a=(b=3),它相當(dāng)于b=3。(3)賦值運(yùn)算符的作用是將賦值運(yùn)算符右邊的值賦值給左邊的變量,運(yùn)算后左邊變量的值被右邊表達(dá)式的值代替,而右邊的值不會(huì)發(fā)生變化。(4)賦值符“”與數(shù)學(xué)中的等號(hào)“”外觀相同,但含義、作用不同,如i=i+1,在數(shù)學(xué)中是不成立的,但在C語言中是正確的。它的含義是將i當(dāng)前值加1再賦給變量i。(5)如果賦值號(hào)兩邊的運(yùn)算對(duì)象類型不一致,則系統(tǒng)會(huì)自動(dòng)進(jìn)行類型轉(zhuǎn)換。 轉(zhuǎn)換的規(guī)則是轉(zhuǎn)換的規(guī)則是:將賦值號(hào)右邊表達(dá)式的值的

32、類型轉(zhuǎn)換成賦值號(hào)左邊變量的類型。二、復(fù)合的賦值表達(dá)式1復(fù)合的賦值運(yùn)算符復(fù)合的賦值運(yùn)算符在賦值符“”之前加上其他運(yùn)算符,可以構(gòu)成復(fù)合的賦值運(yùn)算符。 例如 +=: x+=4 它相當(dāng)于表達(dá)式:x=x+4 即先使x加4,再賦給x。采用這種復(fù)合運(yùn)算符,一是為了簡(jiǎn)化程序,二是為了提高編譯效率。C語言規(guī)定可以使用以下10種復(fù)合賦值運(yùn)算符,如下: +=、 =、 *=、 %=、 =、 &=、 =、 =、 |=其中后五種是有關(guān)位運(yùn)算方面的,將在后續(xù)章節(jié)中介紹。注意注意:復(fù)合賦值運(yùn)算符的優(yōu)先級(jí)與賦值運(yùn)算符的優(yōu)先級(jí)相同。例如1.14:如已有變量n,值為8,計(jì)算表達(dá)式n+=n*=n-2的值。 因?yàn)橘x值運(yùn)算符與復(fù)

33、合的賦值運(yùn)算符的優(yōu)因?yàn)橘x值運(yùn)算符與復(fù)合的賦值運(yùn)算符的優(yōu)先級(jí)相同,且運(yùn)算方向自右向左先級(jí)相同,且運(yùn)算方向自右向左. 計(jì)算步驟為:(1)先計(jì)算n-2,該表達(dá)式值為6。(2)再計(jì)算n*=6,即n=n*6,此時(shí)n的值仍為8,所以表達(dá)式值為48。(3)最后計(jì)算n+=48,即n=n+48,此時(shí)n的值已經(jīng)改變?yōu)?8,所以表達(dá)式的值為96。即表達(dá)式n+=n*=n-2最終的值為96,而n最終的值也是96。2. 賦值運(yùn)算中的類型轉(zhuǎn)換賦值運(yùn)算中的類型轉(zhuǎn)換如果賦值運(yùn)算符兩側(cè)的類型不同,在賦值時(shí)系統(tǒng)要自動(dòng)進(jìn)行類型轉(zhuǎn)換,轉(zhuǎn)換原則是不論賦值號(hào)兩側(cè)類型級(jí)別高低如何,一律將賦值號(hào)右邊的類型轉(zhuǎn)換成左邊變量的類型,然后再賦值,具體

34、規(guī)定如下:1將實(shí)數(shù)賦給整型變量時(shí),舍棄實(shí)數(shù)的小數(shù)部分(不是四舍五入)。例如i是整型變量,則i2.99;結(jié)果i的值為2,在內(nèi)存中以整數(shù)形式存儲(chǔ)。2將整數(shù)賦給單、雙精度變量時(shí),數(shù)值不變,但將整數(shù)轉(zhuǎn)換成浮點(diǎn)數(shù)形式存放到左邊的變量中。例如:float x,x2,結(jié)果是將2轉(zhuǎn)換成2.000000賦給變量x。3將字符型賦給整型時(shí),由于字符型為1個(gè)字節(jié),而整型是2個(gè)字節(jié),故將字符的ASCII碼值放到整型量的低8位中,高8位為0。4將整型賦給字符型時(shí),只把低8位賦給字符量。重點(diǎn)提示重點(diǎn)提示:賦值運(yùn)算符的左邊只能是變量,不能是常量或表達(dá)式。計(jì)算表達(dá)式的值時(shí),參加運(yùn)算的各個(gè)數(shù)據(jù)類型都轉(zhuǎn)換成數(shù)據(jù)長(zhǎng)度最長(zhǎng)的數(shù)據(jù)類型,

35、然后再計(jì)算,計(jì)算的結(jié)果是數(shù)據(jù)長(zhǎng)度最長(zhǎng)的數(shù)據(jù)類型。三、自加、自減運(yùn)算符自增運(yùn)算符(+)是使運(yùn)算量增加1,自減運(yùn)算符(-)是使運(yùn)算量減1,它們有以下幾種形式:+a a值先增加1后再參與其他運(yùn)算 a+ 先參與其他運(yùn)算再使a值增加1 -a a值先減少1后再參與其他運(yùn)算 a- 先參與其他運(yùn)算再使a值減少1前綴增量運(yùn)算符前綴增量運(yùn)算符后綴增量運(yùn)算符后綴增量運(yùn)算符關(guān)于自增和自減運(yùn)算,要注意以下幾點(diǎn):(1)+a和a+的區(qū)別。(2)增量運(yùn)算符的運(yùn)算對(duì)象只能為變量,不能是常量或是表達(dá)式。例如,+3、+(i+1)等非法。(3)不論+(或-)在變量的前面還是后面,對(duì)于變量本身增加1(或減少1)都具有相同的效果。(4)但自增、自減運(yùn)算符和其他運(yùn)算符混合使用時(shí),應(yīng)注意其結(jié)合性為“自右向左”,如-a+,即相當(dāng)于-(a+)。a+作為一個(gè)表達(dá)式,該表達(dá)作為一個(gè)表達(dá)式,該表達(dá)式的值為變量式的值為變量a沒有增加沒有增加1之前之前的值,而的值,而+a的值為變量的值為變量a增加增加1之后的值。之后的值。注意區(qū)別:注意區(qū)別:j=i+; j=+i;四、逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式四、逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式“,”是C語言提供的一種特殊運(yùn)算符,用逗號(hào)將表達(dá)式連接起來的式子稱為逗號(hào)表逗號(hào)表達(dá)式達(dá)式。 其一般形式為: 表達(dá)式1,表達(dá)式2,表達(dá)式n 例如: x=5,y=6,z=7說明:說明:1逗號(hào)運(yùn)算符的結(jié)合性為從左到右,先計(jì)算表達(dá)式

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論