




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 1 頁第第2章章 基本元素和語句基本元素和語句 2.1 數(shù)據(jù)的表示及存儲 2.2 程序的基本元素 2.3 輸入輸出語句 2.4 條件語句 2.5 循環(huán)語句西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 2 頁第第2章章 C語言基本元素和語句語言基本元素和語句2.1.1 數(shù)字化信息編碼2.1.2 進制及進制轉(zhuǎn)換2.1.3 數(shù)值的表示和存儲2.1 數(shù)據(jù)的表示及存儲2.1.4 字符的表示和存儲2.1.5 指令的表示和存儲西北大學信息科學與技術(shù)學院. All rights reser
2、ved 2011 第 3 頁2.1 2.1 數(shù)據(jù)的存儲數(shù)據(jù)的存儲2.1.1 2.1.1 數(shù)字化信息編碼數(shù)字化信息編碼 計算機中的信息也稱為數(shù)據(jù)。由于二進制電路簡單、可靠且具有很強的邏輯功能,因此數(shù)據(jù)在計算機中均以二進制表示,并用它們的組合表示不同類型的信息。 在計算機中只能識別二進制數(shù)碼信息,因此一切非二進制數(shù)碼的信息,如數(shù)字、字母、漢字等都要用二進制數(shù)的特定編碼表示。當然編碼可以有多種方法, 但為了便于交換、處理,必須采用統(tǒng)一的編碼方法。西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 4 頁2.1 2.1 數(shù)據(jù)的存儲數(shù)據(jù)的存儲2.1.2 2.1.2 進制及
3、進制轉(zhuǎn)換進制及進制轉(zhuǎn)換(1)數(shù)碼、基與權(quán)數(shù)碼:表示數(shù)的符號基:數(shù)碼的個數(shù)權(quán):每一位所具有的值(2)數(shù)制(二進制,八進制,十進制,十六進制)數(shù)制的概念數(shù)制之間的轉(zhuǎn)換(整數(shù))數(shù)制之間的轉(zhuǎn)換(小數(shù))西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 5 頁 各種進制之間的轉(zhuǎn)換(整數(shù))二進制、八進制、十六進制轉(zhuǎn)換成十進制 方法:按權(quán)相加10012345259212120212121111011)()(例10012894868381136)()(例1001231679781610162161516121)()(例AF西北大學信息科學與技術(shù)學院. All rights re
4、served 2011 第 6 頁 各種進制之間的轉(zhuǎn)換(整數(shù))二進制、八進制、十六進制轉(zhuǎn)換成十進制 方法:按權(quán)相加十進制轉(zhuǎn)換成二進制、八進制、十六進制11 0 21101101201100(.)22.222 (22.2 )2nnnnnnnnnnNaaaaaaaaaaaaNa 是 的余數(shù) 方法:連續(xù)除以基,從低到高記錄余數(shù),直至商為0西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 7 頁l各種進制之間的轉(zhuǎn)換(整數(shù))二進制與八進制之間的轉(zhuǎn)換 二進制轉(zhuǎn)換成八進制:從右向左,每3位一組(不足3位左補0),轉(zhuǎn)換成八進制 八進制轉(zhuǎn)換成二進制:用3位二進制數(shù)代替每一位八進
5、制數(shù)例 (246)8=(010,100,110)2=(10100110)2000 0001 1010 2011 3100 4101 5110 6111 7西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 8 頁二進制與十六進制之間的轉(zhuǎn)換 二進制轉(zhuǎn)換成十六進制:從右向左,每4位一組(不足4位左補0),轉(zhuǎn)換成十六進制 十六進制轉(zhuǎn)換成二進制:用4位二進制數(shù)代替每一位十六進制數(shù)例 (11010101111101)2=(0011,0101,0111,1101)2=(357D)16例 (4B9E)16=(0100,1011,1001,1110)2=(10010111001
6、1110)20000 00001 10010 20011 30100 40101 50110 60111 71000 81001 91010 A1011 B1100 C1101 D1110 E1111 F 各種進制之間的轉(zhuǎn)換(整數(shù))西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 9 頁 各種數(shù)制之間的轉(zhuǎn)換(小數(shù)) 二進制到十進制之間的轉(zhuǎn)換(整數(shù)加小數(shù))(111010.1111010.1)2 2=1=12 25 51 12 24 41 12 23 30 02 22 21 12 21 10 02 20 0+1+12 2-1-1 32+16+8+2+0.532+1
7、6+8+2+0.5 58.558.5西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 10 頁例例 : 將(將(35.6875)10轉(zhuǎn)換為二進制數(shù)。轉(zhuǎn)換為二進制數(shù)。 用除用除2取余法將整數(shù)部分取余法將整數(shù)部分(35)10轉(zhuǎn)換為二進制整數(shù):轉(zhuǎn)換為二進制整數(shù): 2 35 余數(shù)為余數(shù)為1 低位低位 2 17 余數(shù)為余數(shù)為1 2 8 余數(shù)為余數(shù)為0 2 4 余數(shù)為余數(shù)為0 2 2 余數(shù)為余數(shù)為0 2 1 余數(shù)為余數(shù)為1 高位高位 0故:故:(35)10 = (100011)2 驗證:驗證:125+0 24+0 23+0 22+1 21+1 20=32+2+1=35十進
8、制轉(zhuǎn)換成二進制西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 11 頁 用乘用乘2取整法將小數(shù)部分取整法將小數(shù)部分(0.6875)10轉(zhuǎn)換為二進制形式:轉(zhuǎn)換為二進制形式: 0. 6875 2 1.3750 整數(shù)部分為整數(shù)部分為1 高位高位 0. 3750 2 0. 7500 整數(shù)部分為整數(shù)部分為0 0. 7500 2 1. 5000 整數(shù)部分為整數(shù)部分為1 0. 5000 2 1. 0000 整數(shù)部分為整數(shù)部分為1 低位低位即:即:(0.6875)10 = (0.1011)2 西北大學信息科學與技術(shù)學院. All rights reserved 2011 第
9、 12 頁 整數(shù)部分與小數(shù)部分合并,可得:整數(shù)部分與小數(shù)部分合并,可得:(35.6875)10 = (100011.1011)2注意:注意:在上例中,將十進制小數(shù)轉(zhuǎn)換成為二進制小數(shù)在上例中,將十進制小數(shù)轉(zhuǎn)換成為二進制小數(shù)的過程中,乘積小數(shù)部分變成的過程中,乘積小數(shù)部分變成“0”,表明轉(zhuǎn)換,表明轉(zhuǎn)換結(jié)束。實際上將十進制小數(shù)轉(zhuǎn)換成二進制、八結(jié)束。實際上將十進制小數(shù)轉(zhuǎn)換成二進制、八進制、十六進制小數(shù)過程中小數(shù)部分可能始終進制、十六進制小數(shù)過程中小數(shù)部分可能始終不為零,因此只能限定取若干位為止。不為零,因此只能限定取若干位為止。將十進制數(shù)轉(zhuǎn)換為八進制、十六進制數(shù)的規(guī)則將十進制數(shù)轉(zhuǎn)換為八進制、十六進制數(shù)
10、的規(guī)則和方法與之相同,只是和方法與之相同,只是R(基數(shù))的取值不同。(基數(shù))的取值不同。 西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 13 頁二進制和八進制之間的轉(zhuǎn)換(整數(shù)加小數(shù))例: (10100.1011)2(?)8 010 100 . 101 100 2 4 . 5 4例: (326.125)8(?)2 3 2 6 . 1 2 5011 010 110 . 001 010 101西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 14 頁 二進制和十六進制之間的轉(zhuǎn)換(整數(shù)加小數(shù)) (11010111100.11011
11、)(11010111100.11011)2 2 = ( = (0 0110110 1011 1011 11001100. .11011101 1 1000000) )2 2 = (6BC.D8) = (6BC.D8)1616八進制到十六進制之間的轉(zhuǎn)換 可通過二進制來間接進行。 例(457)8=(100101111)2=(12F)16西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 15 頁2.1.3 2.1.3 數(shù)值的表示及存儲數(shù)值的表示及存儲 (1)字節(jié)和位 內(nèi)存以字節(jié)為單元組成 每個字節(jié)有一個地址 一個字節(jié)一般由8個二進制位組成 每個二進位的值是0或101
12、234567012345678910.7643251西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 16 頁(2)原碼、反碼和補碼 原碼:最高位為符號位,其余各位為數(shù)值本身的絕對值 反碼:正數(shù):反碼與原碼相同負數(shù):符號位為1,其余位對原碼取反 補碼:正數(shù):原碼、反碼、補碼相同負數(shù):最高位為1,其余位為原碼取反,再對整個數(shù)加13126912457810119-5=49+7=16=(4)12西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 17 頁原碼反碼補碼+7000001110000011100000111-71000011
13、11111100011111001+0000000000000000000000000-0100000001111111100000000數(shù)的范圍0111111111111111(-127+127)0111111110000000(-127+127)0111111110000000(-128+127)(2)原碼、反碼和補碼 負數(shù)補碼轉(zhuǎn)換成十進制數(shù):最高位不動,其余位取反加1例 補碼:11111001 取反:10000110 加1: 10000111=-7(2)原碼、反碼和補碼(2)原碼、反碼和補碼西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 18 頁(3)
14、小數(shù)的表示及存儲-數(shù)的定點表示-數(shù)的浮點表示 小數(shù)點在符號位之后 小數(shù)點在數(shù)據(jù)之后 符號位 符號位 階符階 碼數(shù)符尾 數(shù)計算機中浮點數(shù)的表示 西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 19 頁2.1.4 2.1.4 字符的表示及存儲字符的表示及存儲ASCIIASCII碼 表示文字信息和控制信息的基礎(chǔ)是各種字符,各種字符表示文字信息和控制信息的基礎(chǔ)是各種字符,各種字符必須按一定規(guī)則用二進制編碼表示,才能為計算機所識別。必須按一定規(guī)則用二進制編碼表示,才能為計算機所識別。ASCIIASCII碼碼 (American Standard Code for In
15、formation American Standard Code for Information InterchangeInterchange)ASCIIASCII碼是由美國國家標準委員會制定的一種碼是由美國國家標準委員會制定的一種包括數(shù)字、字母、通用符號、控制符號在內(nèi)的字符編碼集,包括數(shù)字、字母、通用符號、控制符號在內(nèi)的字符編碼集,全稱叫美國國家信息交換標準代碼。全稱叫美國國家信息交換標準代碼。ASCIIASCII碼是一種碼是一種7 7位二進制編碼,能表示位二進制編碼,能表示27=12827=128種國際上最通種國際上最通用的西文字符,是目前計算機中,特別是微型計算機中使用用的西文字符,是目
16、前計算機中,特別是微型計算機中使用最普遍的字符編碼集。最普遍的字符編碼集。西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 20 頁7位ASCII碼表7657654321432100000000100101001001101110010010110111011011111100000000NULNULDLEDLESPSP0 0 P Pp p00010001SOHSOHDC1DC1!1 1A AQ Qa aq q00100010STXSTXDC2DC2”2 2B BR Rb br r00110011ETXETXDC3DC3# #3 3C CS Sc cs s01
17、000100EOTEOTDC4DC4$ $4 4D DT Td dt t01010101ENQENQNAKNAK% %5 5E EU Ue eu u01100110ACKACKSYNSYN& &6 6F FV Vf fv v西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 21 頁7657654321432100000000100101001001101110010010110111011011111101110111BELBELETBETB7 7G GW Wg gw w10001000BSBSCANCAN(8 8H HX Xh hx x10011001HTH
18、TEMEM)9 9I IY Yi iy y10101010LFLFSUBSUB* *:J JZ Zj jz z10111011VTVTESCESC+ +;K K k k 11001100FFFFFSFS, N Nn n 11111111SISIVSVS/ /?O Oo oDELDEL西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 22 頁漢字編碼在ASCII碼編碼方案中,用到了一個字節(jié)的低7位,最多只能表示128個字符,但對于漢字來說,日常使用的漢字就有7000多個,只用一個字節(jié)對漢字進行編碼是不可能的,所以通常用多字節(jié)對漢字進行編碼。(1)國標碼(GB23
19、12-80編碼集)。 (2)漢字內(nèi)碼。 (3)區(qū)位碼。 (4)BIG5碼。 (5)中、日、韓統(tǒng)一大漢字編碼字符集。 西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 23 頁2.1.5 2.1.5 指令的表示及存儲指令的表示及存儲指令指令(Instruction)就是一組計算機能識別并能執(zhí)行的各種基本操作命令。指令構(gòu)成如圖示:指令系統(tǒng)指令系統(tǒng)(Instruction System)是一臺計算機的所有指令的集合。指令系統(tǒng)反映了計算機的基本功能,不同的計算機其指令系統(tǒng)不盡相同。操作碼指明該指令要完成的操作碼指明該指令要完成的操作,如加、減、乘、除。操作,如加、減、
20、乘、除。操作數(shù)是指參加運操作數(shù)是指參加運算的數(shù)據(jù)或者數(shù)據(jù)算的數(shù)據(jù)或者數(shù)據(jù)所在的地址。所在的地址。 操作碼 操作數(shù)西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 24 頁CPUCPU發(fā)出命令發(fā)出命令C CP Pu u CPU對根據(jù)該指令的內(nèi)容進行運算或者控制 內(nèi)存內(nèi)存內(nèi)存送出所需指令內(nèi)存送出所需指令計算機運行計算機運行指令的過程指令的過程CPU將要執(zhí)行的指令從內(nèi)存調(diào)入CPU判斷該指令所要完成的操作,然后向相應(yīng)部件發(fā)出完成操作的控制信號,從而完成該指令的功能。內(nèi)存代碼區(qū)函數(shù)(1)1:-2: -3:-:函數(shù)(2)1:-2:-函數(shù) main1:-2:-內(nèi)存數(shù)據(jù)區(qū)西北
21、大學信息科學與技術(shù)學院. All rights reserved 2011 第 25 頁第第2章章 C語言基本元素和語句語言基本元素和語句 2.1 數(shù)據(jù)的存儲 2.2 程序的基本元素 2.3 簡單語句 2.4 條件語句 2.5 循環(huán)語句西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 26 頁第第2章章 C語言基本元素和語句語言基本元素和語句2.2.1 C語言的發(fā)展歷史及特點2.2.3 常量、變量2.2.4 運算符和表達式2.2 程序的基本元素2.2.2 C語言的數(shù)據(jù)類型西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 27
22、頁 產(chǎn)生背景:從面向機器的語言到面向過程的語言 產(chǎn)生過程時間:19721973地點:美國貝爾實驗室目的:UNIX操作系統(tǒng)設(shè)計人: Ken.Thompson和Dennis.M.Ritchie C標準標準C: K&R合著The C Programming LanguageANSI C: 1983年87 ANSI C: 1987年1990年國際標準的ANSI C 2.2.1 C 語言發(fā)展歷史及特點西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 28 頁語言簡潔、緊湊、靈活運算符和數(shù)據(jù)類型豐富程序設(shè)計結(jié)構(gòu)化、模塊化生成目標代碼質(zhì)量高可移植性好有少量可以訪問硬件的語句
23、中級語言 2.2.1 C 語言發(fā)展歷史及特點西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 29 頁2.2.2 C語言的數(shù)據(jù)類型程序=數(shù)據(jù)描述+數(shù)據(jù)計算方法 一般的計算機語言在進行數(shù)據(jù)描述的時候必須規(guī)定數(shù)據(jù)的類型方便存儲便于運算西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 30 頁C C數(shù)數(shù)據(jù)據(jù)類類型型基本類型基本類型構(gòu)造類型構(gòu)造類型指針類型指針類型空類型空類型void定義類型定義類型typedef數(shù)值類數(shù)值類型型字符類型字符類型char枚舉類型枚舉類型enum整整 型型浮點型浮點型單精度型單精度型float雙精度型雙精
24、度型double短整型短整型short長整型長整型long整型整型int數(shù)組數(shù)組結(jié)構(gòu)體結(jié)構(gòu)體struct共用體共用體union2.2.2 C語言的數(shù)據(jù)類型西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 31 頁常量:程序中其值不發(fā)生變化的量。常量:程序中其值不發(fā)生變化的量。語言中有數(shù)值常量字符常量字符串常量符號常量整型實型十進制八進制(由數(shù)字開頭) 十六進制( 由0 x 或0X 開頭)常用形式(3.14159 , -0.555 , .666)指數(shù)形式(0.55e5 , 3.33E-3 , 4e+2(用單引號括起來的一個字符。如: a, D)(用雙引號括起來的
25、一串字符。如:abcd)(用一個標識符代表一個常量)注意: a 和a的區(qū)別2.2.3 常量和變量西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 32 頁 標識符 定義:用來標識變量、常量、函數(shù)等的字符序列 組成:只能由字母、數(shù)字、下劃線組成,且第一個字符必須是字母或下劃線大小寫敏感不能使用系統(tǒng)已用的關(guān)鍵字 長度:最長32個字符 命名原則:見名知意不易混淆 如1與I, o與0例:判斷下列標識符號合法性sum Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char ab _above $123M
26、.D.John3days#33char$123ab2.2.3 常量和變量西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 33 頁變量名,函數(shù)名等必須望文知意,不可用a,b,c, i,j,k 之類的簡單變量名,除非確實是沒有特別意義的練習題。采用匈牙利變量命名法, 變量起名規(guī)則: 以小寫字母代表變量類型 n 代表整型,f代表實型,c代表字符型,an代表整型數(shù)組,af代表實型數(shù)組,p代表指針類型,pn代表整型指針類型等等(詳見變量起名規(guī)則)變量名一般是主謂結(jié)構(gòu),單詞首字母大寫例如: nCharNum, cString, 等等函數(shù)名一般是動賓結(jié)構(gòu),單詞首字母大寫例
27、如:PrintStar( ), CalculateLine 等等2.2.3 常量和變量西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 34 頁符號常量定義方法符號常量定義方法#define PRICE 30 main() int num,total; num=10; /*Calculate total price*/ total=num*PRICE; /Output result printf(total=%d,total); 仿照練習: 寫一個程序,定義半徑R為35,求圓面積整型數(shù):125 , 0125 , 0 x125 , +35 , -235 , -0
28、35實型數(shù):3.14159 , -555.6 , 888.0 , 0.88 , 8.88e+18 注意: 用指數(shù)形式表示的浮點數(shù)必須有尾數(shù),指數(shù)部分必須是整數(shù)。如:e4 , .e3 , 0.25e4.5 , e 等是錯誤的。字符常量: b D 字符串常量: “Hello World !”常量例子西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 35 頁字符形式功能n 換行t 橫向跳格(即跳到下一個輸出區(qū)8列) v 豎向跳格 b 退格 r 回車 f 走紙換頁 反斜杠字符“” 和 ” 單引號字符();雙引號字符(”) ddd 1到3位8進制數(shù)所代表的字符 xhh
29、1到2位16進制數(shù)所代表的字符轉(zhuǎn)義字符常量:用轉(zhuǎn)義字符常量:用“”開頭后跟一個字符,但含義非常特殊。開頭后跟一個字符,但含義非常特殊。西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 36 頁轉(zhuǎn)義字符例子轉(zhuǎn)義字符例子鞏固練習:-請上機自己練習 printf( ab ct derftgn); printf(“htibbj k”); 程序?qū)嵺`練習:例 /*練習 n t b r*/main() printf(“This is a c program.n”); printf(“Hello world!n); 西北大學信息科學與技術(shù)學院. All rights rese
30、rved 2011 第 37 頁變量:程序中其值可發(fā)生變化的量。變量:程序中其值可發(fā)生變化的量。每一個變量都應(yīng)有一個名字,稱為變量名。而且在內(nèi)存中占據(jù)一定的存儲空間,用來存放變量的值。 *變量起名除符合標識符起名原則之外, 還要注意“望文知意”的原則語言規(guī)定對使用的變量必須語言規(guī)定對使用的變量必須先定義先定義,后使用后使用。目的:保證程序中變量名的正確使用。可分配相應(yīng)的存儲空間。便于檢查變量所進行的運算是否合法。2.2.3 2.2.3 常量和變量常量和變量西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 38 頁整型變量:(四種類型) 類型 所占位數(shù) 數(shù)的范圍
31、 基本型(int) 16 -3276832767 短整型(short int) 16 -3276832767 長整型(long int) 32 -21474836482147483647 無符號整型(unsigned int) 16 065535 無符號短整型(unsigned short) 16 065535 無符號長整型(unsigned long) 32 04294967295 無符號型整型變量整型變量西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 39 頁變量的定義格式變量的定義格式: 類型類型 變量名表列;變量名表列; 程序練習: main() i
32、nt a,b,c,d; unsigned u; a=12;b=-24;u=10; c=a+u;d=b+u; printf(a+u=%d,b+u=%dn,c,d); 整型變量定義的例子整型變量定義的例子西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 40 頁實型變量:(兩類) 類型 所占位數(shù) 數(shù)的范圍 單精度實型(float) 32 10 10 雙精度實型(double) 64 10 10 單精度實型提供7位有效數(shù)字,雙精度實型提供1516位有效數(shù)字。 如:float a; a=111111.111 (最后兩位小數(shù)不起作用) 而:double a; a=111
33、111.111 (全部接收)-3838 -308308實型變量實型變量西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 41 頁字符變量:char 用來存放一個字符常量。占一個字節(jié)(8位),存放該字符的ASCII碼值。 如:char c1,c2; c1=a;c2=b;字符型變量字符型變量例 main() char c1,c2; c1=97;c2=98; printf(%c %c,c1,c2); 97980110000101100010c1c1c2c2西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 42 頁例 main() c
34、har c1,c2; c1=a;c2=b; c1=c1-32;c2=c2-32; printf(%c %c,c1,c2); c1=a;c2=b;a=A+32ASCII碼表中大小寫字母之間具有:C語言中允許字符型數(shù)據(jù)與整型數(shù)據(jù)互相賦值。如: int i; i=a; char c; c=97;例 main() int i; char c; i=a; c=97; printf(%c,%dn,c,c); printf(%c,%dn,i,i); 輸出結(jié)果:a,97 a,97字符型數(shù)據(jù)的計算和賦值字符型數(shù)據(jù)的計算和賦值西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 43
35、 頁變量賦初值:在定義變量的同時給變量初始化。如:int a=10; float f=5.55; char c=a; int a=15,b=15,d=15;不能寫成:int a=b=d=15;格式為:類型變量名常量值 請分析下面程序:相當于:int a; a=10;變量賦初值變量賦初值main() int a; printf(n%d,a); 輸出結(jié)果是什么?沒有賦初值的變量,其值為一個不定的值。引用該變量,就回出現(xiàn)上面程序中的問題,產(chǎn)生莫名奇妙的結(jié)果。西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 44 頁2.2.4 2.2.4 運算符和表達式運算符和表達式
36、 運算符: 提供不同計算和處理方式的符號 (目, 優(yōu)先級, 結(jié)合性) 表達式:由運算符和運算對象(常量和變量)組成的式子,結(jié)果是一個確定的值和一個確定的類型西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 45 頁34種運算符:算術(shù)運算符:+ - * / % + -關(guān)系運算符: = !=邏輯運算符:! & |位運算符 : | &賦值運算符:= 及其擴展條件運算符:?:逗號運算符:,指針運算符:* &求字節(jié)數(shù) :sizeof強制類型轉(zhuǎn)換:(類型)分量運算符:. -下標運算符:其它 :( ) -C程序的運算符注意運算符的運算對象目數(shù)優(yōu)先級結(jié)合性西北大學信息科學與技
37、術(shù)學院. All rights reserved 2011 第 46 頁(1 1)算術(shù)運算符和算術(shù)表達式)算術(shù)運算符和算術(shù)表達式基本算術(shù)運算符:+ 、 - 、 * 、 / 、 %(注:兩個整數(shù)相除,結(jié)果為整數(shù)。)算術(shù)表達式和運算符的優(yōu)先級與結(jié)合性:用算術(shù)運算符和括號“( )”將運算對象連接起來,符合語法規(guī)則的式子稱為算術(shù)表達式。 目: 雙目運算對象:常量、變量、函數(shù)等。優(yōu)先級:先乘除后加減。結(jié)合性:自左至右。例如:a*b/c-1.5+a ; a-(b*c)西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 47 頁 C語言允許不同類型的數(shù)值型數(shù)據(jù)可以混合運算,運
38、算時系統(tǒng)自動將數(shù)據(jù)轉(zhuǎn)換成同一類型數(shù)據(jù)。doublelongunsignedintfloatchar,short低級高級必定的轉(zhuǎn)換必定的轉(zhuǎn)換數(shù)據(jù)類型轉(zhuǎn)換數(shù)據(jù)類型轉(zhuǎn)換西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 48 頁例如: 若有 int i, float f, double d, long e 則 10+a+i*f-d/e 表達式運算次序為: 將a轉(zhuǎn)換成97,然后10+a運算。 將i和f都轉(zhuǎn)換成double型,然后i*f運算。 將的結(jié)果轉(zhuǎn)換為double型,然后與的結(jié)果相加。 將e轉(zhuǎn)換成double型,然后d/e運算。 用的結(jié)果減的結(jié)果。強制類型轉(zhuǎn)換:格式
39、如下例如:(double) a、(int)(x+y)、(float)(5%3)、(int)x+y(類型名)(表達式)強制類型轉(zhuǎn)換西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 49 頁賦值符號:(將賦值符右邊表達式的值賦給賦值符左邊的一個變量。) 賦值運算符的數(shù)據(jù)類型若不一致,則要進行類型轉(zhuǎn)換。轉(zhuǎn)換方式為: 將實型數(shù)據(jù)賦給整型變量時,舍棄實數(shù)的小數(shù)部分。如:i=5.65 , i 的值為 5。 將整型數(shù)據(jù)賦給實型變量時,數(shù)值不變。 將字符數(shù)據(jù)賦給整型變量時,將字符數(shù)據(jù)放到整型變量低8位中。 兩種情況: 若字符最高位為1,整型變量的高8位置1,否則高8位置0。若
40、把字符處理為無符號的量,整型變量的高8位置0。1 1 11 11 1011 11 11 101 1 11 11 11C=37611 11 11 10 11 11 11 100 0 00 00 00C=376i的值為254i的值為-2(2 2)賦值運算符和賦值表達式)賦值運算符和賦值表達式西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 50 頁 將整型數(shù)據(jù)賦給長整型變量時,將整型數(shù)據(jù)放入長整型變量的低16位,若整型數(shù)為負數(shù),長整型變量的高16位置1,否則長整型變量的高16位置0。 將長整型數(shù)據(jù)賦給整型變量時,取長整型數(shù)據(jù)低16位。 將unsigned int
41、賦給 long int 時,將unsigned int 放入long int的低16位,高16位置0。 unsigned int 賦給 int 將unsigned long 賦給 long 時,原樣賦值。 unsigned short 賦給 short 例如:若unsigned int a=65535; int b; b=a; 則:b的值為-1。 int 賦給 unsigned int 將 long 賦給 unsigned long 時,原樣賦值。 short 賦給 unsigned short 例如:main() unsigned a; int b=-1; a=b; printf(“%u”,
42、a); 應(yīng)注意數(shù)值的范圍,超出則數(shù)據(jù)出錯在負數(shù)時,數(shù)值發(fā)生變化。11 11 11 11 11 11 11 111 1 11 11 11 11 11 11 11ba11 11 11 11 11 11 11 111 1 11 11 11 11 11 11 11ba西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 51 頁自增、自減運算符:+ , - (使變量的值增或減)結(jié)合性:自右至左。 例如: +i , -i (先自增或自減,后引用) i+ , i- (先引用,后自增或自減) i=3; printf(“%d”,+i); i=3; printf(“%d”,i+);
43、自增自減運算符自增自減運算符注意:自增自減只能用于變量西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 52 頁+= , = , *= , /= , %= , = , &= , = , |=(算術(shù)自反賦值運算符)例如:a+=3 等價于 a=a+3 x*=y+8 等價于 x=x*(y+8) x%=3 等價于 x=x%3賦值表達式:由賦值運算符將一個變量和一個表達式連接起來的式子。格式為: 位運算注:若右邊為表達式應(yīng)加圓括號“( )”!復合的賦值運算符復合的賦值運算符西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 53 頁 賦值
44、運算符結(jié)合性為:“自右而左”。 例如: a=b=c=5 a=5+(c=6) a=(b=4)+(c=6) a=(b=10)/(c=2) a+=a =a*a 若 a=5, 則賦值表達式的值為40。 若x的值是8, 則表達式x*=x-=x+=x的值?西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 54 頁逗號運算符: , 自左向右格式:表達式1,表達式2,表達式3,表達式n優(yōu)先級:最低。逗號表達式的值為表達式n的值。例如: a=3*5,a*4 (a=3*5,a*4),a+5 x=(a=3,6*3) x=a=3,6*a(3)逗號運算符和逗號表達式西北大學信息科學與技
45、術(shù)學院. All rights reserved 2011 第 55 頁關(guān)系運算符用于兩個數(shù)值之間的比較運算。語言提供6種關(guān)系運算符,它們是:、=、=、!=優(yōu)先級相同優(yōu)先級相同高到低關(guān)系運算符、算術(shù)運算符和賦值運算符的優(yōu)先級為:算術(shù)運算符關(guān)系運算符賦值運算符低高(4 )關(guān)系運算符和關(guān)系表達式西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 56 頁 例如: ca+b 等效于 c(a+b) ab!=c 等效于 (ab)!=c a=bc 等效于 a=(bc 等效于 a=(bc)關(guān)系表達式:用關(guān)系運算符將兩個表達式連接起來的式子。關(guān)系表達式運算結(jié)果為:“真”或“假”
46、值。語言用1代表“真”值,用0代表“假”值。同時系統(tǒng)在運算時以非0為“真”值,以0為“假”值。例如:若 a=3,b=2,c=1 f=abc 則f的值為0。西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 57 頁語言提供3種邏輯運算符:邏輯運算符邏輯運算符 結(jié)合性結(jié)合性 優(yōu)先級優(yōu)先級& 與 自左至右 中 | 或 自左至右 低 ! 非 自右至左 高(5)邏輯運算符和邏輯表達式西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 58 頁邏輯表達式:用邏輯運算符將關(guān)系表達式或邏輯量連接起來的式子。運算結(jié)果為:“真”或“假”值。系統(tǒng)在運
47、算時以非0為“真”值,以0為“假”值。邏輯運算:ab&00010011ab|0111001101a!a例如: 4&0|2 的值為1 5&!0 的值為1與運算或運算非運算西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 59 頁 運算符 優(yōu)先級 邏輯非! 高算術(shù)運算符 關(guān)系運算符 &和| 賦值運算符 低邏輯、關(guān)系、算術(shù)和賦值運算符的優(yōu)先級為:例如:(ab)&(xy) 可以寫成ab&xy (a=b)|(x=y) 可以寫成 a=b|x=y (!a)|(ab) 可以寫成 !a|ab 53&2|8b)&n=c4) 設(shè) a=1,b=2,c=3,m=1,n=1。 則 m為0
48、 , n 為 1。請問表達式 x0&xb?a:b 條件運算符的優(yōu)先級低于邏輯、關(guān)系、算術(shù)運算符高于賦值運算符。如: ab?a:b+1 相當于 (ab)?a:(b+1) (6)條件運算符和表達式西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 62 頁條件運算符的結(jié)合性為:“自右至左”。如: ab?a:cd?c:d 相當于 ab?a:(cd?c:d)注意:條件表達式中的表達式1、表達式2、表達式3可以是不同的類型。 main() float p; char x,y;scanf(%c%c,&x,&y); /*Input x and y*/ p=xy?1:1.5;
49、printf(n%f,p); /* Output the result*/ 西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 63 頁第第2章章 C語言基本元素和語句語言基本元素和語句 2.1 數(shù)據(jù)的存儲 2.2 程序的基本元素 2.3 簡單語句 2.4 條件語句 2.5 循環(huán)語句西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 64 頁第第2章章 C語言基本元素和語句語言基本元素和語句2.3.1 C語句概述2.3.3 輸出語句2.3.4 輸入語句2.3 簡單語句2.3.2 賦值語句西北大學信息科學與技術(shù)學院. All rig
50、hts reserved 2011 第 65 頁2.3 簡單語句2.3.1 2.3.1 語句概述語句概述語言的語句是用來向計算機系統(tǒng)發(fā)出操作指令。每語言的語句是用來向計算機系統(tǒng)發(fā)出操作指令。每一個為實現(xiàn)特定目的的程序都包含若干個語句。一個為實現(xiàn)特定目的的程序都包含若干個語句。 五種五種分類:分類: 控制語句:完成一定的控制功能??刂普Z句:完成一定的控制功能。 函數(shù)調(diào)用語句:由一次函數(shù)調(diào)用加一個分號構(gòu)成。函數(shù)調(diào)用語句:由一次函數(shù)調(diào)用加一個分號構(gòu)成。 如:如:scanf(%dn,&a); 表達式語句:由表達式加一個分號構(gòu)成。表達式語句:由表達式加一個分號構(gòu)成。如:如:i=i+1; 空語句:由一個分
51、號構(gòu)成??照Z句:由一個分號構(gòu)成。 復合語句;由一對大括號復合語句;由一對大括號“”組成。組成。 如:如:z=x+y; b=15; printf(%d,b); 西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 66 頁程序的三種基本控制結(jié)構(gòu)程序的三種基本控制結(jié)構(gòu)順序結(jié)構(gòu):從前向后順序執(zhí)行程序。順序結(jié)構(gòu):從前向后順序執(zhí)行程序。選擇結(jié)構(gòu):根據(jù)判斷條件的結(jié)果選擇執(zhí)行程序。選擇結(jié)構(gòu):根據(jù)判斷條件的結(jié)果選擇執(zhí)行程序。 其中包括:單條件選擇語句其中包括:單條件選擇語句 多條件選擇語句多條件選擇語句 循環(huán)結(jié)構(gòu):根據(jù)條件反復的執(zhí)行某一段程序若干次循環(huán)結(jié)構(gòu):根據(jù)條件反復的執(zhí)行某一
52、段程序若干次。西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 67 頁2.3.2 賦值語句由賦值表達式加一個分號構(gòu)成。由賦值表達式加一個分號構(gòu)成。 如:如:h=49; 注意:賦值語句與賦值表達式的區(qū)別。注意:賦值語句與賦值表達式的區(qū)別。 如:如:if (a=b)0) t=a;賦值表達式賦值語句西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 68 頁2.3.3 2.3.3 輸出語句輸出語句語言數(shù)據(jù)輸出,是由調(diào)用輸出函數(shù)來完成。語言數(shù)據(jù)輸出,是由調(diào)用輸出函數(shù)來完成。putchar函數(shù)函數(shù)功能:向終端輸出一個字符。功能:向終端輸
53、出一個字符。 格式:格式: putchar (ch) 函數(shù)名參數(shù)西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 69 頁 例例2.3.1 #include stdio.h main() char a,b,c; a=B;b=O;c=Y; putchar(a);putchar(b);putchar(c);putchar(n); 結(jié)果結(jié)果: BOY 格式輸出函數(shù)格式輸出函數(shù)printf() 功能:輸出若干個任意類型的數(shù)據(jù)。功能:輸出若干個任意類型的數(shù)據(jù)。格式:格式:printf(格式控制格式控制,參數(shù)參數(shù)1,參數(shù)參數(shù)2,參數(shù)參數(shù)3, )由格式說明和普通字符構(gòu)成輸出
54、數(shù)據(jù)。由表達式構(gòu)成。西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 70 頁 格式字符:格式字符:格式字符格式字符 作用作用 d 用來輸出十進制整數(shù)。用來輸出十進制整數(shù)。 o 用來輸出用來輸出8進制整數(shù)。進制整數(shù)。 x 用來輸出用來輸出16進制整數(shù)。進制整數(shù)。 c 用來輸出單個字符。用來輸出單個字符。 用來輸出字符串,在輸出時以非空白字符開始,以第一個空白字符用來輸出字符串,在輸出時以非空白字符開始,以第一個空白字符 s 結(jié)束。字符串以串結(jié)束標志結(jié)束。字符串以串結(jié)束標志0作為其最后一個字符。作為其最后一個字符。 f用來輸出實數(shù),可以用小數(shù)形式或指數(shù)形式輸出。
55、用來輸出實數(shù),可以用小數(shù)形式或指數(shù)形式輸出。 e (g) 與與f作用相同,作用相同,e與與f可以互相替代。可以互相替代。格式說明:由格式說明:由%后跟一個格式字符組成。中間可插入后跟一個格式字符組成。中間可插入l、m、n、和幾個附加符號。、和幾個附加符號。 普通字符:照原樣輸出。普通字符:照原樣輸出。西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 71 頁例:long a=135790; printf(%ld,a );例:a=-1; printf(%d,%o,%x,a,a,a);例:main() unsigned int a=65535; int b= -2
56、; printf(a=%d,%o,%x,%un,a,a,a,a); printf(b=%d,%o,%x,%un,b,b,b,b); 例:main() int i=234; char c=a; printf(%d,%5d,%c,%3c,i,i,c,c); 1 1 11 11 11 11 11 11 11a=135790輸出為:-1,177777,ffffa=-1,177777,ffff,65535b=-2,177776,fffe,65534結(jié)果為234, 234,a, a結(jié)果為指定輸出寬度。數(shù)據(jù)寬度不夠,前面補空格,超過則原樣輸出。西北大學信息科學與技術(shù)學院. All rights reserv
57、ed 2011 第 72 頁 附加格式說明字符: 字 符 作用 字母 l 用于長整型整型,可加在格式符d、o、x、u前面。 m(代表一個正整數(shù)) 數(shù)據(jù)最小寬度。 .n(代表一個正整數(shù)) 對實數(shù),表示輸出n位小數(shù);對字符串,表示截取的字符個數(shù)。 - 輸出的數(shù)字或字符在域內(nèi)向左靠。例:main() printf(%3s,%7.2s,%.4s,%-5.3sn, CHINA, CHINA, CHINA, CHINA); 例:main() float f=123.456; printf(%f %10f %10.2f %.2f %-10.2fn,f,f,f,f,f); 輸出為: CHINA, CH,CHI
58、N,CHI 輸出為: 123.455994 123.455994 123.46 123.46 123.46西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 73 頁例:main() float f=123.456; printf(%e %10e %10.2e %.2e %-10.2en,f,f,f,f,f); 輸出結(jié)果為: 1.234560e+002 1.234560e+002 1.23e+002 1.23e+002 1.23e+002 13列13列10列9列10列例: main() float f=123.456; printf(%f %10e %gn,f,
59、f,f); 輸出為:123.456000 1.234560e+002 123.45613列10列10列格式控制字符串中用連續(xù)兩個%,表示輸出一個%。 如:printf(“%f%”,1.0/3); 輸出為:0.333333%西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 74 頁2.3.4 2.3.4 輸入語句輸入語句語言數(shù)據(jù)輸入,是由調(diào)用輸入函數(shù)來完成。語言數(shù)據(jù)輸入,是由調(diào)用輸入函數(shù)來完成。getchar函數(shù)函數(shù)功能:功能: 從輸入設(shè)備輸入一個字符。從輸入設(shè)備輸入一個字符。 格式:格式: getchar () 例例2.3.2 : #include stdio
60、.h main() char c; c=getchar(); putchar(c); 格式輸入函數(shù)格式輸入函數(shù)scanf() 功能:輸入若干個任意類型的數(shù)據(jù)。功能:輸入若干個任意類型的數(shù)據(jù)。 格式:格式:scanf(“格式控制格式控制”,輸入變量地址表輸入變量地址表 ) 只能接收一個字符!由格式說明和普通字符構(gòu)成變量的地址或字符串的首地址。西北大學信息科學與技術(shù)學院. All rights reserved 2011 第 75 頁格式說明:由格式說明:由%后跟一個格式字符組成。后跟一個格式字符組成。中間可插入中間可插入l、h、m、幾個附加字符。、幾個附加字符。 普通字符:照原樣輸入。普通字符:
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 陜西省榆林市第十中學2024-2025學年高二下學期5月期中地理試題
- 地面單位供電管理制度
- 20以內(nèi)三個數(shù)加減混合運算競賽作業(yè)例題帶答案
- 五千以內(nèi)加減混合兩步運算水平測驗習題
- 云南元旦活動方案
- 云南活動策劃方案
- 互動居家活動方案
- 互助看書活動方案
- 互贈好書活動方案
- 2025內(nèi)蒙古森工集團第二批工作人員招聘高頻重點模擬試卷提升(共500題附帶答案詳解)
- 《文化遺產(chǎn)的數(shù)字化傳承》課件
- 【課件】女裝結(jié)構(gòu)設(shè)計 女裝原型
- 2025年上半年支部工作總結(jié)范文
- 食堂廚房安全事故案例
- 擬采用新技術(shù)、新工藝、新材料情況
- 國開(四川)2024年秋《演講與口才》形考任務(wù)1-2答案終結(jié)性考核答案
- 高空作業(yè)腳手架搭建方案
- 江蘇2022-2024年三年中考語文真題教師版-專題10 文學類文本閱讀
- 2024年湖南省高考生物試卷真題(含答案解析)
- 廣東省肇慶市2023-2024學年高二上學期期末教學質(zhì)量檢測試題 化學 含解析
評論
0/150
提交評論