版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1 第二章第二章 課后作業(yè):課后作業(yè):(一一). 完成課本完成課本P23上的上的“練習(xí)與實(shí)踐練習(xí)與實(shí)踐”中的中的: 一一 . 二二 . 三三 . 注注: 上機(jī)時(shí)把上機(jī)時(shí)把”C程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)”一書與課本一書與課本一起帶上一起帶上.23相關(guān)知識(shí)相關(guān)知識(shí): C語言的類型:語言的類型: 一個(gè)程序應(yīng)包括兩方面內(nèi)容一個(gè)程序應(yīng)包括兩方面內(nèi)容:(1). 對(duì)數(shù)據(jù)的描述對(duì)數(shù)據(jù)的描述. 要指定數(shù)據(jù)的要指定數(shù)據(jù)的類型類型和數(shù)據(jù)的組織形式和數(shù)據(jù)的組織形式, 即數(shù)據(jù)即數(shù)據(jù) 結(jié)構(gòu)結(jié)構(gòu)(data structure). (2). 對(duì)操作的描述對(duì)操作的描述, 操作步驟操作步驟,即算即算 法法(algorith
2、m).4C的數(shù)據(jù)類型的數(shù)據(jù)類型(P31) 基本類型基本類型 構(gòu)造類型構(gòu)造類型 指針類型指針類型 單精度單精度雙精度雙精度整型整型實(shí)型實(shí)型(浮點(diǎn)型)浮點(diǎn)型)字符型字符型數(shù)組類型數(shù)組類型結(jié)構(gòu)體類型結(jié)構(gòu)體類型 C中的常量、變量都?xì)w屬以上類型中的常量、變量都?xì)w屬以上類型.數(shù)據(jù)類型數(shù)據(jù)類型5常量與變量常量與變量:一一.常量常量: 在程序運(yùn)行中,其值不改變的量,稱為常量。在程序運(yùn)行中,其值不改變的量,稱為常量。 算術(shù)常量算術(shù)常量 常量常量 字符常量字符常量 符號(hào)常量符號(hào)常量整型常量整型常量實(shí)型常量實(shí)型常量十進(jìn)制常量十進(jìn)制常量長(zhǎng)整型常量長(zhǎng)整型常量八進(jìn)制常量八進(jìn)制常量 ( (無負(fù)數(shù)無負(fù)數(shù)) )十六進(jìn)制常量十六
3、進(jìn)制常量 ( (無負(fù)數(shù)無負(fù)數(shù)) )單個(gè)字符常量單個(gè)字符常量字符串常量字符串常量6例例: (1). 1,27,0 - 整型常量整型常量 (2). 4.6,-8.43 - 實(shí)型常量實(shí)型常量 (3). a, b - 字符常量字符常量 (4). “China” - 字符串常量字符串常量7 ( (5). 5). 符號(hào)常量符號(hào)常量 - - 用一個(gè)用一個(gè)標(biāo)識(shí)符標(biāo)識(shí)符代表一個(gè)常量代表一個(gè)常量. . 如如: : #define PRICE 180 此后程序中凡出現(xiàn)此后程序中凡出現(xiàn)PRICE都代表都代表180. 符號(hào)常量在程序中代表某一數(shù)值,并可參加運(yùn)算符號(hào)常量在程序中代表某一數(shù)值,并可參加運(yùn)算, ,習(xí)習(xí) 慣上符
4、號(hào)常量用大寫,變量用小寫。慣上符號(hào)常量用大寫,變量用小寫。#define是宏定義命令是宏定義命令. 屬于屬于C語言的語言的編譯預(yù)處理命令編譯預(yù)處理命令。 8二、二、變量變量: 其值可變化的量稱為變量。每一個(gè)變量其值可變化的量稱為變量。每一個(gè)變量有二個(gè)特性有二個(gè)特性: 有一個(gè)有一個(gè)名字和相應(yīng)的類型名字和相應(yīng)的類型, ,并在編譯時(shí)分配相應(yīng)的內(nèi)存并在編譯時(shí)分配相應(yīng)的內(nèi)存單元。變量名實(shí)際上是一個(gè)符號(hào)地址單元。變量名實(shí)際上是一個(gè)符號(hào)地址. . 5.6 y2變量值變量值存儲(chǔ)單元存儲(chǔ)單元變量名變量名910 選擇題選擇題: int a, b ; a = 800; b = 30; a = a + b; b =
5、a b; a = a b; Printf(“%d”, b); A. 30 B. 800 C. 770 D. 830思思 考考變量在什么情況下變量在什么情況下改變自己的值改變自己的值?變量只在賦值的情況下改變自己的值變量只在賦值的情況下改變自己的值. .11(1). (1). 標(biāo)識(shí)符標(biāo)識(shí)符(identifieridentifier):): 標(biāo)識(shí)符用來標(biāo)識(shí)變量名標(biāo)識(shí)符用來標(biāo)識(shí)變量名, ,函數(shù)名函數(shù)名, ,類型名類型名, ,文件名文件名, , 數(shù)組名等的有效的字符序列。數(shù)組名等的有效的字符序列。 簡(jiǎn)而言之,簡(jiǎn)而言之,標(biāo)識(shí)符就是一個(gè)名字。標(biāo)識(shí)符就是一個(gè)名字。規(guī)定規(guī)定: 規(guī)定標(biāo)識(shí)符只能由規(guī)定標(biāo)識(shí)符只能由
6、字母字母, ,數(shù)字?jǐn)?shù)字, ,下劃線三種字符組成下劃線三種字符組成. . 且第一個(gè)字符必須為字母或下劃線。如且第一個(gè)字符必須為字母或下劃線。如: : total area_of_circle _name total area_of_circle _name 合法的標(biāo)識(shí)符合法的標(biāo)識(shí)符 2 2total area.circle #nametotal area.circle #name 非法非法的標(biāo)識(shí)符的標(biāo)識(shí)符12(2). 大、小寫字母被視為是兩個(gè)不同的字符大、小寫字母被視為是兩個(gè)不同的字符. 因此,因此,name 和和 Name ,main 和和 MAIN是兩個(gè)不同的標(biāo)是兩個(gè)不同的標(biāo) 識(shí)符。識(shí)符。(
7、3). 在在 C中,對(duì)于變量都是中,對(duì)于變量都是 “先定義,后使用先定義,后使用”.先確定先確定 變量名,數(shù)據(jù)類型,后在運(yùn)行時(shí)分配相應(yīng)的內(nèi)存空間變量名,數(shù)據(jù)類型,后在運(yùn)行時(shí)分配相應(yīng)的內(nèi)存空間.(4). 取名要統(tǒng)一規(guī)范取名要統(tǒng)一規(guī)范, 見名知意見名知意. 不使用用具有特殊含意的不使用用具有特殊含意的關(guān)鍵字關(guān)鍵字(保留字保留字)作標(biāo)識(shí)符作標(biāo)識(shí)符.13( (5)5). .盡量避免用容易混淆的字符盡量避免用容易混淆的字符, , 如如0 0和和o, o, 1 1和和l,Zl,Z和和2 2等等 例例: : _ _ 是合法的用戶定義標(biāo)識(shí)符是合法的用戶定義標(biāo)識(shí)符: : A. b-b A. b-b B. flo
8、at B. float C. C. D D. _isw. _isw14三三. . 整型數(shù)據(jù)整型數(shù)據(jù): :( (不帶小數(shù)點(diǎn)的數(shù)不帶小數(shù)點(diǎn)的數(shù))( (一一) )、整型常量:、整型常量: 整型常量也分類型。整型常量也分類型。1. 1. 十進(jìn)制整數(shù)十進(jìn)制整數(shù): : 一般占一般占2 2或或4 4個(gè)字節(jié)長(zhǎng)個(gè)字節(jié)長(zhǎng) 2 2字節(jié)取值范圍:字節(jié)取值范圍: -32768 -32768 - 32767- 327672. 2. 長(zhǎng)整型常數(shù)長(zhǎng)整型常數(shù): : 一般占一般占4 4個(gè)字節(jié)長(zhǎng)個(gè)字節(jié)長(zhǎng)(32 (32 bit)bit) 取值范圍:取值范圍:-2147483648 - 2147483647-2147483648 -
9、2147483647 注注: 在在c+環(huán)境下環(huán)境下,占占4個(gè)字節(jié)長(zhǎng)個(gè)字節(jié)長(zhǎng). 取值范圍:取值范圍: -2147483648 2147483647153. 3. 八進(jìn)制常量八進(jìn)制常量: : 以數(shù)字以數(shù)字0 0開頭開頭 0 0123123(83)(83) 0 05 5(5)(5) 0 0100100(64)(64) 0 03272732727(13783)(13783) ( (注注: :由此可見由此可見, ,在表示十進(jìn)制時(shí)就不能在前面加在表示十進(jìn)制時(shí)就不能在前面加0 0了了) )4. 4. 十六進(jìn)制常數(shù)十六進(jìn)制常數(shù): : 以數(shù)字以數(shù)字0 0和字母和字母x(0 x)x(0 x)開頭開頭 0 0 x
10、x1f1f(31)(31) 0 x0 x1A1A(26)(26) 0 x0 x2020(32)(32) 0 x0 x1010(16)(16)16( (二)二)整型數(shù)據(jù)在內(nèi)存中的存放形式整型數(shù)據(jù)在內(nèi)存中的存放形式: 數(shù)據(jù)在內(nèi)存中都是以二進(jìn)制形式存放的數(shù)據(jù)在內(nèi)存中都是以二進(jìn)制形式存放的.如如: int i ; /* i 定義為整型變量定義為整型變量 */ i = 10; /* 給給 i 賦以整數(shù)賦以整數(shù)10 */ 10的二進(jìn)制形式為的二進(jìn)制形式為: 1010, 設(shè)每一個(gè)整數(shù)變量在內(nèi)存中占設(shè)每一個(gè)整數(shù)變量在內(nèi)存中占二個(gè)字節(jié)二個(gè)字節(jié),在內(nèi)存中的情況為在內(nèi)存中的情況為: i : 0000 0000 00
11、00 101017( (三)三)整型變量的分類整型變量的分類: 1. 基本型基本型: : 用用 int 定義定義 (占占4個(gè)或個(gè)或2個(gè)個(gè)字節(jié)字節(jié)) 2. 短整型短整型: 用用 short 定義定義 ( 2個(gè)字節(jié)個(gè)字節(jié)) 3. 長(zhǎng)整型長(zhǎng)整型: : 用用 long 定義定義 ( (4個(gè)字節(jié)個(gè)字節(jié)) ) 注:注: 還有一種還有一種無符號(hào)無符號(hào)型型, 在在上面三種類型前面加上上面三種類型前面加上unsigned . 18四四. .實(shí)型數(shù)據(jù)實(shí)型數(shù)據(jù): :( (帶小數(shù)點(diǎn)的數(shù))帶小數(shù)點(diǎn)的數(shù))( (一一) )、實(shí)型常量:、實(shí)型常量: 實(shí)數(shù)又叫實(shí)數(shù)又叫浮點(diǎn)數(shù)浮點(diǎn)數(shù)。實(shí)型常量有二種表示形式:。實(shí)型常量有二種表示形
12、式: . 十進(jìn)制形式十進(jìn)制形式:3.5 .85 546. 由數(shù)字與小數(shù)點(diǎn)組成由數(shù)字與小數(shù)點(diǎn)組成 (必須要有小數(shù)點(diǎn)必須要有小數(shù)點(diǎn)). . 指數(shù)形式指數(shù)形式 : 728e3,72.8e4 都表示:都表示:728103 注意注意:e(E)前必須要有數(shù),指數(shù)必須是整數(shù)前必須要有數(shù),指數(shù)必須是整數(shù). 如:如:8.6e3.2 e4 .e2 ( 都有問題都有問題 )19(二二)、實(shí)型變量的分類實(shí)型變量的分類: 實(shí)型變量分:實(shí)型變量分: 1、單精度:用、單精度:用 float 定義定義. (范圍范圍: 1.0e -38 1.0e+38) 2、雙精度:用、雙精度:用 double 定義定義. (范圍范圍: 1.
13、0E-306 1.0E+306)C+系統(tǒng):系統(tǒng): float占用占用4個(gè)字節(jié)(個(gè)字節(jié)(48=32位位), 6位有效數(shù)字位有效數(shù)字 double占用占用8個(gè)字節(jié)(個(gè)字節(jié)(88=648=64位位),15),15位有效數(shù)字位有效數(shù)字20說明:說明:1. 實(shí)型常量不分實(shí)型常量不分float 和和 double型。處理時(shí)一律視為型。處理時(shí)一律視為double型。型。2. 整型數(shù)據(jù)和實(shí)型數(shù)據(jù)在內(nèi)存中的存放形式不一樣整型數(shù)據(jù)和實(shí)型數(shù)據(jù)在內(nèi)存中的存放形式不一樣: 整型類型格式整型類型格式 二進(jìn)制數(shù)二進(jìn)制數(shù)實(shí)型類型格式實(shí)型類型格式 尾數(shù)尾數(shù) 指數(shù)指數(shù)“數(shù)據(jù)類型數(shù)據(jù)類型”是一個(gè)很重要的概念是一個(gè)很重要的概念. 它
14、關(guān)系到數(shù)據(jù)范圍它關(guān)系到數(shù)據(jù)范圍,數(shù)據(jù)的精度數(shù)據(jù)的精度, 運(yùn)算速度的快慢等問運(yùn)算速度的快慢等問題題.21 除以上形式除以上形式, C還允許一種特殊形式的字符常量。即以還允許一種特殊形式的字符常量。即以一個(gè)一個(gè) “ ” 開頭的字符序列:開頭的字符序列: 如:如:nn (為換行符)為換行符)。 稱為稱為“轉(zhuǎn)義字符轉(zhuǎn)義字符”或或“轉(zhuǎn)碼字符轉(zhuǎn)碼字符”。五五. .字符型數(shù)據(jù)字符型數(shù)據(jù)( (一一) )、字符常量:、字符常量: 字符常量表示為用單引號(hào)字符常量表示為用單引號(hào)(撇號(hào)撇號(hào))括號(hào)起來的一個(gè)字符。括號(hào)起來的一個(gè)字符。 如:如: A,a,?, 9 , , n n 等等.轉(zhuǎn)義字符轉(zhuǎn)義字符22 因?yàn)榇嬖谝环N非
15、顯示字符,如因?yàn)榇嬖谝环N非顯示字符,如: 換行符換行符,響鈴等響鈴等是一種是一種控制字符控制字符, 難以用通常的形式來表示難以用通常的形式來表示. 故采用特殊方法故采用特殊方法(形式形式)表示:表示:轉(zhuǎn)義字符轉(zhuǎn)義字符 ASCII碼值碼值 字符字符 意義意義 n 0 x0A(10) LF 換行換行 a 0 x07(7) BEL 響鈴響鈴 r 0 x0D(13) CR 回車回車 t 0 x09(9) HT 水平制表水平制表(tab) “ 0 x22(34) “ 雙引號(hào)雙引號(hào) 23 轉(zhuǎn)義字符的使用方法與其它字符一樣轉(zhuǎn)義字符的使用方法與其它字符一樣 ,如如: ch=a; /* a 為為響鈴響鈴 */
16、printf(“%c”,ch); /* 計(jì)算機(jī)會(huì)發(fā)出一響聲計(jì)算機(jī)會(huì)發(fā)出一響聲 */如:如: 101 : A (1018 6510) 0 : null(空操作空操作)轉(zhuǎn)義字符轉(zhuǎn)義字符 ASCII碼值碼值 字符字符 意義意義 ddd ddd 任意字符任意字符 ddd ddd 為為1-31-3個(gè)個(gè)8 8進(jìn)制數(shù)進(jìn)制數(shù) x xhh hh 任意字符任意字符 hh hh 為為1-21-2個(gè)十六進(jìn)制個(gè)十六進(jìn)制數(shù)數(shù)24( (二二) )、字符變量:、字符變量: 字符變量用來存放一個(gè)字符(不是一個(gè)字符串字符變量用來存放一個(gè)字符(不是一個(gè)字符串).). 字符變量用類型名字符變量用類型名char來定義:來定義: cha
17、r c1,c2char c1,c2 ; ; c1,c2 c1,c2 定義為字符變量定義為字符變量, ,c1,c2c1,c2可存放一個(gè)字符可存放一個(gè)字符, , 可以進(jìn)行賦值:可以進(jìn)行賦值: c1=Wc1=W,c2=b;c2=b; 一個(gè)字節(jié)存放一個(gè)字符,也即一個(gè)字符變量在一個(gè)字節(jié)存放一個(gè)字符,也即一個(gè)字符變量在 內(nèi)存中占一個(gè)字節(jié)。內(nèi)存中占一個(gè)字節(jié)。25 將一個(gè)字符常量放到一個(gè)變量中,實(shí)際上并不是把字將一個(gè)字符常量放到一個(gè)變量中,實(shí)際上并不是把字符放到內(nèi)存中去,而是將該字符的符放到內(nèi)存中去,而是將該字符的ASCASC碼碼值存入相應(yīng)的值存入相應(yīng)的單元單元, ,以二進(jìn)制形式存放。以二進(jìn)制形式存放。字符字
18、符 ASCIIASCII值值 機(jī)內(nèi)碼機(jī)內(nèi)碼 a 97 01100001b 98 01100010 由此可見,在內(nèi)存中,字符數(shù)據(jù)的存儲(chǔ)形式與整數(shù)形由此可見,在內(nèi)存中,字符數(shù)據(jù)的存儲(chǔ)形式與整數(shù)形式相類似式相類似。26說明:說明: “ASCII “ASCII字符集字符集”列出所有可用的字符列出所有可用的字符(共共256個(gè)個(gè))和和其相應(yīng)的其相應(yīng)的ASCII 碼值碼值. 如如: 0-9 A-Z a-z 等等. 1 1. .ASCII字符集有如下特征字符集有如下特征(課本課本:P282附錄附錄A): (1). (1). 每個(gè)字符都有一個(gè)不同的每個(gè)字符都有一個(gè)不同的ASCIIASCII碼值碼值. . (2)
19、. (2). 數(shù)字?jǐn)?shù)字0,1,2,390,1,2,39的次序連續(xù)排列的次序連續(xù)排列(48 - 57).(48 - 57). (3). (3). 小寫字母小寫字母a,b,cza,b,cz連續(xù)排列連續(xù)排列(97 - 122).(97 - 122). (4). (4). 大寫字母大寫字母A,B,CZA,B,CZ連續(xù)排列連續(xù)排列(65 - 90).(65 - 90). 27282. 每個(gè)小寫字母與相應(yīng)的大寫字母每個(gè)小寫字母與相應(yīng)的大寫字母ASC碼值相差碼值相差32. A=65 a=97 B=66 b=9829 3. 3. C C語言中的字符常量具有語言中的字符常量具有數(shù)值特征數(shù)值特征, ,其值就是該字
20、符的其值就是該字符的 ASCIIASCII碼值碼值, ,占有一個(gè)字節(jié)占有一個(gè)字節(jié). . 比如對(duì)字符變量比如對(duì)字符變量 c3, 作賦值運(yùn)算作賦值運(yùn)算: char c3; c3 = B ; 實(shí)際上是將實(shí)際上是將B字符的字符的ASCII碼值碼值66賦予變量賦予變量 c3. 4. 字符既然有數(shù)字值字符既然有數(shù)字值,因此因此可以可以對(duì)字符數(shù)據(jù)進(jìn)行簡(jiǎn)單的算對(duì)字符數(shù)據(jù)進(jìn)行簡(jiǎn)單的算 術(shù)運(yùn)算術(shù)運(yùn)算,此時(shí)相當(dāng)于它們的機(jī)內(nèi)碼,此時(shí)相當(dāng)于它們的機(jī)內(nèi)碼(ASC(ASC碼碼) )進(jìn)行算進(jìn)行算 術(shù)運(yùn)算術(shù)運(yùn)算. . 30 又如又如: B + 1 其實(shí)是其實(shí)是B字符的字符的ASCII碼值碼值(66)加加1,得到,得到B字符的字
21、符的下一個(gè)字符下一個(gè)字符C. 字符運(yùn)算在實(shí)際編程中是很有用的字符運(yùn)算在實(shí)際編程中是很有用的. 5. 5. 一個(gè)字符數(shù)據(jù)既可以用一個(gè)字符數(shù)據(jù)既可以用字符形式字符形式輸出輸出, , 由輸出格式:由輸出格式:% %c c 指定指定. . 機(jī)器把存儲(chǔ)單元中的機(jī)器把存儲(chǔ)單元中的ASCIIASCII碼轉(zhuǎn)換成相應(yīng)的字符輸出碼轉(zhuǎn)換成相應(yīng)的字符輸出. . 也可以用也可以用整數(shù)形式整數(shù)形式輸出,直接將機(jī)內(nèi)碼(輸出,直接將機(jī)內(nèi)碼(ASCASC碼碼) ) 作為整數(shù)輸出,由作為整數(shù)輸出,由 % %d d 指定。指定。31卷題:卷題: 已知字符已知字符 a 的的ASCII碼為碼為 97 ,執(zhí)行下列語句的輸,執(zhí)行下列語句的
22、輸出是出是_。 printf (%d, %c, b, b+1 ) ; A、 98, b B、 語句不合法語句不合法 C、 98, 99 D、 98, c 進(jìn)一步說明進(jìn)一步說明: (1). 字符在書面表示時(shí)有單引號(hào)字符在書面表示時(shí)有單引號(hào),如上例中的如上例中的: b . 但在輸入和輸出時(shí)并沒有單引號(hào)但在輸入和輸出時(shí)并沒有單引號(hào),如答案如答案”D”中的中的c. (2). 要分清一般數(shù)值與字符數(shù)據(jù)的不同要分清一般數(shù)值與字符數(shù)據(jù)的不同. 如如: 1 和和 1 的不同的不同.32注意注意 : a與與 “a” 是不同的,一個(gè)為字符常量是不同的,一個(gè)為字符常量, ,一個(gè)為字符一個(gè)為字符 串常量串常量. .(
23、三三)、字符串常量、字符串常量 字符串常量表示為用一對(duì)字符串常量表示為用一對(duì)雙引號(hào)雙引號(hào)括起來的字符序列括起來的字符序列,如如: “How are you” “a” “$456.76” “浙江大學(xué)浙江大學(xué)” C語言規(guī)定語言規(guī)定, 在每一在每一個(gè)字符串常量的結(jié)尾加個(gè)字符串常量的結(jié)尾加了一個(gè)了一個(gè)“字符串結(jié)束標(biāo)志字符串結(jié)束標(biāo)志”, 以便系統(tǒng)判斷以便系統(tǒng)判斷字符串是否結(jié)束字符串是否結(jié)束. C規(guī)定以字符規(guī)定以字符0作為字符串結(jié)束標(biāo)志作為字符串結(jié)束標(biāo)志.33 0 0 ASCASC值為值為0 0的字符,的字符,不能顯示不能顯示, ,不產(chǎn)生動(dòng)作不產(chǎn)生動(dòng)作. . 如有一字符串如有一字符串“CHINA”,CHI
24、NA”,實(shí)際上在內(nèi)存中是實(shí)際上在內(nèi)存中是: : C H I N A 0 但在輸出時(shí)不輸出但在輸出時(shí)不輸出0, 如有如有: printf(“china”); 輸出時(shí)一個(gè)一個(gè)字符輸輸出時(shí)一個(gè)一個(gè)字符輸出出,直到直到0為至為至. 其長(zhǎng)度不是其長(zhǎng)度不是5個(gè)個(gè),而是而是6個(gè)個(gè), 0是系統(tǒng)自動(dòng)加上去的是系統(tǒng)自動(dòng)加上去的.34說明說明:沒有字符串變量,以后字符串由沒有字符串變量,以后字符串由一維字符數(shù)組一維字符數(shù)組來處理。來處理。 選擇題選擇題: _ 是不正確的字符常量是不正確的字符常量. A. n B. 1 C. “a” D. 10135 六六 變量賦初值變量賦初值 定義變量時(shí),可對(duì)變量初始化定義變量時(shí),
25、可對(duì)變量初始化. .例例: : int a=3; 相當(dāng)于相當(dāng)于 int a; a=3; float f=3.5; 相當(dāng)于相當(dāng)于 float f; f=3.5 char c=a; ; 相當(dāng)于相當(dāng)于 char c; c=a; 也可也可: int a,b,c=3; 相當(dāng)于相當(dāng)于: int a,b,c; c=3;36各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算: :(基本類型)(基本類型) * * 整型,單精度型,雙精度數(shù)據(jù)可以混合運(yùn)算。整型,單精度型,雙精度數(shù)據(jù)可以混合運(yùn)算。 * * 整型與字符型數(shù)據(jù)可通用。整型與字符型數(shù)據(jù)可通用。 因此因此 , ,整型,字符型、實(shí)型可混合運(yùn)算整型,字符型、
26、實(shí)型可混合運(yùn)算. . 在運(yùn)算時(shí),不同類型的數(shù)據(jù)要在運(yùn)算時(shí),不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型先轉(zhuǎn)換成同一類型, , 然后再進(jìn)行運(yùn)算。然后再進(jìn)行運(yùn)算。37 轉(zhuǎn)換規(guī)則:轉(zhuǎn)換規(guī)則: 高高 double float double float 單精度單精度 long long 低低 int char, shortint char, short1). 橫向向左的箭頭表示必定轉(zhuǎn)橫向向左的箭頭表示必定轉(zhuǎn)換換,在運(yùn)算中在運(yùn)算中,char型必定轉(zhuǎn)換成型必定轉(zhuǎn)換成 int 型。型。 Float型必定轉(zhuǎn)換成型必定轉(zhuǎn)換成double 型。型。2). 如果當(dāng)運(yùn)算對(duì)象不同時(shí),低類如果當(dāng)運(yùn)算對(duì)象不同時(shí),低類型直接轉(zhuǎn)換成高類型,
27、再進(jìn)行運(yùn)算型直接轉(zhuǎn)換成高類型,再進(jìn)行運(yùn)算 . 系統(tǒng)會(huì)自動(dòng)進(jìn)行這種轉(zhuǎn)換系統(tǒng)會(huì)自動(dòng)進(jìn)行這種轉(zhuǎn)換.必然轉(zhuǎn)換必然轉(zhuǎn)換38 相關(guān)知識(shí)相關(guān)知識(shí): C語言的語言的 數(shù)據(jù)的輸出數(shù)據(jù)的輸出,輸入:輸入:一、數(shù)據(jù)輸出:一、數(shù)據(jù)輸出: C語言本身并不提供輸入、輸出語句,輸入輸出的操作語言本身并不提供輸入、輸出語句,輸入輸出的操作任務(wù)由函數(shù)來實(shí)現(xiàn)任務(wù)由函數(shù)來實(shí)現(xiàn),也就是對(duì)輸入也就是對(duì)輸入,輸出實(shí)行函數(shù)化輸出實(shí)行函數(shù)化. 如如printf( ), scanf( ) 函數(shù),不是函數(shù),不是C語言的輸入語言的輸入,輸出語句輸出語句. C編譯版本都提供了許多函數(shù),以編譯版本都提供了許多函數(shù),以函數(shù)庫函數(shù)庫的形式提供。的形式提供
28、。 我們可以采用一定的方法,把自己的源程序與需要的我們可以采用一定的方法,把自己的源程序與需要的庫聯(lián)起來,一起參加編譯連接,最后形成一個(gè)可執(zhí)行文件。庫聯(lián)起來,一起參加編譯連接,最后形成一個(gè)可執(zhí)行文件。39 各種版本提供的函數(shù)庫數(shù)量多少不一致,函數(shù)名也可能各種版本提供的函數(shù)庫數(shù)量多少不一致,函數(shù)名也可能不一定相同。不一定相同。 一般對(duì)庫函數(shù)都進(jìn)行分類:一般對(duì)庫函數(shù)都進(jìn)行分類: 如有如有: (1)標(biāo)準(zhǔn)輸入、出函數(shù)庫)標(biāo)準(zhǔn)輸入、出函數(shù)庫 (stdio.h) (2)數(shù)學(xué)函數(shù)庫)數(shù)學(xué)函數(shù)庫 (math.h) (3)系統(tǒng)時(shí)間函數(shù)庫)系統(tǒng)時(shí)間函數(shù)庫 (time.h) (4)圖形函數(shù)庫)圖形函數(shù)庫 (grap
29、hics.h) . 等等。等等。40(一一) putchar( )函數(shù)函數(shù) 字符輸出函數(shù)字符輸出函數(shù)功能:向屏幕功能:向屏幕(CRT)輸出一個(gè)字符輸出一個(gè)字符 . 例例:putchar(c2); c2可是字符變量,轉(zhuǎn)義字符,整形變量,整形常量可是字符變量,轉(zhuǎn)義字符,整形變量,整形常量. putchar( )是屬于是屬于標(biāo)準(zhǔn)標(biāo)準(zhǔn) I/O 函數(shù)庫函數(shù)庫中一個(gè)函數(shù)中一個(gè)函數(shù).例例: #include “stdio.h” main( ) char a, b, c; a=B ; b=O; c=Y; putchar(a); putchar(b); putchar(c); 輸出:輸出:BOY 41putch
30、ar( )也可輸出也可輸出轉(zhuǎn)義字符轉(zhuǎn)義字符:如如:putchar(116 ) 輸出字符輸出字符Nputchar( ) 輸出單引號(hào)輸出單引號(hào)putchar( 015) 15) 輸出回車輸出回車說明說明:a. a. 在使用標(biāo)準(zhǔn)在使用標(biāo)準(zhǔn)I/OI/O函數(shù)時(shí),要使用編譯預(yù)處理命令:函數(shù)時(shí),要使用編譯預(yù)處理命令: # #includeinclude將將stdio.hstdio.h文件包含到用戶的源文件中去。文件包含到用戶的源文件中去。 stdio.hstdio.h為一個(gè)為一個(gè)頭文件頭文件,在它里面包含了標(biāo)準(zhǔn),在它里面包含了標(biāo)準(zhǔn)I/OI/O函函 數(shù)庫中有關(guān)函數(shù)的一些信息:如常量的定義,函數(shù)數(shù)庫中有關(guān)函數(shù)的
31、一些信息:如常量的定義,函數(shù) 原型的說明等信息。原型的說明等信息。42(二二) printf()函數(shù)函數(shù)(格式輸出函數(shù)(格式輸出函數(shù)) printf可以輸出多種類型的數(shù)據(jù)可以輸出多種類型的數(shù)據(jù),多個(gè)數(shù)據(jù)多個(gè)數(shù)據(jù).如如:1printf函數(shù)的一般格式為函數(shù)的一般格式為: printf(格式控制,輸出表列)格式控制,輸出表列) (“格式控制格式控制”是用雙引號(hào)括起來的字符串是用雙引號(hào)括起來的字符串).格式說明格式說明:由:由%和格式字符組成如和格式字符組成如:%d , %f;按指定的格式輸出按指定的格式輸出.普通字符普通字符:原樣輸出的字符:原樣輸出的字符.需要輸出的數(shù)據(jù)需要輸出的數(shù)據(jù),可以是可以是
32、表達(dá)式表達(dá)式,變量變量.432 2格式字符:格式字符: 對(duì)于不同的數(shù)據(jù)類型輸出,需要用不同的格式字符。對(duì)于不同的數(shù)據(jù)類型輸出,需要用不同的格式字符。 ( a). d 格式符格式符 用來輸出用來輸出十進(jìn)制十進(jìn)制整數(shù)整數(shù) %d 按實(shí)際長(zhǎng)度輸出按實(shí)際長(zhǎng)度輸出 . %md m為指定的輸出字段的為指定的輸出字段的寬度寬度. 若數(shù)據(jù)段若數(shù)據(jù)段m,按實(shí)際輸出。按實(shí)際輸出。 %ld 輸出輸出長(zhǎng)整數(shù)長(zhǎng)整數(shù)。對(duì)長(zhǎng)整型數(shù)據(jù),要用。對(duì)長(zhǎng)整型數(shù)據(jù),要用ld格式格式, 否則出錯(cuò)。否則出錯(cuò)。44(b). C格式符格式符 輸出一個(gè)字符輸出一個(gè)字符 : 如:如:char b=a; printf(“%c”, b); 字符可用整數(shù)
33、形式輸出,整數(shù)也可用字符形式輸出。字符可用整數(shù)形式輸出,整數(shù)也可用字符形式輸出。(c). S格式格式 輸出一個(gè)字符串輸出一個(gè)字符串: 如如 : printf(“%s” ,“CHINA”); (1). (1).%ms %ms 輸出字符串占輸出字符串占m m列,若列,若mmm串長(zhǎng)度,串長(zhǎng)度,右靠齊右靠齊,左邊補(bǔ)空格。,左邊補(bǔ)空格。 (2).(2).% %- -msms 若若mm串長(zhǎng)度,串長(zhǎng)度,左靠齊左靠齊,右邊補(bǔ)空格,右邊補(bǔ)空格. . 45(d d)f f格式符格式符輸出實(shí)數(shù)(單、雙精度)輸出實(shí)數(shù)(單、雙精度) (1).(1).%f%f 對(duì)于對(duì)于單精度單精度系統(tǒng)自動(dòng)使整個(gè)數(shù)全部輸出,系統(tǒng)自動(dòng)使整個(gè)
34、數(shù)全部輸出, 并帶有并帶有6 6位小數(shù)。位小數(shù)。 % %f f也可輸出也可輸出雙精度雙精度, ,有效位數(shù)共有效位數(shù)共1616位并帶有位并帶有 6 6位小數(shù)位小數(shù).(.(輸出雙精度也可用輸出雙精度也可用: :% %lflf).). (2).(2).%m.nf%m.nf m m為數(shù)據(jù)占的列數(shù)為數(shù)據(jù)占的列數(shù)( (包括小數(shù)點(diǎn)包括小數(shù)點(diǎn)),),n n為小數(shù)為小數(shù) 位數(shù)。如果數(shù)值長(zhǎng)度位數(shù)。如果數(shù)值長(zhǎng)度 m ,m ,右對(duì)齊右對(duì)齊, ,左邊補(bǔ)左邊補(bǔ) 空格??崭瘛?6思考題思考題:(卷例卷例)*寫出語句寫出語句 printf (“%d, %o, %x”, 0 x12, 12, 012); 的輸出結(jié)果的輸出結(jié)果。
35、 18, 14, A此外還有:此外還有: % %o o 8 8進(jìn)制不帶符號(hào)輸出整數(shù)進(jìn)制不帶符號(hào)輸出整數(shù) % %x x 16 16進(jìn)制不帶符號(hào)輸出整數(shù)進(jìn)制不帶符號(hào)輸出整數(shù) % %u u 10 10進(jìn)制無符號(hào)形式輸出整數(shù)進(jìn)制無符號(hào)形式輸出整數(shù) % %e e 指數(shù)形式輸出指數(shù)形式輸出47二、二、數(shù)據(jù)輸入數(shù)據(jù)輸入: :( (一一). ). 字符輸入函數(shù)字符輸入函數(shù) getchar() 功能:從鍵盤輸入一個(gè)字符。功能:從鍵盤輸入一個(gè)字符。 例例:#include “stdio.h” main( ) char c1; c1=getchar( ); /*運(yùn)行到運(yùn)行到 getchar( )時(shí),等待輸入時(shí),等待
36、輸入*/ putchar(c1); 輸入:輸入:a(回車回車). 48 用雙引號(hào)括起來,用雙引號(hào)括起來,表示輸入的格式表示輸入的格式. .變量地址變量地址. . & &為取地為取地址運(yùn)算符址運(yùn)算符. .49 普通字符:普通字符:要原樣輸入要原樣輸入,例如:例如: scanf(x=%f, &x);輸入輸入: x=2.5scanf(%f, &x);輸入輸入: :2.5 這里的這里的“l(fā)f”中的中的l是是long的首寫字符的首寫字符, 不是不是“1”. 沒有必要沒有必要畫蛇添足!畫蛇添足!50注注: 1. 輸入時(shí)輸入時(shí),以空格以空格,回車回車,TAB鍵分隔鍵分隔,(不
37、能以逗號(hào)作為不能以逗號(hào)作為 分隔符分隔符.) 2scanf() 函數(shù)使用中函數(shù)使用中注意的問題注意的問題: 在格式控制字符串中在格式控制字符串中,除了格式說明以外除了格式說明以外(% + 附加格附加格 式說明符式說明符+格式字符格式字符),),還有其它字符還有其它字符,則在輸入數(shù),則在輸入數(shù) 據(jù)時(shí)應(yīng)照樣輸入。據(jù)時(shí)應(yīng)照樣輸入。 調(diào)用調(diào)用scanf函數(shù)輸入多個(gè)數(shù)據(jù)函數(shù)輸入多個(gè)數(shù)據(jù)注意注意!51如:如:scanf(“%d,%d” , &a, &b) ; 應(yīng)輸入:應(yīng)輸入:8,4 又如又如:scanf(“%d%d”, &a, &b); 應(yīng)輸入:應(yīng)輸入:721 題例題例:
38、設(shè)變量定義為設(shè)變量定義為“int a, b;”,執(zhí)行下列語句時(shí)執(zhí)行下列語句時(shí),輸入輸入 _ ,則則a 和和 b的值都是的值都是10. scanf(“a=%d,b=%d”,&a,&b); A. 10 10 B. 10,10 C. a=10 b=10 D. a=10,b=10 52題例題例: : scanf(“%d%d%d”,&k1,&k2,&k3);scanf(“%d%d%d”,&k1,&k2,&k3);_正確的輸正確的輸入入. . A. 203040 A. 203040 B. 20 30 40B. 20 30 40 C. 20,3
39、0 40 D. 20,30,40 C. 20,30 40 D. 20,30,40 53 3. 用用 %c 格式輸入多個(gè)字符時(shí),后面不必用空格符作為格式輸入多個(gè)字符時(shí),后面不必用空格符作為 分隔符。分隔符。 否則空格符都作為有效字符輸入。否則空格符都作為有效字符輸入。 如:如: scanf(“%c%c%c”, &c1, &c2, &c3); 如輸入如輸入:a b c(回車回車) 這樣這樣:a c1 c2 b c3 正確輸入應(yīng)是正確輸入應(yīng)是:abc(回車回車) 54 4. 輸入函數(shù)留下的垃圾輸入函數(shù)留下的垃圾: scanf ()函數(shù)和函數(shù)和getchar()getchar(
40、)函數(shù)在工作時(shí)會(huì)留下一些多余函數(shù)在工作時(shí)會(huì)留下一些多余的字符的字符,主要是主要是n字符字符 ,它將對(duì)后續(xù)的字符和字符串輸入它將對(duì)后續(xù)的字符和字符串輸入操作產(chǎn)生影響操作產(chǎn)生影響,應(yīng)該適當(dāng)處理應(yīng)該適當(dāng)處理. 例如例如: : scanf (“%d”,&x) ; c=getchar( ); 如果輸入如果輸入: :2020,那么變量那么變量x x和和c c分分別得到別得到2020和和n,n,其中的其中的nn即是即是scanf函數(shù)的遺留物函數(shù)的遺留物. 輸入緩沖區(qū)概念55 請(qǐng)參閱請(qǐng)參閱“實(shí)驗(yàn)指導(dǎo)實(shí)驗(yàn)指導(dǎo)”一書的一書的P27的有關(guān)說明的有關(guān)說明. 又:又: 為了更安全一些為了更安全一些,可以在一次函
41、數(shù)調(diào)用后嘗試可以在一次函數(shù)調(diào)用后嘗試 加一條語句加一條語句: fflush(stdin); /* 調(diào)用調(diào)用fflush( )函數(shù)清空輸入緩沖區(qū)函數(shù)清空輸入緩沖區(qū) */ 56其格式如下其格式如下:57例例3.1_1 在屏幕上顯示在屏幕上顯示”Hello,World”: (知識(shí)擴(kuò)展知識(shí)擴(kuò)展) #include int main() char stri 80= ”Hello,World”; printf(“%sn”, stri ); puts(stri); return 0; char stri 80表明定義了一個(gè)表明定義了一個(gè)名為名為stri 的數(shù)組的數(shù)組,是一是一char類型類型的的,數(shù)組長(zhǎng)度為
42、數(shù)組長(zhǎng)度為80.用用puts函數(shù)輸出字符串函數(shù)輸出字符串.Ch3_3_1.cstri 為數(shù)組名為數(shù)組名.58 說明說明: 字符串由若干字符組成字符串由若干字符組成,在內(nèi)存中其未尾會(huì)自動(dòng)添加在內(nèi)存中其未尾會(huì)自動(dòng)添加一個(gè)一個(gè)0, 作為字符串的結(jié)束符作為字符串的結(jié)束符. Ch3_3_1.c593.1.2 字符串的輸入字符串的輸入 在程序設(shè)計(jì)中通常需要從鍵盤輸入字符串,通常用函在程序設(shè)計(jì)中通常需要從鍵盤輸入字符串,通常用函數(shù)數(shù)scanf. 也可以用也可以用gets函數(shù)實(shí)現(xiàn)函數(shù)實(shí)現(xiàn), 其格式如下其格式如下: gets(字符串?dāng)?shù)組名字符串?dāng)?shù)組名);例例3.2: 定義定義 一字符數(shù)組一字符數(shù)組,從鍵盤上輸入
43、一個(gè)字符串從鍵盤上輸入一個(gè)字符串,然后輸出然后輸出在屏幕上在屏幕上:60#includeint main() char string80; printf(請(qǐng)輸入你的姓名:請(qǐng)輸入你的姓名:n); scanf(%s,string); printf(你好你好!); puts(string); return 0;Ch3_3_2.c定義了一個(gè)名為定義了一個(gè)名為string 的的數(shù)組數(shù)組,是一是一char類型的類型的,數(shù)數(shù)組長(zhǎng)度為組長(zhǎng)度為80.C語言規(guī)定語言規(guī)定:數(shù)組名為該數(shù)組名為該數(shù)組在內(nèi)存的首地址數(shù)組在內(nèi)存的首地址.從鍵盤輸入一字符串從鍵盤輸入一字符串,以以回車結(jié)束回車結(jié)束.61/* 從鍵盤輸入一字符串從鍵盤輸入一字符串,然后輸出字符然后輸出字符*/#includeint main() char name20; printf(請(qǐng)輸入你的姓名:請(qǐng)輸入你的姓名:n); gets(name);
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 江蘇省南通市(2024年-2025年小學(xué)五年級(jí)語文)人教版期中考試((上下)學(xué)期)試卷及答案
- 遼寧省葫蘆島市(2024年-2025年小學(xué)五年級(jí)語文)人教版能力評(píng)測(cè)(上學(xué)期)試卷及答案
- 化學(xué)史期末作業(yè)化學(xué)史發(fā)展概論教案
- 2024年冶煉助劑項(xiàng)目資金申請(qǐng)報(bào)告代可行性研究報(bào)告
- 高中化學(xué)第四章非金屬及其化合物教案及練習(xí)新人教版必修
- 上海市市轄區(qū)(2024年-2025年小學(xué)五年級(jí)語文)人教版小升初模擬(下學(xué)期)試卷及答案
- 五年級(jí)數(shù)學(xué)(小數(shù)四則混合運(yùn)算)計(jì)算題專項(xiàng)練習(xí)及答案
- 電冰箱、空調(diào)器安裝與維護(hù)電子教案 2.3 電冰箱的故障判斷
- 電線電纜檢測(cè)培訓(xùn)
- DB11T 1102-2014 城市軌道交通工程規(guī)劃核驗(yàn)測(cè)量規(guī)程
- 《安全評(píng)價(jià)》課程設(shè)計(jì)-采石場(chǎng)
- 小升初專題復(fù)習(xí):《中國神話傳說》導(dǎo)讀單
- 渠道開發(fā)與管理
- 1+x電子商務(wù)考證(職業(yè)技能等級(jí)證書)網(wǎng)店運(yùn)營推廣(中級(jí))教學(xué)設(shè)計(jì)方案(教案簡(jiǎn)案)
- 火電廠酸洗技術(shù)方案
- 飛行控制系統(tǒng)大作業(yè)
- COPD治療新進(jìn)展
- 電大建筑施工與管理專業(yè)畢業(yè)作業(yè)
- xxxxx年豬文化節(jié)
- 吸收塔與煙囪交叉作業(yè)特殊安全防護(hù)措施最終版
- 估計(jì)的評(píng)價(jià)標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論