版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、會(huì)計(jì)學(xué)1C語(yǔ)言第六章數(shù)組語(yǔ)言第六章數(shù)組第一頁(yè),共52頁(yè)。在C語(yǔ)言中表示數(shù)組和矩陣的方法是:數(shù)組:a0、a1、a2、a3、a4、a5其中 a :稱為數(shù)組名。 方括號(hào)中的數(shù):稱為下標(biāo) 下標(biāo)是一個(gè)數(shù)時(shí),也就是(jish)數(shù)列,稱為一維數(shù)組。 下標(biāo)是兩個(gè)數(shù)時(shí),也就是(jish)矩陣,稱為二維數(shù)組。還有三維、四維數(shù)組等 第1頁(yè)/共52頁(yè)第二頁(yè),共52頁(yè)。例如:有五名學(xué)生的一組學(xué)號(hào):2004035012、2004035013、2004035014、2004035015、2004035016。 如果用數(shù)組來(lái)表示的話可以用統(tǒng)一的數(shù)組名比如:num,用下標(biāo)區(qū)別每個(gè)變量(binling)。 即 num0、num1
2、、num2、num3、um4表示一個(gè)學(xué)號(hào)數(shù)組。第2頁(yè)/共52頁(yè)第三頁(yè),共52頁(yè)。一維數(shù)組在內(nèi)存的存儲(chǔ)一維數(shù)組在內(nèi)存的存儲(chǔ)(cn ch)(cn ch)形式:形式: num num 就是數(shù)組存儲(chǔ)就是數(shù)組存儲(chǔ)(cn ch)(cn ch)區(qū)域的首地址,即區(qū)域的首地址,即 num=200 num=200 。num 200num0num1num2num3num4204208212216200403501220040350132004035014200403501520040350166.1 6.1 一維數(shù)組的定義一維數(shù)組的定義(dngy)(dngy)和引和引用用第3頁(yè)/共52頁(yè)第四頁(yè),共52頁(yè)。 2、一維
3、數(shù)組的引用、一維數(shù)組的引用數(shù)組必須先定義,后使用數(shù)組必須先定義,后使用只能只能(zh nn)逐個(gè)引用數(shù)組元素逐個(gè)引用數(shù)組元素,不能一次引用整不能一次引用整個(gè)數(shù)組個(gè)數(shù)組數(shù)組元素表示形式:數(shù)組元素表示形式: 數(shù)組名數(shù)組名下標(biāo)下標(biāo)其中:下標(biāo)可以是常量、變量或表達(dá)式。其中:下標(biāo)可以是常量、變量或表達(dá)式。例例 int a10; scanf(“%d”,a) ; 必須必須(bx) int a10; for(j=0;j10;j+) scanf(“%d”, &aj);例如例如(lr): int k=5 ; a1、a1+5 、ak、a10-k( )( )第4頁(yè)/共52頁(yè)第五頁(yè),共52頁(yè)。3、一維數(shù)組元素值的輸入、
4、一維數(shù)組元素值的輸入(shr)與輸出與輸出例如例如 : main() int i , a10; for(i=0 ; i10 ; i+) scanf(“%d” , & ai ) ; for(i=0 ; i10 ; i+) printf (“%d ”, ai ) ; 例例6.1 #include void main( ) int i ,a10 ; for ( i = 0 ;i = 0 ;i - - ) printf ( “%2d”,a i ) ; printf ( “n”); 結(jié)果:結(jié)果:9876543210 _第5頁(yè)/共52頁(yè)第六頁(yè),共52頁(yè)。使用數(shù)組定義和數(shù)組元素時(shí)的幾點(diǎn)注意: 1、把數(shù)組定義
5、時(shí)方括號(hào)中的數(shù)和元素下標(biāo)值區(qū)別開(kāi),數(shù)組定義時(shí)方括號(hào)中的數(shù)表示數(shù)組含有的元素個(gè)數(shù) 元素下標(biāo)值是標(biāo)識(shí)具體的數(shù)組元素的。方括號(hào)中的數(shù)不能是變量,只能是常量。2、數(shù)組元素的下標(biāo)可以是常量, 也可以是變量,其值必須是非負(fù)數(shù), 如果是小數(shù),系統(tǒng)(xtng)自動(dòng)取整。3、數(shù)組必須先定義后使用。4、系統(tǒng)(xtng)不檢查數(shù)組元素下標(biāo)的越界問(wèn)題。5、一維數(shù)組元素的輸入、輸出使用單層循環(huán)語(yǔ)句。第6頁(yè)/共52頁(yè)第七頁(yè),共52頁(yè)。4、一維數(shù)組的初始化在定義數(shù)組時(shí),為數(shù)組元素賦初值(在編譯(biny)階段使之得到初值)v說(shuō)明(shumng):v數(shù)組不初始化,其元素值為隨機(jī)數(shù)l當(dāng)全部(qunb)數(shù)組元素賦初值時(shí),可不指定
6、數(shù)組長(zhǎng)度如 int a5=6,2,3; 等價(jià)于: a0=6; a1=2;a2=3; a3=0; a4=0;如 int a3=6,2,3,5,1; ()l只給部分?jǐn)?shù)組元素賦初值 int a=1,2,3,4,5,6;編譯系統(tǒng)根據(jù)初值個(gè)數(shù)確定數(shù)組維數(shù)值int a5=1,2,3,4,5;等價(jià)于:a0=1; a1=2; a2=3; a3=4; a4=5;初始化方式第7頁(yè)/共52頁(yè)第八頁(yè),共52頁(yè)。例6.2 用數(shù)組求Fibonacci數(shù)列(shli)前20個(gè)數(shù))3()2(12) 1(1121nFFFnFnFnnn#include main() int i; int f20=1,1; for(i=2;i20
7、;i+) fi=fi-2+fi-1; for(i=0;ia2,則交換(jiohun)值;然后比較第二個(gè)數(shù)與第三個(gè)數(shù),若為逆序a2a3,則交換(jiohun)值;依次類推,直至第7個(gè)數(shù)和第8個(gè)數(shù)比較為止第一趟冒泡排序,結(jié)果最大的數(shù)被安置在最后一個(gè)元素位置上,即在a8中。(2)對(duì)前7個(gè)數(shù)進(jìn)行第二趟冒泡排序,結(jié)果使次大的數(shù)被安置在第7個(gè)元素位置,即在a7中 。(3)重復(fù)上述過(guò)程,共經(jīng)過(guò)7趟冒泡排序后,排序結(jié)束。第9頁(yè)/共52頁(yè)第十頁(yè),共52頁(yè)。例例38 49 65 76 13 27 30 97第一趟第一趟38 49 65 13 27 30 76第二趟第二趟38 49 13 27 30 65第三趟第三
8、趟38 13 27 30 49第四趟第四趟13 27 30 38第五趟第五趟13 27 30第六趟第六趟49 38 65 97 76 13 27 30初始關(guān)鍵字初始關(guān)鍵字n=83849769713972797309713767676273013652765306513134949304927382738303813 27第七趟第七趟第10頁(yè)/共52頁(yè)第十一頁(yè),共52頁(yè)。輸入n 個(gè)數(shù)給a1 到 anfor j=1 to n-1for i=1 to n-jaiai+1真假aiai+1輸出a1 到 an#include main() int a9,i,j,t; printf(Input 8 numb
9、ers:n); for(i=1;i9;i+) scanf(%d,&ai); printf(n); for(j=1;j=7;j+) for(i=1;iai+1) t=ai; ai=ai+1; ai+1=t; printf(The sorted numbers:n); for(i=1;i9;i+)printf(%d ,ai);第11頁(yè)/共52頁(yè)第十二頁(yè),共52頁(yè)。6.2 二維數(shù)組及多維數(shù)組二維數(shù)組及多維數(shù)組 一維數(shù)組通常是用來(lái)處理數(shù)列一維數(shù)組通常是用來(lái)處理數(shù)列(shli)問(wèn)題的問(wèn)題的例如:例如: a1 、 a2 、 a3 、.、 an、 . 可以用一維來(lái)表示??梢杂靡痪S來(lái)表示。二維數(shù)組通常是用來(lái)矩
10、陣問(wèn)題的二維數(shù)組通常是用來(lái)矩陣問(wèn)題的,例如下面的數(shù)表(矩陣):,例如下面的數(shù)表(矩陣): a11a12a13a14a21a22a23a24a31a32a33a3434可以(ky)用二維數(shù)組來(lái)表示。第12頁(yè)/共52頁(yè)第十三頁(yè),共52頁(yè)。1、二維數(shù)組的定義定義方式(fngsh):數(shù)據(jù)類型數(shù)組名常量表達(dá)式常量表達(dá)式;v數(shù)組元素(yun s)的存放順序v在內(nèi)存中按行順序存放。v即先存第一行,接著存第二行,v以此類推。例如:例 int a34; float b25; int a3,4; ()行數(shù)列數(shù)元素(yun s)個(gè)數(shù)=行數(shù)*列數(shù)int a32a01a10a11a20a21014523a00a00 a
11、01a10 a11a20 a2101234567.20212223int c234c000c001c002c003c010c011c012c013c020c021c022c023c100c101c102c103c110c111c112c113c120c121c122c123第13頁(yè)/共52頁(yè)第十四頁(yè),共52頁(yè)。2、二維數(shù)組理解(lji)由按上述定義(dngy)的二維數(shù)組的方式 (比如:int a34 ),我們可以把二維數(shù)組看成是一種特殊的一維數(shù)組:它的元素又是一維數(shù)組。例如,把 a看成是一維數(shù)組,它有3個(gè)元素,分別是:a0、a1、a2,每個(gè)元素又是一個(gè)包含4個(gè)元素的一維數(shù)組。如下表: a0 a
12、00 、 a01 、 a02 、 a03a a1 a10 、 a11 、 a12 、 a13 a2 a20 、 a21、 a22 、 a23其中(qzhng) a 是數(shù)組 a0、a1、a2 的數(shù)組名而 a0 是數(shù)組 a00、a01 、a02 、 a03 的數(shù)組名 a1是數(shù)組 a10、a11 、a12、a13的數(shù)組名 a2是數(shù)組 a20、a21、 a22 、a23的數(shù)組名第14頁(yè)/共52頁(yè)第十五頁(yè),共52頁(yè)。3、二維數(shù)組元素的引用、二維數(shù)組元素的引用形式形式(xngsh): 數(shù)組名數(shù)組名下標(biāo)下標(biāo)下標(biāo)下標(biāo)4、二維數(shù)組的輸入輸出。、二維數(shù)組的輸入輸出。 使用雙層循環(huán)。例如:使用雙層循環(huán)。例如:mai
13、n() int a45 , i , j ; for (i=1 ;i=3;i+) for(j=1;j=4;j+) scanf(“%d”,&aij); for (i=1 ;i=3;i+) for(j=1;j=4;j+) printf(“%d”, aij);輸入,數(shù)據(jù)(shj)用空格或回車隔開(kāi)輸出(shch)第15頁(yè)/共52頁(yè)第十六頁(yè),共52頁(yè)。5、二維數(shù)組元素(yun s)的初始化分行初始化:l按元素(yun s)排列順序初始化 例例 int a23=1,2,3,4,5,6;a00a01a02a10a11a12123456全部初始化全部初始化= 例例 int a23=1,2,4;a00a01a02
14、a10a11a12120400部分初始化部分初始化= 例 int a 3=1 ,4,5;a00a01a02a10a11a12100450第一維長(zhǎng)度省略初始化第一維長(zhǎng)度省略初始化= 例 int a 23=1,2,3,4,5,6;a00a01a02a10a11a12123456全部初始化= 例例 int a 23=1,2,4,;a00a01a02a10a11a12124000部分初始化部分初始化= 例例 int a 3=1,2,3,4,5;a00a01a02a10a11a12123450第一維長(zhǎng)度省略初始化第一維長(zhǎng)度省略初始化=第16頁(yè)/共52頁(yè)第十七頁(yè),共52頁(yè)。l程序(chngx)舉例例例 將
15、二維數(shù)組行列元素將二維數(shù)組行列元素(yun s)互換,存到另一個(gè)數(shù)組中互換,存到另一個(gè)數(shù)組中a=1 2 34 5 6b=1 42 53 6#include main() int a23=1,2,3,4,5,6; int b32,i,j; printf(array a:n); for(i=0;i=1;i+) for(j=0;j=2;j+) printf(%5d,aij); bji=aij;printf(n); printf(array b:n); for(i=0;i=2;i+) for(j=0;jmax真假max=aijrow=icolum=j輸出:max和row,colum#include m
16、ain() int a34=1,2,3,4, 9,8,7,6, -10,10,-5,2; int i,j,row=0,colum=0,max; max=a00; for(i=0;i=2;i+) for(j=0;jmax) max=aij; row=i; colum=j; printf(max=%d,row=%d, colum=%dn,max,row,colum);第18頁(yè)/共52頁(yè)第十九頁(yè),共52頁(yè)。 5.3的主要(zhyo)內(nèi)容:1、字符數(shù)組的定義2、字符數(shù)組的初始化3、字符數(shù)組與字符串常量之間的關(guān)系4、字符數(shù)組(字符串常量)的輸入輸出5、字符串處理函數(shù) 第19頁(yè)/共52頁(yè)第二十頁(yè),共52頁(yè)
17、。6.3 字符數(shù)組和字符串 (存放字符數(shù)據(jù),一個(gè)元素存放一個(gè)字符 )一、定義 : 字符數(shù)組的定義方法與前面(qin mian)講過(guò)的類似 char c 10 ; int c 10 ;二、字符(z f)數(shù)組的初始化例 char c10, ch34; 例例 char ch5=H,e,l,l,o;ch0Hello逐個(gè)字符賦值逐個(gè)字符賦值ch1ch2ch3ch41、逐個(gè)字符賦值、逐個(gè)字符賦值在內(nèi)存中情況示意在內(nèi)存中情況示意字符是以字符是以ascll碼存的碼存的第20頁(yè)/共52頁(yè)第二十一頁(yè),共52頁(yè)。 例 char ch5=B,o,y;ch0Boy00逐個(gè)字符賦值逐個(gè)字符賦值ch1ch2ch3ch41、
18、逐個(gè)、逐個(gè)(zhg)字符賦值字符賦值int a5=1,2,3;結(jié)果:結(jié)果:a0=1 ,a1=2, a2=3 ,a3=0, a4=0對(duì)照對(duì)照第21頁(yè)/共52頁(yè)第二十二頁(yè),共52頁(yè)。 例例 char ch =a,b,c,d;ch0abcd逐個(gè)字符賦值逐個(gè)字符賦值ch1ch2ch31、逐個(gè)、逐個(gè)(zhg)字符賦值字符賦值int a =1,2,3,4;結(jié)果:結(jié)果:a0=1 ,a1=2, a2=3 ,a3=4對(duì)照對(duì)照說(shuō)明:1初值個(gè)數(shù) 數(shù)組長(zhǎng)度(chngd)語(yǔ)法錯(cuò)誤;2初值個(gè)數(shù) 數(shù)組長(zhǎng)度(chngd)其余元素為 0;3初值個(gè)數(shù) = 數(shù)組長(zhǎng)度(chngd)長(zhǎng)度(chngd)可省; 如:char a = B,
19、O,Y ;4可定義并初始化多維數(shù)組。如:char a23 = b,o,y,d,o,g 第22頁(yè)/共52頁(yè)第二十三頁(yè),共52頁(yè)。第23頁(yè)/共52頁(yè)第二十四頁(yè),共52頁(yè)。2、用字符串常量、用字符串常量(chngling)字符串:1.在C中,用字符數(shù)組存字符串。2.字符串結(jié)束標(biāo)志0 0 表示字符串到此結(jié)束,有0前面的字符組成字符串。 字符串常量 系統(tǒng)自動(dòng)加一個(gè)0。 例:“China”,共5個(gè)字符占6個(gè)字節(jié),即用無(wú)名一維數(shù)組存放。3.定義數(shù)組長(zhǎng)度應(yīng)大于最大字符串長(zhǎng)度0前有效字符。4.0ASCII碼為0的字符,非顯示字符空操作字符。 如:printf(“How do you do?n”); 系統(tǒng)自動(dòng)加一
20、個(gè)0,作檢查(jinch)用,看輸出完否。5.可用字符串常量對(duì)字符數(shù)組初始化 C h i n a 0 char c = “China” ;或 char c = “China” ; C h i n a 0 0 0 0 0而 char c 10 = “China” ; 6.字符數(shù)組存字符串, 0可加可不加。加上方便且與系統(tǒng)一致 人為加0,如: char c = C,h,i,n,a,0 ; 例例 char ch6=“Hello”; char ch6=“Hello”; char ch=“Hello”;用字符串常量用字符串常量ch0Helloch1ch2ch3ch40ch5系統(tǒng)自動(dòng)加的系統(tǒng)自動(dòng)加的字符串
21、結(jié)束字符串結(jié)束標(biāo)記標(biāo)記”0”第24頁(yè)/共52頁(yè)第二十五頁(yè),共52頁(yè)。 例例 char ch5=“Boy”;ch0Boy00用字符串常量用字符串常量ch1ch2ch3ch42、用字符串常量、用字符串常量(chngling)第25頁(yè)/共52頁(yè)第二十六頁(yè),共52頁(yè)。char ch6=“Hello”; char ch6=“Hello”; char ch= h,e,l,l,o,0;char ch=“Hello”;數(shù)組中有數(shù)組中有6個(gè)元素。個(gè)元素。char ch=h,e,l,l,o;數(shù)組中有數(shù)組中有5個(gè)元素。個(gè)元素。最后最后(zuhu)一個(gè)元素是一個(gè)元素是o而不是而不是0。ch0Helloch1ch2ch
22、3ch40ch5示意圖第26頁(yè)/共52頁(yè)第二十七頁(yè),共52頁(yè)。 例 char f7=A,p,p,l,e, O,r,a,n,g,e, G,r,a,p,e;也可以(ky)這樣:char fruit7=“Apple”, “Orange”, “Grape”;二維字符二維字符(z f)數(shù)組初始化數(shù)組初始化f0f1f2Apple00Orange0Grape00第27頁(yè)/共52頁(yè)第二十八頁(yè),共52頁(yè)。 三、字符串以及結(jié)束標(biāo)記1、字符串及其結(jié)束標(biāo)志(biozh)字符串:雙引號(hào)擴(kuò)起來(lái)的一串字符。結(jié)束標(biāo)志(biozh): 0 。2、無(wú)字符串變量,用字符數(shù)組處理字符串 例例 “hello”共共5個(gè)字符,在內(nèi)存占個(gè)字
23、符,在內(nèi)存占6個(gè)字節(jié)個(gè)字節(jié) 字符串長(zhǎng)度字符串長(zhǎng)度5 h e l l o 0104 101 108 108 111 0內(nèi)存存放字符ASCII碼第28頁(yè)/共52頁(yè)第二十九頁(yè),共52頁(yè)。四、一維字符四、一維字符(z f)數(shù)組(字符數(shù)組(字符(z f)串串)的輸入輸出的輸入輸出 使用函數(shù)使用函數(shù) scanf 與與 printf 1、整個(gè)字符、整個(gè)字符(z f)串的輸入與輸出串的輸入與輸出 : 格式符為:格式符為: %s例 用%s main() char str5; scanf(“%s”, str); printf(“%s”, str);運(yùn)行(ynxng)結(jié)果: 輸入:China 輸出:China 用字
24、符數(shù)組名用字符數(shù)組名, 不要加不要加&輸入串長(zhǎng)度輸入串長(zhǎng)度遇空格或回車遇空格或回車(hu ch)結(jié)束結(jié)束 自動(dòng)加自動(dòng)加0第29頁(yè)/共52頁(yè)第三十頁(yè),共52頁(yè)。2、逐個(gè)字符輸入與輸出(shch): 格式符 為: %c例 用%c main() char str5; int i; for(i=0;i5;i+) scanf(“%c”, &stri); for(i=0;i5;i+) printf(“%c”, stri);運(yùn)行結(jié)果(ji gu):輸入:abcde輸出:abcde第30頁(yè)/共52頁(yè)第三十一頁(yè),共52頁(yè)。例 main( ) char a5=H,e,l,l,o; printf(“%s”,a);
25、例 main( ) char a =“Hello”; printf(“%s”,a); 結(jié)果(ji gu):Hello#-=* H e l l o02314結(jié)果(ji gu):Hello用“%s”輸出(shch)時(shí),遇0結(jié)束第31頁(yè)/共52頁(yè)第三十二頁(yè),共52頁(yè)。例 字符串輸入(shr)舉例 H o w 0 a r e 0 y o u ? 0 #include main() char a15,b5,c5; scanf(%s%s%s,a,b,c); printf(a=%snb=%snc=%sn,a,b,c); scanf(%s,a); printf(a=%sn,a);運(yùn)行情況(qngkung):輸
26、入:How are you?輸出:a=How b=are c=you?輸入:How are you?輸出:a=Howscanf中%s輸入時(shí),遇空格(kn )或回車結(jié)束第32頁(yè)/共52頁(yè)第三十三頁(yè),共52頁(yè)。六、常用六、常用(chn yn)的字符串處理函數(shù)的字符串處理函數(shù) 包含在頭文件包含在頭文件 string.h1、字符(z f)串輸出函數(shù) puts格式:puts(字符(z f)數(shù)組名)功能:向顯示器輸出字符(z f)串(輸出完,換行)說(shuō)明:字符(z f)數(shù)組必須以0結(jié)束例例 #include main( ) char str10=“How are you?”; puts(str); /* p
27、rintf(“%s”,str) ; */ 運(yùn)行結(jié)果運(yùn)行結(jié)果(ji gu): 輸出輸出: How are you ? 第33頁(yè)/共52頁(yè)第三十四頁(yè),共52頁(yè)。2、字符串輸入函數(shù)、字符串輸入函數(shù) gets格式:格式:gets(字符數(shù)組名字符數(shù)組名)功能:從鍵盤輸入一以回車功能:從鍵盤輸入一以回車(hu ch)結(jié)束的字符串結(jié)束的字符串放入字符數(shù)組中,并自動(dòng)加放入字符數(shù)組中,并自動(dòng)加0說(shuō)明:輸入串長(zhǎng)度應(yīng)小于字符數(shù)組長(zhǎng)度說(shuō)明:輸入串長(zhǎng)度應(yīng)小于字符數(shù)組長(zhǎng)度例例 #include main( ) char str30; gets(str); /* scanf(“%s”,str); */ puts(str);
28、 輸入輸入(shr): How are you?輸出輸出: How are you ? 第34頁(yè)/共52頁(yè)第三十五頁(yè),共52頁(yè)。3、字符串連接函數(shù)、字符串連接函數(shù)(hnsh) strcat格式:格式:strcat(字符數(shù)組字符數(shù)組1,字符數(shù)組字符數(shù)組2)功能:把功能:把 字符數(shù)組字符數(shù)組2 連到連到 字符數(shù)組字符數(shù)組1 后面后面 說(shuō)明:說(shuō)明:字符數(shù)組字符數(shù)組1必須足夠大必須足夠大 連接前連接前,兩串均以兩串均以0結(jié)束結(jié)束;連接后連接后,串串1的的0取消取消, 新串最后加新串最后加0例例 #include main() char a20 = Turbo; char b= “ C+, strcat
29、(a , c); printf(%sn, a); 輸出輸出(shch)結(jié)果:結(jié)果:Turbo C+第35頁(yè)/共52頁(yè)第三十六頁(yè),共52頁(yè)。例 char str120,str220; str1=“Hello!”; () str2=str1; ()4、字符串拷貝函數(shù)、字符串拷貝函數(shù)strcpy格式:格式:strcpy(字符數(shù)組字符數(shù)組1,字符串字符串2)功能:將字符串功能:將字符串2,拷貝到字符數(shù)組,拷貝到字符數(shù)組1中去中去說(shuō)明:說(shuō)明:字符數(shù)組字符數(shù)組1必須必須(bx)足夠大足夠大 拷貝時(shí)拷貝時(shí)0一同拷貝一同拷貝 不能使用賦值語(yǔ)句為一個(gè)字符數(shù)組賦值不能使用賦值語(yǔ)句為一個(gè)字符數(shù)組賦值例: #incl
30、ude main() char a25; char b= “ C+, c = Turbo; strcpy(a , c); strcat(a , b); printf(%sn, a); 輸出(shch)結(jié)果: Turbo C+ 第36頁(yè)/共52頁(yè)第三十七頁(yè),共52頁(yè)。5、字符串比較函數(shù)、字符串比較函數(shù) strcmp格式:格式:strcmp(字符串字符串1,字符串字符串2)功能功能(gngnng):比較兩個(gè)字符串:比較兩個(gè)字符串比較規(guī)則:對(duì)兩串從左向右逐個(gè)字符比較(比較規(guī)則:對(duì)兩串從左向右逐個(gè)字符比較(ASCII碼)碼) 直到遇到不同字符或直到遇到不同字符或0為止為止返值:返回返值:返回int型整
31、數(shù),型整數(shù), a. 若字符串若字符串1 字符串字符串2, 返回正整數(shù)返回正整數(shù) c. 若字符串若字符串1= 字符串字符串2, 返回零返回零說(shuō)明:字符串比較不能用說(shuō)明:字符串比較不能用“= =”,必須用必須用 strcmp例如例如(lr):比較:比較: Hello! 與與 Hell0! H e l l o ! H e l I 0 ! 第37頁(yè)/共52頁(yè)第三十八頁(yè),共52頁(yè)。例 #include #include main() char str1 = “Hell0!”, str2 =“Hello!”; if(strcmp(str1, str2)0) printf( “Hell0! Hello!”)
32、; else if(strcmp(str1, str2)=0) printf(“Hell0!= = Hello!”) ; else printf(“Hell0! Hello!”); 輸出輸出(shch)結(jié)結(jié)果:果:Hell0!Hello!第38頁(yè)/共52頁(yè)第三十九頁(yè),共52頁(yè)。6、字符串長(zhǎng)度函數(shù)、字符串長(zhǎng)度函數(shù) strlen 作業(yè):作業(yè):141頁(yè)頁(yè)格式:格式:strlen(字符數(shù)組字符數(shù)組) 7.11 、7.14、7.15功能:計(jì)算字符串長(zhǎng)度功能:計(jì)算字符串長(zhǎng)度返值:返回字符串實(shí)際返值:返回字符串實(shí)際(shj)長(zhǎng)度,不包括長(zhǎng)度,不包括0在內(nèi)在內(nèi)例:例:#include main()char s
33、tr1 = ”Hello!, str2 = ”How are you?”; int len1,len2 , len3; len1=strlen(str1) ; len2=strlen(str2); printf(“l(fā)en1=%d len2=%d”,len1,len2); 結(jié)果結(jié)果(ji gu):len1=6 len2=12第39頁(yè)/共52頁(yè)第四十頁(yè),共52頁(yè)。應(yīng)用應(yīng)用(yngyng)舉例舉例例例 1、 輸入一行字符輸入一行字符(z f),統(tǒng)計(jì)其中有多少個(gè)單詞,單詞之間用空格間隔,統(tǒng)計(jì)其中有多少個(gè)單詞,單詞之間用空格間隔輸入一字符串給字符數(shù)組輸入一字符串給字符數(shù)組 string i=0 , nu
34、m=0 , word=0當(dāng)當(dāng) ( ( c=stringi ) !=0 )c= =空格空格真真真真假假假word=0word=1num=num+1i=i+1輸出:輸出:numword=0例如:有下面一行字符,例如:有下面一行字符,由一個(gè)空格間隔由一個(gè)空格間隔(jin g)。 I am a boy. 再比如:有多個(gè)空格間隔再比如:有多個(gè)空格間隔(jin g) I am a boy.第40頁(yè)/共52頁(yè)第四十一頁(yè),共52頁(yè)。#include main() char string81; int i , num=0 , word=0; char c; gets(string); for(i=0;(c=st
35、ringi)!=0;i+) if(c= ) word=0; else if(word=0) word=1; num+; printf(There are %d words in the linen, num);第41頁(yè)/共52頁(yè)第四十二頁(yè),共52頁(yè)。例例 2、 有三個(gè)字符串,找出其中有三個(gè)字符串,找出其中(qzhng)最大者最大者定義三個(gè)一維字符數(shù)組定義三個(gè)一維字符數(shù)組 str120,str220,str320 即即 定義部分定義部分(b fen): char str120 , str220 , str20 , str 20 ; 輸入部分輸入部分(b fen): gets(str1); get
36、s(str2); gets(str3);比較部分比較部分(b fen): if( strcmp(str1,str2)0) strcpy(str, str1); else strcpy(str,str2); if( strcmp(str3 , str) 0) strcpy(str,str3);輸出部分輸出部分(b fen): printf(“n the largest string is :%sn” ,str); 第42頁(yè)/共52頁(yè)第四十三頁(yè),共52頁(yè)。例例 2、 有三個(gè)字符串,找出其中有三個(gè)字符串,找出其中(qzhng)最大者最大者 H o w 0 H e l l o 0 H i g h 0
37、str0str1str2#include #include main() char string20 , str320; int i; for(i=0;i0)strcpy(string,str0); else strcpy(string,str1); if(strcmp(str2,string)0)strcpy(string,str2); printf(nThe largest string is:n%sn,string);定義一個(gè)兩維字符數(shù)組定義一個(gè)兩維字符數(shù)組str320即即 3行行20列。每一行可以容納列。每一行可以容納(rngn)20個(gè)字符。如下圖:個(gè)字符。如下圖:第43頁(yè)/共52頁(yè)第
38、四十四頁(yè),共52頁(yè)。1、若有代數(shù)、若有代數(shù)(dish)表達(dá)式表達(dá)式 ,則不正確的則不正確的C語(yǔ)言表達(dá)式是語(yǔ)言表達(dá)式是( ).A) a/b/c*e*3 B) 3*a*e/b/c C)3*a*e/b*c D) a*e/c/b*32、下列運(yùn)算符中優(yōu)先級(jí)最高的是(、下列運(yùn)算符中優(yōu)先級(jí)最高的是( ) A) B) + C) & D)!= 3、若有、若有 int x=3,y=4,z=5;則下面表達(dá)式中值為;則下面表達(dá)式中值為0的是(的是( )A) x & y B) x=y C) x | y+z & y-z D) !(x5) printf(“%dn”,m); else printf(%dn”,m-); A)
39、4 B) 5 C) 6 D) 7 6、以下程序輸出結(jié)果、以下程序輸出結(jié)果(ji gu)是是( ) main() int a=100,x=10,y=20,ok1=5,ok2=0; if(xy)if(y!=10) if(!ok1) a=1; else if(ok2) a=10;a=-1;printf(“%dn”,a); A) 1 B) 0 C) 1 D) 值不確定值不確定 CC第45頁(yè)/共52頁(yè)第四十六頁(yè),共52頁(yè)。7、下面程序段的運(yùn)行、下面程序段的運(yùn)行(ynxng)結(jié)果是結(jié)果是( ) int n=0; while(n+=2) ; printf(“%d”,n);A) 2 B) 3 C) 4 D)有語(yǔ)法錯(cuò)誤有語(yǔ)法錯(cuò)誤 8、以下、以下(yxi)正確計(jì)算正確計(jì)算12310的程序段是的程序段是( )A) do i=1;s=1; B) doi=1;s=0; s=s* i; s=s*i; i+; i+; while(i=10); while(i=10);C) i=1;s=1; D) i=1;s=0;dos=s*i; dos=s*i;i+; i+;while(i=10); while(i=10);CC 第46頁(yè)/共5
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年建筑師考試建筑構(gòu)造與材料試題集
- 2026年貴陽(yáng)康養(yǎng)職業(yè)大學(xué)單招綜合素質(zhì)筆試模擬試題含詳細(xì)答案解析
- 2026年鄭州電力職業(yè)技術(shù)學(xué)院?jiǎn)握芯C合素質(zhì)筆試模擬試題含詳細(xì)答案解析
- 2026年云南工貿(mào)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能考試參考題庫(kù)含詳細(xì)答案解析
- 2026年保定電力職業(yè)技術(shù)學(xué)院?jiǎn)握芯C合素質(zhì)考試備考試題含詳細(xì)答案解析
- 2026年山西管理職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)考試參考題庫(kù)含詳細(xì)答案解析
- 2026中國(guó)科學(xué)院云南天文臺(tái)撫仙湖太陽(yáng)觀測(cè)和研究基地望遠(yuǎn)鏡工程師招聘1人考試重點(diǎn)試題及答案解析
- 2026年青島電影學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試備考題庫(kù)及答案詳細(xì)解析
- 2026年云南體育運(yùn)動(dòng)職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試備考題庫(kù)及答案詳細(xì)解析
- 2026年長(zhǎng)沙民政職業(yè)技術(shù)學(xué)院?jiǎn)握芯C合素質(zhì)筆試參考題庫(kù)含詳細(xì)答案解析
- 2025-2026學(xué)年北京市朝陽(yáng)區(qū)高一(上期)期末考試英語(yǔ)試卷(含答案)
- 2026湖南衡陽(yáng)耒陽(yáng)市公安局招聘75名警務(wù)輔助人員考試參考題庫(kù)及答案解析
- 電力工程施工方案及規(guī)范
- 2026年1月浙江省高考(首考)英語(yǔ)試題(含答案詳解)+聽(tīng)力音頻+聽(tīng)力材料
- 2026年時(shí)事政治測(cè)試題庫(kù)附完整答案(網(wǎng)校專用)
- 智慧物流背景下多式聯(lián)運(yùn)的協(xié)同發(fā)展與運(yùn)輸效能提升研究畢業(yè)論文答辯匯報(bào)
- 替人背債合同范本
- 山西省運(yùn)城市小學(xué)一年級(jí)上學(xué)期數(shù)學(xué)期末考試試題
- 藥師處方審核管理制度
- T-HHPA 001-2025 老年人跌倒風(fēng)險(xiǎn)評(píng)估及干預(yù)措施
- 2025年廣西高考地理真題(解析版)
評(píng)論
0/150
提交評(píng)論