C語言教案第三講_第1頁
C語言教案第三講_第2頁
C語言教案第三講_第3頁
C語言教案第三講_第4頁
C語言教案第三講_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、位運算符〔~、<<、>>、&、^、|〕2、位運算本卷須知〔1〕對象只能是整數(shù)或字符型數(shù)據(jù)?!?〕進展位運算前,一定要先將數(shù)據(jù)轉(zhuǎn)換成二進制數(shù)?!?〕各個位運算符的優(yōu)先級注:字符型數(shù)據(jù)參與位運算時,采用其ASCII碼進展運算。第九節(jié)位運算23、位運算的規(guī)那么〔1〕~:0變1,1變0?!?〕<<:a<<i表示a向左移動i位,右補0?!?〕>>:a>>i表示a向右移動i位,左補符號位?!?〕&:a&b a、b對應(yīng)的二進制位,同時為1,那么結(jié)果即為1,否那么為0?!?〕|:a|b a、b對應(yīng)的二進制位,只要有一個為1,那么結(jié)果即為1,否那么為0?!?〕^:a^b a、b對應(yīng)的二進制位,一樣為0,不同為1。注意:<<左移一位表示乘以2;>>右移一位表示除以23〔7〕位數(shù)不同的運算數(shù)之間的運算規(guī)那么a將兩個運算數(shù)右端對齊b再將位數(shù)短的一個運算數(shù)往高位擴大,即:無符號數(shù)和正整數(shù)左側(cè)用0補全,負數(shù)左側(cè)用1補全,然后對補齊后位數(shù)相等的兩個數(shù)按位進展位運算4本章考點:考點考核幾率分值printf函數(shù)〔難點〕100%3~4putchar函數(shù)60%1~2scanf函數(shù)〔難點〕100%3~4getchar函數(shù)60%1~2第二章數(shù)據(jù)輸出與輸入

5第一節(jié)數(shù)據(jù)輸出1、printf函數(shù)的一般格式:printf(格式輸出控制,輸出列表)〔1〕格式輸出控制:需用一對雙引號括起來,雙引號內(nèi)包含“格式說明〞和“普通字符〞兩局部?!?〕輸出列表:需要輸出的數(shù)據(jù),多個數(shù)據(jù)之間用逗號隔開。printf(“%d,%o\n〞,m,n);printf(“m=%d,n=%o\n〞,m,n);62、格式說明“格式說明〞由“%〞和格式字符組成,如%d,%c,更多格式說明請參考P34,表2-1。它的作用是把輸出數(shù)據(jù)轉(zhuǎn)換為指定格式輸出。注:在printf函數(shù)中,假設(shè)格式說明的個數(shù)少于輸出項的個數(shù),多余的輸出項那么忽略不輸出,這是二級C考試中經(jīng)常出現(xiàn)的題目,〔參考P34,例2〕73、普通字符普通字符會原樣輸出,轉(zhuǎn)義字符需要輸出對應(yīng)的字符。注:printf函數(shù)輸出數(shù)據(jù)時,學(xué)生做題很容易忽略普通字符的輸出。在二級C考試中,這類題目常出現(xiàn)。例:main(){inta,b;a=10;b=15;printf("a+b=%d",a+b);}8說明:〔1〕可以在%和格式字符之間參加一個整數(shù)來控制輸出數(shù)據(jù)所占的寬度,如果整數(shù)指定的寬度大于實際輸出數(shù)據(jù)的寬度,數(shù)據(jù)的輸出采用右對齊的方式,左邊自動補空格;反之,那么以輸出數(shù)據(jù)的實際寬度輸出。輸出語句輸出結(jié)果printf(“%d〞,258);258printf(“%2d〞,258);258printf(“%4d〞,258);□258printf(“%f〞,1.25);1.250000printf(“%10f〞,1.25);□□1.2500009〔2〕當(dāng)在%和格式字符f之間參加“整數(shù)1.整數(shù)2〞來控制輸出數(shù)據(jù)的格式時,“整數(shù)1〞用于指定輸出數(shù)據(jù)占的總寬度,“整數(shù)2〞用于指定輸出實數(shù)的小數(shù)局部的個數(shù),當(dāng)輸出數(shù)據(jù)的小數(shù)個數(shù)多余“整數(shù)2〞指定的個數(shù)時,截去多余的數(shù)據(jù),并對截去的第一位小數(shù)做四舍五入處理,當(dāng)輸出數(shù)據(jù)的小數(shù)個數(shù)少于“整數(shù)2〞指定的個數(shù)時,在小數(shù)的右邊添0補足。輸出語句輸出結(jié)果printf(“%4.4f〞,3.15);3.1500printf(“%7.4f〞,3.15);□3.1500printf(“%2.0f〞,3.15);□310〔3〕如果在輸出的八進制前添加0,或在輸出的十六進制前添加0x,可在%號和格式字符0和x之間插入#號〔注意:#號對其他格式字符通常不起作用〕。輸出語句輸出結(jié)果printf(“%o〞,207);317printf(“%#o〞,207);0317printf(“%#x〞,207);0xce11特別說明:如果要輸出“%〞時,那么應(yīng)該在格式控制中用兩個連續(xù)的“%〞,即“%〞來表示,也就是在格式控制中出現(xiàn)兩個連續(xù)的“%〞,那么此時“%〞不再用來代表格式說明。例如:

printf(“%%d〞,258);不會輸出整數(shù)258,在屏幕上看到的結(jié)果為“%d〞。因為“%%〞會輸出一個“%〞,“d〞會按原樣輸出,這時因為沒有格式說明,整數(shù)258無法輸出到屏幕上124、數(shù)據(jù)輸出實例〔inta=66;floatb=123.56;〕通過以下各輸出語句,講解輸出函數(shù)的各種格式。〔1〕printf("%d",a); 66〔2〕printf("%3d",a); □66〔3〕printf("%-3d",a); 66□〔6〕printf("%-7.2f",b); 123.56□〔6〕printf("%c",a); B〔7〕printf("%x",a); 42135、putchar函數(shù)格式為:putchar(c)這里的c只能是字符型變量或字符型常量,即putchar函數(shù)只能輸出字符型數(shù)據(jù)。例如putchar〔‘C’〕知指輸出一個大寫字母C到大屏幕上141、scanf函數(shù)的一般格式:scanf(格式輸入控制,輸入數(shù)據(jù)列表)格式輸入控制與printf函數(shù)的格式輸出控制一樣。輸入數(shù)據(jù)列表必須是一個或者是多個合法的地址表達式。scanf〔“%d〞,&a〕;scanf〔“%f〞,&a〕;scanf〔“%c〞,&a〕;參考書39頁表2-5第二節(jié)數(shù)據(jù)輸入函數(shù)152.說明:〔1〕當(dāng)從鍵盤中輸入多個數(shù)值數(shù)據(jù)時,輸入數(shù)值數(shù)據(jù)之間用分隔符〔包括空格符、制表符和回車符,但是不包括逗號〕隔開。例如:intx,y,z;scanf(“%d%d%d〞,&x,&y,&z);如對x、y、z三個整型變量分別輸入10、20、30,那么數(shù)據(jù)的輸入格式如下:10<間隔符>20<間隔符>30<回車>16〔2〕在輸入控制中,格式說明的類型與輸入項的類型應(yīng)該一一對應(yīng)匹配。如果類型不匹配,系統(tǒng)并不給出出錯信息,但不能得到正確的輸入數(shù)據(jù)。當(dāng)輸入長整型數(shù)據(jù)〔long〕時,必須使用%ld格式;輸入double數(shù)據(jù)時,必須使用%lf或%le,否那么不能得到正確數(shù)據(jù)?!?〕與printf相似,在scanf函數(shù)中的格式字符前可以用一個整數(shù)指定輸入數(shù)據(jù)所占的寬度,但對實數(shù)不能指定小數(shù)的位數(shù)。17〔4〕在輸入控制中,格式說明的個數(shù)與輸入項的個數(shù)應(yīng)該一樣。如果格式說明的個數(shù)少于輸入項的個數(shù),系統(tǒng)自動完畢輸入,多余的數(shù)據(jù)沒有被讀入,但可以作為下一個輸入操作的輸入數(shù)據(jù);如果格式說明的個數(shù)多余輸入項的個數(shù),系統(tǒng)同樣自動完畢輸入。例如:對于如下輸入語句:intx,y,z;scanf(“%d%d〞,&x,&y,&z);如采用如下的輸入形式:10<間隔符>20<間隔符>30<回車>,由于在輸入控制中只有兩個格式說明%d,那么只能對x和y變量分別輸入10和20,而30不能被讀入,只能作為以后其他輸入的輸入數(shù)據(jù)。18〔5〕跳過輸入數(shù)據(jù)的方法??梢栽诟袷阶址c%之間參加一個“*〞使輸入過程跳過輸入的數(shù)據(jù)。例如如下程序:intx,y,z;scanf(“%d%*d%d%d〞,&x,&y,&z);如采用如下的輸入形式:10<間隔符>20<間隔符>30<間隔符>40<回車>,那么系統(tǒng)會把10賦給變量x,跳過數(shù)據(jù)20,把30賦給變量y,把40賦給變量z。19〔6〕假設(shè)在scanf函數(shù)的輸入控制中含有其他的字符,那么在輸入時要求按一一對應(yīng)的位置原樣輸入這些字符。例如:intx,y,z;scanf(“x=%dy=%dz=%d〞,&x,&y,&z);要求按如下的形式輸入:X=10<間隔符>y=20<間隔符>z=30<回車>203注意:〔1〕scanf的輸入分隔符不包含逗號,因此在使用鍵盤輸入數(shù)據(jù)時,不能以逗號作為分隔符。如果需要以逗號作為分隔符,那么應(yīng)該在格式控制字符串中使用逗號,例如:scanf(“%d,%d,%d〞&x,&y,&z);注意:在以上三個%d之間有逗號隔開。按要求輸入格式如下:10,20,30<回車>21〔2〕一般情況下,scanf的格式控制字符串中不要包含其它非格式控制符,否那么往往容易讓人混淆。也就是說,在scanf中只使用格式控制符,可以簡化操作。列如:scanf(“%d%d%d〞&x,&y,&z);注意:在scanf的雙引號中除了有3個%d外,沒有其他任何字符。按要求如數(shù)格式如下:102030<回車>也可以輸入一個數(shù)據(jù)就使用一個回車符號:10<回車>20<回車>30<回車>223〕使用scanf時,如果數(shù)據(jù)輸入未能完成,那么程序一直等待鍵盤輸入,此時用戶應(yīng)該完成數(shù)據(jù)輸入。許多初學(xué)者在未輸入數(shù)據(jù)的情況下回車,程序沒有任何反映,好象死機了一樣。這樣是沒有輸入數(shù)據(jù)的緣故,只要用戶輸入數(shù)據(jù)即可。23〔4〕使用scanf給變量賦值和直接使用賦值語句給變量賦值,都能使變量的值發(fā)生改變,但二者具有本質(zhì)的區(qū)別。使用賦值語句給變量賦值,是將某一個固定的值在程序源代碼中寫死,當(dāng)源代碼編譯成可執(zhí)行程序〔即用戶軟件〕后,用戶無法改變變量的值,每次執(zhí)行的結(jié)果均一樣。而使用scanf給變量賦值,是在程序運行過程中,使用鍵盤動態(tài)的給變量賦值,這樣當(dāng)生成可執(zhí)行程序后,用戶可以根據(jù)自身的需求,給變量賦不同的值,得到不同的運行結(jié)果。24總結(jié)scanf函數(shù)的本卷須知〔1〕輸入數(shù)值型數(shù)據(jù)時,各數(shù)值間的分隔符可以是:空格、Tab、回車?!?〕輸入字符型數(shù)據(jù)時,空格、Tab、回車都會被認為是字符,而不是分隔符。〔3〕“格式輸入控制〞中的普通字符,在輸入數(shù)據(jù)時一定要原樣輸入?!?〕跳過輸入數(shù)據(jù),在%和格式字符之間加一個“*〞。254、數(shù)據(jù)輸入實例〔charc1,c2; intc,d,e;〕〔1〕scanf("%d%d%d",&c,&d,&e);輸入:5<空格>6<空格>7<回車>輸入:5<Tab>6<Tab>7<回車>輸入:5<回車>6<回車>7<回車> //以上三種輸入方式,c、d、e的值分別都為5、6、7?!?〕scanf(“%d,%d,%d〞,&c,&d,&e);輸入:5,6,7<回車>假設(shè)輸入第一個數(shù)據(jù)后,使用了任意一種分隔符,那么只確定輸入了c的值為5,d和e為本身的初始值,假設(shè)沒有初始值,那么為不定值。注:在C語言中,沒有指定值的任何類型的變量,在輸出時為不定值。26〔3〕scanf(“%d%*d%d%d〞,&c,&d,&e);輸入:2<空格>3<空格>4<空格>5<回車> //c、d、e的值分別為2、4、5〔4〕scanf("%c%*c%*c%c",&c1,&c2);輸入:a<空格>b4<回車> //c1、c2的值分別為a、4〔5〕scanf("%2d%d%d",&c,&d,&e);輸入:123<空格>456<回車>

溫馨提示

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

評論

0/150

提交評論