第2章基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式_第1頁
第2章基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式_第2頁
第2章基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式_第3頁
第2章基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式_第4頁
第2章基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式_第5頁
已閱讀5頁,還剩83頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、2022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 1C C語言程序設(shè)計語言程序設(shè)計 第第2 2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式2022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 2【學(xué)習(xí)目標(biāo)學(xué)習(xí)目標(biāo)】掌握掌握C C語言的基本數(shù)據(jù)類型語言的基本數(shù)據(jù)類型掌握常量的使用掌握常量的使用掌握掌握變量變量的定義與使用的定義與使用掌握掌握運(yùn)算符運(yùn)算符的應(yīng)用的應(yīng)用掌握掌握C C語言提供的常用庫函數(shù)語言提供的常用庫函數(shù)2022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 32

2、.2 2.2 變量和常量變量和常量2.3 2.3 運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式第第2 2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式2.4 2.4 數(shù)據(jù)類型轉(zhuǎn)換數(shù)據(jù)類型轉(zhuǎn)換2.5 2.5 數(shù)據(jù)的輸入輸出數(shù)據(jù)的輸入輸出2.6 2.6 系統(tǒng)系統(tǒng)函數(shù)函數(shù)2022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 4為了更好地對數(shù)據(jù)進(jìn)行存儲和處理,為了更好地對數(shù)據(jù)進(jìn)行存儲和處理,語言中的數(shù)據(jù)類型可分為:語言中的數(shù)據(jù)類型可分為:基本數(shù)據(jù)類型,基本數(shù)據(jù)類型,構(gòu)造數(shù)據(jù)類型,指針類型,空類型構(gòu)造數(shù)據(jù)類型,指針類型,空類型四大類四大類程序中要對各種各樣的數(shù)據(jù)進(jìn)行描述

3、和程序中要對各種各樣的數(shù)據(jù)進(jìn)行描述和操作,用到的數(shù)據(jù)都必須指明其類型。數(shù)據(jù)操作,用到的數(shù)據(jù)都必須指明其類型。數(shù)據(jù)類型的作用:類型的作用:指出了應(yīng)為數(shù)據(jù)分配的存儲空間的大小指出了應(yīng)為數(shù)據(jù)分配的存儲空間的大小規(guī)定了數(shù)據(jù)所能進(jìn)行的操作規(guī)定了數(shù)據(jù)所能進(jìn)行的操作P102022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 5整型(整型(int)數(shù)據(jù)類型數(shù)據(jù)類型基本類型基本類型整型整型單精度型(單精度型(float)字符型(字符型(char)長整型(長整型(long)短整型(短整型(short)實(shí)型實(shí)型雙精度型雙精度型(double)枚舉類型(枚舉類型(enum)共用體類型

4、(共用體類型(union)構(gòu)造類型構(gòu)造類型結(jié)構(gòu)體類型(結(jié)構(gòu)體類型(struct)數(shù)組類型數(shù)組類型空類型(空類型(void)指針類型(指針類型(*)教材教材P1062.1.1 2.1.1 整型整型整型常量即整常數(shù)。 C語言定義了6種整型,分別是:基本(標(biāo)準(zhǔn))整型 int短整型 short或short int 長整型 long或long int無符號基本整型 unsigned int無符號短整型 unsigned short無符號長整型 unsigned long7 類型匹配規(guī)則:一個整型常量,可類型匹配規(guī)則:一個整型常量,可以賦給能容納下其值的整型變量以賦給能容納下其值的整型變量82.1.2 2

5、.1.2 實(shí)型實(shí)型實(shí)型數(shù)據(jù)又稱浮點(diǎn)型數(shù)據(jù)。共有三種表示實(shí)數(shù)的類型:float,單精度浮點(diǎn)數(shù)類型。double,雙精度浮點(diǎn)數(shù)類型。long double,長雙精度類型。92.1.3 2.1.3 字符型字符型字符型的數(shù)據(jù)即通常的字符。字符類型的數(shù)據(jù)包括計算機(jī)所用編碼字符集中的所有字符。常用的ASCII字符集包括所有大小寫英文字母、數(shù)字、各種標(biāo)點(diǎn)符號字符,還有一些控制符,一共128個。2022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 102.1 數(shù)據(jù)類型2.3 運(yùn)算符和表達(dá)式2.4 數(shù)據(jù)類型轉(zhuǎn)換2.5 數(shù)據(jù)的輸入輸出2.6 系統(tǒng)函數(shù)2022-5-31第第2章章

6、基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 11u對于基本數(shù)據(jù)類型量,按其取值是否可改變又分對于基本數(shù)據(jù)類型量,按其取值是否可改變又分為為常量和變量常量和變量兩種。兩種。在程序執(zhí)行過程中,其值不發(fā)生改變的量稱為常量,在程序執(zhí)行過程中,其值不發(fā)生改變的量稱為常量,其值可變的量稱為變量。其值可變的量稱為變量。u與數(shù)據(jù)類型結(jié)合起來分類,分為整型常量、整型與數(shù)據(jù)類型結(jié)合起來分類,分為整型常量、整型變量、浮點(diǎn)常量、浮點(diǎn)變量、字符常量、字符變量、變量、浮點(diǎn)常量、浮點(diǎn)變量、字符常量、字符變量、枚舉常量、枚舉變量。枚舉常量、枚舉變量。在程序中,常量是可以不經(jīng)說明而直接引用的,而在程序中,常量是可

7、以不經(jīng)說明而直接引用的,而變量則必須先定義后使用變量則必須先定義后使用。P122022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 12P122.2.1 變量p變量是指在程序運(yùn)行過程中其值可以被改變的量。一個變量有三個相關(guān)的要素:變量名變量的數(shù)據(jù)類型變量的值程序中一個變量只能屬于一個類型,即一旦定義了不能再更改。2022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 13l變量名代表該變量的存儲單元及其存放的變量名代表該變量的存儲單元及其存放的值,系統(tǒng)為不同類型的變量在內(nèi)存中開辟值,系統(tǒng)為不同類型的變量在內(nèi)存中開辟不同的存儲單元

8、,以便存放相應(yīng)類型的值;不同的存儲單元,以便存放相應(yīng)類型的值;不同類型的變量存放數(shù)據(jù)的方法也不相同。不同類型的變量存放數(shù)據(jù)的方法也不相同。 系統(tǒng)還根據(jù)變量的類型檢查該變量所進(jìn)系統(tǒng)還根據(jù)變量的類型檢查該變量所進(jìn)行的運(yùn)算是否合法,例如只有整型變量和行的運(yùn)算是否合法,例如只有整型變量和整數(shù)才能參與求余(整數(shù)才能參與求余(%)運(yùn)算)運(yùn)算。P122022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 141. 1.變量的定義和賦值變量的定義和賦值pC語言中變量必須“先定義,后使用”??梢栽谧兞康穆暶髡Z句中同時定義變量的初始化,即賦初值。聲明變量語句的形式為:類型類型 變量

9、名變量名=初值初值,變量名,變量名=初值初值 注:若未賦初值,一般默認(rèn)初值為隨機(jī)數(shù)。注:若未賦初值,一般默認(rèn)初值為隨機(jī)數(shù)。p注意:注意:數(shù)學(xué)中的數(shù)學(xué)中的“=”符號不同于符號不同于C語言中的賦語言中的賦值符號值符號“=”,在,在C語言的語言的a=a+1是成立的,表示是成立的,表示“a加上加上1的值賦給變量的值賦給變量a”。在。在C語言中判斷兩個語言中判斷兩個數(shù)是否相等時使用符號數(shù)是否相等時使用符號“=”。教材教材P13變量應(yīng)先定義,后賦值,再參與運(yùn)算。變量應(yīng)先定義,后賦值,再參與運(yùn)算。15pC語言變量命名規(guī)則: C語言中,變量只能由字母、數(shù)字和下劃線組成,且第一個字符必須為字母或下劃線。具體命名

10、規(guī)則如下: 1)只能由下劃線、數(shù)字0-9與a-z,A-Z構(gòu)成。 2)變量名首字符必須是字母或下劃線。 3)C語言中大小寫字母是敏感的,代表不同的意義。如:Str和str是兩個不同的變量。Int? 4)變量名不能為系統(tǒng)關(guān)鍵字。p習(xí)慣上,變量名用小寫字母表示,名字要“見名知義”。16l例如 int a; float f; int x,y,min; int m,n=3,w=5;l以下為非法定義: int a=b=c=5; 正確的形式是: int a=5,b=5,c=5; 或 int a,b,c; a=b=c=5;類型類型 變量名變量名=初值初值,變量名,變量名=初值初值 問題:問題:float sc

11、ore.a=90;score.b=80;score.c=70;score.d=60;定義正確么?定義正確么?/ /* * 賦值示例賦值示例* */ /#include main()int a1,a2,a3,x;int a4=10;int a5=20,a6=100;float f;a1=1;a2=2;a3=3;f=12;x=A;printf(a1=%d,a2=%d,a3=%d,a4=%d,a5=%d,a6=%dn,a1,a2,a3,a4,a5,a6);printf(f=%f,x=%dn,f,x);/ /* * 賦值示例賦值示例* */ /#include main()int a1,a2,a3,x

12、;int a4=10;int a5=20,a6=100;float f;a1=1;a2=2;a3=3;f=12;x=A;int a1,a2,a3,x,a4=10,a5=20,a6=100;printf(a1=%d,a2=%d,a3=%d,a4=%d,a5=%d,a6=%dn,a1,a2,a3,a4,a5,a6);printf(f=%f,x=%dn,f,x);182. 變量中數(shù)據(jù)的存儲p對于無符號整數(shù),其存儲較簡單,存儲單元的0或1均表示數(shù)。p如何表示有符號整數(shù)? 原碼:原碼:二進(jìn)制數(shù)的最高位為符號位,如果符號位二進(jìn)制數(shù)的最高位為符號位,如果符號位為為0,則為正數(shù);如果符號位為,則為正數(shù);如果符

13、號位為1,則為負(fù)數(shù)。,則為負(fù)數(shù)。 反碼:反碼:正數(shù)的反碼和原碼相同,負(fù)數(shù)的反碼為除正數(shù)的反碼和原碼相同,負(fù)數(shù)的反碼為除符號位以外的穩(wěn)中有各位取反。符號位以外的穩(wěn)中有各位取反。 補(bǔ)碼:補(bǔ)碼:正數(shù)的補(bǔ)碼和原碼相同,而負(fù)數(shù)的補(bǔ)碼為正數(shù)的補(bǔ)碼和原碼相同,而負(fù)數(shù)的補(bǔ)碼為其反碼加其反碼加1.19機(jī)器字長為機(jī)器字長為8位二進(jìn)制數(shù):位二進(jìn)制數(shù):例:例:+97-97+97-97原碼原碼01100001B11100001B反碼反碼01100001B10011110B補(bǔ)碼補(bǔ)碼01100001B10011111B計算機(jī)中的負(fù)數(shù)用補(bǔ)碼表示。20已知補(bǔ)碼求真值:當(dāng)機(jī)器數(shù)的最高位(符號位)為0時,真值為正,值等于其余n-1

14、位的值;當(dāng)機(jī)器數(shù)的最高位(符號位)為1時,真值為負(fù),值等于其余n-1位按位取反,末尾+1的值。補(bǔ)碼表示的整數(shù)范圍是:-2n-1 N2n-1-1 2022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 21常量,指在程序運(yùn)行中其值不能被改變的量。常量,指在程序運(yùn)行中其值不能被改變的量。常量常量可分為直接常量和符號常量可分為直接常量和符號常量,其中直接常量包括:其中直接常量包括:整型常量、實(shí)型常量、字符型整型常量、實(shí)型常量、字符型常量、字符串常量常量、字符串常量。1. 1.整型常量整型常量整型常量有三種表示方法:整型常量有三種表示方法:(1) (1) 十進(jìn)制整數(shù)十進(jìn)

15、制整數(shù):一串連續(xù)的數(shù)字表示,最高位:一串連續(xù)的數(shù)字表示,最高位非零非零。(2) (2) 八進(jìn)制整數(shù)八進(jìn)制整數(shù):以數(shù)字:以數(shù)字0 0開頭的數(shù)是八進(jìn)制數(shù)。開頭的數(shù)是八進(jìn)制數(shù)。(3) (3) 十六進(jìn)制整數(shù)十六進(jìn)制整數(shù):以:以0 x0 x開頭的,開頭的,a-fa-f不區(qū)分大小寫不區(qū)分大小寫 。在上述方法表示的整數(shù)后面附一個字母在上述方法表示的整數(shù)后面附一個字母l l或或L L作后綴,作后綴,即可表示該數(shù)據(jù)的類型是長整型的即可表示該數(shù)據(jù)的類型是長整型的。P14 例:32767,010,018,0 x10,0 xf -63L、0123LU、0 x4aL2022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表

16、達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 222.2.實(shí)型常量實(shí)型常量帶小數(shù)的數(shù)稱為實(shí)數(shù)或浮點(diǎn)數(shù)。帶小數(shù)的數(shù)稱為實(shí)數(shù)或浮點(diǎn)數(shù)。實(shí)型常量實(shí)型常量只能用十進(jìn)制形式表示只能用十進(jìn)制形式表示,不能用八進(jìn)制和,不能用八進(jìn)制和十六進(jìn)制形式表示。十六進(jìn)制形式表示。實(shí)型常量有兩種表示實(shí)型常量有兩種表示方法:方法:(1)(1)小數(shù)形式小數(shù)形式:由數(shù)字和小數(shù)點(diǎn)組成,如:由數(shù)字和小數(shù)點(diǎn)組成,如3.14159263.1415926、-0.12-0.12、.4.4、3.3.等都是實(shí)數(shù)。等都是實(shí)數(shù)。(2)(2)指數(shù)形式指數(shù)形式:如:如1.23e51.23e5或或12.3E412.3E4都代表都代表1.23x1051.23x105

17、。注注: :字母字母e e(或(或E E)之前必須有數(shù)字,且)之前必須有數(shù)字,且e e后面后面指數(shù)必須為整數(shù)指數(shù)必須為整數(shù),如,如e3e3、2.1e3.22.1e3.2、e e等都等都不是合法的指數(shù)形式。不是合法的指數(shù)形式。 P152022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 233.3.字符常量字符常量字符型常量是由一對字符型常量是由一對單引號單引號括起來的括起來的單個字單個字符符構(gòu)成,在語言中,字符常量有以下特點(diǎn):構(gòu)成,在語言中,字符常量有以下特點(diǎn):(1) (1) 字符常量只能用字符常量只能用單引號單引號括起來,不能用雙括起來,不能用雙引號或其它括

18、號。引號或其它括號。(2) (2) 字符常量只能是字符常量只能是單個字符單個字符,不能是字符串。,不能是字符串。(3) (3) 字符可以是字符可以是字符集中任意字符字符集中任意字符。一個字符。一個字符型常量的值是該字符集中對應(yīng)的型常量的值是該字符集中對應(yīng)的ASCIIASCII編碼值。編碼值。顯然顯然55和和5 5 是不同的。是不同的。P1524p在C語言中,還有一些特殊的控制字符無法直接寫出,如換行字符。pC語言為它們規(guī)定了特殊寫法:以反斜杠開頭()的一個字符或一個數(shù)字序列,這類字符稱為轉(zhuǎn)義字符。即將后面的字符轉(zhuǎn)換為另外的意義,其實(shí)是一種控制符號。如換行字符n,退格字符b。P152022-5-

19、31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 25表2-3 轉(zhuǎn)義字符表(P15)字符形式字符形式功功 能能nn換行,將光標(biāo)從當(dāng)前位置移到下一行開頭換行,將光標(biāo)從當(dāng)前位置移到下一行開頭t t橫向跳格,光標(biāo)跳到下一個水平制表位橫向跳格,光標(biāo)跳到下一個水平制表位bb退格退格r r回車,將光標(biāo)從當(dāng)前位置移到本行開頭回車,將光標(biāo)從當(dāng)前位置移到本行開頭f f換頁,將光標(biāo)從當(dāng)前位置移到下一頁開頭換頁,將光標(biāo)從當(dāng)前位置移到下一頁開頭 反斜杠字符反斜杠字符“ ” 單引號字符單引號字符“” 雙引號字符雙引號字符“ ”ddddddASCIIASCII碼為碼為1 1到到3 3位位8 8進(jìn)制

20、數(shù)所代表的字符進(jìn)制數(shù)所代表的字符xhhxhhASCIIASCII碼為碼為1 1到到2 2位位1616進(jìn)制數(shù)所代表的字符進(jìn)制數(shù)所代表的字符2022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 264.4.字符串常量字符串常量C C語言中沒有專門的字符串類型的變量語言中沒有專門的字符串類型的變量,但有字符串常但有字符串常量量。字符串常量是用字符串常量是用雙引號雙引號括起來的字符序列括起來的字符序列, , 系統(tǒng)在系統(tǒng)在字符串常量最后自動加字符串結(jié)束符號字符串常量最后自動加字符串結(jié)束符號 0 0 。例如:例如: 字符串字符串“A A”的存儲形式:的存儲形式:字符字符A

21、 A的存儲形式:的存儲形式: A 0 A內(nèi)存中實(shí)際存放的是內(nèi)存中實(shí)際存放的是這些字符的這些字符的ASCII碼碼P152022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 27P15注意:雙引號僅起定界符的作用,不是字符串中的字符。注意:字符串不能直接包括單引號、雙引號和反斜杠,若要使用,使用轉(zhuǎn)義字符。字符串常量和字符常量的區(qū)別: 字符常量由單引號括起來,字符串常量為雙引號。字符常量占一個字節(jié)的內(nèi)存空間。2022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 285.5.符號常量符號常量符號常量就是符號常量就是使用符號代表常量使用

22、符號代表常量。C C語言中允許用標(biāo)語言中允許用標(biāo)識符定義一個常量,這種常量定義在識符定義一個常量,這種常量定義在C C語言中被稱之語言中被稱之為為“宏定義宏定義”,其一般形式為:,其一般形式為: #define #define 標(biāo)識符標(biāo)識符 常量常量 其中其中#define#define是一條是一條預(yù)處理命令預(yù)處理命令,稱為宏定義命令。一經(jīng)定義,在程序中所有出現(xiàn)該標(biāo)識符的地方均代一經(jīng)定義,在程序中所有出現(xiàn)該標(biāo)識符的地方均代之以該常量值。之以該常量值。符號常量雖然用標(biāo)識符來標(biāo)識,但符號常量雖然用標(biāo)識符來標(biāo)識,但本質(zhì)上是常量本質(zhì)上是常量,具有常量值不能改變的性質(zhì)。,具有常量值不能改變的性質(zhì)。好處:

23、對于較大的數(shù)值,減少輸入量。習(xí)慣上,符號常量的標(biāo)識符用大寫字母,變量標(biāo)識習(xí)慣上,符號常量的標(biāo)識符用大寫字母,變量標(biāo)識符用小寫字母,以示區(qū)別。符用小寫字母,以示區(qū)別。不是語句,不是語句,不加分號不加分號P162022年5月31日星期二安徽理工大學(xué)計算機(jī)科學(xué)與技術(shù)系安徽理工大學(xué)計算機(jī)科學(xué)與技術(shù)系29#define PI 3.14#include “stdio.hvoid main( )float r=3.0,s,l; l=2*PI*r; s=PI*r*r; printf(“l(fā)=%f,s=%f”,l,s);例例: :求圓求圓周長和面周長和面積積2022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)

24、式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 302.1 數(shù)據(jù)類型2.2 變量和常量2.4 數(shù)據(jù)類型轉(zhuǎn)換2.5 數(shù)據(jù)的輸入輸出2.6 系統(tǒng)函數(shù)31C語言的運(yùn)算符非常豐富,運(yùn)算符的使用方法也非常靈活。一般可分為以下幾類:算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符、賦值運(yùn)算符、條件運(yùn)算符、逗號運(yùn)算符、指針運(yùn)算符、求字節(jié)數(shù)運(yùn)算符、類型轉(zhuǎn)換運(yùn)算符、分量運(yùn)算符、下標(biāo)運(yùn)算符,以及函數(shù)調(diào)用運(yùn)算符等。2.3 2.3 運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式2022年5月31日星期二安徽理工大學(xué)計算機(jī)科學(xué)與技術(shù)系安徽理工大學(xué)計算機(jī)科學(xué)與技術(shù)系32運(yùn)算符運(yùn)算符具有具有三個屬性三個屬性:優(yōu)先級優(yōu)先級: :指運(yùn)算的先后次序,共分指運(yùn)算的先后

25、次序,共分1515個級別。個級別。( (見見p17p17表表2-4)2-4)結(jié)合性結(jié)合性: :指相同優(yōu)先級運(yùn)算符連續(xù)出現(xiàn)時的計算順指相同優(yōu)先級運(yùn)算符連續(xù)出現(xiàn)時的計算順序,即左結(jié)合性(自左至右)和右結(jié)合性(自右至序,即左結(jié)合性(自左至右)和右結(jié)合性(自右至左)。除特別聲明外,皆指自左向右。左)。除特別聲明外,皆指自左向右。目目 數(shù)數(shù): : 指運(yùn)算符要求的操作數(shù)的個數(shù),包括單目、指運(yùn)算符要求的操作數(shù)的個數(shù),包括單目、雙目和三目,雙目和三目,一般目數(shù)越少,優(yōu)先級越高。一般目數(shù)越少,優(yōu)先級越高。表達(dá)式表達(dá)式:由常量、變量、函數(shù)調(diào)用和運(yùn)算符按一定:由常量、變量、函數(shù)調(diào)用和運(yùn)算符按一定規(guī)律組合在一起構(gòu)成的

26、式子。規(guī)律組合在一起構(gòu)成的式子。如:如:a+14/(3+2)-sqrt(17)a+14/(3+2)-sqrt(17)2.3 2.3 運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式P171級最高,15級最低。在表達(dá)式中,優(yōu)先級較高的先于優(yōu)先級較低的進(jìn)行運(yùn)算。而在一個運(yùn)算量兩側(cè)的運(yùn)算符優(yōu)先級相同的,則按運(yùn)算符的結(jié)合性所規(guī)定的結(jié)合方向處理。算術(shù)運(yùn)算符的結(jié)合性是自左至右,即先左后右。如表達(dá)式x-y+z。這種自左至右的結(jié)合方向稱為“左結(jié)合性”。而自右至左的結(jié)合方向稱為“右結(jié)合性”。如x=y=z,由于“=”的右結(jié)合性,應(yīng)先執(zhí)行y=x,再執(zhí)行x=(y=z)。2022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類

27、型、運(yùn)算符和表達(dá)式 331. 1. 基本的算術(shù)運(yùn)算符(共有基本的算術(shù)運(yùn)算符(共有5 5種)種)+ +, , - -, , * * (乘)(乘), , / / (除)(除), ,% (取模,求余運(yùn)算)(取模,求余運(yùn)算)說明:說明:u在除法運(yùn)算中,當(dāng)兩個操作數(shù)都是整數(shù)時,商也為在除法運(yùn)算中,當(dāng)兩個操作數(shù)都是整數(shù)時,商也為整整數(shù)數(shù),小數(shù)部分一律舍去。如:,小數(shù)部分一律舍去。如:1/2 0 , 1.0 /2 0.5 u注意:注意:如果兩個數(shù)中有一個為負(fù)數(shù),則舍入的方向是如果兩個數(shù)中有一個為負(fù)數(shù),則舍入的方向是不固定的。機(jī)器不同結(jié)果不同。當(dāng)兩個操作數(shù)均為整數(shù)不固定的。機(jī)器不同結(jié)果不同。當(dāng)兩個操作數(shù)均為整

28、數(shù)時,結(jié)果為整數(shù);若有一個是實(shí)數(shù),結(jié)果為時,結(jié)果為整數(shù);若有一個是實(shí)數(shù),結(jié)果為doubl型。型。u%(求余運(yùn)算)要求兩個操作數(shù)都是(求余運(yùn)算)要求兩個操作數(shù)都是整型整型,結(jié)果為整,結(jié)果為整除后余下的整余數(shù)。余數(shù)的符號與被除數(shù)相同,如除后余下的整余數(shù)。余數(shù)的符號與被除數(shù)相同,如7%-1的結(jié)果為的結(jié)果為1,而,而-7%3為為-1;u其它運(yùn)算的兩個操作數(shù)可為整數(shù)和實(shí)數(shù)。其它運(yùn)算的兩個操作數(shù)可為整數(shù)和實(shí)數(shù)。P182022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 342.2.自增、自減運(yùn)算符自增、自減運(yùn)算符(+(+、- -)- -) +i, -i ( +i, -i

29、(在使用在使用 i i之前之前, ,先使先使i i的值加減的值加減1)1) i+, i- ( i+, i- (在使用在使用 i i之后之后, , 使使i i的值加減的值加減1)1)若若 i i 的值為的值為3 3,則:,則:j=+i; jj=+i; j的值為的值為4, i4, i的值為的值為4 4j=i+; jj=i+; j的值為的值為3, i3, i的值為的值為4 4注意注意: 自增、自減運(yùn)算符只能用于變量,自增、自減運(yùn)算符只能用于變量,而不能用于常量和表達(dá)式而不能用于常量和表達(dá)式。 ( ) 5+、(a+b)+P192022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算

30、符和表達(dá)式 35 若若 i i 的值為的值為3 3,則:,則:j=+i; jj=+i; j的值為的值為4, i4, i的值為的值為4 4j=i+; jj=i+; j的值為的值為3, i3, i的值為的值為4 4P19問題:問題:j=-i+,值為多少?,值為多少? j= -+i,值為多少?,值為多少?2022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 363.3.賦值運(yùn)算符賦值運(yùn)算符“”lC C語言中,賦值被認(rèn)為是一種運(yùn)算,由賦值運(yùn)算語言中,賦值被認(rèn)為是一種運(yùn)算,由賦值運(yùn)算符將一個變量和一個表達(dá)式連接起來的式子稱為賦符將一個變量和一個表達(dá)式連接起來的式子稱為賦

31、值表達(dá)式。其形式是:值表達(dá)式。其形式是: l賦值運(yùn)算符為賦值運(yùn)算符為“=”,它的作用是將賦值運(yùn)算符右,它的作用是將賦值運(yùn)算符右邊表達(dá)式或常量的值賦給其左邊的變量。邊表達(dá)式或常量的值賦給其左邊的變量。賦值表達(dá)賦值表達(dá)式的值就是被賦值的變量的值式的值就是被賦值的變量的值。l賦值表達(dá)式的值也可以再賦給其它變量。賦值表達(dá)式的值也可以再賦給其它變量。P19如:如:a=(b=3+5) ,a的值為的值為8。如果賦值運(yùn)算。如果賦值運(yùn)算符兩側(cè)的數(shù)據(jù)類型不同,則在賦值時要進(jìn)符兩側(cè)的數(shù)據(jù)類型不同,則在賦值時要進(jìn)行類型轉(zhuǎn)換。行類型轉(zhuǎn)換。賦值表達(dá)式,其值為賦值表達(dá)式,其值為8例如:例如:a=6這個賦值表達(dá)式的值是這個賦

32、值表達(dá)式的值是6(變量(變量a的值也是的值也是6)。)。2022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 374.4.復(fù)合賦值運(yùn)算符復(fù)合賦值運(yùn)算符lC C語言允許在賦值運(yùn)算符語言允許在賦值運(yùn)算符“=”之前加上其他運(yùn)之前加上其他運(yùn)算符以構(gòu)成復(fù)合的賦值運(yùn)算符。例如:算符以構(gòu)成復(fù)合的賦值運(yùn)算符。例如: a+=5a+=5;等價于等價于a=a+5a=a+5;a a* *=b+5=b+5; 等價于等價于 a=aa=a* *(b+5);(b+5);l凡是雙目運(yùn)算符,都可以和賦值運(yùn)算符一起組凡是雙目運(yùn)算符,都可以和賦值運(yùn)算符一起組合成復(fù)合的賦值運(yùn)算符。合成復(fù)合的賦值運(yùn)算符

33、。l在在C C語言中,可以使用的復(fù)合賦值運(yùn)算符有:語言中,可以使用的復(fù)合賦值運(yùn)算符有:+=+=,-=-=,* *=,/=/=,%=%=,=,&=&=,=,|=|=優(yōu)點(diǎn):一是簡化程序,使程序精練;二是為了一是簡化程序,使程序精練;二是為了提高編譯效率,產(chǎn)生高質(zhì)量的目標(biāo)代碼。提高編譯效率,產(chǎn)生高質(zhì)量的目標(biāo)代碼。賦值號左側(cè)只能是變量賦值號左側(cè)只能是變量( (或數(shù)組元素或數(shù)組元素) ),不能為表達(dá)式或常量不能為表達(dá)式或常量,如:,如:a+2a+2* *=b (=b () ) a=b+2=c+5 (a=b+2=c+5 () )P192022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)

34、式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 385.5.關(guān)系運(yùn)算符(比較運(yùn)算)關(guān)系運(yùn)算符(比較運(yùn)算)l關(guān)系運(yùn)算符實(shí)際上就是比較運(yùn)算。用于比較兩個量的運(yùn)算符就稱為關(guān)系運(yùn)算符。C語言提供了6種關(guān)系運(yùn)算符:種類種類: 、= 、=、=、!=!=優(yōu)先級優(yōu)先級: (從高到低)(從高到低)( ( 、 = 、 = ) = ) ( ( = = = 、 != ) != )l關(guān)系運(yùn)算符都是雙目運(yùn)算符,且要求兩個操作數(shù)都是同一數(shù)據(jù)類型,其結(jié)果為邏輯值。關(guān)系運(yùn)算描述關(guān)系運(yùn)算描述的是一種的是一種“判斷關(guān)系判斷關(guān)系”,即關(guān)系成立時,其值為真(True),用1表示;關(guān)系不成立時,其值為假(False),用0表示。 P202022-5-3

35、1第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 39P20思考:思考:0到到100之間的數(shù)能否表示為之間的數(shù)能否表示為 0=x3的結(jié)果為的結(jié)果為1, a B 的結(jié)果為的結(jié)果為0注:字符串不能用關(guān)系比較符比較!注:字符串不能用關(guān)系比較符比較!2022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 406.6.邏輯運(yùn)算符邏輯運(yùn)算符邏輯運(yùn)算符:用于連接一個或多個條件,判斷這邏輯運(yùn)算符:用于連接一個或多個條件,判斷這些條件是否成立。些條件是否成立。 C語言提供語言提供三種邏輯運(yùn)算符,三種邏輯運(yùn)算符,分別是:分別是:& “& “與與

36、”運(yùn)算運(yùn)算| “| “或或”運(yùn)算運(yùn)算! “! “非非”運(yùn)算運(yùn)算其中,其中,與運(yùn)算符與運(yùn)算符&和或運(yùn)算符和或運(yùn)算符|均為雙目均為雙目運(yùn)算符,非運(yùn)算符運(yùn)算符,非運(yùn)算符! !為單目運(yùn)算符為單目運(yùn)算符。P202022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 41P20邏輯運(yùn)算的真值表ab!a!ba&ba|b真真真真假假假假真真真真真真假假假假真真假假真真假假真真真真假假假假真真假假假假真真真真假假假假ab!a!ba&ba|b1100111001010110010011002022年5月31日星期二安徽理工大學(xué)計算機(jī)科學(xué)與技術(shù)系安徽理工大學(xué)計

37、算機(jī)科學(xué)與技術(shù)系42說明:說明:當(dāng)多個當(dāng)多個&連續(xù)出現(xiàn)時,如連續(xù)出現(xiàn)時,如表達(dá)式表達(dá)式& & 表達(dá)式表達(dá)式 & & 表達(dá)式表達(dá)式從左到右,只從左到右,只要一個操作數(shù)為要一個操作數(shù)為0 0,結(jié)果就為,結(jié)果就為0 0,不進(jìn)行后續(xù)運(yùn)算。,不進(jìn)行后續(xù)運(yùn)算。當(dāng)多個當(dāng)多個 | | 連續(xù)出現(xiàn)時,如連續(xù)出現(xiàn)時,如表達(dá)式表達(dá)式 | | 表達(dá)式表達(dá)式 | | 表達(dá)式表達(dá)式從左到右,從左到右,只要一個操作數(shù)為只要一個操作數(shù)為1 1,結(jié)果就為,結(jié)果就為1 1,不進(jìn)行后續(xù)運(yùn)算。,不進(jìn)行后續(xù)運(yùn)算。例:例:#include “stdio.hvoid main()int m,n=10;

38、 m=2&n+; printf(“m=%d,n=%d”,m,n);1.分析運(yùn)行結(jié)果分析運(yùn)行結(jié)果2. 改為改為m=0&n+,結(jié)果又如何結(jié)果又如何?P202022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 437.7.位運(yùn)算位運(yùn)算l位運(yùn)算符是以單獨(dú)的二進(jìn)制位為操作對象的位運(yùn)算符是以單獨(dú)的二進(jìn)制位為操作對象的運(yùn)算。也就是說,運(yùn)算。也就是說,其操作數(shù)是二進(jìn)制數(shù)其操作數(shù)是二進(jìn)制數(shù)。lC C語言中提供的位運(yùn)算符有:按位與(語言中提供的位運(yùn)算符有:按位與(& &)、)、按位或(按位或(| |)、按位異或()、按位異或()、按位取反)、按位取

39、反()、左移()、左移(),),(P2123P2123)xyx&yx|yxyy0000010101101001111111002022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 447.7.位運(yùn)算位運(yùn)算例:56按位取反: 56(00111000)56(00111000)199(11000111)按位與56&157按位或56|157(P2123P2123)2022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 457.7.位運(yùn)算位運(yùn)算按位異或:56157 左移位 x=00001111, y=x2 則y=00010

40、100(P2123P2123)注意:注意:1 1)左左移會引起數(shù)據(jù)的變化,左移一位相當(dāng)于原數(shù)移會引起數(shù)據(jù)的變化,左移一位相當(dāng)于原數(shù)乘乘以以2 2,左移,左移n n位,則乘以位,則乘以2 2n n. .2 2)右右移也會引起數(shù)據(jù)的變化,右移一位相當(dāng)于原數(shù)移也會引起數(shù)據(jù)的變化,右移一位相當(dāng)于原數(shù)除除以以2 2,右,右移移n n位,則除以位,則除以2 2n n. .2022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 468.8.求字節(jié)數(shù)運(yùn)算符求字節(jié)數(shù)運(yùn)算符 sizeofsizeof是是C C語言的一種單目操作符,并不是函數(shù)。語言的一種單目操作符,并不是函數(shù)。 si

41、zeofsizeof操作符以字節(jié)形式給出了其操作數(shù)的存儲操作符以字節(jié)形式給出了其操作數(shù)的存儲大小。大小。sizeofsizeof可以用于數(shù)據(jù)類型和變量??梢杂糜跀?shù)據(jù)類型和變量。如:如:sizeof(intsizeof(int) ),sizeof(var_namesizeof(var_name) ),sizeofsizeof var_namevar_name。 P242022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 478.8.求字節(jié)數(shù)運(yùn)算符求字節(jié)數(shù)運(yùn)算符關(guān)于關(guān)于sizeofsizeof的結(jié)果:的結(jié)果:1. 1. 操作數(shù)具有類型操作數(shù)具有類型charchar

42、、unsignedunsignedcharchar或或signedsignedcharchar,其結(jié)果等于,其結(jié)果等于1 1。因?yàn)?。因?yàn)锳NSIANSIC C正式規(guī)定字符正式規(guī)定字符類型為類型為1 1字節(jié)。字節(jié)。 2. 2. intint、unsignedunsignedintint、shortshortintint、unsignedunsignedshortshort、longlongintint、unsignedunsignedlonglong、floatfloat、doubledouble、longlongdoubledouble類型的類型的sizeofsizeof在在ANSIANSIC

43、 C中沒有具體規(guī)定,大小依賴于實(shí)現(xiàn),一般可能分中沒有具體規(guī)定,大小依賴于實(shí)現(xiàn),一般可能分別為別為4 4、4 4、2 2、2 2、4 4、4 4、4 4、8 8、1010。3. 3. 當(dāng)操作數(shù)是指針時,當(dāng)操作數(shù)是指針時,sizeofsizeof依賴于操作系統(tǒng)。如依賴于操作系統(tǒng)。如3232位系統(tǒng)和位系統(tǒng)和6464位系統(tǒng)返回的結(jié)果不一樣。位系統(tǒng)返回的結(jié)果不一樣。4. 4. 當(dāng)操作數(shù)是數(shù)組類型時,返回數(shù)組的總字節(jié)數(shù)。當(dāng)操作數(shù)是數(shù)組類型時,返回數(shù)組的總字節(jié)數(shù)。 P242022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 489.9.逗號運(yùn)算符逗號運(yùn)算符用逗號運(yùn)算符可將兩

44、個表達(dá)式連接起來。用逗號運(yùn)算符可將兩個表達(dá)式連接起來。形式:形式: e1,e2,e3,e1,e2,e3,其中其中e1e1、e2e2、e3e3均為表達(dá)式,從左向右依次均為表達(dá)式,從左向右依次計算各個表達(dá)式的值,而將計算各個表達(dá)式的值,而將最后最后一個表達(dá)式的值一個表達(dá)式的值作為整個表達(dá)式的值,逗號運(yùn)算符常用于循環(huán)語句作為整個表達(dá)式的值,逗號運(yùn)算符常用于循環(huán)語句的表達(dá)式中,將多個表達(dá)式連接成一個表達(dá)式,的表達(dá)式中,將多個表達(dá)式連接成一個表達(dá)式,如:如: for(ifor(i=0,j=0,j=n;in;i (xy?x:yy?x:y) ); / /* *將和中較大的一個將和中較大的一個數(shù)賦值給變量數(shù)賦

45、值給變量maxmax* */ /思考題:思考題: 對對n(0)n(0)個人進(jìn)行分班,每班個人進(jìn)行分班,每班k(0)k(0)個人,最后個人,最后不足不足k k人也編一班,問要編幾個班?(試用條件運(yùn)算人也編一班,問要編幾個班?(試用條件運(yùn)算符表達(dá))符表達(dá))n%k0?n/k+1:n/kP25n/k+(n%k0? 1:0)2022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 50表達(dá)式由運(yùn)算符和操作數(shù)構(gòu)成表達(dá)式由運(yùn)算符和操作數(shù)構(gòu)成。操作數(shù)可以。操作數(shù)可以是常量和變量。是常量和變量。表達(dá)式的類型就是表達(dá)式計算結(jié)果的類型。表達(dá)式的類型就是表達(dá)式計算結(jié)果的類型。(由最后一個

46、參與運(yùn)算的運(yùn)算符決定)(由最后一個參與運(yùn)算的運(yùn)算符決定)表達(dá)式中不同類型的常量及變量,均應(yīng)變換為同一類型的量。在表達(dá)式求值時,應(yīng)注意優(yōu)先級和結(jié)合性問題。P252022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 512.1 數(shù)據(jù)類型2.2 變量和常量2.3 運(yùn)算符和表達(dá)式2.5 數(shù)據(jù)的輸入輸出2.6 系統(tǒng)函數(shù)2022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 52C C語言允許不同數(shù)據(jù)類型相互轉(zhuǎn)換。語言允許不同數(shù)據(jù)類型相互轉(zhuǎn)換。類型轉(zhuǎn)換有三種方式:類型轉(zhuǎn)換有三種方式:自動類型轉(zhuǎn)換、自動類型轉(zhuǎn)換、賦值類型轉(zhuǎn)換和強(qiáng)制類型轉(zhuǎn)換賦值

47、類型轉(zhuǎn)換和強(qiáng)制類型轉(zhuǎn)換。P262022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 53 高高 double float long unsigned 低低 int char,short 自動轉(zhuǎn)換:自動轉(zhuǎn)換: 在不同類型數(shù)據(jù)進(jìn)行混合運(yùn)算時,系統(tǒng)在不同類型數(shù)據(jù)進(jìn)行混合運(yùn)算時,系統(tǒng)自動進(jìn)行的類型轉(zhuǎn)換。自動進(jìn)行的類型轉(zhuǎn)換。P262022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 54賦值運(yùn)算時,如果賦值運(yùn)算符兩側(cè)的類型(指賦值運(yùn)算時,如果賦值運(yùn)算符兩側(cè)的類型(指基本類型)不一致,基本類型)不一致,系統(tǒng)自動將表達(dá)式的值轉(zhuǎn)換系統(tǒng)自動將表

48、達(dá)式的值轉(zhuǎn)換成變量的類型存到變量的存儲單元成變量的類型存到變量的存儲單元,如:,如:(1) (1) 當(dāng)整型數(shù)據(jù)賦給浮點(diǎn)型變量時,數(shù)值上不發(fā)當(dāng)整型數(shù)據(jù)賦給浮點(diǎn)型變量時,數(shù)值上不發(fā)生任何變化,但有效位增加。如:生任何變化,但有效位增加。如:float f;float f;f=16; /f=16; /* * 內(nèi)存中變量內(nèi)存中變量f f的值為的值為16.000000 16.000000 * */ /(2) (2) 當(dāng)單、雙精度浮點(diǎn)型數(shù)據(jù)賦給整型變量時,當(dāng)單、雙精度浮點(diǎn)型數(shù)據(jù)賦給整型變量時,浮點(diǎn)數(shù)的小數(shù)部分將被舍棄。如:浮點(diǎn)數(shù)的小數(shù)部分將被舍棄。如:intint a; a;a=8.38; /a=8.38

49、; /* * 內(nèi)存中變量內(nèi)存中變量a a的值為的值為8 8 * */ /P272022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 55P28#includevoid main()unsigned char a;char b;unsigned int x;int y;b=0 xfe;x=b;y=b;printf(%d,%dn%x,%x,x,y,x,y);printf(%u,%un,x,y);第一行,輸出帶符號十進(jìn)制整數(shù)第一行,輸出帶符號十進(jìn)制整數(shù)輸出十六進(jìn)無符號整數(shù)輸出十六進(jìn)無符號整數(shù)2022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算

50、符和表達(dá)式 56可以利用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符將一個表達(dá)式運(yùn)算可以利用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符將一個表達(dá)式運(yùn)算結(jié)果強(qiáng)制轉(zhuǎn)換成所需類型。強(qiáng)制類型轉(zhuǎn)換的一般形結(jié)果強(qiáng)制轉(zhuǎn)換成所需類型。強(qiáng)制類型轉(zhuǎn)換的一般形式為:式為: ( (類型名類型名)( )(表達(dá)式表達(dá)式) )【注意注意】(1) (1) 表達(dá)式應(yīng)該用括號括起來。例如:表達(dá)式應(yīng)該用括號括起來。例如:( (int)(a+bint)(a+b) );( (int)a+bint)a+b; ; (2) (2) 經(jīng)強(qiáng)制類型轉(zhuǎn)換后,得到的是一個所需類型經(jīng)強(qiáng)制類型轉(zhuǎn)換后,得到的是一個所需類型的中間變量,的中間變量,原來變量的類型并沒有發(fā)生任何變化原來變量的類型并沒有發(fā)生任何

51、變化。P292022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 57強(qiáng)制類型轉(zhuǎn)換主要的用途是: 1)滿足一些運(yùn)算對類型的特殊要求。如求余運(yùn)算符“%”,要求運(yùn)算符兩側(cè)的數(shù)據(jù)為整型,(int)2.5%3 2)防止丟失整數(shù)除法中的小數(shù)部分, 如 int x=3,y=2; float f; f=(float)x/y;P29是將是將x x的值取出變的值取出變成浮點(diǎn)數(shù),參與運(yùn)成浮點(diǎn)數(shù),參與運(yùn)算,算,x x中的值仍為中的值仍為3.3.2022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 582.1 數(shù)據(jù)類型2.2 變量和常量2.3 運(yùn)算符

52、和表達(dá)式2.4 數(shù)據(jù)類型轉(zhuǎn)換2.6 系統(tǒng)函數(shù)2022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 59lC語言的輸入和輸出功能由語言的輸入和輸出功能由標(biāo)準(zhǔn)輸入輸出標(biāo)準(zhǔn)輸入輸出庫函數(shù)庫函數(shù)來實(shí)現(xiàn)來實(shí)現(xiàn) 。lstdio.hstdio.h是標(biāo)準(zhǔn)的輸入輸出函數(shù)庫頭文件,是標(biāo)準(zhǔn)的輸入輸出函數(shù)庫頭文件,包括包括putcharputchar(輸出字符),(輸出字符),getchargetchar(輸入(輸入字符),字符),printfprintf(格式輸出),(格式輸出),scanfscanf(格式(格式輸入),輸入),putsputs(輸出字符串),(輸出字符串),get

53、sgets(輸入(輸入字符串)字符串)等函數(shù)。等函數(shù)。l使用使用“#include”預(yù)編譯命令將有關(guān)的預(yù)編譯命令將有關(guān)的“頭文件頭文件”包含到用戶源程序中包含到用戶源程序中P302022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 601.printf1.printf函數(shù)調(diào)用形式函數(shù)調(diào)用形式功能:通過標(biāo)準(zhǔn)輸出設(shè)備輸出一組數(shù)據(jù)功能:通過標(biāo)準(zhǔn)輸出設(shè)備輸出一組數(shù)據(jù)格式格式: : printfprintf(格式控制字符串,輸出列表);(格式控制字符串,輸出列表);這這里的里的“格式控制字符串格式控制字符串”和和“輸出列表輸出列表”實(shí)際上都實(shí)際上都是函數(shù)的參數(shù)。其中:是

54、函數(shù)的參數(shù)。其中:(1) (1) 格式控制字符串是用雙引號括起來的字符串,它包格式控制字符串是用雙引號括起來的字符串,它包括兩個信息:括兩個信息:格式說明部分格式說明部分。由。由“%”開頭和格式字符結(jié)尾,如開頭和格式字符結(jié)尾,如%d%d,%c%c,%f%f等。它的作用是將要輸出的數(shù)據(jù)轉(zhuǎn)化成指定的等。它的作用是將要輸出的數(shù)據(jù)轉(zhuǎn)化成指定的格式輸出,格式說明都是由格式輸出,格式說明都是由“%”字符開始的。字符開始的。一般字符(非格式字符)一般字符(非格式字符)。即按原樣輸出的字符,在。即按原樣輸出的字符,在顯示時起提示作用。它由普通字符和轉(zhuǎn)義字符構(gòu)成。如:顯示時起提示作用。它由普通字符和轉(zhuǎn)義字符構(gòu)成

55、。如:printf(naprintf(na=%=%dn,adn,a); /); /* * 雙引號內(nèi)換行符、字符雙引號內(nèi)換行符、字符a=a=都都是原樣輸出字符是原樣輸出字符* */ /P302022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 61(2) (2) 輸出列表是需要輸出的一些數(shù)據(jù),如變量、輸出列表是需要輸出的一些數(shù)據(jù),如變量、函數(shù)、表達(dá)式。函數(shù)、表達(dá)式。輸出列表的個數(shù)與格式說明符輸出列表的個數(shù)與格式說明符的個數(shù)一般應(yīng)保持一致的個數(shù)一般應(yīng)保持一致。如:。如:P302022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 6

56、22.2.格式說明格式說明格式說明符由格式說明符由“%”開頭,以一個英文字母結(jié)開頭,以一個英文字母結(jié)束,它表明輸出數(shù)據(jù)的類型;其間還可以有一些束,它表明輸出數(shù)據(jù)的類型;其間還可以有一些格式控制字符,用以說明數(shù)據(jù)輸出的長度、位數(shù)、格式控制字符,用以說明數(shù)據(jù)輸出的長度、位數(shù)、對齊方式等。對齊方式等。 %-+0#%-+0#輸出數(shù)據(jù)最小寬度輸出數(shù)據(jù)最小寬度m.m.精度精度nn數(shù)據(jù)長度數(shù)據(jù)長度 類型類型其中:其中: :表示可選項(xiàng)。:表示可選項(xiàng)。格式控制字符格式控制字符- -、+ +、0 0、# #的具體含義如表的具體含義如表2-52-5所所示。示。P312022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符

57、和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 63P31 +:輸出時輸出數(shù)值的符號,且數(shù)值右對齊,左邊補(bǔ)空格。缺省時表示:正數(shù),前面是空格;負(fù)數(shù)在數(shù)值前面輸出負(fù)號“-”。 -:輸出時,數(shù)值左對齊,右邊補(bǔ)空格。 0:輸出時,在數(shù)值前面多余的空格用0來代替。 #:對格式字符O(八進(jìn)制)數(shù)字前加0,對格式字符x(十六進(jìn)制)數(shù)字前加0 x。 輸出數(shù)據(jù)最小寬度m:m是十進(jìn)制整數(shù),它表示用十進(jìn)制輸出的最小位數(shù)。當(dāng)需要輸出的數(shù)據(jù)長度超過該數(shù)時,其不起作用,數(shù)據(jù)按實(shí)際位數(shù)輸出;當(dāng)需要輸出數(shù)據(jù)長度小于該數(shù)時,左邊被空格或0。2022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 64P3

58、1 .精度n:如果輸出的是數(shù)值,則該數(shù)表示小數(shù)位位數(shù);若實(shí)際位數(shù)大于所定義的精度,則截去超過部分;如輸出的是字串,則表示輸出字符的個數(shù)。 數(shù)據(jù)長度:是字符,它有兩種形式:h, l。H表示按短整型量輸出,l表示按長整型量輸出。 類型:是格式說明符中必不可少的,它表示輸出列表里要輸出的數(shù)據(jù)類型。見下表。2022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 65表表2-8 2-8 printfprintf函數(shù)常用類型格式符表函數(shù)常用類型格式符表格式字符形格式字符形式式格式字符含義格式字符含義 d( d(或或i) i)表示以十進(jìn)制形式輸出一個帶符號的整數(shù)表示以十進(jìn)制形

59、式輸出一個帶符號的整數(shù)(默認(rèn)正數(shù)不輸出符號)(默認(rèn)正數(shù)不輸出符號) f f表示以小數(shù)形式輸出帶符號的實(shí)數(shù)(包括表示以小數(shù)形式輸出帶符號的實(shí)數(shù)(包括單、雙精度),默認(rèn)輸出單、雙精度),默認(rèn)輸出6 6位小數(shù)位小數(shù) c c表示輸出一個單字符表示輸出一個單字符 s s表示輸出一個字符串表示輸出一個字符串 % %表示輸入百分號本身表示輸入百分號本身P312022-5-31第第2章章 基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 66注:輸出是從右向左計算輸出項(xiàng)后,按格式說注:輸出是從右向左計算輸出項(xiàng)后,按格式說明的順序?qū)?yīng)輸出。一般格式說明和輸出項(xiàng)的明的順序?qū)?yīng)輸出。一般格式說明和輸出項(xiàng)的個

60、數(shù)和類型應(yīng)相同,如不匹配系統(tǒng)并不報錯,個數(shù)和類型應(yīng)相同,如不匹配系統(tǒng)并不報錯,系統(tǒng)將按以下操作。系統(tǒng)將按以下操作。a a、格式說明的個數(shù)少于輸出項(xiàng)的個數(shù),多余的、格式說明的個數(shù)少于輸出項(xiàng)的個數(shù),多余的輸出項(xiàng)將不輸出;格式說明的個數(shù)多于輸出項(xiàng)輸出項(xiàng)將不輸出;格式說明的個數(shù)多于輸出項(xiàng)的個數(shù),多余的格式說明將輸出隨機(jī)的值。的個數(shù),多余的格式說明將輸出隨機(jī)的值。b b、整型數(shù)據(jù)按、整型數(shù)據(jù)按%f %f 輸出,出現(xiàn)運(yùn)行錯誤;實(shí)型輸出,出現(xiàn)運(yùn)行錯誤;實(shí)型數(shù)據(jù)按數(shù)據(jù)按%d %d 輸出,運(yùn)行錯結(jié)果為輸出,運(yùn)行錯結(jié)果為0 0; P3467 printf(Hello World! n); printf(fahr = %d, celsius = %dn, fahr, celsius); 格式控制字符串:格式控制字符串: 普通字符:原樣輸出普通字符:原樣輸出 格式控制說明格式控制說明:按指定的格式輸出數(shù)據(jù)按指定的格式輸出數(shù)據(jù),% 與數(shù)據(jù)類型有關(guān)與數(shù)據(jù)類型有關(guān) int型型 :%d float d

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論