2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩91頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第6章 利用數(shù)組處理批量數(shù)據(jù),前幾章使用的變量都屬于基本類型,例如整型、字符型、浮點(diǎn)型數(shù)據(jù),這些都是簡單的數(shù)據(jù)類型。對(duì)于有些數(shù)據(jù),只用簡單的數(shù)據(jù)類型是不夠的,難以反映出數(shù)據(jù)的特點(diǎn),也難以有效地進(jìn)行處理。,如果有1000名學(xué)生,每個(gè)學(xué)生有一個(gè)成績,需要求這1000名學(xué)生的平均成績。用s1,s2,s3,……,s1000表示每個(gè)學(xué)生的成績,能體現(xiàn)內(nèi)在聯(lián)系。C語言用方括號(hào)中的數(shù)字表示下標(biāo),如用s[15]表示,,數(shù)組名,數(shù)組是一組有序數(shù)據(jù)的

2、集合。數(shù)組中各數(shù)據(jù)的排列是有一定規(guī)律的,下標(biāo)代表數(shù)據(jù)在數(shù)組中的序號(hào)用一個(gè)數(shù)組名和下標(biāo)惟一確定數(shù)組中的元素?cái)?shù)組中的每一個(gè)元素都屬于同一個(gè)數(shù)據(jù)類型,6.1 怎樣定義和引用一維數(shù)組6.2 怎樣定義和引用二維數(shù)組6.3 字符數(shù)組,6.1怎樣定義和引用一維數(shù)組,6.1.1 怎樣定義一維數(shù)組6.1.2 怎樣引用一維數(shù)組元素6.1.3 一維數(shù)組的初始化6.1.4 一維數(shù)組程序舉例,6.1.1怎樣定義一維數(shù)組,一維數(shù)組是數(shù)組中最簡單的它

3、的元素只需要用數(shù)組名加一個(gè)下標(biāo),就能惟一確定要使用數(shù)組,必須在程序中先定義數(shù)組,6.1.1怎樣定義一維數(shù)組,定義一維數(shù)組的一般形式為: 類型符 數(shù)組名[常量表達(dá)式];數(shù)組名的命名規(guī)則和變量名相同如 int a[10];,,數(shù)組名,6.1.1怎樣定義一維數(shù)組,定義一維數(shù)組的一般形式為: 類型符 數(shù)組名[常量表達(dá)式];數(shù)組名的命名規(guī)則和變量名相同如 int a[10];,,數(shù)組長度,6.1.1怎樣定義一維數(shù)組,

4、定義一維數(shù)組的一般形式為: 類型符 數(shù)組名[常量表達(dá)式];數(shù)組名的命名規(guī)則和變量名相同如 int a[10];10個(gè)元素:a[0],a[1],a[2],…,a[9],,每個(gè)元素的數(shù)據(jù)類型,6.1.1怎樣定義一維數(shù)組,定義一維數(shù)組的一般形式為: 類型符 數(shù)組名[常量表達(dá)式];int a[4+6]; 合法int n=10; int a[n];,不合法,6.1.2 怎樣引用一維數(shù)組元素,在定義數(shù)組并對(duì)其中各元

5、素賦值后,就可以引用數(shù)組中的元素注意:只能引用數(shù)組元素而不能一次整體調(diào)用整個(gè)數(shù)組全部元素的值,6.1.2 怎樣引用一維數(shù)組元素,引用數(shù)組元素的表示形式為: 數(shù)組名[下標(biāo)]如a[0]=a[5]+a[7]-a[2*3] 合法int n=5,a[10];a[n]=20;,合法,6.1.2 怎樣引用一維數(shù)組元素,例6.1 對(duì)10個(gè)數(shù)組元素依次賦值為0,1, 2,3,4,5,6,7,8,9,要求按逆序輸出

6、。解題思路:定義一個(gè)長度為10的數(shù)組,數(shù)組定義為整型要賦的值是從0到9,可以用循環(huán)來賦值用循環(huán)按下標(biāo)從大到小輸出這10個(gè)元素,#include int main() { int i,a[10]; for (i=0; i=0; i--) printf("%d ",a[i]); printf("\n"); return 0; },,使a[

7、0]~a[9]的值為0~9,a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9],#include int main() { int i,a[10]; for (i=0; i=0; i--) printf("%d ",a[i]); printf("\n"); return 0; },,先輸出a[9],最后輸出a[0

8、],a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9],6.1.3一維數(shù)組的初始化,在定義數(shù)組的同時(shí),給各數(shù)組元素賦值int a[10]={0,1,2,3,4,5,6,7,8,9};int a[10]={0,1,2,3,4};相當(dāng)于 int a[10]={0,1,2,3,4,0,0,0,0,0};int a[10]={0,0,0,0,0,0,0,0,0,0};相當(dāng)于 int a[10]={

9、0};int a[5]={1,2,3,4,5};可寫為 int a[ ]={1,2,3,4,5};,6.1.4一維數(shù)組程序舉例,例6.2 用數(shù)組處理求Fibonacci數(shù)列問題解題思路:例5.8中用簡單變量處理的,缺點(diǎn)不能在內(nèi)存中保存這些數(shù)。假如想直接輸出數(shù)列中第25個(gè)數(shù),是很困難的。如果用數(shù)組處理,每一個(gè)數(shù)組元素代表數(shù)列中的一個(gè)數(shù),依次求出各數(shù)并存放在相應(yīng)的數(shù)組元素中,#include int main() { i

10、nt i; int f[20]={1,1}; for(i=2;i<20;i++) f[i]=f[i-2]+f[i-1]; for(i=0;i<20;i++) { if(i%5==0) printf(“\n”); printf(“%12d”,f[i]);

11、 } printf("\n"); return 0;},例6.3 有10個(gè)地區(qū)的面積,要求對(duì)它們按由小到大的順序排列。解題思路:排序的規(guī)律有兩種:一種是“升序”,從小到大;另一種是“降序”,從大到小把題目抽象為:“對(duì)n個(gè)數(shù)按升序排序”采用起泡法排序,985420,,,895420,,,859420,,,854920,,,854

12、290,,,854209,,大數(shù)沉淀,小數(shù)起泡,a[0]a[1]a[2]a[3]a[4]a[5],for(i=0;ia[i+1]) { t=a[i];a[i]=a[i+1];a[i+1]=t; },854209,584209,,,,,548209,,,542809,,,542089,,a[0]a[1]a[2]a[3]a[4]a[5],

13、for(i=0;ia[i+1]) { t=a[i];a[i]=a[i+1];a[i+1]=t; },542089,,,452089,,,425089,,,420589,,a[0]a[1]a[2]a[3]a[4]a[5],for(i=0;ia[i+1]) { t=a[i];a[i]=a[i+1];a[i+1]=t; },420589,,,24

14、0589,,,204589,,a[0]a[1]a[2]a[3]a[4]a[5],for(i=0;ia[i+1]) { t=a[i];a[i]=a[i+1];a[i+1]=t; },204589,,,024589,,a[0]a[1]a[2]a[3]a[4]a[5],for(i=0;ia[i+1]) { t=a[i];a[i]=a[i+1];a[i

15、+1]=t; },for(i=0;ia[i+1]) { ……},for(i=0;ia[i+1]) { ……},for(i=0;ia[i+1]) { ……},……,for(i=0;ia[i+1]) { ……},for(j=0;j<5;j++),int a[10]; int i,j,t;printf("input 10 numbers :\n&qu

16、ot;);for (i=0;ia[i+1]) {t=a[i];a[i]=a[i+1];a[i+1]=t;}printf("the sorted numbers :\n");for(i=0;i<10;i++) printf("%d ",a[i]);printf("\n");,6.2 怎樣定義和引用二維數(shù)組,1分隊(duì),2分隊(duì),3分隊(duì),隊(duì)員1,隊(duì)員2,隊(duì)員3

17、,隊(duì)員4,隊(duì)員5,隊(duì)員6,float pay[3][6];,6.2.1怎樣定義二維數(shù)組6.2.2怎樣引用二維數(shù)組的元素6.2.3二維數(shù)組的初始化6.2.4二維數(shù)組程序舉例,6.2 怎樣定義和引用二維數(shù)組,二維數(shù)組定義的一般形式為 類型符 數(shù)組名[常量表達(dá)式][常量表達(dá)式]; 如:float a[3][4],b[5][10];二維數(shù)組可被看作是一種特殊的一維數(shù)組: 它的元素又是一個(gè)一維數(shù)組例如,把a(bǔ)

18、看作是一個(gè)一維數(shù)組,它有3個(gè)元素: a[0]、a[1]、a[2]每個(gè)元素又是一個(gè)包含4個(gè)元素的一維數(shù)組,6.2.1怎樣定義二維數(shù)組,a[0],a[1],a[2],邏輯存儲(chǔ),內(nèi)存中的存儲(chǔ)順序,二維數(shù)組元素的表示形式為: 數(shù)組名[下標(biāo)][下標(biāo)] b[1][2]=a[2][3]/2 合法for(i=0;i<m;i++) printf(“%d,%d\n”,a[i][0]

19、,a[0][i]);合法,6.2.2怎樣引用二維數(shù)組的元素,int a[3][4]={{1,2,3,4},{5,6,7,8}, {9,10,11,12}};int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};int a[3][4]={{1},{5},{9}};等價(jià)于int a[3][4]={{1,0,0,0},{5,0,0,0},

20、 {9,0,0,0}};int a[3][4]={{1},{5,6}};相當(dāng)于int a[3][4]={{1},{5,6},{0}};,6.2.3二維數(shù)組的初始化,int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};等價(jià)于:int a[ ][4]={1,2,3,4,5,6,7,8,9,10,11,12};int a[][4]={{0,0,3},{

21、},{0,10}};合法,6.2.3二維數(shù)組的初始化,例6.4 將一個(gè)二維數(shù)組行和列的元素互換,存到另一個(gè)二維數(shù)組中。,6.2.4二維數(shù)組程序舉例,,,,解題思路:可以定義兩個(gè)數(shù)組:數(shù)組a為2行3列,存放指定的6個(gè)數(shù)數(shù)組b為3行2列,開始時(shí)未賦值將a數(shù)組中的元素a[i][j]存放到b數(shù)組中的b[j][i]元素中用嵌套的for循環(huán)完成,6.2.4二維數(shù)組程序舉例,,,#include int main() { int a[2

22、][3]={{1,2,3},{4,5,6}}; int b[3][2],i,j; printf("array a:\n"); for (i=0;i<=1;i++) { for (j=0;j<=2;j++) { printf("%5d",a[i][j]); b[j][i]=a[i][j];

23、 } printf("\n"); },,,處理a的一行中各元素,處理a中某一列元素,輸出a的各元素,a元素值賦給b相應(yīng)元素,printf("array b:\n"); for (i=0;i<=2;i++) { for(j=0;j<=1;j++) printf("%5d",b[i

24、][j]); printf("\n"); } return 0;},,,輸出b的各元素,例6.5 有一個(gè)3×4的矩陣,要求編程序求出其中值最大的那個(gè)元素的值,以及其所在的行號(hào)和列號(hào)。解題思路:采用“打擂臺(tái)算法”先找出任一人站在臺(tái)上,第2人上去與之比武,勝者留在臺(tái)上第3人與臺(tái)上的人比武,勝者留臺(tái)上,敗者下臺(tái)以后每一個(gè)人都是與當(dāng)時(shí)留在臺(tái)上的人比武,直到所有人都上臺(tái)比為止

25、,最后留在臺(tái)上的是冠軍,,,例6.5 有一個(gè)3×4的矩陣,要求編程序求出其中值最大的那個(gè)元素的值,以及其所在的行號(hào)和列號(hào)。解題思路:采用“打擂臺(tái)算法”先把a(bǔ)[0][0]的值賦給變量maxmax用來存放當(dāng)前已知的最大值a[0][1]與max比較,如果a[0][1]>max,則表示a[0][1]是已經(jīng)比過的數(shù)據(jù)中值最大的,把它的值賦給max,取代了max的原值以后依此處理,最后max就是最大的值,,,記行號(hào),……

26、 int i,j,row=0,colum=0,max; int a[3][4]={{1,2,3,4},{9,8,7,6}, {-10,10,-5,2}}; max=a[0][0]; for (i=0;imax) { max=a[i][j]; row=i; colum=j; } printf(

27、"max=%d\nrow=%d\n colum=%d\n",max,row,colum);……,,,記最大值,記列號(hào),6.3.1怎樣定義字符數(shù)組6.3.2字符數(shù)組的初始化6.3.3怎樣引用字符數(shù)組中的元素6.3.4字符串和字符串結(jié)束標(biāo)志6.3.5 字符數(shù)組的輸入輸出6.3.6善于使用字符串處理函數(shù)6.3.7字符數(shù)組應(yīng)用舉例,6.3 字符數(shù)組,,,用來存放字符數(shù)據(jù)的數(shù)組是字符數(shù)組

28、字符數(shù)組中的一個(gè)元素存放一個(gè)字符定義字符數(shù)組的方法與定義數(shù)值型數(shù)組的方法類似,6.3.1怎樣定義字符數(shù)組,,,char c[10];c[0]=’I’; c[1]=’ ’;c[2]=’a’; c[3]=’m’;c[4]=’ ’; c[5]=’h’; c[6]=’a’; c[7]=’p’; c[8]=’p’; c[9]=’y’;,6.3.1怎樣定義字符數(shù)組,,,c[0]c[1]c[2]c[3]c[4]c[5]

29、c[6]c[7]c[8]c[9],char c[10]={’I’,’ ’,’a’,’m’,’ ’,’h’,’a’,’p’,’p’,’y’}; char c[10]={’c’,’ ’,’p’,’r’,’o’,’g’,’r’,’a’,’m’};,6.3.2字符數(shù)組的初始化,,,c[0]c[1]c[2]c[3]c[4]c[5]c[6]c[7]c[8]c[9],c[0]c[1]c[2]c[3]c[4]c[5]c[6]c[7]c[8]c

30、[9],char diamond[5][5]={{’ ’,’ ’,’*’}, {’ ’,’*’,’ ’,’*’}, {’*’,’ ’,’ ’,’ ’,’*’}, {’ ’,’*’,’ ’,’*’},

31、 {’ ’,’ ’,’*’} };,6.3.2字符數(shù)組的初始化,,,例6.6 輸出一個(gè)已知的字符串。解題思路:定義一個(gè)字符數(shù)組,并用“初始化列表”對(duì)其賦以初值用循環(huán)逐個(gè)輸出此字符數(shù)組中的字符,6.3.3怎樣引用字符數(shù)組中的元素,,,#include int main() { char c[15]={'I',' ','a',&

32、#39;m',' ','a', ' ','s','t','u','d','e','n','t','.'}; int i; for(i=0;i<15;i++) printf("%c&q

33、uot;,c[i]); printf("\n"); return 0;},6.3.3怎樣引用字符數(shù)組中的元素,,,例6.7 輸出一個(gè)菱形圖。解題思路:定義一個(gè)字符型的二維數(shù)組,用“初始化列表”進(jìn)行初始化用嵌套的for循環(huán)輸出字符數(shù)組中的所有元素。,6.3.3怎樣引用字符數(shù)組中的元素,,,#include int main(){ char diamond[][5]={{' '

34、;,' ','*'}, {' ','*',' ','*'},{'*',' ',' ',' ','*'}, {' ','*',' ','*'},

35、{' ',' ','*'}}; int i,j; for (i=0;i<5;i++) {for (j=0;j<5;j++) printf("%c",diamond[i][j]); printf("\n"); } return 0;},,,在C語言中,是將字符串作為字符數(shù)組來處理的

36、關(guān)心的是字符串的有效長度而不是字符數(shù)組的長度為了測定字符串的實(shí)際長度,C語言規(guī)定了字符串結(jié)束標(biāo)志’\0’,6.3.4字符串和字符串結(jié)束標(biāo)志,,,’\0’代表ASCII碼為0的字符從ASCII碼表可以查到,ASCII碼為0的字符不是一個(gè)可以顯示的字符,而是一個(gè)“空操作符”,即它什么也不做用它作為字符串結(jié)束標(biāo)志不會(huì)產(chǎn)生附加的操作或增加有效字符,只起一個(gè)供辨別的標(biāo)志,6.3.4字符串和字符串結(jié)束標(biāo)志,,,char c[]={”I am

37、 happy”};可寫成char c[]=”I am happy”;相當(dāng)于char c[11]={”I am happy”};,6.3.4字符串和字符串結(jié)束標(biāo)志,,,char c[10]={”China”};可寫成char c[10]=”China”;從c[5]開始,元素值均為\0只顯示printf(”%s”,c);,6.3.4字符串和字符串結(jié)束標(biāo)志,,,,字符數(shù)組的輸入輸出可以有兩種方法: 逐個(gè)字符輸入

38、輸出(%c) 整個(gè)字符串一次輸入輸出(%s)輸出的字符中不包括結(jié)束符’\0’用%s輸出字符串時(shí),printf函數(shù)中的輸出項(xiàng)是字符數(shù)組名,不是數(shù)組元素名,6.3.5 字符數(shù)組的輸入輸出,,,如果一個(gè)字符數(shù)組中包含多個(gè)’\0’,則遇第一個(gè)’\0’時(shí)輸出就結(jié)束可以用scanf函數(shù)輸入一個(gè)字符串scanf函數(shù)中的輸入項(xiàng)c是已定義的字符數(shù)組名,輸入的字符串應(yīng)短于已定義的字符數(shù)組的長度,6.3.5 字符數(shù)組的輸入輸出,,,char c[6

39、];scanf(”%s”,c); China↙系統(tǒng)自動(dòng)在China后面加一個(gè)’\0’,6.3.5 字符數(shù)組的輸入輸出,,,char str1[5],str2[5],str3[5];scanf(”%s%s%s”,str1,str2,str3);How are you? ↙,6.3.5 字符數(shù)組的輸入輸出,,,str1,str2,str3,在C函數(shù)庫中提供了一些用來專門處理字符串的函數(shù),使用方便,6.3.6 善于使用字符串處理函

40、數(shù),,,1.puts函數(shù)----輸出字符串的函數(shù)其一般形式為: puts (字符數(shù)組)作用是將一個(gè)字符串輸出到終端char str[20]=”China”;puts(str); 輸出China,6.3.6 善于使用字符串處理函數(shù),,,2. gets函數(shù)----輸入字符串的函數(shù)其一般形式為: gets(字符數(shù)組)作用是輸入一個(gè)字符串到字符數(shù)組char str[20];gets(s

41、tr); Computer↙,6.3.6 善于使用字符串處理函數(shù),,,3. strcat函數(shù)----字符串連接函數(shù)其一般形式為: strcat(字符數(shù)組1,字符數(shù)組2)其作用是把兩個(gè)字符串連接起來,把字符串2接到字符串1的后面,結(jié)果放在字符數(shù)組1中,6.3.6 善于使用字符串處理函數(shù),,,使用字符串函數(shù)時(shí),在程序開頭用#include ,3. strcat函數(shù)----字符串連接函數(shù) char str1[30]=”P

42、eople”; char str2[]=”China”; printf(”%s”, strcat(str1,str2)); 輸出:PeopleChina,6.3.6 善于使用字符串處理函數(shù),,,,要足夠大,4. strcpy和strncpy函數(shù)-字符串復(fù)制strcpy一般形式為: strcpy(字符數(shù)組1,字符串2)作用是將字符串2復(fù)制到字符數(shù)組1中去char str1[10],str2[]=”China

43、”;strcpy(str1,str2);,6.3.6 善于使用字符串處理函數(shù),,,str1,4. strcpy和strncpy函數(shù)-字符串復(fù)制strcpy一般形式為: strcpy(字符數(shù)組1,字符串2)作用是將字符串2復(fù)制到字符數(shù)組1中去char str1[10],str2[]=”China”;strcpy(str1,str2);,6.3.6 善于使用字符串處理函數(shù),,,str1,要足夠大,,4. strcpy和st

44、rncpy函數(shù)-字符串復(fù)制strcpy一般形式為: strcpy(字符數(shù)組1,字符串2)作用是將字符串2復(fù)制到字符數(shù)組1中去char str1[10],str2[]=”China”;strcpy(str1,str2);,6.3.6 善于使用字符串處理函數(shù),,,,數(shù)組名形式,4. strcpy和strncpy函數(shù)-字符串復(fù)制strcpy一般形式為: strcpy(字符數(shù)組1,字符串2)作用是將字符串2復(fù)制到字符

45、數(shù)組1中去char str1[10],str2[]=”China”;strcpy(str1,str2);,6.3.6 善于使用字符串處理函數(shù),,,,數(shù)組名或字符串常量,4. strcpy和strncpy函數(shù)-字符串復(fù)制strcpy一般形式為: strcpy(字符數(shù)組1,字符串2)作用是將字符串2復(fù)制到字符數(shù)組1中去char str1[10],str2[]=”China”;strcpy(str1,str2); 相當(dāng)于

46、strcpy(str1,”China”);,6.3.6 善于使用字符串處理函數(shù),,,4. strcpy和strncpy函數(shù)-字符串復(fù)制 char str1[10],str2[]=”China”; str1=”China”; 錯(cuò)誤 str1=str2; 錯(cuò)誤,6.3.6 善于使用字符串處理函數(shù),,,4. strcpy和strncpy函數(shù)-字符串復(fù)制可以用strncpy函數(shù)將字符串2中前面n個(gè)字符復(fù)

47、制到字符數(shù)組1中去strncpy(str1,str2,2);作用是將str2中最前面2個(gè)字符復(fù)制到str1中,取代str1中原有的最前面2個(gè)字符復(fù)制的字符個(gè)數(shù)n不應(yīng)多于str1中原有的字符,6.3.6 善于使用字符串處理函數(shù),,,5. strcmp函數(shù)----字符串比較函數(shù)其一般形式為 strcmp(字符串1,字符串2)作用是比較字符串1和字符串2strcmp(str1,str2);strcmp(”China”,

48、”Korea”);strcmp(str1,”Beijing”);,6.3.6 善于使用字符串處理函數(shù),,,5. strcmp函數(shù)----字符串比較函數(shù)字符串比較的規(guī)則是:將兩個(gè)字符串自左至右逐個(gè)字符相比,直到出現(xiàn)不同的字符或遇到’\0’為止如全部字符相同,認(rèn)為兩個(gè)字符串相等若出現(xiàn)不相同的字符,則以第一對(duì)不相同的字符的比較結(jié)果為準(zhǔn),6.3.6 善于使用字符串處理函數(shù),,,5. strcmp函數(shù)----字符串比較函數(shù) ”A””

49、A” ”computer”>”compare” ”these”>”that” ”1A”>”$20” ”CHINA”>”CANADA” ”DOG””TSINGHUA”,6.3.6 善于使用字符串處理函數(shù),,,5. strcmp函數(shù)----字符串比較函數(shù)比較的結(jié)果由函數(shù)值帶回如果字符串1=字符串2,則函數(shù)值為0如果字符串1>字符串2,則函數(shù)值為一個(gè)正整數(shù)如果字符串1<字

50、符串2,則函數(shù)值為一個(gè)負(fù)整數(shù),6.3.6 善于使用字符串處理函數(shù),,,5. strcmp函數(shù)----字符串比較函數(shù)if(str1>str2) printf(”yes”); 錯(cuò)誤if(strcmp(str1,str2)>0) printf(”yes”); 正確,6.3.6 善于使用字符串處理函數(shù),,,6. strlen函數(shù)----測字符串長度的函數(shù)其一般形式為: strlen (字符

51、數(shù)組)它是測試字符串長度的函數(shù)函數(shù)的值為字符串中的實(shí)際長度,6.3.6 善于使用字符串處理函數(shù),,,6. strlen函數(shù)----測字符串長度的函數(shù) char str[10]=”China”; printf(”%d”,strlen(str));輸出結(jié)果是5也可以直接測試字符串常量的長度 strlen(”China”);,6.3.6 善于使用字符串處理函數(shù),,,7. strlwr函數(shù)----轉(zhuǎn)換為小寫

52、的函數(shù)其一般形式為 strlwr (字符串)函數(shù)的作用是將字符串中大寫字母換成小寫字母,6.3.6 善于使用字符串處理函數(shù),,,8. strupr函數(shù)----轉(zhuǎn)換為大寫的函數(shù)其一般形式為 strupr (字符串)函數(shù)的作用是將字符串中小寫字母換成大寫字母,6.3.6 善于使用字符串處理函數(shù),,,例6.8 輸入一行字符,統(tǒng)計(jì)其中有多少個(gè)單詞,單詞之間用空格分隔開。解題思路:問題的關(guān)鍵是怎樣確定“出現(xiàn)一

53、個(gè)新單詞了”從第1個(gè)字符開始逐個(gè)字符進(jìn)行檢查,判斷此字符是否是新單詞的開頭,如果是,就使變量num的值加1,最后得到的num的值就是單詞總數(shù),6.3.7字符數(shù)組應(yīng)用舉例,,,判斷是否出現(xiàn)新單詞,可以由是否有空格出現(xiàn)來決定(連續(xù)的若干個(gè)空格作為出現(xiàn)一次空格;一行開頭的空格不統(tǒng)計(jì)在內(nèi))如果測出某一個(gè)字符為非空格,而它的前面的字符是空格,則表示“新的單詞開始了”,此時(shí)使num累加1如果當(dāng)前字符為非空格而其前面的字符也是非空格,則num不

54、應(yīng)再累加1,6.3.7字符數(shù)組應(yīng)用舉例,,,用變量word作為判別當(dāng)前是否開始了一個(gè)新單詞的標(biāo)志,若word=0表示未出現(xiàn)新單詞,如出現(xiàn)了新單詞,就把word置成1前面一個(gè)字符是否空格可以從word的值看出來,若word等于0,則表示前一個(gè)字符是空格;如果word等于1,意味著前一個(gè)字符為非空格,6.3.7字符數(shù)組應(yīng)用舉例,,,,,Y,c=空格,word=0,N,word=0,Y,word=1num++,N,if(c=='

55、') word=0; else if(word==0){ word=1; num++; },,,…… char string[81],c; int i,num=0,word=0; gets(string); for (i=0;(c=s

56、tring[i])!=‘\0’;i++) if(c==‘ ’) word=0; else if(word==0) { word=1; num++; } printf(“%d words\n”,num); ……,,一定要設(shè)初始值,…… char string[81],c; int i,num=0,word=0; gets(strin

57、g); for (i=0;(c=string[i])!=‘\0’;i++) if(c==‘ ’) word=0; else if(word==0) { word=1; num++; } printf(“%d words\n”,num); ……,,相當(dāng)于c=string[i];c!=‘

58、\0’,例6.9 有3個(gè)字符串,要求找出其中最大者。解題思路:設(shè)一個(gè)二維的字符數(shù)組str,大小為3×10。每一行存放一個(gè)字符串 char str[3][10];,,,for (i=0;i<3;i++) gets (str[i]);,,,str[0],str[1],str[2],可以把str[0],str[1],str[2]看作3個(gè)一維字符數(shù)組,可以把它們?nèi)缤痪S數(shù)組那樣進(jìn)行處理,經(jīng)過三次兩兩比較,就可

59、得到值最大者,把它放在一維字符數(shù)組string中 if (strcmp(str[0],str[1])>0) strcpy(string,str[0]); else strcpy(string,str[1]); if (strcmp(str[2],string)>0) strcpy(string,str[2]);,,,#include#includ

60、eint main ( ){char str[3][10]; char string[10]; int i; for (i=0;i0) strcpy(string,str[0]); else strcpy(string,str[1]); if (strcmp(str[2],string)>0) strcpy(string,str

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲(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)論