資源描述:
《C語言使用教程.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第5章同類型數(shù)據(jù)集合主要內(nèi)容數(shù)組與數(shù)組元素、一維數(shù)組、二維數(shù)組、多維數(shù)組、字符數(shù)組字符串處理函數(shù)指向字符串的指針變量5.1數(shù)組與數(shù)組元素的概念由若干類型相同的數(shù)據(jù)按一定順序存儲所形成的有序集合,稱為數(shù)組(Array)。通常,用某個名字標(biāo)識這個集合,這個名字稱為數(shù)組名。構(gòu)成數(shù)組的每個數(shù)據(jù)項稱為數(shù)組的元素,同一數(shù)組中的元素必須具有相同的數(shù)據(jù)類型。同一數(shù)組中的數(shù)組元素在內(nèi)存中占據(jù)的地址空間是連續(xù)的。數(shù)組定義的一般形式為:類型標(biāo)識符數(shù)組名[常量表達(dá)式1][常量表達(dá)式2]……;數(shù)組首地址(1)數(shù)組的下標(biāo)必
2、須使用整型常量或整型常量表達(dá)式。C語言中不允許用變量作為下標(biāo),對數(shù)組進(jìn)行動態(tài)定義。例如,#defineN10intnScore[N];intn=3;intnScore[n];/*不正確的定義方式*/(2)C語言規(guī)定數(shù)組的下標(biāo)都是從0開始的。說 明(3)數(shù)組的存儲結(jié)構(gòu):數(shù)組一經(jīng)定義,系統(tǒng)則根據(jù)數(shù)組的數(shù)據(jù)類型為每一個元素安排相同長度的、連續(xù)的存儲單元,而且,C語言的數(shù)組在內(nèi)存中是按行存放的,即存完第一行后存第二行,然后存第三行,······,以此類推。(4)數(shù)組元素的作用相當(dāng)于簡單變量。(5)用si
3、zeof來計算類型長度。說 明5.2數(shù)組與數(shù)組元素的概念5.2.1一維數(shù)組的定義一維數(shù)組定義的一般形式為:類型說明符數(shù)組名[常量表達(dá)式];inta[5];例5-1查看數(shù)組nArray[10]的內(nèi)存占用情況。問題分析通過不同的輸出方式,能夠看到數(shù)組名(nArray)和&數(shù)組元素(&nArray[0])等表示的含義。數(shù)組名nArray表示數(shù)組的首地址,同數(shù)組nArray[0]的地址相同。不同的數(shù)組類型在內(nèi)存中占有的字節(jié)數(shù)不同。程序?qū)崿F(xiàn)5.2.2一維數(shù)組的初始化數(shù)據(jù)類型數(shù)組名[數(shù)組元素個數(shù)]={值1,
4、值2,…,值n};或數(shù)據(jù)類型數(shù)組名[]={值1,值2,…,值n};2.用賦值語句初始化用賦值語句初始化是在程序執(zhí)行時實現(xiàn)的。1.在數(shù)組定義時初始化定義數(shù)組時對數(shù)組元素賦初值:inta[5]={1,2,3,4,5};只給部分元素賦初值對全部元素賦初值時,可以不指定長度:inta[]={1,2,3,4,5};inta[5]={1,2,3};inta[5]={0};其余元素初值為零程序?qū)崿F(xiàn)例5-2用賦值語句初始化數(shù)組nNum[10],然后按逆序輸出數(shù)組nNum[10]中元素。問題分析輸入一組數(shù),值為0
5、~9,然后按逆序輸出。引用形式數(shù)組名[下標(biāo)]說明下標(biāo)即可以是整型常量或整型表達(dá)式,也可以是含有已賦值的整型變量或整型變量表達(dá)式數(shù)組下標(biāo)范圍為0~(N-1)(N為數(shù)組長度)注意:防止數(shù)組下標(biāo)越界舉例a[0]=a[5]+a[j]*3;5.2.3一維數(shù)組的引用例:intdata[5];data[5]=10;C語言對數(shù)組不作越界檢查,使用時要注意只能逐個對數(shù)組元素進(jìn)行操作(字符數(shù)組例外)輸入方法:inta[10],i;輸入第i個數(shù)組元素:scanf("%d",&a[i]);輸入整個數(shù)組元素:for(i=
6、0;i<10;i++)scanf("%d",&a[i]);輸出方法:輸出第i個數(shù)組元素:printf("%d",a[i]);輸出整個數(shù)組元素:for(i=0;i<10;i++)printf("%d",a[i]);一維數(shù)組的輸入和輸出例5-3求數(shù)組nAarr[10]中各元素的和。#include/*求數(shù)組中各元素的和*/voidmain(){inti,nArr[10],nSum;nSum=0;printf("請輸入10個整數(shù):");for(i=0;i<10;i++)scanf
7、("%d",&nArr[i]);for(i=0;i<10;i++)nSum+=nArr[i];printf("nSumis%d",nSum);}程序?qū)崿F(xiàn)5.2.4一維數(shù)組程序舉例例5-4編寫程序,每名學(xué)生有四門課考試成績,用一維數(shù)組實現(xiàn)計算每個學(xué)生的平均成績。問題分析由于該例題只要求計算平均成績,因此可以用4個整型數(shù)組存放數(shù)學(xué)、物理、英語和計算機(jī)的成績,用一個實型數(shù)組存放每個學(xué)生的平均成績。程序可按如下步驟實現(xiàn):1)輸入數(shù)據(jù),把數(shù)學(xué)、物理、英語、計算機(jī)成績分別存放在數(shù)組nMath,nPhys
8、ics,nEnglish,nComputer中。2)計算平均成績,將結(jié)果放在dAverage數(shù)組中。3)輸出結(jié)果。解決方案例5-4編寫程序,每名學(xué)生有四門課考試成績,用一維數(shù)組實現(xiàn)計算每個學(xué)生的平均成績。程序?qū)崿F(xiàn)5.3相同類型數(shù)據(jù)的二維及多維存儲5.3.1二維數(shù)組的定義二維數(shù)組定義的一般形式是:類型說明符數(shù)組名[常量表達(dá)式1][常量表達(dá)式2];二維數(shù)組在內(nèi)存中的存儲:inta[3][2]a[0][1]a[1][0]a[1][1]a[2][0]a[2][1]014523a[0][0]a[0][0]