全國計算機二級C語言ppt課件-第9章-數(shù)組_第1頁
全國計算機二級C語言ppt課件-第9章-數(shù)組_第2頁
全國計算機二級C語言ppt課件-第9章-數(shù)組_第3頁
全國計算機二級C語言ppt課件-第9章-數(shù)組_第4頁
全國計算機二級C語言ppt課件-第9章-數(shù)組_第5頁
已閱讀5頁,還剩48頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

本章要點:9.1一維數(shù)組的定義和一維數(shù)組元素的引用9.2一維數(shù)組和指針9.3函數(shù)之間對一維數(shù)組和數(shù)組元素的引用

9.4一維數(shù)組應(yīng)用舉例9.5二維數(shù)組的定義和二維數(shù)組元素的引用9.6二維數(shù)組和指針9.7二維數(shù)組名和指針數(shù)組作為實參第9章數(shù)組1本章要點:第9章數(shù)組19.1一維數(shù)組的定義和一維數(shù)組元素的引用29.1一維數(shù)組的定義和一維數(shù)組元素的引用2當數(shù)組中每個元素只帶有一個下標時,稱這樣的數(shù)組為一維數(shù)組。一維數(shù)組的定義方式為:類型名數(shù)組名[常量表達式];例如:intarray[10];它表示定義了一個名為array的數(shù)組,此數(shù)組有10個元素,每個元素的數(shù)據(jù)類型為整型。9.1.1一維數(shù)組的定義39.1.1一維數(shù)組的定義3一維數(shù)組定義的說明:1.類型名用來說明數(shù)組元素的數(shù)據(jù)類型,可以是以前介紹過的任一種數(shù)據(jù)類型。2.數(shù)組名由用戶指定,命名規(guī)則和變量名相同,遵循標識符定義規(guī)則。3.常量表達式規(guī)定了數(shù)組元素的個數(shù),即數(shù)組的長度。整個數(shù)組所占字節(jié)數(shù)=類型長度×數(shù)組長度。4.常量表達式中不能包括變量,即C語言不允許定義動態(tài)數(shù)組。5.常量表達式中可以包括常量和符號常量。4一維數(shù)組定義的說明:46.每個數(shù)組元素只有一個下標,C語言規(guī)定數(shù)組第一個元素的下標總為0(稱為數(shù)組的下界)。7.定義數(shù)組后,C編譯程序即為該數(shù)組在內(nèi)存中開辟相應(yīng)個數(shù)的存儲單元,每個存儲單元可以直接用相應(yīng)的數(shù)組元素表示。8.數(shù)組定義中,數(shù)組長度除多數(shù)情況下作顯式說明外,有兩種情況下不必或不能用長度說明,而用[]代替。(1)給數(shù)組全體元素賦初值時,可省去數(shù)組長度說明。(2)數(shù)組名作為函數(shù)的參數(shù),在函數(shù)的參數(shù)說明部分,當指出參數(shù)是數(shù)組時,不能用長度說明。56.每個數(shù)組元素只有一個下標,C語言規(guī)定數(shù)組第一個元素的下標除了給指針變量賦地址值外,還可以給指針變量賦NULL值。例如:p=NULL;NULL是在stdio.h頭文件中的預(yù)定義符。NULL的代碼值為0,當p=NULL時,稱p為空指針。因為NULL的代碼值是0,所以上面語句等價于:p=’\0’;或p=0;這時,指針p并不是指向地址為0的存儲單元,而是具有一個確定的值——“空”。企圖通過一個空指針去訪問一個存儲單元時,將會得到一個出錯信息。9.1.2一維數(shù)組的引用69.1.2一維數(shù)組的引用6當系統(tǒng)為所定義的數(shù)組在內(nèi)存中開辟一串連續(xù)的存儲單元時,這些存儲單元中并沒有確定的值,數(shù)組的初始化就是指在定義數(shù)組時給數(shù)組元素賦初值。一維數(shù)組初始化的定義形式為:類型名數(shù)組名[常量表達式或省略]={值0,值1,……};其中,{}中各值是對應(yīng)的數(shù)組元素初值,各值之間用逗號隔開。例如:inta[5]={0,1,2,3,4};也可以省略為:inta[]={0,1,2,3,4};9.1.3一維數(shù)組的初始化79.1.3一維數(shù)組的初始化7說明:1.可以只給部分數(shù)組元素賦初值。當{}中值的個數(shù)少于數(shù)組元素個數(shù)時,則表示初值只賦于數(shù)組開始的若干個元素,余下部分元素為相應(yīng)類型的缺省值,int為整型數(shù)0,字符型為空格等。2.{}中值的個數(shù)不能超過數(shù)組元素的個數(shù)。3.只能給數(shù)組元素逐個賦值,不能給數(shù)組整體賦值。4.對較大數(shù)組中的若干不連續(xù)的數(shù)組元素賦予非零的初值,其余數(shù)組元素為0值時,可以用“,”表示對應(yīng)位置的元素為0值。5.若全部元素均賦為0,可對數(shù)組不賦初值。8說明:8C語言中,還可以通過賦初值來定義數(shù)組的大小,這時數(shù)組說明符的一對方括號中可以不指定數(shù)組的大小。例如:inta[]={1,2,3}此時就隱含的定義了a數(shù)組含有3個元素。9.1.4通過賦初值定義數(shù)組的大小9C語言中,還可以通過賦初值來定義數(shù)組的大小,這時數(shù)組說明符的9.2一維數(shù)組和指針109.2一維數(shù)組和指針109.2.1一維數(shù)組和數(shù)組元素的地址

一維數(shù)組在主存中占連續(xù)的存儲空間,數(shù)組名代表的是數(shù)組的首地址??啥x一個指針變量,通過賦值或賦初值的形式,把數(shù)組名或數(shù)組的第一個元素的地址賦值該指針變量,該指針變量就指向了該數(shù)組。值得注意的是,這個指針變量中的地址值不可改變,也就是說,不可以給數(shù)組名重新賦值,因而數(shù)組名也可以認為是一個地址常量。119.2.1一維數(shù)組和數(shù)組元素的地址11例如:inta[5],*pa=a;/*數(shù)組名賦初值給指針變量名,指針變量指向了數(shù)組*/inta[5],*pa=&a[0];/*a[0]的地址賦初值給指針變量名,指針變量指向了數(shù)組*/inta[5],*pa;pa=a;/*數(shù)組名賦值給指針變量名,指針變量指向了數(shù)組*/inta[5],*pa;pa=&a[0];/*a[0]的地址賦值給指針變量名,指針變量指向了數(shù)組*/。inta[5],*pa,b;a=&b;a++;/*a=&b;a++;都是非法的,因為不能給a重新賦值,一旦定義,a永遠指向a數(shù)組的首地址*/另外,我們還可以通過循環(huán)和scanf函數(shù),從終端讀入數(shù)據(jù)依次存放到a數(shù)組中:for(i=0;i<5;i++)scanf(“%d”,a+i);12例如:12以下語句中,由于進入循環(huán)前指針變量pa指向的是數(shù)組a的首地址,則pa++使得pa依次指了a數(shù)組中的每一個元素:for(pa=a,i=0;i<5;i++)pa++;同樣也可以寫成:for(pa=a,i=0;i<5;i++){scanf(“%d”,pa);pa++;}或for(pa=a,i=0;i<5;i++)scanf(“%d”,pa++);或for(pa=a;pa-a<5;pa++)scanf(“%d”,pa);13以下語句中,由于進入循環(huán)前指針變量pa指向的是數(shù)組a的首地址9.2.2通過數(shù)組的首地址引用數(shù)組元素C語言中,若定義了a[5],則a的值即等于&a[0];依次推出a+1、a+2、…、a+4的值分別等于&a[1]、&a[2]、…、&a[4]。我們可以通過運算符“*”引用地址所在的存儲單元,所以數(shù)組元素a[0]也可以用*(a+0)來引用,即*a。依次類推,對數(shù)組元素a[1]的引用可以是*(a+1)、…、數(shù)組元素a[4]可以用*(a+4)引用。因此可以通過以下語句逐個輸出a數(shù)組中的元素的值:for(i=0;i<4;i++)printf(“%d“,*(a+i));149.2.2通過數(shù)組的首地址引用數(shù)組元素14在C語言中,有一個等式永遠成立,即a[i]無條件等價于*(a+i),此處a和p可以是指針變量名和數(shù)組名。因此,當指針變量p指向了數(shù)組的首元素后,數(shù)組a[i]可表示為下列幾種形式:*(a+i)*(p+i)a[i]p[i]注意,圓括號不可少。數(shù)組a[i]的地址可表示為下列幾種形式:a+ip+i&a[i]&p[i]這里的a和p的區(qū)別是,a是不可不變的,而p中的地址值卻是可變的。因此,a++、a=p、p=&a等運算都是非法的,而p++、p=a、p=&a[i]則都是合法的表達式。9.2.3通過指針及帶下標的指針變量引用一維數(shù)組元素159.2.3通過指針及帶下標的指針變量引用一維數(shù)組元素15指向一維數(shù)組的指針變量,可以進行簡單的算術(shù)運算和關(guān)系運算。1.指針變量的算術(shù)運算2.指針變量與指針變量的減法運算如果兩個指針指向同一個數(shù)組,它們可以進行減法運算,運算法則如下:指針變量1-指針變量2注意兩個指針變量必須是指向同一數(shù)組的數(shù)組元素的指針變量,它們的差并不是它們地址值的差,而是它們所指向的數(shù)組元素的下標之差。9.2.4指針變量的運算169.2.4指針變量的運算163.指針變量間的關(guān)系運算指向某一數(shù)組中元素的兩個指針變量還可以進行關(guān)系運算,其運算規(guī)則為:

指針變量1關(guān)系運算符指針變量2如果指針變量1中的地址值和指針變量2中的地址值滿足關(guān)系運算時,式子的值為1(真),否則為0(假)。指針變量間的關(guān)系運算在處理數(shù)組的循環(huán)中常作為循環(huán)的控制條件。173.指針變量間的關(guān)系運算179.3函數(shù)之間對一維數(shù)組和數(shù)組元素的引用189.3函數(shù)之間對一維數(shù)組和數(shù)組元素的引用189.3.1形參為指針變量時,實參和形參之間的數(shù)據(jù)傳遞

調(diào)用函數(shù)時,數(shù)組元素可以作為實參傳送給形參,每個數(shù)組元素實際上代表內(nèi)存中的一個存儲單元,因此對應(yīng)的形參必須是類型相同的變量。數(shù)組元素的值可以傳送給該變量,在函數(shù)中只能對該變量進行操作,而不能直接引用對應(yīng)的數(shù)組元素。199.3.1形參為指針變量時,實參和形參之間的數(shù)據(jù)傳遞199.3.2數(shù)組名作實參數(shù)組名作為函數(shù)的參數(shù),在函數(shù)間傳遞的并不是整個數(shù)組,而是數(shù)組的首地址,換句話說,就是形參數(shù)組與實參數(shù)組指的是同一個數(shù)組。因此,在被調(diào)函數(shù)中改變了形參數(shù)組的某元素值,其對應(yīng)的實參數(shù)組元素值也跟著發(fā)生改變。當數(shù)組名作為形參時,其對應(yīng)的實參可以是指針變量、數(shù)組名、地址表達式。在函數(shù)中,可以通過此指針變量來引用調(diào)用函數(shù)中的對應(yīng)的數(shù)組元素,從而達到對調(diào)用函數(shù)中對應(yīng)的數(shù)組元素進行操作。209.3.2數(shù)組名作實參209.3.3數(shù)組元素地址作為實參當使用數(shù)組元素地址做實參時,傳遞的也是一個地址,因此,形參數(shù)組中元素值發(fā)生改變也會影響到實參數(shù)組中元素的值。但與數(shù)組名做實參有所不同,形參數(shù)組的首地址是傳遞給它的實參數(shù)組元素的地址,而不是實參數(shù)組的首地址。實際上,數(shù)組名做實參是數(shù)組元素地址做實參的一個特例,它是傳遞第1個元素的地址。219.3.3數(shù)組元素地址作為實參219.4一維數(shù)組應(yīng)用舉例229.4一維數(shù)組應(yīng)用舉例221.輸入學(xué)生人數(shù)與學(xué)生成績,然后計算全班的平均成績。main(){inti,num;floatscore[20],sum=0.0,average;printf("Pleaseinputnumberofstudents:");

scanf("%d",&num);for(i=0;i<num;i++){printf("Inputscore:");scanf("%f",&score[i]);sum+=score[i];}average=(float)sum/(float)num;printf("Theaveragescoreofthestudentsis:%6.2f\n",average);}231.輸入學(xué)生人數(shù)與學(xué)生成績,然后計算全班的平均成績。239.5二維數(shù)組的定義和二維數(shù)組元素的引用249.5二維數(shù)組的定義和二維數(shù)組元素的引用24先看一個例子:某校近三年招收各專業(yè)畢業(yè)生情況如下:

計算機電子管理數(shù)學(xué)20029040803020031005090402004954510050要把這些數(shù)據(jù)組織起來,可以有兩種選擇:

⑴按從左到右從上到下的順序存入一個一維數(shù)組中。(查詢困難)

⑵每年用一個一維數(shù)組,把這些數(shù)據(jù)分別存入三個數(shù)組中。25先看一個例子:計算機當數(shù)組元素的下標為兩個時,該數(shù)組稱為二維數(shù)組。1.二維數(shù)組的定義格式存儲類型數(shù)據(jù)類型數(shù)組名[常量表達式1][常量表達式2];功能:定義一個二維數(shù)組,有“長度1×長度2”個元素。其元素的存儲類型和數(shù)據(jù)類型分別由定義中的“存儲類型”和“數(shù)據(jù)類型”指定。說明:(1)存儲類型、數(shù)據(jù)類型、數(shù)組名和長度的含義和選取方法同一維數(shù)組。(2)數(shù)組元素的各維下標從0開始,最大下標為“長度1”。9.5.1二維數(shù)組的定義269.5.1二維數(shù)組的定義262.二維數(shù)組的邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)二維數(shù)組的邏輯結(jié)構(gòu),可以看成是由若干行,每行由若干列組成。例如有如下數(shù)組定義語句:inta[3][4];則其邏輯結(jié)構(gòu)如下:

a[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]二維數(shù)組存儲結(jié)構(gòu)是“按行存放,先行后列”

272.二維數(shù)組的邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)27二維數(shù)組元素的引用方法也有兩種,分別是“指針法”和“下標法”。這里只討論“下標法”。假設(shè)定義了一個二維數(shù)組:inta[N1][N2],其引用形式為: 數(shù)組名[下標表達式1][下標表達式2]二維數(shù)組元素的引用時注意事項:(1)二維數(shù)組各維的下標也是從0開始(2)下標表達式的值必須是整數(shù),且不得超越數(shù)組定義的上、下界。(3)引用二維數(shù)組元素時,一定要把兩個下標分別放在兩個括號內(nèi)。

9.5.2二維數(shù)組元素的引用289.5.2二維數(shù)組元素的引用28二維數(shù)組初始化的方法有以下幾種。(1)分行給二維數(shù)組所有元素賦初值。例如:inta[3][4]={{0,1,2,3},{4,5,6,7},{8,9,10,11}};初始化后,a[1][2]的值即是6。(2)不分行給二維數(shù)組所有元素賦初值。例如:inta[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};初始化后,a[2][1]的值即是9。注意:如果對所有元素賦初值,其第1維的長度可以省去,所以(1)和(2)中的inta[3][4]可以寫成a[][4]。9.5.3二維數(shù)組的初始化299.5.3二維數(shù)組的初始化29(3)只對每行或前若干行的前若干個元素賦初值。例如:inta[3][4]={{0,1},{4},{8,9,10}};初始化后,問a[0][1]和a[2][3]的值即為1和0。注意:如果給數(shù)組中的某些元素賦初值,沒有賦初值的元素也有初值,對于數(shù)值型數(shù)組,其值為0,對于字符型數(shù)組,其值為'\0'。(4)若數(shù)組的存儲類為auto,如果不進行初始化,則其元素初值不確定。若數(shù)組的存儲類型為static,若沒有進行初始化,其元素均有初值。對于數(shù)值類型是0,對于字符型則是'\0'。注意:給二維數(shù)組賦初值時,行數(shù)不能超過定義的行數(shù),每行的初值個數(shù)不能超過定義時的列數(shù)。下列的定義是錯誤的:30(3)只對每行或前若干行的前若干個元素賦初值。309.5.4通過賦值定義二維數(shù)組的大小在定義一個二維數(shù)組時,可以通過賦初值的個數(shù)來確定數(shù)組的大小,但只可以省略第1個方括號的常量表達式,而不能省略第2個括號的常量表達式。例如:inta[][2]={{1,2},{3},{4},{5}};以上語句中,a數(shù)組中的第一維的常量表達式省略,在所賦初值中,有4對行向量,則第一維的大小可由所賦初值的行數(shù)來確定。即等價于:inta[4][2]={{1,2},{3},{4},{5}};319.5.4通過賦值定義二維數(shù)組的大小31當使用行花括號賦初值時,第1維的大小由賦初值的行數(shù)來決定。當省略行花括號時,第1維的大小按以下規(guī)則來決定:(1)當初值的個數(shù)能被第2維的常量表達的值除盡時,所得商數(shù)就是第1維的大??;(2)當初值的個數(shù)不能被第2維的常量表達的值除盡時,則: 第1維的大小=所得商數(shù)+1例如:inta[][2]={1,2,3,4};按此規(guī)則,a數(shù)組的第一維大小應(yīng)該是2,即inta[2][2]={{1,2},{3,4}};32當使用行花括號賦初值時,第1維的大小由賦初值的行數(shù)來決定。當9.6二維數(shù)組和指針339.6二維數(shù)組和指針339.6.1二維數(shù)組和數(shù)組元素的地址當指針變量指向二維數(shù)組的某個元素后,就可以象處理一維數(shù)組元素那樣來處理二維數(shù)組元素了。指針變量指向二維數(shù)組某元素的方法有兩種,分別如下:賦初值:數(shù)據(jù)類型符*指針變量名=&數(shù)組名[下標1][下標2]賦值方式:指針變量=&數(shù)組名[下標1][下標2]指針變量指向二維數(shù)組某元素后,引用該數(shù)組元素的方法是:*指針變量。例如:inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12},*p=&a[1][2],k;349.6.1二維數(shù)組和數(shù)組元素的地址當指針變量指向二維數(shù)組的9.6.2通過地址來引用二維數(shù)組元素二維數(shù)組在內(nèi)存中是按行連續(xù)存放的,當用指針變量指向二維數(shù)組的首地址后,利用該指針變量就可以處理二維數(shù)組的任一個元素。1.讓指針變量指向二維數(shù)組首地址,可采用賦初值和賦值兩種方式使指針變量指向二維數(shù)組的首元素。賦初值的方法有兩種,格式如下:數(shù)據(jù)類型符*指針變量=&二維數(shù)組名[0][0];或數(shù)據(jù)類型符*指針變量=*數(shù)組名

賦值的方式也有兩種,格式如下:指針變量=&二維數(shù)組名[0][0];指針變量=*數(shù)組名359.6.2通過地址來引用二維數(shù)組元素352.二維數(shù)組元素的引用方法當p指向二維數(shù)組的首元素后,p+1將指向元素第二個元素,p+2將指向第三個元素……以此類推。由此可以得到這樣的結(jié)論:假設(shè)指針變量p已經(jīng)指向M行N列的數(shù)組A的首元素(0<=i<M,0<=j<N),則:A[i][j]的地址為:p+i*N+jA[i][j]可表示為:*(p+i*N+j)362.二維數(shù)組元素的引用方法369.6.3通過建立一個指針數(shù)組來引用二維數(shù)組元素指針數(shù)組也是一種數(shù)組,所有有關(guān)數(shù)組的概念都適用于它。但它與普通的數(shù)組又有區(qū)別,它的數(shù)組元素是指針類型的,只能用來存放地址值。其定義形式如下:[格式]存儲類型數(shù)據(jù)類型*指針數(shù)組名[長度]={初值列表};例如:int*p[3],a[3][2],i,j;for(i=0;i<3;i++)p[i]=a[i];379.6.3通過建立一個指針數(shù)組來引用二維數(shù)組元素379.6.4通過建立一個行指針來引用二維數(shù)組元素可以先定義一個指向一維數(shù)組的指針變量,它指向的一維數(shù)組的元素個數(shù)與二維數(shù)組的列數(shù)一致,然后可以通過賦初值或賦值的方式來使指針變量指向二維數(shù)組的首行,形式如下:賦初值:數(shù)據(jù)類型符(*指針變量)[m]=二維數(shù)組名賦值:指針變量=二維數(shù)組名例如:inta[3][4],(*p)[4]=a;/*賦初值使指針變量p指向a數(shù)組的首行*/inta[3][4],(*p)[4];p=a;/*賦值使指針變量p指向a數(shù)組的首行*/389.6.4通過建立一個行指針來引用二維數(shù)組元素389.7二維數(shù)組名和指針數(shù)組作為實參399.7二維數(shù)組名和指針數(shù)組作為實參399.7.1二維數(shù)組名作為實參時,實參和形參之間的數(shù)據(jù)傳遞當二維數(shù)組名作為實參時,對應(yīng)的形參必須是一個指針變量。例如:#defineM5#defineN3main(){doubles[M][N];…fun(s);…}409.7.1二維數(shù)組名作為實參時,實參和形參之間的數(shù)據(jù)傳遞4則fun函數(shù)的首部可以是以下三種形式之一:(1)fun(double(*a)[N])(2)fun(doublea[][N])(3)fun(doublea[M][N])無論哪種方式,系統(tǒng)都將把a處理成一個行指針。數(shù)組名傳遞給函數(shù)的是一個地址值,因此,對應(yīng)的形參也必定是一個類型相同的指針變量,在函數(shù)中引用的將是主函數(shù)中的數(shù)組元素,系統(tǒng)只為形參開辟一個存放地址的存儲單元,而不可能在調(diào)用函數(shù)時為形參開辟一系列存放數(shù)組的存儲單元。41則fun函數(shù)的首部可以是以下三種形式之一:419.7.2指針數(shù)組作為實參時,實參和行參之間的數(shù)據(jù)傳遞當指針數(shù)組作為實參時,對應(yīng)的形參應(yīng)當是一個指向指針的指針。例如:#defineM5#defineN3main(){doubles[M][N],*ps[M];…for(i=0;i<M;i++)ps[i]=s[i];fun(s);…}429.7.2指針數(shù)組作為實參時,實參和行參之間的數(shù)據(jù)傳遞42則fun函數(shù)的首部可以是以下三種形式之一:(1)fun(double*a[M])(2)fun(double*a[])(3)fun(double**a)因為傳送的是一維指針數(shù)組,所以形參的定義形式與一維數(shù)組名作實參的形式類似。43則fun函數(shù)的首部可以是以下三種形式之一:43考題講解1、有以下程序#include<stdio.h>main(){inta[]={2,3,5,4},i;for(i=0;i<4;i++)switch(i%2){case0:switch(a[i]%2){case0:a[i]++;break;case1:a[i]--;}break;case1:a[i]=0;}for(i=0;i<4;i++)printf("%d",a[i]);printf("\n");}程序運行后的輸出結(jié)果是()。(2009.9)A)3344B)2050C)3040D)0304答案:C44考題講解1、有以下程序442、以下函數(shù)按每行8個輸出數(shù)組中的數(shù)據(jù)voidfun(int*w,intn){inti;for(i=0;i<n;i++){___________printf("%d",w[i]);}printf("\n");}下劃線處應(yīng)填入的語句是()。(2009.3)A)if(i/8==0)printf("\n");B)if(i/8=0)continue;C)if(i%8==0)printf("\n");D)if(i%8==0)continue;答案:C3、若有定義語句:intm[]={5,4,3,2,1},i=4;,則下面對m數(shù)組元素的引用中錯誤的是()。(2008.9)A)m[--i]B)m[2*2]C)m[m[0]]D)m[m[i]]答案:C4、若有以下定義intx[10],*pt=x;則對x數(shù)組元素的正確引用是()。(2009.3)A)*&x[10]B)*(x+3)C)*(pt+10)D)pt+3答案:B452、以下函數(shù)按每行8個輸出數(shù)組中的數(shù)據(jù)455、有以下程序#include<stdio.h>main(){char*a[]={"abcd","ef","gh","ijk"};inti;for(i=0;i<4;i++)printf("%c",*a[i]);}程序運行后的輸出結(jié)果是()。(2009.3)A)aegiB)dfhkC)abcdD)abcdefghijk答案:A6、有以下程序#include<stdio.h>main(){inta[]={1,2,3,4},y,*p=&a[3];--p;y=*p;printf("y=%d\n",y);}程序的運行結(jié)果是()。(2008.4)A)y=0B)y=1C)y=2D)y=3答案:D465、有以下程序#include<stdio.h>467、以下程序的定義語句中,x[1]的初值是【1】,程序運行后輸出的內(nèi)容是【2】。(2008.4)#include<stdio.h>main(){intx[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},*p[4],i;for(i=0;i<4;i++){p[i]=&x[2*i+1];printf("%d",p[i][0]);}printf("\n");}答案:1、22、24688、以下程序的輸出結(jié)果是【】。(2008.4)#include<stdio.h>main(){inta[5]={2,4,6,8,10},*p;p=a;p++;printf("%d",*p);}答案:4477、以下程序的定義語句中,x[1]的初值是【1】9、若有定義語句:doublex[5]={1.0,2.0,3.0,4.0,5.0},*p=x;則錯誤引用x數(shù)組元素的是()。(2008.4)A)*pB)x[5]C)*(p+1)D)*x答案:B10、有以下程序#include<stdio.h>voidfun(int*s,intn1,intn2){inti,j,t;i=n1;j=n2;while(i<j){t=s[i];s[i]=s[j];s[j]=t;i++;j--;}}main(){inta[10]={1,2,3,4,5,6,7,8,9,0},k;fun(a,0,3);fun(a,4,9);fun(a,0,9);for(k=0;k<10;k++)printf("%d",a[k]);printf("\n");}程序的運行結(jié)果是()。(2008.4)A)0987654321B)4321098765C)5678901234D)0987651234答案:C489、若有定義語句:doublex[5]={1.0,211、有以下程序#include<stdio.h>voidfun(inta[],intn){inti,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}main(){intk[10]={1,2,3,4,5,6,7,8,9,10},i;fun(k,5);for(i=2;i<8;i++)printf("%d",k[i]);printf("\n");}程序的運行結(jié)果是()。(2008.9)A)345678B)876543C)1098765D)321678答案:D4911、有以下程序4912、以下程序的輸出結(jié)果是【】(2008.9)#include<stdio.h>#defineN5intfun(int*s,inta,intn){intj;*s=a;j=n;while(a!=s[j])j--;returnj;}main(){ints[N+1];intk;for(k=1;k<=N;k++)s[k]=k+1;printf("%d\n",fun(s,4,N));}答案:35012、以下程序的輸出結(jié)果是【】(2008.13、以下程序按下面指定的數(shù)據(jù)給x數(shù)組的下三角置數(shù),并按如下形式輸出,請?zhí)羁?。?008.9)43726915810#include<stdio.h>main(){intx[4][4],n=0,i,j;for(j=0;j<4;j++)for(i=3;i>=j;【1】){n++;x[i][j]=【2】;}

溫馨提示

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

評論

0/150

提交評論