【人教部編版小學語文】太空生活趣事多精美課件2_第1頁
【人教部編版小學語文】太空生活趣事多精美課件2_第2頁
【人教部編版小學語文】太空生活趣事多精美課件2_第3頁
【人教部編版小學語文】太空生活趣事多精美課件2_第4頁
【人教部編版小學語文】太空生活趣事多精美課件2_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第5章利用數(shù)組處理批量數(shù)據(jù)第5章利用數(shù)組處理批量數(shù)據(jù)1如果有1000名學生,每個學生有一個成績,需要求這1000名學生的平均成績。如果有1000名學生,每個學生有一個成績,需要求這1000名2數(shù)組是一組同構有序數(shù)據(jù)的集合。數(shù)組中各數(shù)據(jù)的排列是有一定規(guī)律的,下標代表數(shù)據(jù)在數(shù)組中的序號用一個數(shù)組名和下標惟一確定數(shù)組中的元素數(shù)組中的每一個元素都屬于同一個數(shù)據(jù)類型數(shù)組是一組同構有序數(shù)據(jù)的集合。數(shù)組中各數(shù)據(jù)的排列是有一定規(guī)律35.1怎樣定義和引用一維數(shù)組5.2怎樣定義和引用二維數(shù)組5.3字符數(shù)組5.1怎樣定義和引用一維數(shù)組45.1怎樣定義和引用一維數(shù)組5.1.1怎樣定義一維數(shù)組5.1.2怎樣引用一維數(shù)組元素5.1.3一維數(shù)組的初始化5.1.4一維數(shù)組程序舉例5.1怎樣定義和引用一維數(shù)組5.1.1怎樣定義一維數(shù)組55.1.1怎樣定義一維數(shù)組定義一維數(shù)組的一般形式為:

類型符

數(shù)組名[常量表達式];數(shù)組名的命名規(guī)則和變量名相同如inta[10];5.1.1怎樣定義一維數(shù)組定義一維數(shù)組的一般形式為:65.1.2怎樣引用一維數(shù)組元素在定義數(shù)組并對其中各元素賦值后,就可以引用數(shù)組中的元素注意:只能引用數(shù)組元素而不能一次整體調(diào)用整個數(shù)組全部元素的值5.1.2怎樣引用一維數(shù)組元素在定義數(shù)組并對其中各元素賦值75.1.2怎樣引用一維數(shù)組元素引用數(shù)組元素的表示形式為:

數(shù)組名[下標]如a[0]=a[5]+a[7]-a[2*3]合法intn=5,a[10];a[n]=20;5.1.2怎樣引用一維數(shù)組元素引用數(shù)組元素的表示形式為:85.1.2怎樣引用一維數(shù)組元素

例5.1對10個數(shù)組元素依次賦值為0,1,2,3,4,5,6,7,8,9,要求按逆序輸出。解題思路:定義一個長度為10的數(shù)組,數(shù)組定義為整型要賦的值是從0到9,可以用循環(huán)來賦值用循環(huán)按下標從大到小輸出這10個元素5.1.2怎樣引用一維數(shù)組元素例5.1對10個數(shù)組元95.1.3一維數(shù)組的初始化在定義數(shù)組的同時,給各數(shù)組元素賦值inta[10]={0,1,2,3,4,5,6,7,8,9};inta[10]={0,1,2,3,4};相當于inta[10]={0,1,2,3,4,0,0,0,0,0};inta[10]={0,0,0,0,0,0,0,0,0,0};相當于inta[10]={0};inta[5]={1,2,3,4,5};可寫為inta[]={1,2,3,4,5};5.1.3一維數(shù)組的初始化在定義數(shù)組的同時,給各數(shù)組元素賦值105.1.4一維數(shù)組程序舉例

例5.2用數(shù)組處理求Fibonacci數(shù)列問題解題思路:前面例子中用簡單變量處理的,缺點不能在內(nèi)存中保存這些數(shù)。假如想直接輸出數(shù)列中第25個數(shù),是很困難的。如果用數(shù)組處理,每一個數(shù)組元素代表數(shù)列中的一個數(shù),依次求出各數(shù)并存放在相應的數(shù)組元素中5.1.4一維數(shù)組程序舉例例5.2用數(shù)組處理求Fib11

例5.3有10個地區(qū)的面積,要求對它們按由小到大的順序排列。解題思路:排序的規(guī)律有兩種:一種是“升序”,從小到大;另一種是“降序”,從大到小把題目抽象為:“對n個數(shù)按升序排序”采用起泡法排序例5.3有10個地區(qū)的面積,要求對它們按由小到大的順125.2怎樣定義和引用二維數(shù)組2456184712431600234627573045201817252020245814361427117510461976147720181231234565.2怎樣定義和引用二維數(shù)組245618471243160135.2.1怎樣定義二維數(shù)組5.2.2怎樣引用二維數(shù)組的元素5.2.3二維數(shù)組的初始化5.2.4二維數(shù)組程序舉例5.2怎樣定義和引用二維數(shù)組5.2.1怎樣定義二維數(shù)組5.2怎樣定義和引用二維數(shù)組14二維數(shù)組定義的一般形式為

類型符數(shù)組名[常量表達式][常量表達式];如:floata[3][4],b[5][10];二維數(shù)組可被看作是一種特殊的一維數(shù)組:

它的元素又是一個一維數(shù)組5.2.1怎樣定義二維數(shù)組二維數(shù)組定義的一般形式為5.2.1怎樣定義二維數(shù)組15a[0][0]a[0][1]a[0][2]a[0][3]a[1][0]a[1][1]a[1][2]a[1][3]a[2][0]a[2][1]a[2][2]a[2][3]a[0]a[1]a[2]a[0][0]a[0][1]a[0][2]a[0][3]a[16a[0][0]a[0][1]a[0][2]a[0][3]a[1][0]a[1][1]a[1][2]a[1][3]a[2][0]a[2][1]a[2][2]a[2][3]邏輯存儲內(nèi)存中的存儲順序a[0][0]a[0][1]a[0][2]a[0][3]a[17二維數(shù)組元素的表示形式為:

數(shù)組名[下標][下標]

b[1][2]=a[2][3]/2合法for(i=0;i<m;i++)printf(“%d,%d\n”,a[i][0],a[0][i]);合法5.2.2怎樣引用二維數(shù)組的元素二維數(shù)組元素的表示形式為:5.2.2怎樣引用二維數(shù)組的元素18inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};inta[3][4]={{1},{5},{9}};等價于inta[3][4]={{1,0,0,0},{5,0,0,0},{9,0,0,0}};inta[3][4]={{1},{5,6}};相當于inta[3][4]={{1},{5,6},{0}};5.2.3二維數(shù)組的初始化inta[3][4]={{1,2,3,4},{5,6,7,19inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};等價于:inta[][4]={1,2,3,4,5,6,7,8,9,10,11,12};5.2.3二維數(shù)組的初始化inta[3][4]={1,2,3,4,5,6,7,8,920

例5.4將一個二維數(shù)組行和列的元素互換,存到另一個二維數(shù)組中。5.2.4二維數(shù)組程序舉例例5.4將一個二維數(shù)組行和列的元素互換,存到另一個二21解題思路:可以定義兩個數(shù)組:數(shù)組a為2行3列,存放指定的6個數(shù)數(shù)組b為3行2列,開始時未賦值將a數(shù)組中的元素a[i][j]存放到b數(shù)組中的b[j][i]元素中用嵌套的for循環(huán)完成5.2.4二維數(shù)組程序舉例解題思路:5.2.4二維數(shù)組程序舉例22

例5.5有一個3×4的矩陣,要求編程序求出其中值最大的那個元素的值,以及其所在的行號和列號。解題思路:采用“打擂臺算法”先找出任一人站在臺上,第2人上去與之比武,勝者留在臺上第3人與臺上的人比武,勝者留臺上,敗者下臺以后每一個人都是與當時留在臺上的人比武,直到所有人都上臺比為止,最后留在臺上的是冠軍例5.5有一個3×4的矩陣,要求編程序求出其中值最大235.3.1怎樣定義字符數(shù)組5.3.2字符數(shù)組的初始化5.3.3怎樣引用字符數(shù)組中的元素5.3.4字符串和字符串結束標志5.3.5字符數(shù)組的輸入輸出5.3.6善于使用字符串處理函數(shù)5.3.7字符數(shù)組應用舉例5.3字符數(shù)組5.3.1怎樣定義字符數(shù)組5.3字符數(shù)組24用來存放字符數(shù)據(jù)的數(shù)組是字符數(shù)組字符數(shù)組中的一個元素存放一個字符定義字符數(shù)組的方法與定義數(shù)值型數(shù)組的方法類似5.3.1怎樣定義字符數(shù)組用來存放字符數(shù)據(jù)的數(shù)組是字符數(shù)組5.3.1怎樣定義字符數(shù)組25charc[10]={’I’,’’,’a’,’m’,’’,’h’,’a’,’p’,’p’,’y’};charc[10]={’c’,’’,’p’,’r’,’o’,’g’,’r’,’a’,’m’};5.3.2字符數(shù)組的初始化Iam

happyc[0]c[1]c[2]c[3]c[4]c[5]c[6]c[7]c[8]c[9]cprogram\0c[0]c[1]c[2]c[3]c[4]c[5]c[6]c[7]c[8]c[9]charc[10]={’I’,’’,’a’,’m’,’26chardiamond[5][5]={{’’,’’,’*’},{’’,’*’,’’,’*’},{’*’,’’,’’,’’,’*’},{’’,’*’,’’,’*’},{’’,’’,’*’}};5.3.2字符數(shù)組的初始化chardiamond[5][5]={{’’,’’,’27例5.6輸出一個已知的字符串。解題思路:定義一個字符數(shù)組,并用“初始化列表”對其賦以初值用循環(huán)逐個輸出此字符數(shù)組中的字符5.3.3怎樣引用字符數(shù)組中的元素例5.6輸出一個已知的字符串。5.3.3怎樣引用字符數(shù)組中28例5.7輸出一個菱形圖。解題思路:定義一個字符型的二維數(shù)組,用“初始化列表”進行初始化用嵌套的for循環(huán)輸出字符數(shù)組中的所有元素。5.3.3怎樣引用字符數(shù)組中的元素例5.7輸出一個菱形圖。5.3.3怎樣引用字符數(shù)組中的元29在C語言中,是將字符串作為字符數(shù)組來處理的關心的是字符串的有效長度而不是字符數(shù)組的長度為了測定字符串的實際長度,C語言規(guī)定了字符串結束標志’\0’5.3.4字符串和字符串結束標志在C語言中,是將字符串作為字符數(shù)組來處理的5.3.4字符串和30’\0’代表ASCII碼為0的字符從ASCII碼表可以查到,ASCII碼為0的字符不是一個可以顯示的字符,而是一個“空操作符”,即它什么也不做用它作為字符串結束標志不會產(chǎn)生附加的操作或增加有效字符,只起一個供辨別的標志5.3.4字符串和字符串結束標志’\0’代表ASCII碼為0的字符5.3.4字符串和字符串31字符數(shù)組的輸入輸出可以有兩種方法:

逐個字符輸入輸出(%c)

整個字符串一次輸入輸出(%s)輸出的字符中不包括結束符’\0’用%s輸出字符串時,printf函數(shù)中的輸出項是字符數(shù)組名,不是數(shù)組元素名5.3.5字符數(shù)組的輸入輸出字符數(shù)組的輸入輸出可以有兩種方法:5.3.5字符數(shù)組的輸入32如果一個字符數(shù)組中包含多個’\0’,則遇第一個’\0’時輸出就結束可以用scanf函數(shù)輸入一個字符串scanf函數(shù)中的輸入項c是已定義的字符數(shù)組名,輸入的字符串應短于已定義的字符數(shù)組的長度5.3.5字符數(shù)組的輸入輸出如果一個字符數(shù)組中包含多個’\0’,則遇第一個’\0’時輸出33charc[6];scanf(”%s”,c);China↙系統(tǒng)自動在China后面加一個’\0’5.3.5字符數(shù)組的輸入輸出charc[6];5.3.5字符數(shù)組的輸入輸出34charstr1[5],str2[5],str3[5];scanf(”%s%s%s”,str1,str2,str3);Howareyou?↙5.3.5字符數(shù)組的輸入輸出How\0\0str1are\0\0str2you?\0str3charstr1[5],str2[5],str3[5];535在C函數(shù)庫中提供了一些用來專門處理字符串的函數(shù),使用方便5.3.6善于使用字符串處理函數(shù)在C函數(shù)庫中提供了一些用來專門處理字符串的函數(shù),使用方便5.361.puts函數(shù)----輸出字符串的函數(shù)其一般形式為:puts(字符數(shù)組)作用是將一個字符串輸出到終端charstr[20]=”China”;puts(str);

輸出China5.3.6善于使用字符串處理函數(shù)1.puts函數(shù)----輸出字符串的函數(shù)5.3.6善于使用372.gets函數(shù)----輸入字符串的函數(shù)其一般形式為:gets(字符數(shù)組)作用是輸入一個字符串到字符數(shù)組charstr[20];gets(str);

Computer↙5.3.6善于使用字符串處理函數(shù)2.gets函數(shù)----輸入字符串的函數(shù)5.3.6善于使383.strcat函數(shù)----字符串連接函數(shù)其一般形式為:strcat(字符數(shù)組1,字符數(shù)組2)其作用是把兩個字符串連接起來,把字符串2接到字符串1的后面,結果放在字符數(shù)組1中5.3.6善于使用字符串處理函數(shù)使用字符串函數(shù)時,在程序開頭用#include<string.h>3.strcat函數(shù)----字符串連接函數(shù)5.3.6善于394.strcpy函數(shù)-字符串復制strcpy一般形式為:strcpy(字符數(shù)組1,字符串2)作用是將字符串2復制到字符數(shù)組1中去charstr1[10],str2[]=”China”;strcpy(str1,str2);5.3.6善于使用字符串處理函數(shù)China\0\0\0\0\0str14.strcpy函數(shù)-字符串復制5.3.6善于使用字符串404.strncpy函數(shù)-字符串復制可以用strncpy函數(shù)將字符串2中前面n個字符復制到字符數(shù)組1中去strncpy(str1,str2,2);作用是將str2中最前面2個字符復制到str1中,取代str1中原有的最前面2個字符復制的字符個數(shù)n不應多于str1中原有的字符5.3.6善于使用字符串處理函數(shù)4.strncpy函數(shù)-字符串復制5.3.6善于使用字符415.strcmp函數(shù)----字符串比較函數(shù)其一般形式為strcmp(字符串1,字符串2)作用是比較字符串1和字符串2strcmp(str1,str2);strcmp(”China”,”Korea”);strcmp(str1,”Beijing”);5.3.6善于使用字符串處理函數(shù)5.strcmp函數(shù)----字符串比較函數(shù)5.3.6善于425.strcmp函數(shù)----字符串比較函數(shù)字符串比較的規(guī)則是:將兩個字符串自左至右逐個字符相比,直到出現(xiàn)不同的字符或遇到’\0’為止如全部字符相同,認為兩個字符串相等若出現(xiàn)不相同的字符,則以第一對不相同的字符的比較結果為準5.3.6善于使用字符串處理函數(shù)5.strcmp函數(shù)----字符串比較函數(shù)5.3.6善于435.strcmp函數(shù)----字符串比較函數(shù)比較的結果由函數(shù)值帶回如果字符串1=字符串2,則函數(shù)值為0如果字符串1>字符串2,則函數(shù)值為一個正整數(shù)如果字符串1<字符串2,則函數(shù)值為一個負整數(shù)5.3.6善于使用字符串處理函數(shù)5.strcmp函數(shù)----字符串比較函數(shù)5.3.6善于446.strlen函數(shù)----測字符串長度的函數(shù)其一般形式為:strlen(字符數(shù)組)它是測試字符串長度的函數(shù)函數(shù)的值為字符串中的實際長度5.3.6善于使用字符串處理函數(shù)6.strlen函數(shù)----測字符串長度的函數(shù)5.3.6457.strlwr函數(shù)----轉(zhuǎn)換為小寫的函數(shù)其一般形式為strlwr(字符串)函數(shù)的作用是將字符串中大寫字母換成小寫字母5.3.6善于使用字符串處理函數(shù)7.strlwr函數(shù)----轉(zhuǎn)換為小寫的函數(shù)5.3.6善468.strupr函數(shù)----轉(zhuǎn)換為大寫的函數(shù)其一般形式為strupr(字符串)函數(shù)的作用是將字符串中小寫字母換成大寫字母5.3.6善于使用字符串處理函數(shù)8.strupr函數(shù)----轉(zhuǎn)換為大寫的函數(shù)5.3.6善47例5.8有3個字符串,要求找出其中最大者。解題思路:設一個二維的字符數(shù)組str,大小為3×10。每一行存放一個字符串charstr[3][10];例5.8有3個字符串,要求找出其中最大者。481.在C語言中,引用數(shù)組元素時,其數(shù)組下標的數(shù)據(jù)類型允許是()。

A)整型常量 B)整型表達式

C)整型常量或整型表達式 D)任何類型的表達式2.以下對一維整型數(shù)組a的正確說明是()。

A)inta(10); B)intn=10,a[n];C)intn;scanf(“%d”,&n);inta[n]; D)#defineSIZE10inta[SIZE];習題1.在C語言中,引用數(shù)組元素時,其數(shù)組下標的數(shù)據(jù)類型允許是493.合法的數(shù)組定義是A.inta[]=”string”; B.inta[5]={0,1,2,3,4,5};C.chara=”string”; D.chara[]={0,1,2,3,4,5};4.若有定義和語句:chars[10];s=”abcd”;printf(“%s\n”,s);則結果是(以下u代表空格)A.輸出abcd B.輸出aC.輸出abcd uuuuu D.編譯不通過習題3.合法的數(shù)組定義是習題505.以下能對一維數(shù)組a進行正確初始化的語句是()。

A)inta[10]=(0,0,0,0,0); B)inta[10]={};C)inta[]={0}; D)inta[10]=”10*1”;6.對以下說明語句的正確理解是()。

inta[10]={6,7,8,9,10};A)將5個初值依次賦給a[1]至a[5]B)將5個初值依次賦給a[0]至a[4]C)將5個初值依次賦給a[6]至a[10]D)因為數(shù)組長度與初值的個數(shù)不相同,所以此語句不正確習題5.以下能對一維數(shù)組a進行正確初始化的語句是()。習517.若已定義數(shù)組:floata[8];則下列對數(shù)組元素引用正確的是()。Aa[0]=1; B.a[8]=a[0]; C.a=1; D.a[3.5]=1;習題7.若已定義數(shù)組:floata[8];則下列對數(shù)組元素引用528.下面程序(每行程序前面的數(shù)字表示行號)。()1main()2{3

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論