




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第二章l 本章要點(diǎn)本章要點(diǎn)l 主要內(nèi)容主要內(nèi)容2.1 2.1 基本數(shù)據(jù)類型與常數(shù)的表示基本數(shù)據(jù)類型與常數(shù)的表示2.2 2.2 變量與內(nèi)存變量與內(nèi)存2.3 2.3 運(yùn)算符與表達(dá)式運(yùn)算符與表達(dá)式2.4 2.4 輸入輸出函數(shù)輸入輸出函數(shù) 2.1 基本數(shù)據(jù)類型與常數(shù)的表示基本數(shù)據(jù)類型與常數(shù)的表示2.1.1 2.1.1 基本數(shù)據(jù)類型基本數(shù)據(jù)類型C語(yǔ)言提供了以下一些數(shù)據(jù)類型。 2.1.2 常量和符號(hào)常量常量和符號(hào)常量 在程序運(yùn)行過(guò)程中,其值不能被改變的量稱為常量 常量區(qū)分為不同的類型:整型 100,-100,0,010,0 x12實(shí)型 3.14,0.125,.5,-1.5,1.75e4字符型 a,?,2,
2、 n字符串 “a”,“C程序”,“1232”整型常量按原樣輸出整型常量按原樣輸出實(shí)型實(shí)型( (浮點(diǎn)型浮點(diǎn)型) )常量的表示方法常量的表示方法兩種表兩種表示形式示形式小數(shù)小數(shù)指數(shù)指數(shù)0.1230.1233e-33e-3注意注意: :字母e(或E)之前必須有數(shù)字,且e后面的指數(shù)必須為整數(shù) 規(guī)范化的指數(shù)形式:規(guī)范化的指數(shù)形式: 在字母e(或E)之前的小數(shù)部分中,小數(shù)點(diǎn)左邊應(yīng)有一位(且只能有一位)非零的數(shù)字. 例如例如: : 123.456可以表示為: 123.456e0, 12.3456e1, 1.23456e2, 0.123456e3, 0.0123456e4, 0.00123456e 其中的1.
3、23456e31.23456e3稱為“規(guī)范化的指數(shù)形式”。字符常量字符常量(1)用單引號(hào)包含的一個(gè)字符是字符型常量(2)只能包含一個(gè)字符a,A, 1a,A, 1abcabc、“a”a” 有些以有些以“”開(kāi)頭的特殊字符稱為轉(zhuǎn)義字符開(kāi)頭的特殊字符稱為轉(zhuǎn)義字符n 換行,將當(dāng)前位置移到下一行開(kāi)頭t 橫向跳格r 回車,將當(dāng)前位置移到本行開(kāi)頭b 退格,將當(dāng)前位置移到前一列 反斜杠ddd ddd表示1到3位八進(jìn)制數(shù)字xhh hh表示1到2位十六進(jìn)制數(shù)字【例】【例】2.1 幾個(gè)常數(shù)的輸出例例 轉(zhuǎn)義字符舉例轉(zhuǎn)義字符舉例#include #include voidvoid main()main() printf(
4、101 x42 Cn); printf(101 x42 Cn); printf(I say:How are you?n); printf(I say:How are you?n); printf(C Programn); printf(C Programn); printf(Turbo C); printf(Turbo C); 運(yùn)行結(jié)果:(屏幕顯示)A B CIsay:”How are you?”C ProgramTurbo C運(yùn)行結(jié)果:屏幕顯示:=打印機(jī)輸出:例 main() printf(“Yb=n”); 字符串常量字符串常量 字符串常量是一對(duì)雙撇號(hào)括起來(lái)的字符序列. 合法的字符串常量:“
5、How do you do.”, “CHINA”, “a” , “$123.45” 可以輸出一個(gè)字符串,如printf(“How do you do.”); 是字符常量,”是字符串常量,二者不同。 如:如:假設(shè)c被指定為字符變量 :char c c=a; ”a”;c”CHINA”;結(jié)論:結(jié)論:不能把一個(gè)字符串常量賦給一個(gè)字符變量。不能把一個(gè)字符串常量賦給一個(gè)字符變量。 規(guī)定:在每一個(gè)字符串常量的結(jié)尾加一個(gè)規(guī)定:在每一個(gè)字符串常量的結(jié)尾加一個(gè) “ “字字符符串結(jié)束標(biāo)志串結(jié)束標(biāo)志”,以便系統(tǒng)據(jù)此判斷字符串是否結(jié)束。,以便系統(tǒng)據(jù)此判斷字符串是否結(jié)束。規(guī)定以字符規(guī)定以字符作為字符串結(jié)束標(biāo)志。作為字符串
6、結(jié)束標(biāo)志。 如:如:如果有一個(gè)字符串常量” ,實(shí)際上在內(nèi)存中是:CHINA0 它占內(nèi)存單元不是個(gè)字符,而是個(gè)字符,最后一個(gè)字符為。但在輸出時(shí)不輸出。作用:作用:用于給程序中的各元素(常量、變量、函數(shù)等)標(biāo)示類型和命名。定義:字母或下劃線開(kāi)頭的字母、數(shù)字、下劃線組成的字串。定義:字母或下劃線開(kāi)頭的字母、數(shù)字、下劃線組成的字串。例如:ab, sum1, _12x, y_1, t_12 等都是C語(yǔ)言允許的標(biāo)識(shí)符。 5gb, tr, ddp#, li yi, ab+cd等都不是C語(yǔ)言的標(biāo)識(shí)符 標(biāo)識(shí)符長(zhǎng)度無(wú)統(tǒng)一規(guī)定,一般只識(shí)別前8個(gè)字符。 在C語(yǔ)言中,標(biāo)識(shí)符對(duì)字母的大小寫(xiě)是有區(qū)分大小寫(xiě)是有區(qū)分(敏感)的
7、。例如:count、COUNT和Count被認(rèn)為是三個(gè)不同的標(biāo)識(shí)符。2. 關(guān)鍵字關(guān)鍵字 即系統(tǒng)已使用的標(biāo)識(shí)符。保留給系統(tǒng)使用,用戶不能使用。2.2 變量與內(nèi)存變量與內(nèi)存例:判斷下列標(biāo)識(shí)符號(hào)合法性sum Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char ab _above $123例例 符號(hào)常量的使用符號(hào)常量的使用#define PRICE 30#define PRICE 30#include #include void main ( )void main ( ) int num, total;int num, total
8、; num=10;num=10; total=num total=num * * PRICE; PRICE; printf(total=%dn,total);printf(total=%dn,total); 程序中用程序中用#define#define命令行定義命令行定義PRICEPRICE代表常量代表常量30,30,此后凡在本此后凡在本文件中出現(xiàn)的文件中出現(xiàn)的PRICEPRICE都代表都代表30,30,可以和常量一樣進(jìn)行運(yùn)算可以和常量一樣進(jìn)行運(yùn)算用一個(gè)標(biāo)識(shí)符代表一個(gè)常量的用一個(gè)標(biāo)識(shí)符代表一個(gè)常量的, ,稱為符號(hào)常量稱為符號(hào)常量, ,即以標(biāo)識(shí)符形式即以標(biāo)識(shí)符形式出現(xiàn)的常量。符號(hào)常量的值在其作用
9、域出現(xiàn)的常量。符號(hào)常量的值在其作用域( (在本例中為主函數(shù)在本例中為主函數(shù)) )內(nèi)不內(nèi)不能改變能改變, ,也不能再被賦值。也不能再被賦值。 如再用賦值語(yǔ)句給如再用賦值語(yǔ)句給PRICEPRICE賦值是錯(cuò)誤的。賦值是錯(cuò)誤的。 PRICE=40;PRICE=40; / /* * 錯(cuò)誤,不能給符號(hào)常量賦值。錯(cuò)誤,不能給符號(hào)常量賦值。 運(yùn)行結(jié)果:運(yùn)行結(jié)果: total=300total=300 2.2 變量與內(nèi)存變量與內(nèi)存2.2.2變量的定義與初始化變量的定義與初始化 變量代表內(nèi)存中具有特定屬性的一個(gè)存儲(chǔ)單元,它用來(lái)存放數(shù)據(jù),這就是變量的值,在程序運(yùn)行期間,這些值是可以改變的。 變量名實(shí)際上是一個(gè)以一個(gè)
10、名字對(duì)應(yīng)代表一個(gè)地址,在對(duì)程序編譯連接時(shí)由編譯系統(tǒng)給每一個(gè)變量名分配對(duì)應(yīng)的內(nèi)存地址。從變量中取值,實(shí)際上是通過(guò)變量名找到相應(yīng)的內(nèi)存地址,從該存儲(chǔ)單元中讀取數(shù)據(jù)。 變量的命名規(guī)則遵循標(biāo)識(shí)符的命名規(guī)則 (1)變量定義的一般格式: 存儲(chǔ)類型 數(shù)據(jù)類型 變量名,變量名2; 例如: float radius, length, area; (2)變量初始化的一般格式: 存儲(chǔ)類型 數(shù)據(jù)類型 變量名初值1,變量名2初值2; 例如: float radius2.5, length, area; 不允許連續(xù)賦值:如 int a=b=5; 變量定義原理編譯程序根據(jù)變量定義為其分配指定字節(jié)的內(nèi)存單元.地址int a=
11、1, b=-3,c;abc2字節(jié)2字節(jié)2字節(jié)地址地址.內(nèi)存1-3隨機(jī)數(shù)整型變量整型變量 (1)(1)整型數(shù)據(jù)在內(nèi)存中的存放形式整型數(shù)據(jù)在內(nèi)存中的存放形式 數(shù)據(jù)在內(nèi)存中是以二進(jìn)制形式存放的。 如如: : int i; /* 定義為整型變量 */ i=10; /* 給i賦以整數(shù)10 */ (2) (2)整型變量的分類:整型變量的分類:共六種共六種有符號(hào)基本整型有符號(hào)短整型有符號(hào)長(zhǎng)整型無(wú)符號(hào)基本整型無(wú)符號(hào)短整型無(wú)符號(hào)長(zhǎng)整型(signed) int (signed) short (int )(signed) long (int)unsigned intunsigned short (int)unsig
12、ned long (int) 注意:注意:括號(hào)表示其中的內(nèi)容是可選的括號(hào)表示其中的內(nèi)容是可選的. . ANSI C標(biāo)準(zhǔn)定義的整數(shù)類型:例例 整型變量的定義與使用整型變量的定義與使用#include #include void main()() int a,b,c,d; / /*指定、指定、b、c、d為整型變量為整型變量* unsigned ; *指定為無(wú)符號(hào)整型變量指定為無(wú)符號(hào)整型變量* 12;-24;10; ; printf(,);,); 可以看到不同種類的整型數(shù)據(jù)可以進(jìn)行算術(shù)運(yùn)算 運(yùn)行結(jié)果:運(yùn)行結(jié)果: , 例例 整型數(shù)據(jù)的溢出整型數(shù)據(jù)的溢出#include #include void ma
13、in()void main()int a,b; int a,b; a=32767; a=32767; b=a+1; b=a+1; printf(“%d,%dn”,a,b); printf(“%d,%dn”,a,b); 數(shù)值是以補(bǔ)碼表示的。一個(gè)整型變量只能容納-3276832767范圍內(nèi)的數(shù),無(wú)法表示大于32767或小于-32768的數(shù)。遇此情況就發(fā)生“溢出”。運(yùn)行結(jié)果:運(yùn)行結(jié)果: 32767,-3276832767,-32768實(shí)型實(shí)型(浮點(diǎn)型浮點(diǎn)型)變量變量(1)(1)浮點(diǎn)型數(shù)據(jù)在內(nèi)存中的存放形式浮點(diǎn)型數(shù)據(jù)在內(nèi)存中的存放形式 一個(gè)浮點(diǎn)型數(shù)據(jù)一般在內(nèi)存中占4個(gè)字節(jié)(32位)。(2) (2) 浮
14、點(diǎn)型變量的分類浮點(diǎn)型變量的分類 浮點(diǎn)型變量分為單精度(float型)、雙精度(double型)和長(zhǎng)雙精度型(long double)三類形式。例例 浮點(diǎn)型數(shù)據(jù)的舍入誤差浮點(diǎn)型數(shù)據(jù)的舍入誤差#include #include void main()void main()float a,b;float a,b; a = 123456.789e5; a = 123456.789e5; b = a + 20 ; b = a + 20 ; printf(“%fn”,b); printf(“%fn”,b); 一個(gè)浮點(diǎn)型變量只能保證的有效數(shù)字是一個(gè)浮點(diǎn)型變量只能保證的有效數(shù)字是7 7位有效數(shù)字,后面的數(shù)字是
15、無(wú)位有效數(shù)字,后面的數(shù)字是無(wú)意義的,并不準(zhǔn)確地表示該數(shù)。應(yīng)當(dāng)避免將一個(gè)很大的數(shù)和一個(gè)很小的數(shù)意義的,并不準(zhǔn)確地表示該數(shù)。應(yīng)當(dāng)避免將一個(gè)很大的數(shù)和一個(gè)很小的數(shù)直接相加或相減,否則就會(huì)直接相加或相減,否則就會(huì)“丟失丟失”小的數(shù)小的數(shù)運(yùn)行結(jié)果:運(yùn)行結(jié)果: 123456.789e5123456.789e5【例】【例】2.3 字符變量字符變量 字符型變量用來(lái)存放字符常量,注意只能放一個(gè)字符。 字符變量的定義形式如下:char c1,c2; 在本函數(shù)中可以用下面語(yǔ)句對(duì)c1,c2賦值: c1a;c2 b ; 一個(gè)字符變量在內(nèi)存中占一個(gè)字節(jié)。 字符數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式及其使用方法字符數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式及
16、其使用方法 將一個(gè)字符常量放到一個(gè)字符變量中,實(shí)際上并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的相應(yīng)的ASCII代碼放到存儲(chǔ)單元中。這樣使字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用。一個(gè)字符數(shù)據(jù)既可以以字符形式輸出,也可以以整數(shù)形式輸出。例例 向字符變量賦以整數(shù)。向字符變量賦以整數(shù)。 #include #include void main()void main() char c1,c2; char c1,c2; c1=97; c1=97; c2=98; c2=98; printf(“%c %cn”,c1,c2); printf(“%c %cn”,c1,c2); printf(“%d %dn”,c1
17、,c2); printf(“%d %dn”,c1,c2); 在第和第在第和第4 4行中,將整數(shù)和分別賦給行中,將整數(shù)和分別賦給c1c1和和c2c2,它的作用相,它的作用相當(dāng)于以下兩個(gè)賦值語(yǔ)句:當(dāng)于以下兩個(gè)賦值語(yǔ)句:c1c1;c2c2;因?yàn)橐驗(yàn)閍a和和bb的的ASCIIASCII碼為和碼為和運(yùn)行結(jié)果:運(yùn)行結(jié)果: 97 9897 98【例】【例】2.4 例例 大小寫(xiě)字母的轉(zhuǎn)換大小寫(xiě)字母的轉(zhuǎn)換 #include #include void main()void main() char c1,c2 char c1,c2; c1=a;c1=a; c2=b; c2=b; c1=c1-32; c1=c1-3
18、2; c2=c2-32; c2=c2-32; printf(“ printf(“c c cc,c1,c2c1,c2);); 程序的作用是將兩個(gè)小寫(xiě)字母程序的作用是將兩個(gè)小寫(xiě)字母a a和和b b轉(zhuǎn)換成大寫(xiě)字母轉(zhuǎn)換成大寫(xiě)字母A A和和B B。從。從代碼表中可以看到每一個(gè)小寫(xiě)字母比它相應(yīng)的大寫(xiě)字母的代碼表中可以看到每一個(gè)小寫(xiě)字母比它相應(yīng)的大寫(xiě)字母的碼大。語(yǔ)言允許字符數(shù)據(jù)與整數(shù)直接進(jìn)行算術(shù)運(yùn)算。碼大。語(yǔ)言允許字符數(shù)據(jù)與整數(shù)直接進(jìn)行算術(shù)運(yùn)算。 運(yùn)行結(jié)果:運(yùn)行結(jié)果: 【例】【例】2.5 2.3運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式的運(yùn)算符有以下幾類:的運(yùn)算符有以下幾類:(1)(1)算術(shù)運(yùn)算符算術(shù)運(yùn)算符 (+ - +
19、 - * * / % / %)(2)(2)關(guān)系運(yùn)算符關(guān)系運(yùn)算符 ( ! !)(3)(3)邏輯運(yùn)算符邏輯運(yùn)算符 (?。?! |)(4)(4)賦值運(yùn)算符賦值運(yùn)算符 ()()(5)(5)條件運(yùn)算符條件運(yùn)算符 (?:)(?:)(6)(6)逗號(hào)運(yùn)算符逗號(hào)運(yùn)算符 ( (,),)(7)(7)指針運(yùn)算符指針運(yùn)算符 (* *和)和)(8)(8)強(qiáng)制類型轉(zhuǎn)換運(yùn)算符(強(qiáng)制類型轉(zhuǎn)換運(yùn)算符( ( (類型)類型) ) )(9)(9)下標(biāo)運(yùn)算符()下標(biāo)運(yùn)算符()2.3.1 算術(shù)運(yùn)算符與算術(shù)表達(dá)式算術(shù)運(yùn)算符與算術(shù)表達(dá)式 (1)(1)基本的算術(shù)運(yùn)算符基本的算術(shù)運(yùn)算符: : (加法運(yùn)算符,或正值運(yùn)算符。如:、) (減法運(yùn)算符,或負(fù)
20、值運(yùn)算符。如:、)* * (乘法運(yùn)算符。如:*) (除法運(yùn)算符。如:) (模運(yùn)算符,或稱求余運(yùn)算符,兩側(cè)均應(yīng)為整型數(shù)據(jù),如:的值為)。(2) (2) 算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級(jí)與結(jié)合性算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級(jí)與結(jié)合性: : 用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象( (也稱操作數(shù))也稱操作數(shù))連接起來(lái)的、符合語(yǔ)法規(guī)則的式子,稱為算術(shù)表連接起來(lái)的、符合語(yǔ)法規(guī)則的式子,稱為算術(shù)表達(dá)式。運(yùn)算對(duì)象包括常量、變量、函數(shù)等。達(dá)式。運(yùn)算對(duì)象包括常量、變量、函數(shù)等。 例如例如: : * *.5.5aa 是一個(gè)合法的表達(dá)式是一個(gè)合法的表達(dá)式語(yǔ)言規(guī)定了運(yùn)算符的優(yōu)先級(jí)和結(jié)合性。 在表達(dá)式求值時(shí),先
21、按運(yùn)算符的優(yōu)先級(jí)別高低次序執(zhí)行,例如先乘除后加減。 規(guī)定了各種運(yùn)算符的結(jié)合方向(結(jié)合性) 算術(shù)運(yùn)算符的結(jié)合方向?yàn)椤白宰笾劣摇保聪茸蠛笥?。【例】【例】2.6 (3) (3) 數(shù)據(jù)類型轉(zhuǎn)換數(shù)據(jù)類型轉(zhuǎn)換: : 在語(yǔ)言中,整型、實(shí)型和字符型數(shù)據(jù)間可以混合運(yùn)算(因?yàn)樽址麛?shù)據(jù)與整型數(shù)據(jù)可以通用)。 如果一個(gè)運(yùn)算符兩側(cè)的操作數(shù)的數(shù)據(jù)類型不同,則系統(tǒng)按“先轉(zhuǎn)換、后運(yùn)算”的原則,首先將數(shù)據(jù)自動(dòng)轉(zhuǎn)換成同一類型,然后在同一類型數(shù)據(jù)間進(jìn)行運(yùn)算。較低類型向較高類型轉(zhuǎn)換。 類型級(jí)別的高低:字符型 整型 單精度實(shí)型 雙精度實(shí)型(4) (4) 強(qiáng)制類型轉(zhuǎn)換運(yùn)算符:強(qiáng)制類型轉(zhuǎn)換運(yùn)算符: 除自動(dòng)轉(zhuǎn)換外,C語(yǔ)言可以利用強(qiáng)制類型
22、轉(zhuǎn)換運(yùn)算符將一個(gè)表達(dá)式轉(zhuǎn)換成所需類型。 一般形式:(類型名)(表達(dá)式)例如:例如:(double) 將轉(zhuǎn)換成將轉(zhuǎn)換成double類型類型 (float)(5%3) 將將5%3的值轉(zhuǎn)換成的值轉(zhuǎn)換成float型型從高類型到低類型的轉(zhuǎn)換會(huì)發(fā)生存儲(chǔ)字節(jié)的減少,從從高類型到低類型的轉(zhuǎn)換會(huì)發(fā)生存儲(chǔ)字節(jié)的減少,從而可能會(huì)發(fā)生數(shù)據(jù)的截?cái)嗨斐傻臄?shù)據(jù)損害。而可能會(huì)發(fā)生數(shù)據(jù)的截?cái)嗨斐傻臄?shù)據(jù)損害。例 強(qiáng)制類型轉(zhuǎn)換。 #include #include void mainvoid main()()float xfloat x; int iint i; x=3.6;x=3.6; i=(int)x; i=(int)x;
23、 printf(x=%f printf(x=%f, i=%dni=%dn,x x,i);i); 有兩種類型轉(zhuǎn)換,一種是在運(yùn)算時(shí)不必用戶指定,系統(tǒng)自動(dòng)進(jìn)行的有兩種類型轉(zhuǎn)換,一種是在運(yùn)算時(shí)不必用戶指定,系統(tǒng)自動(dòng)進(jìn)行的類型轉(zhuǎn)換,如類型轉(zhuǎn)換,如3+6.53+6.5。第二種是強(qiáng)制類型轉(zhuǎn)換。當(dāng)自動(dòng)類型轉(zhuǎn)換不能實(shí)現(xiàn)目。第二種是強(qiáng)制類型轉(zhuǎn)換。當(dāng)自動(dòng)類型轉(zhuǎn)換不能實(shí)現(xiàn)目的時(shí),可以用強(qiáng)制類型轉(zhuǎn)換。的時(shí),可以用強(qiáng)制類型轉(zhuǎn)換。運(yùn)行結(jié)果:運(yùn)行結(jié)果: x3.600000, i=3(4)(4) 自增、自減運(yùn)算符自增、自減運(yùn)算符 作用是使變量的值增或減如如:+i,-i(在使用之前,先使的值加/減) i+,i-(在使用之后,使的
24、值加/減) i+與與+i的區(qū)別:的區(qū)別: 是先執(zhí)行后,再使用的值; 是先使用的值后,再執(zhí)行。例如:例如:若若i的初值為的初值為3 ; i的值先變成的值先變成4, 再賦給再賦給, j的值均為的值均為 ; 先將先將 i的值的值3賦給賦給,的值為,然后變?yōu)榈闹禐?,然后變?yōu)樽⒁猓鹤⒁猓?(1)(1)自增運(yùn)算符(),自減運(yùn)算符(),只能用自增運(yùn)算符(),自減運(yùn)算符(),只能用于變量,而不能用于常量或表達(dá)式,于變量,而不能用于常量或表達(dá)式, (2)(2)和的結(jié)合方向是和的結(jié)合方向是“自右至左自右至左”。【例】【例】2.9 (5) (5) 有關(guān)表達(dá)式使用中的問(wèn)題說(shuō)明有關(guān)表達(dá)式使用中的問(wèn)題說(shuō)明 ANSI C并
25、沒(méi)有具體規(guī)定表達(dá)式中的子表達(dá)式的求值順序,允許各編譯系統(tǒng)自己安排。 例如:對(duì)表達(dá)式 a = f1( )+f2( ) 并不是所有的編譯系統(tǒng)都先調(diào)用f1( ), 然后調(diào)用f2( )。在有的情況下結(jié)果可能不同。有時(shí)會(huì)出現(xiàn)一些令人容易搞混的問(wèn)題,因此務(wù)必要小心謹(jǐn)慎。 語(yǔ)言中有的運(yùn)算符為一個(gè)字符,有的運(yùn)算符由兩個(gè)字符組成為避免誤解,最好采取大家都能理解的寫(xiě)法。 例如:不要寫(xiě)成i+j的形式,而應(yīng)寫(xiě)成 (i+)+j的形式 在調(diào)用函數(shù)時(shí),實(shí)參數(shù)的求值順序,標(biāo)準(zhǔn)并無(wú)統(tǒng)一規(guī)定。例如:例如:的初值為,如果有下面的函數(shù)調(diào)用: printf(,i+) 在有的系統(tǒng)中,從左至右求值,輸出“,”。在多數(shù)系統(tǒng)中對(duì)函數(shù)參數(shù)的求值
26、順序是自右而左,printf函數(shù)輸出的是“,”。以上這種寫(xiě)法不宜提倡, 最好改寫(xiě)成 j = i+;j = i+; printf(%d printf(%d, %d%d, j j,i)i)不要寫(xiě)出別人看不懂的也不知道系統(tǒng)會(huì)怎樣執(zhí)行程序 2.3.2 賦值運(yùn)算符與賦值表達(dá)式賦值運(yùn)算符與賦值表達(dá)式 (1)(1)賦值運(yùn)算符賦值運(yùn)算符 賦值符號(hào)“”就是賦值運(yùn)算符,它的作用是將一個(gè)數(shù)據(jù)賦給一個(gè)變量。如“”的作用是執(zhí)行一次賦值操作(或稱賦值運(yùn)算)。把常量賦給變量。也可以將一個(gè)表達(dá)式的值賦給一個(gè)變量. (2)(2)類型轉(zhuǎn)換類型轉(zhuǎn)換 如果賦值運(yùn)算符兩側(cè)的類型不一致,但都是數(shù)值型或字符型時(shí),在賦值時(shí)要進(jìn)行類型轉(zhuǎn)換。例
27、如:將浮點(diǎn)型數(shù)據(jù)(包括單、雙精度)賦給整型變量時(shí),舍棄浮點(diǎn)數(shù)的小數(shù)部分。如如: :為整型變量,執(zhí)行“i=3.56”的結(jié)果是使的值為,以整數(shù)形式存儲(chǔ)在整型變量中. 將整型數(shù)據(jù)賦給單、雙精度變量時(shí),數(shù)值不變,但以浮點(diǎn)數(shù)形式存儲(chǔ)到變量中 如如: : 將賦給float變量,即執(zhí)行,先將轉(zhuǎn)換成,再存儲(chǔ)在中。 將賦給型變量,即執(zhí)行,則將補(bǔ)足有效位數(shù)字為,然后以雙精度浮點(diǎn)數(shù)形式存儲(chǔ)到變量中。 【例】【例】2.7 (3) (3) 復(fù)合的賦值運(yùn)算符復(fù)合的賦值運(yùn)算符 在賦值符“”之前加上其他運(yùn)算符,可以構(gòu)成復(fù)合的運(yùn)算符。例如例如: 等價(jià)于 * 等價(jià)于 *() 等價(jià)于 以“”為例來(lái)說(shuō)明,它相當(dāng)于使進(jìn)行一次自加()的
28、操作。即先使加,再賦給。注意注意: :如果是包含若干項(xiàng)的表達(dá)式,則相當(dāng)于它有如果是包含若干項(xiàng)的表達(dá)式,則相當(dāng)于它有 括號(hào)。括號(hào)。如:如: x %= y+3 x %= y+3 x = x %(y+3)( x = x %(y+3)(不要錯(cuò)寫(xiě)成不要錯(cuò)寫(xiě)成x=x%y+3)x=x%y+3)凡是二元(二目)運(yùn)算符,都可以與賦值符一起組合成復(fù)合賦值符。 (4) (4) 賦值表達(dá)式賦值表達(dá)式 由賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連接起來(lái)的式子稱為“賦值表達(dá)式”。一般形式為一般形式為: 例如例如: “5”是一個(gè)賦值表達(dá)式 對(duì)賦值表達(dá)式求解的過(guò)程是:對(duì)賦值表達(dá)式求解的過(guò)程是: 求賦值運(yùn)算符右側(cè)的“表達(dá)式”的值; 賦
29、給賦值運(yùn)算符左側(cè)的變量。例如例如: 賦值表達(dá)式“=3*5”的值為15,執(zhí)行表達(dá)式后,變量a的值也是15。 注意注意: : 一個(gè)表達(dá)式應(yīng)該有一個(gè)值一個(gè)表達(dá)式應(yīng)該有一個(gè)值 賦值表達(dá)式中的“表達(dá)式”,又可以是一個(gè)賦值表達(dá)式.例如例如: : a=(b=5) 分析分析: :括弧內(nèi)的“b=5”是一個(gè)賦值表達(dá)式,它的值等于5。執(zhí)行表達(dá)式“a=(b=5)”相當(dāng)于執(zhí)行“b=5”和“ab”兩個(gè)賦值表達(dá)式。 賦值運(yùn)算符按照“自右而左”的結(jié)合順序,因此,“(b5)”外面的括弧可以不要,即“a=(b=5)”和“a=b=5”等價(jià).請(qǐng)分析下面的賦值表達(dá)式(a=3*5)=4*3分析分析: :先執(zhí)行括弧內(nèi)的運(yùn)算,將15賦給a,
30、然后執(zhí)行4*3的運(yùn)算,得12,再把12賦給a。最后a的值為12,整個(gè)表達(dá)式的值為12。注意注意: :在對(duì)賦值表達(dá)式(a=3*5)求解后,變量a得到值15執(zhí)行(a=3*5)=4*3時(shí),實(shí)際上是將4*3的積12賦給變量a,而不是賦給3*5。賦值表達(dá)式也可以包含復(fù)合的賦值運(yùn)算符。 如:如:a+=a-=a*a a的初值為12分析分析: :此賦值表達(dá)式的求解步驟如下 先進(jìn)行“*”的運(yùn)算, 它相當(dāng)于*,a的值為144132。再進(jìn)行“”的運(yùn)算,相當(dāng)于=a+(-132),a的值為132-132-264。 將賦值表達(dá)式作為表達(dá)式的一種,使賦值操作不僅可以出現(xiàn)在賦值語(yǔ)句中,而且可以以表達(dá)式形式出現(xiàn)在其他語(yǔ)句(如輸
31、出語(yǔ)句、循環(huán)語(yǔ)句等)中. 如:如:printf(%d,a=b); 分析分析: :如果b的值為3, 則輸出a的值(也是表達(dá)式a=b的值)為3。在一個(gè)語(yǔ)句中完成了賦值和輸出雙重功能。2.3.3 逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式逗號(hào)運(yùn)算符逗號(hào)運(yùn)算符: :將兩個(gè)表達(dá)式連接起來(lái),又稱為“順序求值運(yùn)算符” 如:如:5, 一般形式一般形式: : 表達(dá)式,表達(dá)式表達(dá)式,表達(dá)式求解過(guò)程:求解過(guò)程: 先求解表達(dá)式,再求解表達(dá)式。整個(gè)逗號(hào)表達(dá)式的值是表達(dá)式的值。 逗號(hào)表達(dá)式 的值為14 2.3.3 逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式例:例:逗號(hào)表達(dá)式*5,* 分析分析: :賦值運(yùn)算符的優(yōu)先級(jí)別
32、高于逗號(hào)運(yùn)算符, 因此應(yīng)先求解*5.的值為5,然后求解*,得。整個(gè)逗號(hào)表達(dá)式的值為。 一個(gè)逗號(hào)表達(dá)式又可以與另一個(gè)表達(dá)式組成一一個(gè)逗號(hào)表達(dá)式又可以與另一個(gè)表達(dá)式組成一個(gè)新的逗號(hào)表達(dá)式個(gè)新的逗號(hào)表達(dá)式 如如: :(*,*),a+5 先計(jì)算出的值等于,再進(jìn)行*的運(yùn)算得60(但值未變,仍為15),再進(jìn)行得,即整個(gè)表達(dá)式的值為。 2.3.3 逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式逗號(hào)表達(dá)式的一般形式可以擴(kuò)展為 表達(dá)式,表達(dá)式,表達(dá)式,表達(dá)式,表達(dá)式,表達(dá)式,表達(dá)式,表達(dá)式 它的值為表達(dá)式的值。逗號(hào)運(yùn)算符是所有運(yùn)算符中級(jí)別最低的例例: : (,*) ,*3賦值表達(dá)式,將一個(gè)逗號(hào)表達(dá)式的值賦給,的值
33、等于 逗號(hào)表達(dá)式,包括一個(gè)賦值表達(dá)式和一個(gè)算術(shù)表達(dá)式,的值為,整個(gè)逗號(hào)表達(dá)式的值為18。 注意注意: :并不是任何地方出現(xiàn)的逗號(hào)都是作為逗號(hào)運(yùn)算符。例如函數(shù)參數(shù)也是用逗號(hào)來(lái)間隔的。 如如: printf(“%d,%d,%d”,a,b,c);“,”并不是一個(gè)逗號(hào)表達(dá)式,它是printf函數(shù)的3個(gè)參數(shù)printf(“%d,%d,%d”,(a,b,c),b,c) ;“(,)”是一個(gè)逗號(hào)表達(dá)式,它的值等于的值。 2.3.3 逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式2.3.4 條件運(yùn)算符和表達(dá)式條件運(yùn)算符和表達(dá)式 一般形式:一般形式: expr1 ? expr2 : expr3 執(zhí)行過(guò)程執(zhí)行過(guò)程 功
34、能:相當(dāng)于條件語(yǔ)句,但不能取代一般功能:相當(dāng)于條件語(yǔ)句,但不能取代一般if語(yǔ)句語(yǔ)句expr1取expr2值取expr3值非0=0例 if (ab) printf(“%d”,a); else printf(“%d”,b);printf(“%d”,ab?a:b);例 求 a+|b| printf(“a+|b|=%dn”,b0?a+b:a-b);例 (a=b)?Y:N (x%2=1)?1:0 (x=0)?x:-x (c=a & c0?1:(xb?a:cd?c:d ab?a:(cd?c:d) expr1、expr2、expr3類型可不同,表達(dá)式值取較高的類型例 x?a:b /x=0,表達(dá)式值為b; x
35、0,表達(dá)式值為a xy?1:1.5 /xy ,值為1.0; xy ,值為1.52.3.5 常用數(shù)學(xué)函數(shù)常用數(shù)學(xué)函數(shù) (1)頭文件包含 #include 例如: #include #include (2)函數(shù)原型int abs(int x) double fabs(double x)double sqrt(double x) double pow(double x,double y) (3)參數(shù)的定義域【例】【例】2.81.優(yōu)先級(jí) 高 括號(hào)、成員運(yùn)算符 () 單目運(yùn)算 算術(shù)運(yùn)算 關(guān)系運(yùn)算 邏輯運(yùn)算(除 ! 外) 條件運(yùn)算 賦值運(yùn)算 低 逗號(hào)運(yùn)算2. 結(jié)合性 指運(yùn)算數(shù)與運(yùn)算符的結(jié)合方向. (見(jiàn)(見(jiàn)
36、208頁(yè))頁(yè))2.3.6 優(yōu)先級(jí)與結(jié)合性優(yōu)先級(jí)與結(jié)合性2.4 數(shù)據(jù)輸入數(shù)據(jù)輸入/輸出輸出(I/O) 2.4.1 printf輸出函數(shù)輸出函數(shù) .格式輸出函數(shù)格式輸出函數(shù) printf ( ) 格式: printf( “ 格式控制字串格式控制字串 ” , 輸出項(xiàng)表輸出項(xiàng)表) 輸出項(xiàng)輸出項(xiàng): 常量常量|變量變量|表達(dá)式表達(dá)式 格式控制說(shuō)明符,規(guī)定用%打頭,其后跟上一個(gè)符合規(guī)定的 字母,不同的字母的含義不一樣。常用的有: %d 按十進(jìn)制整數(shù)輸出 %o 按八進(jìn)制輸出 %f 按數(shù)據(jù)實(shí)型輸出 %c 輸出單個(gè)字符【例】 注意:注意:輸出項(xiàng)的個(gè)數(shù)要與格式說(shuō)明符的個(gè)數(shù)相同個(gè)數(shù)相同,輸出項(xiàng)與對(duì)應(yīng)的格式說(shuō)明符的類型
37、必須一致類型必須一致。如果沒(méi)有輸出項(xiàng)表,就不要有格式控制字符串; 如: printf(“ hello world !”); int a=4;float b=5.4;printf(“a=%d,b=%f,a*b=%f”,a,b,a*b);【例】【例】2.10【例】【例】2.112.4. 2 scanf格式輸入函數(shù)格式輸入函數(shù) 格式格式: scanf ( “格式控制字串格式控制字串 ” , 輸入地址表輸入地址表) 輸入地址表項(xiàng)輸入地址表項(xiàng): &變量名變量名|數(shù)組名數(shù)組名 ( a ) 格式控制說(shuō)明符: 規(guī)定用%打頭,其后跟上一個(gè)符合規(guī) 定的字母,不同的字母的含義不一樣,常用的有: %d 按十進(jìn)制整數(shù)輸入 %o 按八進(jìn)制輸入 %f 按實(shí)型數(shù)據(jù)輸入 %c 輸入單個(gè)字符 注意:注意:格式控制字符串中一般不包含普通字符,輸入多個(gè)數(shù)據(jù)中間用空格(或跳格和回車符)作為輸入數(shù)據(jù)的間隔。 (b)輸入項(xiàng)表輸入項(xiàng)表 輸入項(xiàng)表格項(xiàng)之間用逗號(hào)逗號(hào)隔開(kāi),輸入項(xiàng)必須是變量的地址輸入項(xiàng)必須是變量的地址。這可以在變量名前加 取地址運(yùn)算符取地址運(yùn)算符 & ,輸入項(xiàng)的個(gè)數(shù)要與格式說(shuō)明符的個(gè)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 護(hù)理專業(yè)職業(yè)發(fā)展路徑探討題及答案2025
- ZARA室內(nèi)設(shè)計(jì)理念與空間規(guī)劃
- 執(zhí)業(yè)護(hù)士考試試題解答策略試題及答案
- 醫(yī)療科技前沿基因編輯與精準(zhǔn)醫(yī)療的融合發(fā)展
- 行政管理經(jīng)濟(jì)法試題及答案解析
- 好同桌班會(huì)課件圖片
- 護(hù)理知識(shí)點(diǎn)總結(jié)及考試試題及答案
- 及時(shí)更新的考題焦點(diǎn)執(zhí)業(yè)醫(yī)師考試試題及答案
- 2025年自考行政管理考試指南試題及答案
- 2025年考試文化現(xiàn)象相關(guān)試題及答案
- 戰(zhàn)略管理教學(xué)ppt課件(完整版)
- 艾滋病感染孕產(chǎn)婦所生兒童艾滋病早期診斷與抗體檢測(cè)流程圖
- 統(tǒng)籌監(jiān)管金融基礎(chǔ)設(shè)施工作方案
- 云南鋰電池項(xiàng)目可行性研究報(bào)告
- 博物館學(xué)概論:第十講 數(shù)字博物館
- 危險(xiǎn)化學(xué)品企業(yè)安全標(biāo)準(zhǔn)化規(guī)范課件
- 客戶退貨處理流程圖
- 中國(guó)民主同盟入盟申請(qǐng)表(樣表)
- 畢業(yè)設(shè)計(jì)(論文)-軸向柱塞泵設(shè)計(jì)(含全套CAD圖紙)
- 公安機(jī)關(guān)通用告知書(shū)模板
- 山東省初中學(xué)業(yè)水平考試信息技術(shù)學(xué)科命題要求
評(píng)論
0/150
提交評(píng)論