第二章順序結(jié)構(gòu)程序設(shè)計(jì)_第1頁
第二章順序結(jié)構(gòu)程序設(shè)計(jì)_第2頁
第二章順序結(jié)構(gòu)程序設(shè)計(jì)_第3頁
第二章順序結(jié)構(gòu)程序設(shè)計(jì)_第4頁
第二章順序結(jié)構(gòu)程序設(shè)計(jì)_第5頁
已閱讀5頁,還剩189頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、內(nèi)容簡(jiǎn)介內(nèi)容簡(jiǎn)介u程序結(jié)構(gòu)程序結(jié)構(gòu)分為分為順序結(jié)構(gòu)順序結(jié)構(gòu)、選擇結(jié)構(gòu)選擇結(jié)構(gòu)和和循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)三種三種。用這三種基本結(jié)構(gòu)可以實(shí)現(xiàn)任何復(fù)雜的算法。用這三種基本結(jié)構(gòu)可以實(shí)現(xiàn)任何復(fù)雜的算法。u順序結(jié)構(gòu)是三種基本程序結(jié)構(gòu)中順序結(jié)構(gòu)是三種基本程序結(jié)構(gòu)中最簡(jiǎn)單的一種。它是按照程序代最簡(jiǎn)單的一種。它是按照程序代碼書寫的先后順序來執(zhí)行的,程碼書寫的先后順序來執(zhí)行的,程序自始至終只沿著一個(gè)方向執(zhí)行序自始至終只沿著一個(gè)方向執(zhí)行。語句語句A A語句語句B B語句語句C C順序結(jié)構(gòu)流程圖內(nèi)容簡(jiǎn)介內(nèi)容簡(jiǎn)介u順序結(jié)構(gòu)由于程序流程過于單一,所以不能實(shí)現(xiàn)順序結(jié)構(gòu)由于程序流程過于單一,所以不能實(shí)現(xiàn)復(fù)雜的算法,一般只用于編寫一

2、些不需要對(duì)流程復(fù)雜的算法,一般只用于編寫一些不需要對(duì)流程進(jìn)行控制的簡(jiǎn)單程序。進(jìn)行控制的簡(jiǎn)單程序。u本章將重點(diǎn)介紹本章將重點(diǎn)介紹整型整型、實(shí)型實(shí)型和和字符型字符型三大基本數(shù)三大基本數(shù)據(jù)類型的據(jù)類型的使用方法使用方法。2.1 C2.1 C語言源程序結(jié)構(gòu)語言源程序結(jié)構(gòu)uC C語言語言源程序結(jié)構(gòu):源程序結(jié)構(gòu):1.1.一個(gè)一個(gè)C C語言源程序可以由一個(gè)或多個(gè)源文件組成。語言源程序可以由一個(gè)或多個(gè)源文件組成。 2 2. .每個(gè)源文件可由一個(gè)或多個(gè)函數(shù)組成,函數(shù)是構(gòu)每個(gè)源文件可由一個(gè)或多個(gè)函數(shù)組成,函數(shù)是構(gòu)成成C C源程序的基本單位。源程序的基本單位。 2.1 C2.1 C語言源程序結(jié)構(gòu)語言源程序結(jié)構(gòu)u3

3、3. . mainmain函數(shù)可以位于源程序的任何位置。但是,函數(shù)可以位于源程序的任何位置。但是,不管不管mainmain函數(shù)位于源程序的開頭、中間,還是末函數(shù)位于源程序的開頭、中間,還是末尾,尾,程序是都從程序是都從mainmain函數(shù)開始執(zhí)行,并且在函數(shù)開始執(zhí)行,并且在mainmain函數(shù)中結(jié)束函數(shù)中結(jié)束,即,即mainmain函數(shù)是整個(gè)程序的入口和出函數(shù)是整個(gè)程序的入口和出口。口。課堂練習(xí)課堂練習(xí)1 1、C C源程序的基本單位是源程序的基本單位是_。2 2、一個(gè)、一個(gè)C C源程序應(yīng)至少包括一個(gè)源程序應(yīng)至少包括一個(gè)_函數(shù)。函數(shù)。3 3、在一個(gè)、在一個(gè)C C源程序中,注釋部分兩側(cè)的分界符分別

4、源程序中,注釋部分兩側(cè)的分界符分別為為_和和_。4 4、一個(gè)、一個(gè)C C程序的執(zhí)行是從程序的執(zhí)行是從_開始的,到開始的,到_結(jié)束的。結(jié)束的。5 5、C C語言規(guī)定:在一個(gè)源程序中,語言規(guī)定:在一個(gè)源程序中,mainmain函數(shù)的位置函數(shù)的位置( )( )。 A. A.必須在最開始必須在最開始 B. B.必須在系統(tǒng)調(diào)用的庫函數(shù)后面必須在系統(tǒng)調(diào)用的庫函數(shù)后面 C.C.可以任意可以任意 D. D.必須在最后必須在最后課堂練習(xí)課堂練習(xí) 2.2 2.2 最簡(jiǎn)單的最簡(jiǎn)單的C C程序程序【例【例2.12.1】 在屏幕上輸出在屏幕上輸出“I love C I love C programmprogramm.

5、.”void void main( ) main( ) printfprintf(I love C (I love C programmprogramm.); .); 運(yùn)行運(yùn)行程序程序2.2 2.2 最簡(jiǎn)單的最簡(jiǎn)單的C C程序程序【例【例2.22.2】在屏幕上輸出圣誕樹的圖案?!吭谄聊簧陷敵鍪フQ樹的圖案。運(yùn)行運(yùn)行程序程序數(shù)據(jù)類型數(shù)據(jù)類型C C數(shù)數(shù)據(jù)據(jù)類類型型基本類型基本類型構(gòu)造類型構(gòu)造類型指針類型指針類型空類型空類型void定義類型定義類型typedef字符類型字符類型char枚舉類型枚舉類型enum整整 型型實(shí)型實(shí)型單精度型單精度型float雙精度型雙精度型double數(shù)組數(shù)組結(jié)構(gòu)體結(jié)構(gòu)體s

6、truct共用體共用體union短整型短整型short長整型長整型long整型整型int2.3 2.3 整型數(shù)據(jù)整型數(shù)據(jù)u整型數(shù)據(jù)是不包含小數(shù)部分整型數(shù)據(jù)是不包含小數(shù)部分的的數(shù)值型數(shù)據(jù)數(shù)值型數(shù)據(jù),分為分為整型常量整型常量和和整型變量整型變量兩種兩種。u常量常量: : 在在整個(gè)程序運(yùn)行整個(gè)程序運(yùn)行期間期間其值其值都不會(huì)發(fā)生都不會(huì)發(fā)生變化變化u變量變量: : 在在程序運(yùn)行程序運(yùn)行期間期間其值其值會(huì)會(huì)發(fā)生發(fā)生改變改變2.3.1 2.3.1 整型常量整型常量u常量分為常量分為字面常量字面常量和和符號(hào)常量符號(hào)常量。字面常量可以字面常量可以直接看出其直接看出其數(shù)值數(shù)值符號(hào)符號(hào)常量則是用一常量則是用一個(gè)標(biāo)識(shí)

7、符個(gè)標(biāo)識(shí)符代表一個(gè)代表一個(gè)數(shù)值數(shù)值 &字面整型常量(整常數(shù))字面整型常量(整常數(shù))l十進(jìn)制整數(shù):由數(shù)字十進(jìn)制整數(shù):由數(shù)字0 09 9和正負(fù)號(hào)表示和正負(fù)號(hào)表示. .如如 123,-123,-456,0456,0l八進(jìn)制整數(shù):八進(jìn)制整數(shù):由數(shù)字由數(shù)字0 0開頭開頭, ,后跟數(shù)字后跟數(shù)字0 07 7表示表示. .如如0123,0110123,011l十六進(jìn)制整數(shù):十六進(jìn)制整數(shù):由由0 x0 x開頭開頭, ,后跟后跟0 09,a9,af,Af,AF F表示表示. . 如如0 x123,0Xff0 x123,0Xffmain() printf(“%dn”,123);main() printf(“

8、%dn”, 0123 );main() printf(“%dn”,0 x123);2.3.1 2.3.1 整型常量整型常量2.3.1 2.3.1 整型常量整型常量(2 2)符號(hào)常量的定義格式:)符號(hào)常量的定義格式: # #define define 標(biāo)識(shí)符標(biāo)識(shí)符 數(shù)值數(shù)值如:如:#define N 10#define N 10N N表示符號(hào)常量名,代表數(shù)值表示符號(hào)常量名,代表數(shù)值1010。例例 符號(hào)常量舉例符號(hào)常量舉例#define PRICE 30main() int num,total; num=10; total=num*PRICE; printf(total=%d,total);運(yùn)行結(jié)

9、果:運(yùn)行結(jié)果:total=3002.3.1 2.3.1 整型常量整型常量u符號(hào)常量使用符號(hào)常量使用注意注意事項(xiàng)事項(xiàng):定義符號(hào)常量這一行屬于預(yù)處理命令,不是定義符號(hào)常量這一行屬于預(yù)處理命令,不是C C語語句,句,末尾不加分號(hào)末尾不加分號(hào)。符號(hào)符號(hào)常量名通常用大寫字母表示常量名通常用大寫字母表示。2.3.2 2.3.2 整型變量分類整型變量分類u整型變量分為三大類:整型變量分為三大類:基本整型、短整型和長整基本整型、短整型和長整型型。u根據(jù)根據(jù)有無符號(hào)位有無符號(hào)位,每一大類整型數(shù)每一大類整型數(shù)據(jù)據(jù)又可以分為又可以分為有符號(hào)有符號(hào)和和無符號(hào)無符號(hào)兩種類型兩種類型。u因此因此,C C語言整型語言整型變

10、量變量分為六種分為六種類型。類型。2.3.2 2.3.2 整型變量分類整型變量分類整型變量類型整型變量類型長度長度取值范圍取值范圍有符號(hào)有符號(hào)基本整型基本整型2 2字節(jié)字節(jié)-32768-327683276732767(-2-215152 21515-1-1)無符號(hào)無符號(hào)基本整型基本整型2 2字節(jié)字節(jié)0 06553565535(0 02 21616-1-1)有符號(hào)有符號(hào)短整型短整型2 2字節(jié)字節(jié)-32768-327683276732767(-2-215152 21515-1-1)無符號(hào)無符號(hào)短整型短整型2 2字節(jié)字節(jié)0 06553565535(0 02 21616-1-1)有符號(hào)有符號(hào)長整型長整

11、型4 4字節(jié)字節(jié)-2-231312 23131-1-1無符號(hào)無符號(hào)長整型長整型4 4字節(jié)字節(jié)0 02 23232-1-12.3.2 2.3.2 整型變量分類整型變量分類u對(duì)于整型常量,如果其值在對(duì)于整型常量,如果其值在-32768-327683276732767之間,之間,則認(rèn)為它是則認(rèn)為它是intint類型類型,如果超出這個(gè)范圍,但在,如果超出這個(gè)范圍,但在- -2 231312 23131-1-1之間,則認(rèn)為是之間,則認(rèn)為是長長整型整型。u整型整型常量后面加上字母常量后面加上字母u u或或U U,則認(rèn)為是,則認(rèn)為是unsigned unsigned intint型型。如如,- -3u3u是

12、無符號(hào)整型是無符號(hào)整型常量常量。u整型常量后面整型常量后面加上加上l l或或L L,則認(rèn)為是,則認(rèn)為是長整型長整型。如如, 0L0L是長整型常量。是長整型常量。2.3.3 2.3.3 整型變量定義整型變量定義變量的兩個(gè)要素變量的兩個(gè)要素(1 1)變量名變量名 每個(gè)變量都必須有變量名,變量名實(shí)際上是一個(gè)每個(gè)變量都必須有變量名,變量名實(shí)際上是一個(gè)符號(hào)地址。在對(duì)程序進(jìn)行編譯連接時(shí)系統(tǒng)會(huì)給每符號(hào)地址。在對(duì)程序進(jìn)行編譯連接時(shí)系統(tǒng)會(huì)給每個(gè)變量名分配一個(gè)內(nèi)存地址。個(gè)變量名分配一個(gè)內(nèi)存地址。(2 2)變量值變量值 在程序運(yùn)行過程中,變量值存儲(chǔ)在內(nèi)存中,系統(tǒng)在程序運(yùn)行過程中,變量值存儲(chǔ)在內(nèi)存中,系統(tǒng)通過變量名來

13、引用變量的值。通過變量名來引用變量的值。2.3.3 2.3.3 整型變量定義整型變量定義變量名變量名2000H34a變量值變量值內(nèi)存地址內(nèi)存地址int a;a=34;2.3.3 2.3.3 整型變量定義整型變量定義u有符號(hào)基本整型有符號(hào)基本整型: signedsigned intint 變量變量名名; ;u無符號(hào)基本整型無符號(hào)基本整型:unsigned unsigned intint 變量變量名名; ;u有符號(hào)短整型:有符號(hào)短整型: signed signed short short intint 變量變量名名; ;u無符號(hào)短整型:無符號(hào)短整型: unsigned short unsigned

14、 short intint 變量變量名名; ;u有符號(hào)長整型:有符號(hào)長整型: signed signed long long intint 變量變量名名; ;u無符號(hào)長整型:無符號(hào)長整型: unsigned long unsigned long intint 變量變量名名; ;p方括號(hào)方括號(hào)“ ”括起來的是可選項(xiàng),在定義變量時(shí)可以省略。括起來的是可選項(xiàng),在定義變量時(shí)可以省略。2.3.3 2.3.3 整型變量定義整型變量定義u如:如:intint i; i;unsigned unsigned intint u; u;short k;short k;unsigned short s;unsigne

15、d short s;long m;long m;unsigned long n;unsigned long n;2.3.3 2.3.3 整型變量定義整型變量定義u變量名命名變量名命名規(guī)則:規(guī)則:p(1 1)以以字母或下劃線字母或下劃線開頭開頭p(2 2)只能只能由字母、數(shù)字和下劃線由字母、數(shù)字和下劃線組成組成p(3 3)不能不能用用C C語言關(guān)鍵字作語言關(guān)鍵字作標(biāo)識(shí)符標(biāo)識(shí)符2.3.3 2.3.3 整型變量定義整型變量定義32個(gè)關(guān)鍵字個(gè)關(guān)鍵字:(auto break case char constcontinue default do double elseenum extern float f

16、or gotoif int long register returnshort signed sizeof static structswitch typedef unsigned union voidvolatile while2.3.3 2.3.3 整型變量定義整型變量定義例例: :判斷下列標(biāo)識(shí)符號(hào)合法性判斷下列標(biāo)識(shí)符號(hào)合法性sum Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char ab _above $123M.D.John3days#33char$123ab2.3.3 2.3.3 整型變量定義整型變量定義l定義變

17、量注意事項(xiàng):定義變量注意事項(xiàng):p所有的變量都要先定義后使用所有的變量都要先定義后使用p變量名嚴(yán)格區(qū)分大小寫字母變量名嚴(yán)格區(qū)分大小寫字母p變量名通常變量名通常用小寫字母用小寫字母表示表示課堂練習(xí)課堂練習(xí)1 1以下字符列中,能作為以下字符列中,能作為C C程序自定義標(biāo)識(shí)符的是()程序自定義標(biāo)識(shí)符的是() A.num(10) B.file_bak C. break D. class+2 A.num(10) B.file_bak C. break D. class+22.2.下列字符列中,不是下列字符列中,不是C C語言提供的合法關(guān)鍵字是()語言提供的合法關(guān)鍵字是() A.switch B.begin

18、 C. case D.default A.switch B.begin C. case D.default2.3.4 2.3.4 整型變量賦值整型變量賦值u在在C C語言中,賦值運(yùn)算符是語言中,賦值運(yùn)算符是“= =”,其作用是將一,其作用是將一個(gè)數(shù)據(jù)賦給一個(gè)變量。個(gè)數(shù)據(jù)賦給一個(gè)變量。如:如:intint a; a; a=3; a=3; 2.3.4 2.3.4 整型變量賦值整型變量賦值u也可以在定義變量的同時(shí)給變量賦初值,這種賦也可以在定義變量的同時(shí)給變量賦初值,這種賦值方法稱為變量的初始化。值方法稱為變量的初始化。u如:如:intint b=2; b=2; 2.3.4 2.3.4 整型變量賦值

19、整型變量賦值intint a,b,ca,b,c; ; a=b=c=5a=b=c=5; ; 表示定義表示定義了了a a、b b、c c三個(gè)三個(gè)變量變量,并使,并使a,b,ca,b,c的值都為的值都為5 5。p注意:注意:不能不能寫成寫成intint a=b=c=5; a=b=c=5; 否則否則在編譯程序時(shí)在編譯程序時(shí)會(huì)會(huì)報(bào)錯(cuò),報(bào)錯(cuò),提示變量提示變量b b和和c c沒有定義沒有定義。2.3.4 2.3.4 整型變量賦值整型變量賦值u關(guān)于變量賦值操作的注意事項(xiàng)關(guān)于變量賦值操作的注意事項(xiàng):(1 1)C C語言在運(yùn)行程序時(shí)才對(duì)變量進(jìn)行賦值操作,語言在運(yùn)行程序時(shí)才對(duì)變量進(jìn)行賦值操作,在編譯階段系統(tǒng)只負(fù)責(zé)給

20、變量分配存儲(chǔ)空間。在編譯階段系統(tǒng)只負(fù)責(zé)給變量分配存儲(chǔ)空間。(2 2)定義變量后如果沒有對(duì)變量進(jìn)行賦值操作,則)定義變量后如果沒有對(duì)變量進(jìn)行賦值操作,則其值是不確定的。其值是不確定的。2.3.4 2.3.4 整型變量賦值整型變量賦值(3 3)對(duì)整型變量賦以小數(shù)時(shí),)對(duì)整型變量賦以小數(shù)時(shí),只保留整數(shù)部分,小只保留整數(shù)部分,小數(shù)部分被直接舍棄掉,不作四舍五入數(shù)部分被直接舍棄掉,不作四舍五入。如如:intint a=1.8; a=1.8;a a中實(shí)際存儲(chǔ)的值為中實(shí)際存儲(chǔ)的值為1 1。2.3.4 2.3.4 整型變量賦值整型變量賦值(4 4)對(duì)整型變量進(jìn)行賦值時(shí)要注意不能超出變量的對(duì)整型變量進(jìn)行賦值時(shí)要

21、注意不能超出變量的取值范圍。取值范圍。如果所賦的值超出范圍,則不能得到正如果所賦的值超出范圍,則不能得到正確的結(jié)果確的結(jié)果。u如如,intint類型的取值范圍是類型的取值范圍是-32768-327683276732767,如果,如果將將3276832768賦給賦給intint類型的變量,則其得到的實(shí)際值類型的變量,則其得到的實(shí)際值為為-32768-32768,這種現(xiàn)象稱為數(shù)據(jù)溢出。這種現(xiàn)象稱為數(shù)據(jù)溢出。2.3.4 2.3.4 整型變量賦值整型變量賦值u以以intint類型為例,如果對(duì)其賦的值類型為例,如果對(duì)其賦的值超過超過3276732767但又但又小于或等于小于或等于6553665536,則

22、其,則其實(shí)際得到的值為這個(gè)數(shù)減實(shí)際得到的值為這個(gè)數(shù)減去去6553665536的差的差。u如如:intint a=32768; a=32768; ,則,則a a中實(shí)際存儲(chǔ)的值為中實(shí)際存儲(chǔ)的值為3276832768與與6553665536的差,即的差,即- -3276832768u如如:intint b=65530; b=65530; ,則,則b b中實(shí)際存儲(chǔ)的值為中實(shí)際存儲(chǔ)的值為6553065530與與6553665536的差,即的差,即- -6 62.3.4 2.3.4 整型變量賦值整型變量賦值u如果對(duì)如果對(duì)intint類型的變量賦的值類型的變量賦的值小于小于-32768-32768但又大于但

23、又大于或等于或等于-65536-65536,則其實(shí)際得到的值,則其實(shí)際得到的值為為這個(gè)數(shù)加上這個(gè)數(shù)加上6553665536的和的和。u如:如:intint b=-65510; b=-65510;,則,則b b中實(shí)際存儲(chǔ)的值為中實(shí)際存儲(chǔ)的值為- -6551065510和和6553665536的和,即的和,即2626。2.3.4 2.3.4 整型變量賦值整型變量賦值u對(duì)于對(duì)于unsigned unsigned intint類型的變量,其允許的取值范類型的變量,其允許的取值范圍是圍是0 06553565535,如果,如果賦的值超過賦的值超過6553565535,則,則將該數(shù)將該數(shù)值除以值除以6553

24、665536,得到的余數(shù)即實(shí)際存儲(chǔ)的值,得到的余數(shù)即實(shí)際存儲(chǔ)的值。u如果如果賦的值是賦的值是大于大于-65536-65536的負(fù)整數(shù)的負(fù)整數(shù),則將這個(gè)負(fù),則將這個(gè)負(fù)整數(shù)整數(shù)加上加上6553665536,得到的和即實(shí)際存儲(chǔ)的值,得到的和即實(shí)際存儲(chǔ)的值。u如如:unsigned unsigned intint b=-1; b=-1;,則,則b b中實(shí)際存儲(chǔ)的值為中實(shí)際存儲(chǔ)的值為-1-1與與6553665536的和,即的和,即6553565535。2.3.4 2.3.4 整型變量賦值整型變量賦值u不同類型的整型變量可以相互賦值,但不同類型的整型變量可以相互賦值,但實(shí)際存儲(chǔ)實(shí)際存儲(chǔ)的數(shù)值仍然由變量的取

25、值范圍來決定的數(shù)值仍然由變量的取值范圍來決定。如:如:unsigned unsigned intint b=65535; b=65535;intint a=b; a=b;則則a a中實(shí)際存儲(chǔ)的值中實(shí)際存儲(chǔ)的值為為6553565535與與6553665536的差,即的差,即-1-1。課堂練習(xí)課堂練習(xí) 以下程序段運(yùn)行以下程序段運(yùn)行結(jié)果是結(jié)果是( ) intint i=010, j=10.5i=010, j=10.5,k=65535k=65535; printfprintf(“%(“%d d,%,%d,%dd,%dn”, n”, i,j,ki,j,k) ); A)10,11,65535 A)10,1

26、1,65535 B) 8,10,0B) 8,10,0 C) 8,10,-1 C) 8,10,-1 D) 16,10,-32767D) 16,10,-32767C整型數(shù)據(jù)的輸入通過整型數(shù)據(jù)的輸入通過scanfscanf函數(shù)來實(shí)現(xiàn)。函數(shù)來實(shí)現(xiàn)。2.3.52.3.5整型數(shù)據(jù)輸入整型數(shù)據(jù)輸入scanfscanf函數(shù)的格式函數(shù)的格式 :scanfscanf(“(“格式控制字符串格式控制字符串”,地址表列,地址表列) );格式控制串格式控制串由格式字符(簡(jiǎn)稱格式符)和普由格式字符(簡(jiǎn)稱格式符)和普通通字符組成。字符組成。變量地址變量地址的表示方法為:的表示方法為:& &變量名變量名u不同類

27、型的數(shù)據(jù)不同類型的數(shù)據(jù)類型類型對(duì)應(yīng)的格式字符也不同對(duì)應(yīng)的格式字符也不同intint類型的格式符類型的格式符為為“%d%d”unsigned unsigned intint類型的格式符類型的格式符為為“%u%u”long long intint的格式符的格式符為為“% %ldld”2.3.52.3.5整型數(shù)據(jù)輸入整型數(shù)據(jù)輸入u如如: :intint a; a;unsigned b;unsigned b;long long intint c; c;u其輸入數(shù)據(jù)的格式分別為:其輸入數(shù)據(jù)的格式分別為:scanfscanf(%(%d,&ad,&a););scanfscanf(%(%u,&

28、amp;bu,&b););scanfscanf(%(%ldld,&c);,&c);2.3.52.3.5整型數(shù)據(jù)輸入整型數(shù)據(jù)輸入2.3.52.3.5整型數(shù)據(jù)輸入整型數(shù)據(jù)輸入(1 1)“%“%d%dd%d”表示按十進(jìn)制整數(shù)形式輸入兩個(gè)表示按十進(jìn)制整數(shù)形式輸入兩個(gè)整數(shù)。輸入數(shù)據(jù)時(shí),在兩個(gè)數(shù)據(jù)之間要以一個(gè)整數(shù)。輸入數(shù)據(jù)時(shí),在兩個(gè)數(shù)據(jù)之間要以一個(gè)或多個(gè)或多個(gè)空格、回車鍵、空格、回車鍵、tab tab 鍵鍵間隔。間隔。 整型數(shù)據(jù)輸入注意事項(xiàng):整型數(shù)據(jù)輸入注意事項(xiàng): 如:如:intint m,nm,n; ; scanfscanf(“%(“%d%dd%d”, ”, & &

29、;m,m,& &n n););2.3.52.3.5整型數(shù)據(jù)輸入整型數(shù)據(jù)輸入以下輸入方法均為合法:以下輸入方法均為合法:3 4 (13 4 (1個(gè)空格個(gè)空格) )3 4 (3 4 (多個(gè)空格多個(gè)空格) )3 3 (回車?。ɑ剀嚱。?4 4 3 3(tabtab鍵)鍵)4 42.3.52.3.5整型數(shù)據(jù)輸入整型數(shù)據(jù)輸入scanfscanf(“%(“%d d, ,%d%d”, ”, & &a, a, & &b);b);(2 2)“格式控制字符串格式控制字符串”中的中的普通字符要原樣輸入。普通字符要原樣輸入。正確輸入方法:正確輸入方法:3 3,4 4s

30、canfscanf(“(“a=a=% %d d,b,b= =%d”, %d”, & &a, a, & &b);b);正確輸入方法:正確輸入方法:a=3a=3,b=4b=42.3.52.3.5整型數(shù)據(jù)輸入整型數(shù)據(jù)輸入 如:如:scanfscanf(“%5d%5d”, (“%5d%5d”, & &a,a,& &b b););(3 3)可以)可以規(guī)定輸入數(shù)據(jù)的寬度。規(guī)定輸入數(shù)據(jù)的寬度。 輸入輸入:123456763123456763 則則:a a為為12345 , b12345 , b為為67636763課堂練習(xí)課堂練習(xí) 1 1、x x

31、、y y、z z被定義為被定義為intint型變量,若從鍵盤給型變量,若從鍵盤給x x、y y、z z輸入數(shù)據(jù),正確的輸入語句是(輸入數(shù)據(jù),正確的輸入語句是( )A.A. INPUT xINPUT x、y y、z; z; B. B. scanfscanf(%(%d%d%dd%d%d,&,&x,&y,&zx,&y,&z););C. C. scanfscanf(%(%d%d%dd%d%d,x,y,zx,y,z); ); D. read(%D. read(%d%d%dd%d%d,&,&x,&y,&zx,&y,&a

32、mp;z););B2 2、若想通過以下輸入語句使、若想通過以下輸入語句使a a中存放整數(shù)中存放整數(shù)12341234,b b 中存放整數(shù)中存放整數(shù)5 5,則輸入數(shù)據(jù)的形式應(yīng)該,則輸入數(shù)據(jù)的形式應(yīng)該是是 _ _ _ intint a,ba,b; ; scanfscanf(“a=%d(“a=%db=%d”b=%d”,&a&a,&b);&b);課堂練習(xí)課堂練習(xí)a=1234 b=52.3.62.3.6整型數(shù)據(jù)輸出整型數(shù)據(jù)輸出u整型數(shù)據(jù)通過整型數(shù)據(jù)通過printfprintf函數(shù)向屏幕輸出。函數(shù)向屏幕輸出。uprintfprintf函數(shù)函數(shù)調(diào)用調(diào)用形式形式: printfp

33、rintf(格式控制串,(格式控制串,輸出輸出列列表)表); ;2.3.62.3.6整型數(shù)據(jù)輸出整型數(shù)據(jù)輸出u輸出整型數(shù)據(jù)的格式輸出整型數(shù)據(jù)的格式符:符:(1 1)%d%d:用于輸出有符號(hào)基本整型數(shù)據(jù),即:用于輸出有符號(hào)基本整型數(shù)據(jù),即intint類型數(shù)據(jù),輸出數(shù)據(jù)的范圍為類型數(shù)據(jù),輸出數(shù)據(jù)的范圍為-32768-327683276732767。如如: :intint a=12 a=12,b=-10b=-10;printfprintf(“a=%a=%d,bd,b=%dn”=%dn”,a,ba,b); ;輸出結(jié)果為輸出結(jié)果為:a=12,b=-10:a=12,b=-102.3.62.3.6整型數(shù)據(jù)輸

34、出整型數(shù)據(jù)輸出(2 2)%u%u:用于輸出無符號(hào)基本整型類型數(shù)據(jù),即:用于輸出無符號(hào)基本整型類型數(shù)據(jù),即unsigned unsigned intint類型數(shù)據(jù),輸出數(shù)據(jù)的范圍為類型數(shù)據(jù),輸出數(shù)據(jù)的范圍為0 06553565535。如:如:unsigned unsigned intint a=65535; a=65535;intint b=-3; b=-3;printfprintf(“a=%u(“a=%un”,an”,a););printfprintf(“b=%u(“b=%un”,bn”,b););輸出結(jié)果:輸出結(jié)果:a=65535a=65535 b=65533 b=65533 2.3.62.

35、3.6整型數(shù)據(jù)輸出整型數(shù)據(jù)輸出(3 3)% %ldld:用于輸出長整型數(shù)據(jù),輸出范圍為:用于輸出長整型數(shù)據(jù),輸出范圍為-2-231312 23131-1-1。 對(duì)于對(duì)于longlong型數(shù)據(jù)型數(shù)據(jù), ,當(dāng)整型數(shù)據(jù)的范圍超出當(dāng)整型數(shù)據(jù)的范圍超出-32768-327683276732767時(shí),必須用時(shí),必須用% %ldld格式輸出,否則會(huì)格式輸出,否則會(huì)出錯(cuò)出錯(cuò)。2.3.62.3.6整型數(shù)據(jù)輸出整型數(shù)據(jù)輸出(4 4)%o%o:將基本整型數(shù)據(jù)的二進(jìn)制補(bǔ)碼轉(zhuǎn)換成八進(jìn):將基本整型數(shù)據(jù)的二進(jìn)制補(bǔ)碼轉(zhuǎn)換成八進(jìn)制形式輸出,輸出的八進(jìn)制數(shù)范圍為制形式輸出,輸出的八進(jìn)制數(shù)范圍為0 0177777177777如:如

36、: intint a=-1; a=-1; printfprintf(“%d,%(“%d,%o”a,ao”a,a);); 輸出:輸出: -1,177777-1,1777772.3.62.3.6整型數(shù)據(jù)輸出整型數(shù)據(jù)輸出(5 5)%x%x、%X%X:將基本整型數(shù)據(jù)的二進(jìn)制補(bǔ)碼轉(zhuǎn)換成:將基本整型數(shù)據(jù)的二進(jìn)制補(bǔ)碼轉(zhuǎn)換成十六進(jìn)制數(shù)輸出,輸出的十六進(jìn)制數(shù)范圍為十六進(jìn)制數(shù)輸出,輸出的十六進(jìn)制數(shù)范圍為0 0ffffffff(或(或FFFFFFFF)。如:如:intint a=-1; a=-1;printfprintf(“%(“%x”,ax”,a););輸出結(jié)果為:輸出結(jié)果為:ffffffff2.3.62.3.6

37、整型數(shù)據(jù)輸出整型數(shù)據(jù)輸出(6 6)%md%md和和%-md%-md:按照按照m m列的寬度列的寬度輸出輸出intint型數(shù)據(jù)型數(shù)據(jù)(負(fù)(負(fù)號(hào)號(hào)也也占一列占一列)。)。如果如果輸出數(shù)據(jù)輸出數(shù)據(jù)的的實(shí)際實(shí)際寬度寬度不足不足m m位,則用空格補(bǔ)齊位,則用空格補(bǔ)齊m m位位。% %mdmd要在數(shù)據(jù)要在數(shù)據(jù)左邊左邊補(bǔ)空格,補(bǔ)空格,%-md%-md要在數(shù)據(jù)要在數(shù)據(jù)右右邊邊補(bǔ)補(bǔ)空格空格。如果輸出數(shù)據(jù)如果輸出數(shù)據(jù)的的寬度寬度超過超過m m位位,則按,則按實(shí)際長度實(shí)際長度輸出輸出。2.3.62.3.6整型數(shù)據(jù)輸出整型數(shù)據(jù)輸出u如如: printfprintf(“%5d,%-5d,%3d”,12,13,12345

38、);(“%5d,%-5d,%3d”,12,13,12345); 輸出輸出結(jié)果為:結(jié)果為:12,1312,13, ,12345123452.3.62.3.6整型數(shù)據(jù)輸出整型數(shù)據(jù)輸出uprintfprintf函數(shù)使用注意事項(xiàng)函數(shù)使用注意事項(xiàng)(1 1)格式控制串中的普通字符要原樣輸出。)格式控制串中的普通字符要原樣輸出。如:如:intint a=1,b=2; a=1,b=2;printfprintf(a=%(a=%d,bd,b=%d,=%d,a,ba,b););輸出結(jié)果為:輸出結(jié)果為:a=1,b=2a=1,b=22.3.62.3.6整型數(shù)據(jù)輸出整型數(shù)據(jù)輸出(2 2)在為整數(shù)選擇輸出格式符)在為整數(shù)選

39、擇輸出格式符時(shí)要時(shí)要防止數(shù)據(jù)溢出。防止數(shù)據(jù)溢出。如:如:printfprintf(%d,%u,65535,65536);(%d,%u,65535,65536);輸出結(jié)果為:輸出結(jié)果為:-1-1,0 02.3.62.3.6整型數(shù)據(jù)輸出整型數(shù)據(jù)輸出(3 3)八進(jìn)制和十六進(jìn)制格式不會(huì)輸出負(fù)整數(shù)。)八進(jìn)制和十六進(jìn)制格式不會(huì)輸出負(fù)整數(shù)。如:如:printf(%o,%x,-1,-1);printf(%o,%x,-1,-1);輸出結(jié)果為:輸出結(jié)果為:177777,ffff177777,ffff課堂練習(xí)課堂練習(xí)main()main()unsigned a=65534;unsigned a=65534;prin

40、tfprintf(“%(“%d,%u,%o,%xd,%u,%o,%xn”,n”,a,a,a,aa,a,a,a);); 運(yùn)行的結(jié)果是運(yùn)行的結(jié)果是 。A.A.-32768,65534,177776,ffff -32768,65534,177776,ffff B B.-2,65534,177776,fffe.-2,65534,177776,fffeC.C.-1,65534,-77777,-7fff-1,65534,-77777,-7fffD.D.-2,65534,-77777,-7fff-2,65534,-77777,-7fffB2.3.72.3.7整型數(shù)據(jù)運(yùn)算整型數(shù)據(jù)運(yùn)算u整型數(shù)據(jù)常用的運(yùn)算有加、

41、減、乘、除、模、整型數(shù)據(jù)常用的運(yùn)算有加、減、乘、除、模、自增、自減、復(fù)合賦值運(yùn)算等。自增、自減、復(fù)合賦值運(yùn)算等。2.3.72.3.7整型數(shù)據(jù)運(yùn)算整型數(shù)據(jù)運(yùn)算(1)(1)加加、減、乘法運(yùn)算、減、乘法運(yùn)算C C語言的加、減、乘法運(yùn)算規(guī)則和數(shù)學(xué)中的加、減語言的加、減、乘法運(yùn)算規(guī)則和數(shù)學(xué)中的加、減、乘法規(guī)則一樣、乘法規(guī)則一樣。要要特別注意特別注意乘法的運(yùn)算符為乘法的運(yùn)算符為“* *”,且,且C C語言中語言中乘乘法運(yùn)算符不能法運(yùn)算符不能省略省略。如如,數(shù)學(xué)表達(dá)式,數(shù)學(xué)表達(dá)式y(tǒng)=2xy=2x、c=ac=a b b、z=xz=x y y應(yīng)該寫成應(yīng)該寫成y=2y=2* *x x、c=ac=a* *b b、z

42、=xz=x* *y y。2.3.72.3.7整型數(shù)據(jù)運(yùn)算整型數(shù)據(jù)運(yùn)算(2 2)除法除法運(yùn)算運(yùn)算u除法除法運(yùn)算符為運(yùn)算符為“/ /”,運(yùn)算,運(yùn)算規(guī)則如下:規(guī)則如下:u當(dāng)被除數(shù)和除數(shù)都是整數(shù)時(shí),商為整數(shù),如果不當(dāng)被除數(shù)和除數(shù)都是整數(shù)時(shí),商為整數(shù),如果不能被整除,則結(jié)果只保留商的整數(shù)部分,小數(shù)部能被整除,則結(jié)果只保留商的整數(shù)部分,小數(shù)部分直接被舍棄掉,不作四舍五入處理分直接被舍棄掉,不作四舍五入處理。 如如:10/210/2的商為的商為5 5,185/100185/100的商為的商為1 1,1/31/3的商為的商為0 02.3.72.3.7整型數(shù)據(jù)運(yùn)算整型數(shù)據(jù)運(yùn)算u當(dāng)當(dāng)被除數(shù)和除數(shù)中有一個(gè)為實(shí)數(shù)時(shí),

43、則商為實(shí)數(shù)。被除數(shù)和除數(shù)中有一個(gè)為實(shí)數(shù)時(shí),則商為實(shí)數(shù)。 如:如: 124.5/10 124.5/10的商為的商為12.4512.45 2/5.0 2/5.0的商為的商為0.40.4 1.2/4.8 1.2/4.8的商為的商為0.250.252.3.72.3.7整型數(shù)據(jù)運(yùn)算整型數(shù)據(jù)運(yùn)算(3 3)模模運(yùn)算運(yùn)算u模運(yùn)算即求余運(yùn)算,運(yùn)算結(jié)果為被除數(shù)除以除數(shù)模運(yùn)算即求余運(yùn)算,運(yùn)算結(jié)果為被除數(shù)除以除數(shù)的余數(shù)。模運(yùn)算符為的余數(shù)。模運(yùn)算符為“% %”。u模運(yùn)算要求被除數(shù)和除數(shù)都必須是整型數(shù)據(jù),否模運(yùn)算要求被除數(shù)和除數(shù)都必須是整型數(shù)據(jù),否則將報(bào)語法錯(cuò)誤。則將報(bào)語法錯(cuò)誤。u如:如:12%512%5的值為的值為2

44、2,5%85%8的值為的值為5 5,15%2.515%2.5是錯(cuò)誤的是錯(cuò)誤的。課堂練習(xí)課堂練習(xí) intint i=12,j=5,m,n,q i=12,j=5,m,n,q; ; m=i%10; m=i%10; n= n=j%ij%i; ; q= q=i%ji%j; ; m,n,qm,n,q 分別為多少?分別為多少?2.3.72.3.7整型數(shù)據(jù)運(yùn)算整型數(shù)據(jù)運(yùn)算(4 4)自自增、自減運(yùn)算增、自減運(yùn)算自增、自減運(yùn)算的功能是使變量的值增加或減少自增、自減運(yùn)算的功能是使變量的值增加或減少1 1,其運(yùn)算符為其運(yùn)算符為+、- 。如如,對(duì)于整型變量,對(duì)于整型變量i i,i+i+和和+i+i相當(dāng)于相當(dāng)于i=i+1

45、i=i+1, i- i- 和和 - -i i相當(dāng)于相當(dāng)于i=i-1i=i-1。2.3.72.3.7整型數(shù)據(jù)運(yùn)算整型數(shù)據(jù)運(yùn)算ui+i+、i-i- -稱為稱為后綴形式,后綴形式,+i i、 -i-i稱為前綴稱為前綴形式。形式。ui+i+、i-i- -表示先使用表示先使用i i的原值進(jìn)行運(yùn)算,之后的原值進(jìn)行運(yùn)算,之后i i的值再加的值再加1 1或減或減1 1。u+i+i、 -i -i表示表示先將先將i i的值加的值加1 1或減或減1 1,再用,再用i i的的新值參與運(yùn)算。新值參與運(yùn)算。2.3.72.3.7整型數(shù)據(jù)運(yùn)算整型數(shù)據(jù)運(yùn)算如:如:intint i=1,j; i=1,j; 執(zhí)行執(zhí)行j=i+;j=

46、i+;之后,之后,j j的值為的值為1 1,i i的值為的值為2 2。執(zhí)行過程:執(zhí)行過程:先用先用i i的原值對(duì)的原值對(duì)j j做賦值操作,之后,做賦值操作,之后,i i再加再加1 1變成變成2 2。2.3.72.3.7整型數(shù)據(jù)運(yùn)算整型數(shù)據(jù)運(yùn)算如:如:intint i=1,j; i=1,j; 若若執(zhí)行執(zhí)行j=+i;j=+i;,則,則j j的值變成的值變成2 2,i i的值也變成的值也變成2 2。執(zhí)行過程執(zhí)行過程:先先將將i i的值加的值加1 1變成變成2 2后,再將后,再將i i的新值的新值2 2賦給賦給j j。2.3.72.3.7整型數(shù)據(jù)運(yùn)算整型數(shù)據(jù)運(yùn)算如:如:intint i=1,j; i=

47、1,j; u執(zhí)行執(zhí)行printfprintf( (“%d%d”, ,i i+);+); 輸出輸出結(jié)果為結(jié)果為1 1,i i的的值值變成變成2 2。u執(zhí)行執(zhí)行printfprintf( ( %d%d ,+i,+i);); 輸出輸出結(jié)果為結(jié)果為2 2,i i的的值值也是也是2 2。2.3.72.3.7整型數(shù)據(jù)運(yùn)算整型數(shù)據(jù)運(yùn)算 + +、-運(yùn)算注意事項(xiàng):運(yùn)算注意事項(xiàng): C C語言函數(shù)語言函數(shù)參數(shù)按從參數(shù)按從右往左的順序求右往左的順序求值值 如:如:intint i=1; i=1; printfprintf(%(%d,%d,id,%d,i+,+i); +,+i); 運(yùn)行運(yùn)行結(jié)果結(jié)果為為:2,22,22.

48、3.72.3.7整型數(shù)據(jù)運(yùn)算整型數(shù)據(jù)運(yùn)算u如:如:intint i=1,j; i=1,j;若若執(zhí)行執(zhí)行printfprintf( (“%d%d”,(i+)+(i+);,(i+)+(i+);,則輸出結(jié),則輸出結(jié)果為果為3 3。若若執(zhí)行執(zhí)行j=(i+)+(i+);j=(i+)+(i+);,則,則j j的值為的值為2 2。因?yàn)橐驗(yàn)橘x值語句對(duì)于賦值語句對(duì)于所有后綴形式的所有后綴形式的+、-運(yùn)算都運(yùn)算都用其原值計(jì)算,算完之后用其原值計(jì)算,算完之后i i再連續(xù)做自增或自減運(yùn)再連續(xù)做自增或自減運(yùn)算。算。2.3.72.3.7整型數(shù)據(jù)運(yùn)算整型數(shù)據(jù)運(yùn)算u如:如:intint i=1,ji=1,j; ;若若執(zhí)行語句

49、執(zhí)行語句printfprintf( (“%d%d”,+i+(+i,+i+(+i);); 則則輸出結(jié)果為輸出結(jié)果為5 5。若若執(zhí)行賦值語句執(zhí)行賦值語句j=(+i)+(+ij=(+i)+(+i);); 則則j j的值為的值為6 6。 因?yàn)橐驗(yàn)樵谫x值語句在賦值語句中所有中所有前綴形式的前綴形式的+、-運(yùn)算都用運(yùn)算都用其自增或自減過后的新值進(jìn)行計(jì)算其自增或自減過后的新值進(jìn)行計(jì)算。第 7474 頁+、-運(yùn)算符只能用于變量,不能用于常量或表運(yùn)算符只能用于變量,不能用于常量或表達(dá)式達(dá)式, 5+, 5+、+(+(a+ba+b) )等都是非法的。等都是非法的。+和和- - -的結(jié)合方向?yàn)榈慕Y(jié)合方向?yàn)椤白杂蚁蜃笞?/p>

50、右向左”,-i+-i+相當(dāng)相當(dāng)于于-(i+)-(i+)。i+j+i+j+相當(dāng)?shù)叵喈?dāng)?shù)?i+)+(j+) (i+)+(j+) 3.3.6 3.3.6 整型數(shù)據(jù)計(jì)算規(guī)則整型數(shù)據(jù)計(jì)算規(guī)則如:如:i=3i=3,則,則printfprintf(“%d,-i+”);(“%d,-i+”);相當(dāng)于先將相當(dāng)于先將3 3加上加上負(fù)號(hào)輸出負(fù)號(hào)輸出-3-3,再對(duì),再對(duì)i i加加1 1,使,使i i變成變成4 4。2.3.72.3.7整型數(shù)據(jù)運(yùn)算整型數(shù)據(jù)運(yùn)算例例 i=3; k=+i; i=3; k=+i; i=3; k=i+; i=3; k=i+; i=3; printf( i=3; printf(“%d%d”,+i)

51、; ,+i); i=3; printf( i=3; printf(“%d%d”,i+); ,i+); a=3;b=5;c=(+a) a=3;b=5;c=(+a)* *b; b; a=3;b=5;c=(a+) a=3;b=5;c=(a+)* *b; b; /k=4,i=4/k=4,i=4/k=3,i=4/k=3,i=4/4/4/3/3/c=20,a=4/c=20,a=4/c=15,a=4/c=15,a=4課堂練習(xí)課堂練習(xí) 1 1、以下程序的輸出結(jié)果是、以下程序的輸出結(jié)果是( )( ) mainmain( ) intint a=12 a=12,b=12b=12; printfprintf(“%d

52、%dn”%d %dn”,-a+ba+b,+b+b); ; A A、23 13 23 13 B B、24 13 24 13 C C、24 1224 12 D D、23 1223 12B第 7777 頁課堂練習(xí)課堂練習(xí)2 2、請(qǐng)寫出以下程序輸出結(jié)果。、請(qǐng)寫出以下程序輸出結(jié)果。 main() main() intint x=6, y; x=6, y; printfprintf(x=%d(x=%dn,xn,x); ); y = +x; y = +x; printfprintf(x=%(x=%d,yd,y=%dn,=%dn,x,yx,y); ); y = x-; y = x-; printfprintf

53、(x=%(x=%d,yd,y=%dn,=%dn,x,yx,y); ); 程序運(yùn)行結(jié)果:程序運(yùn)行結(jié)果:x=6x=6x=7,y=7x=7,y=7x=6,y=7x=6,y=72.3.72.3.7整型數(shù)據(jù)運(yùn)算整型數(shù)據(jù)運(yùn)算(5 5)復(fù)合復(fù)合賦值賦值運(yùn)算運(yùn)算復(fù)合賦值運(yùn)算是將賦值運(yùn)算與其他運(yùn)算相結(jié)合的運(yùn)復(fù)合賦值運(yùn)算是將賦值運(yùn)算與其他運(yùn)算相結(jié)合的運(yùn)算。算術(shù)運(yùn)算和賦值運(yùn)算相結(jié)合是最常用的復(fù)合賦算。算術(shù)運(yùn)算和賦值運(yùn)算相結(jié)合是最常用的復(fù)合賦值運(yùn)算值運(yùn)算,如,如,+=+=,-=-=,/=/=,* *= =,%=%=。2.3.72.3.7整型數(shù)據(jù)運(yùn)算整型數(shù)據(jù)運(yùn)算ua=a+3a=a+3; ; 可以可以寫成寫成 a+=3a

54、+=3; ;ua=a-3a=a-3; ; 可以可以寫成寫成 a-=3; a-=3;ua=aa=a* *3; 3; 可以可以寫成寫成 a a* *=3;=3;ua=a/(b+3); a=a/(b+3); 可以可以寫成寫成 a/=(b+3 a/=(b+3); ); 或或 a a/=b+3;/=b+3;ua=a%(ba=a%(b* *c+3c+3); ); 可以可以寫成寫成 a%=(b a%=(b* *c+3c+3););或或 a a%=b%=b* *c+3c+3; ;u注意:注意:復(fù)合復(fù)合賦值運(yùn)算符優(yōu)先級(jí)別低于算術(shù)運(yùn)算賦值運(yùn)算符優(yōu)先級(jí)別低于算術(shù)運(yùn)算符符2.3.72.3.7整型數(shù)據(jù)運(yùn)算整型數(shù)據(jù)運(yùn)算u

55、如如:intint x =2; x =2;x+=x-=xx+=x-=x* *x x; ; 執(zhí)行復(fù)合賦值運(yùn)算后執(zhí)行復(fù)合賦值運(yùn)算后x x的值為多少的值為多少? ?課堂練習(xí)課堂練習(xí)1. 1. 假定有以下變量定義:假定有以下變量定義:intint k=7 k=7,x=12x=12;則能使值為則能使值為3 3 的表達(dá)式是(的表達(dá)式是( ) A A、x%=(k%=5)x%=(k%=5) B B、x%=(k-k%5)x%=(k-k%5) C C、x%=k-k%5x%=k-k%5 D D、(x%=k)-(k%=5)(x%=k)-(k%=5)D課堂練習(xí)課堂練習(xí)2. 2. 若有定義:若有定義:intint a=0

56、10,b=1,c=2;, a=010,b=1,c=2;,順序執(zhí)行下列語順序執(zhí)行下列語句后,變量句后,變量c c中的值是中的值是 。 c=(a-=(b+5); c=(a-=(b+5); c=(a%11)+(b=1);c=(a%11)+(b=1);3課堂練習(xí)課堂練習(xí)3. 3. 下列程序的運(yùn)行結(jié)果是下列程序的運(yùn)行結(jié)果是 。main()main() intint x=6, y, z; x=6, y, z; x x* *=18+1; =18+1; printfprintf( ( % %d,d, ,x,x-);-); x+=y=z=11; x+=y=z=11; printfprintf( ( % %d d

57、 ,x,x);); 113,1242.3.82.3.8整型數(shù)據(jù)編程整型數(shù)據(jù)編程【例【例2.32.3】輸入兩個(gè)整數(shù),求這兩個(gè)整數(shù)的和、差、輸入兩個(gè)整數(shù),求這兩個(gè)整數(shù)的和、差、積、商和模并輸出計(jì)算結(jié)果積、商和模并輸出計(jì)算結(jié)果。問題分析問題分析2.3.82.3.8整型數(shù)據(jù)編程整型數(shù)據(jù)編程程序代碼程序代碼void mainvoid main( )( ) intint a,ba,b; ; printfprintf(Please input two (Please input two intigerintiger numbers:); numbers:); scanfscanf(%(%d,%d,&

58、a,&bd,%d,&a,&b);); printfprintf(n%dn%d+%d=%d,+%d=%d,a,b,a+ba,b,a+b);); printf(n%d-%d=%d,a,b,a-b);printf(n%d-%d=%d,a,b,a-b); printf(n%d printf(n%d* *%d=%d,a,b,a%d=%d,a,b,a* *b);b); printf(n%d/%d=%d,a,b,a/b); printf(n%d/%d=%d,a,b,a/b); printf printf(“(“n%d%d=%n%d%d=%d”,d”,a,b,a%ba,b,a%b);)

59、;運(yùn)行運(yùn)行程序程序2.3.82.3.8整型數(shù)據(jù)編程整型數(shù)據(jù)編程【例【例2.42.4】輸入一個(gè)三位整數(shù)并輸出其逆序數(shù),如輸】輸入一個(gè)三位整數(shù)并輸出其逆序數(shù),如輸入入345345,則輸出,則輸出543543。u解題思路:解題思路:u先先分離一個(gè)分離一個(gè)整數(shù)整數(shù)的百位、十位和個(gè)位的百位、十位和個(gè)位數(shù)字?jǐn)?shù)字,再,再將將個(gè)位數(shù)乘上個(gè)位數(shù)乘上100100、十位數(shù)乘上、十位數(shù)乘上1010, 并將這兩個(gè)乘并將這兩個(gè)乘積與百位數(shù)相加,即得到這個(gè)整數(shù)的逆序數(shù)積與百位數(shù)相加,即得到這個(gè)整數(shù)的逆序數(shù)。u解題解題關(guān)鍵在于分離百位、十位和個(gè)位數(shù)字。關(guān)鍵在于分離百位、十位和個(gè)位數(shù)字。2.3.82.3.8整型數(shù)據(jù)編程整型數(shù)據(jù)

60、編程u分離百位數(shù)只要將三位整數(shù)除以分離百位數(shù)只要將三位整數(shù)除以100100即可。因?yàn)楦纯?。因?yàn)楦鶕?jù)除法運(yùn)算規(guī)則,被除數(shù)和除數(shù)都是整數(shù),商只據(jù)除法運(yùn)算規(guī)則,被除數(shù)和除數(shù)都是整數(shù),商只截取整數(shù)部分,如,截取整數(shù)部分,如,345/100345/100的結(jié)果為的結(jié)果為3 3,正好是,正好是百位數(shù)。百位數(shù)。u求個(gè)位數(shù)只要將數(shù)據(jù)除以求個(gè)位數(shù)只要將數(shù)據(jù)除以1010并取其余數(shù)即可。如并取其余數(shù)即可。如,345%10345%10的結(jié)果為的結(jié)果為5 5,即個(gè)位數(shù)。,即個(gè)位數(shù)。2.3.82.3.8整型數(shù)據(jù)編程整型數(shù)據(jù)編程u分離分離十位數(shù)十位數(shù)可以采取哪些方法?可以采取哪些方法?p方法方法1 1:將將數(shù)據(jù)對(duì)數(shù)據(jù)對(duì)100100求余,再將余數(shù)除以求余,再將余數(shù)除以1010,取,取商的整數(shù)部分商的整數(shù)部分;p方法方法2 2:將將數(shù)據(jù)除以數(shù)據(jù)除以1010得到的商再對(duì)得到的商再對(duì)1010求余,取其求余,取其余數(shù)余數(shù);p方法方法3 3:將將數(shù)據(jù)減去百位數(shù)乘數(shù)據(jù)減去百位數(shù)乘100100的積,得到的差的積,得到的差再除以再除以1010,取商的整數(shù)部分,取商的整數(shù)部分。2.3.82.3.8整型

溫馨提示

  • 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)論