第6章 字符型數(shù)據(jù)_第1頁(yè)
第6章 字符型數(shù)據(jù)_第2頁(yè)
第6章 字符型數(shù)據(jù)_第3頁(yè)
第6章 字符型數(shù)據(jù)_第4頁(yè)
第6章 字符型數(shù)據(jù)_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 6.1 字符型常量 6.2 字符變量 6.3 字符的輸入和輸出 6.4 程序舉例6.1.1 字符常量字符常量字符常量:是用單引號(hào)括起來(lái)的一個(gè)字符。:是用單引號(hào)括起來(lái)的一個(gè)字符。例如A C t ! ?說(shuō)明B b是不同的字符常量 單引號(hào)內(nèi)是空格,也是合法的字符常量 不合法abc不合法“a”不是字符常量,是字符串 字符數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式:1.字符常量在內(nèi)存中占一個(gè)字節(jié)。2.將一個(gè)字符常量放到一個(gè)字符變量中,實(shí)際上是將該字符的ASCII代碼放到存儲(chǔ)單元中。每一個(gè)字符都對(duì)應(yīng)一個(gè)ASCII。ASCII規(guī)定了128個(gè)字符。例如: 字符 09 - 48, . , 57 字符 a z - 97, . ,

2、122 字符 A Z - 65, . , 90ASCII見(jiàn)附錄4注意6.1.2 轉(zhuǎn)義字符常量一種特殊的字符常量,在單引號(hào)內(nèi)以一個(gè)反斜杠開(kāi)頭。功能功能功能功能r回車(chē)t水平跳格v豎向跳格b 退格f換頁(yè)反斜杠字符0空值,其ASCII碼值為0單引號(hào)字符ddd8進(jìn)制數(shù)表示的對(duì)應(yīng)ASCII碼字符 雙引號(hào)字符xhh16進(jìn)制數(shù)表示的對(duì)應(yīng)ASCII碼字符6.1.2 轉(zhuǎn)義字符常量101141Aax41x6dAm注意n、101、141只代表一個(gè)字符。6.1.3 字符串常量字符串常量:是由雙引號(hào)括起來(lái)的一串字符字符串常量:是由雙引號(hào)括起來(lái)的一串字符 。例如“STRING” “CHINA”字符串常量都是以0結(jié)束。 注意

3、請(qǐng)問(wèn): “CHINA”在內(nèi)存中占幾個(gè)字節(jié)?6在內(nèi)存中的存儲(chǔ)形式是:C H I N A 0101、Z是字符常量,在內(nèi)存中占一個(gè)字節(jié)。 6.1.4 可對(duì)字符常量進(jìn)行的運(yùn)算1. 在程序中,字符常量可與任何整數(shù)進(jìn)行運(yùn)算。B - A 等價(jià)于 66 65 等于 1 a + 1 等價(jià)于 97 + 1 等于 982. 小寫(xiě)字母的ASCII值比相應(yīng)的大寫(xiě)字母的ASCII值大32。 A + 32 等價(jià)于 65 + 32 等于 97 b - 32 等價(jià)于 98 - 32 等于 66 aB4. 字符常量也可以進(jìn)行關(guān)系運(yùn)算。a ba Aa & b0113. 小寫(xiě)字母的ASCII值比相應(yīng)的大寫(xiě)字母的ASCII值大

4、32。 5+ 09 - 0字符變量的定義:字符變量用關(guān)鍵字char定義。 char ch,ca,cb; char ch=*,ca=A,cb=a; 字符變量在內(nèi)存中占1個(gè)字節(jié) 分析如下程序段:char c1,c2,c3; int k=5;c1=1; c1+;c2=A; c3=(c2+32+k)%25; 5c1c2c3k6.3.1 調(diào)用printf和scanf函數(shù)輸出和輸入字符字符輸出char a;a=S;printf(“a=%cn”,a);/*使用%c進(jìn)行格式說(shuō)明*/a=Schar a;a=S;printf(“a=%3cn”,a);a= S輸出時(shí),也可以指定輸出的寬度。例如:字符輸入char a

5、,b,c;scanf(“%c%c%c”,&a,&b,&c);若要給變量a、b、c分別賦予1、2、3。正確的輸入形式為: 123非法1231 236.3.1 調(diào)用printf和scanf函數(shù)輸出和輸入字符 輸入時(shí),可以在格式說(shuō)明串中加入空格,如:scanf(“%c %c %c”,&a,&b,&c);這時(shí)輸入的時(shí)候,不做嚴(yán)格要求,可以以(無(wú)、空格、回車(chē)、tab鍵)作間隔符xyzxy zx y zx y z 如下的語(yǔ)句為數(shù)值數(shù)據(jù)和字符數(shù)據(jù)進(jìn)行混合輸入:int a1,a2; char c1,c2;scanf(“%d%c%d%c”,&a1,&

6、;c1,&a2, &c2);正確的讀入形式:10A 20B10A20BA和20之間可以有間隔符,間隔符的個(gè)數(shù)不限此時(shí)變量a1接受的是10,c1接受的是A, a2接受的是20,c2接受的是B,10 A 20 B錯(cuò)誤的讀入形式注意6.3.2 調(diào)用putchar和getchar函數(shù)輸出和輸入字符在使用在使用printf和和scanf函數(shù)、函數(shù)、 putcharputchar和和getchargetchar函數(shù)函數(shù)輸出和輸入字符時(shí),輸出和輸入字符時(shí),在程序的開(kāi)頭,都要加上包含頭文件:在程序的開(kāi)頭,都要加上包含頭文件:#include 輸出:putchar()輸入:getchar()例如

7、: char ch=A; putchar(ch);Aputchar(Y);Y例如: char ch; ch=getchar();給字符變量接受字符例例6.1 以下程序輸出以下程序輸出26個(gè)大寫(xiě)字母和它們的個(gè)大寫(xiě)字母和它們的ASCII代碼,代碼,每行輸出兩組數(shù)據(jù)。每行輸出兩組數(shù)據(jù)。#include main()char ch; int i; for(i=0;i26;i+) ch=i+65; if(i%2=0) printf(n); printf(c=%c ASCII=%d ,ch,ch); printf(n);例例6.2 以下程序段等待從終端輸入一個(gè)字符,當(dāng)按以下程序段等待從終端輸入一個(gè)字符,當(dāng)

8、按Enter鍵時(shí),鍵時(shí),程序才往下繼續(xù)進(jìn)行。程序才往下繼續(xù)進(jìn)行。#include main() : : printf(“Press Enter to continuen); while( getchar( ) != n ) ; : :/*當(dāng)輸入回車(chē)時(shí),退出循環(huán)當(dāng)輸入回車(chē)時(shí),退出循環(huán)*/例例6.3 以下程序把從終端輸入的一行字符中所有的小寫(xiě)字母以下程序把從終端輸入的一行字符中所有的小寫(xiě)字母轉(zhuǎn)換成大寫(xiě)字母,其他字符不變。轉(zhuǎn)換成大寫(xiě)字母,其他字符不變。#include main()char c; while( ( c=getchar( ) ) != n ) if( c=a & c=z ) c

9、=c-32; putchar(c); printf(n);例例6.4 編寫(xiě)程序統(tǒng)計(jì)輸入的字符中空格符、換行符和編寫(xiě)程序統(tǒng)計(jì)輸入的字符中空格符、換行符和橫向跳格符的個(gè)數(shù),以!結(jié)束輸入。橫向跳格符的個(gè)數(shù),以!結(jié)束輸入。#include main() char c; int n; while( ( c=getchar( ) ) != ! ) if( c= | c=n| c=t ) n+; printf(“n=%ldn“,n);例例6.5 把一串密碼譯成正文,密碼以字符把一串密碼譯成正文,密碼以字符結(jié)束。規(guī)則如下:結(jié)束。規(guī)則如下:(1)若是字母,轉(zhuǎn)換成字母序列的下一個(gè)字母。如)若是字母,轉(zhuǎn)換成字母序列

10、的下一個(gè)字母。如A譯成譯成B。(2)若是字母)若是字母Z,譯成,譯成A。(3)無(wú)論是大小寫(xiě)字母都譯成小寫(xiě)字母。)無(wú)論是大小寫(xiě)字母都譯成小寫(xiě)字母。(4)其他字母一律照原樣譯出。)其他字母一律照原樣譯出。#include #include main()char c; c=getchar(); while(c != ) if( isalpha( c ) ) c=tolower(c); c=(c-a+1)%26+a; putchar(c); c=getchar(); printf(“n”);一.選擇題6.1 C語(yǔ)言中的簡(jiǎn)單數(shù)據(jù)類(lèi)型有A 整型,實(shí)型,邏輯型 B 整型,實(shí)型,字符型C 整型,字符型,邏輯型

11、 D 整型,實(shí)型,邏輯型,字符型6.2 C語(yǔ)言中,字符(char)型數(shù)據(jù)在微機(jī)內(nèi)存中的存儲(chǔ)形式是A 反碼 B 補(bǔ)碼 C EBCDIC碼 D ASCII碼6.3 設(shè)有定義語(yǔ)句:char a=x72;,則變量aA 包含1個(gè)字符 B 包含2個(gè)字符 C 包含3個(gè)字符 D 定義不合法6.4 C語(yǔ)言中,下列不合法的字符常量A xff B x65 C & D 0286.5 C語(yǔ)言中,下列不合法的字符串常量是A “121” B y= C “nn” D “ABCDx6d”6.6 判斷char型變量c是否為大寫(xiě)字母的最簡(jiǎn)單且正確的表達(dá)式是A A=c=A)|(c=Z)C (A=c) D (c=A)&

12、(c=Z)BDADBD6.7 有以下程序:#include main()char c1=A,c2=Y; printf(%d,%dn,c1,c2);程序的輸出結(jié)果是A 因輸出格式不合法,無(wú)正確輸出 B 65,90C A,Y D 65,896.8 有以下程序:#include main()char x=A; x=(x=A&x=Z)?(x+32):x; printf(%cn,x);程序的輸出結(jié)果是A A B a C Z D z DB6.9 有以下程序:#include main()char ch; ch=A+5-3; printf(%d,%cn,ch,ch);程序的輸出結(jié)果是A 67,C B

13、 B,C C C,D D 不確定的值6.10有以下程序:#include main()int c; while(c=getchar()!=n) switch(c-2) case 0: case 1:putchar(c+4); case 2:putchar(c+4);break; case 3:putchar(c+3); default:putchar(c+2);break; printf(n);從第一列開(kāi)始輸入數(shù)據(jù):2473,代表回車(chē),程序的輸出結(jié)果是 A 668977 B 669866 C 66778777 D 6688766 AA6.11 若變量已正確定義,要求用語(yǔ)句: scanf(“%f

14、%c%f%c”,&a,&c1,&b,&c2);給c1賦予字符%,給c2賦予字符#,給a賦予2.0,給b賦予4.0,則正確的輸入形式是(_代表空格,代表回車(chē))A 2.0_%_4.0_# B 2.0%4.0_#C 2%_ _4.0# D 2_%_4_#二,填空題6.12 C語(yǔ)言中,字符在內(nèi)存中占_個(gè)字節(jié).6.13 調(diào)用C語(yǔ)言提供的對(duì)字符進(jìn)行處理的庫(kù)函數(shù)時(shí),在#include命令行中應(yīng)包含的頭文件是_.6.14 若變量已正確定義,在執(zhí)行以下whlie語(yǔ)句時(shí),輸入字符A后,ch的值是_. whlie( ch=getchar() =A) ;6.15 若變量已正確定義,要通

15、過(guò)以下語(yǔ)句給a,b,c,d分別輸入字符A,B,C,D,給w,x,y,z分別輸入整數(shù)10,20,30,40,正確的輸入形式是_.scanf(“%d%c%d%c%d%c%d%c”,&w,&a,&x,&b,&y,&c,&z,&d);C1ctype.h010A20B30C40D6.16 若有以下定義和輸入語(yǔ)句,要求給c1,c2分別輸入字符A和B,給a1,a2分別輸入 7.29和101.298,從鍵盤(pán)正確輸入數(shù)據(jù)的形式是_.char c1,c2; float a1,a2;scanf(“%f%f”,&a1,&a2); scanf(“%c%c”,&c1,&c2);6.17 若有以下定義和輸入語(yǔ)句,要求給c1,c2分別輸入字符A和B,給a1,a2分別輸入 7.29和101.298,從鍵盤(pán)正確輸入數(shù)據(jù)的形式是_.char c1,c2; float a1

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論