版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
定義例:格式:類型說(shuō)明符數(shù)組名[常量表達(dá)式];inta[5];charc[20];floatx[10];定義一個(gè)數(shù)組元素為整型的,包含五個(gè)數(shù)組元素的一維數(shù)組定義一個(gè)數(shù)組元素為字符型的,包含20個(gè)數(shù)組元素的一維數(shù)組定義一個(gè)數(shù)組元素為浮點(diǎn)型的,包含10個(gè)數(shù)組元素的一維數(shù)組決定數(shù)組元素的類型用戶為數(shù)組起的名字決定數(shù)組元素個(gè)數(shù)定義例:格式:inta[5];cha2說(shuō)明:1.數(shù)組名定名規(guī)則和變量名相同,遵循標(biāo)識(shí)符定名規(guī)則。2.在定義數(shù)組時(shí),需要指定數(shù)組中元素的個(gè)數(shù),方括弧中的常量表達(dá)式用來(lái)表示元素的個(gè)數(shù),即數(shù)組長(zhǎng)度。3.常量表達(dá)式中可以包括常量和符號(hào)常量,但不能包含變量。也就是說(shuō),C語(yǔ)言不允許對(duì)數(shù)組的大小作動(dòng)態(tài)定義,即數(shù)組的大小不依賴于程序運(yùn)行過(guò)程中變量的值。2說(shuō)明:1.數(shù)組名定名規(guī)則和變量名相同,遵循標(biāo)識(shí)符定名規(guī)則。33二、引用一維數(shù)組變量的數(shù)組元素原則:數(shù)組型變量必須先定義,后使用。只能逐個(gè)引用數(shù)組元素,不能直接引用整個(gè)數(shù)組型變量。數(shù)組下標(biāo)從0開(kāi)始。a[0]a[1]a[2]例如,定義數(shù)組a:inta[3],數(shù)組元素為:33二、引用一維數(shù)組變量的數(shù)組元素原則:a[0]a[1]a[44二、引用一維數(shù)組變量的數(shù)組元素原則:
數(shù)組型變量必須先定義,后使用。只能逐個(gè)引用數(shù)組元素,不能直接引用整個(gè)數(shù)組型變量。數(shù)組下標(biāo)從0開(kāi)始。a[0]a[1]a[2]例如,定義數(shù)組a:inta[3],數(shù)組元素為:對(duì)數(shù)組變量的處理只能一個(gè)數(shù)組元素一個(gè)數(shù)組元素地處理44二、引用一維數(shù)組變量的數(shù)組元素原則:a[0]a[1]a[例inta[10];printf(“%d”,a);()
()必須
for(j=0;j<10;j++printf(“%d\t”,a[j]);例inta[10];()
()必須6注意:定義數(shù)組時(shí)用到的“數(shù)組名[常量表達(dá)式]”和引用數(shù)組元素時(shí)用到的“數(shù)組名[下標(biāo)]”是有區(qū)別的。例如∶
inta[10];t=a[6];6注意:例題鞏固在C語(yǔ)言中,引用數(shù)組元素時(shí),其數(shù)組下標(biāo)的數(shù)據(jù)類型允許是
。A)整型常量 B)整型表達(dá)式C)整型常量或整型表達(dá)式D)任何類型的表達(dá)式例題鞏固在C語(yǔ)言中,引用數(shù)組元素時(shí),其數(shù)組下標(biāo)的數(shù)據(jù)類型允C語(yǔ)言中,數(shù)組名代表A.?dāng)?shù)組全部元素的值 B.?dāng)?shù)組首地址C.?dāng)?shù)組第一個(gè)元素的值 D.?dāng)?shù)組元素的個(gè)數(shù)C語(yǔ)言中,數(shù)組名代表合法的數(shù)組定義是A.inta[]=”string”; B.inta[5]={0,1,2,3,4,5};C.chara=”string”; D.chara[]={0,1,2,3,4,5};合法的數(shù)組定義是若有定義和語(yǔ)句:chars[10];s={a,b,c,d};printf(“%s\n”,s);則結(jié)果是(以下u代表空格)A.輸出abcd B.輸出aC.輸出abcd uuuuu D.編譯不通過(guò)若有定義和語(yǔ)句:chars[10];s={a,b,c,d若有說(shuō)明:inta[10];則對(duì)a數(shù)組元素的正確引用是
。
A)a[10] B)a[3.5] C)a(5) D)a[10-10]若有說(shuō)明:inta[10];則對(duì)a數(shù)組元素的正確引用是以下能對(duì)一維數(shù)組a進(jìn)行正確初始化的語(yǔ)句是
。A)inta[10]=(0,0,0,0,0);B)inta[10]={};C)inta[]={0}; D)inta[10]=”10*1”;以下能對(duì)一維數(shù)組a進(jìn)行正確初始化的語(yǔ)句是對(duì)以下說(shuō)明語(yǔ)句的正確理解是
。inta[10]={6,7,8,9,10};A)將5個(gè)初值依次賦給a[1]至a[5]B)將5個(gè)初值依次賦給a[0]至a[4]C)將5個(gè)初值依次賦給a[6]至a[10]D)因?yàn)閿?shù)組長(zhǎng)度與初值的個(gè)數(shù)不相同,所以此語(yǔ)句不正確對(duì)以下說(shuō)明語(yǔ)句的正確理解是。若已定義數(shù)組:floata[8];則下列對(duì)數(shù)組元素引用正確的是
。
Aa[0]=1; B.a[8]=a[0]; C.a=1; D.a[3.5]=1;若已定義數(shù)組:floata[8];則下列對(duì)數(shù)組元素引用正確閱讀程序,寫出運(yùn)行結(jié)果:main(){ inti,a[10];for(i=0;i<10;i++)scanf(“%d”,&a[i]);while(i>0){ printf(“%3d”,a[--i]);if(!(i%5))putchar(‘\n’);}}輸入數(shù)據(jù)12345678910,則運(yùn)行結(jié)果為:A.12345678910 B.10987654321C.12345 678910 D.109876 54321閱讀程序,寫出運(yùn)行結(jié)果:執(zhí)行下面的程序段后,變量k中的值為_(kāi)_________。intk=3,s[2];s[0]=k;k=s[1]*10;A)不定值B)33C)30D)10執(zhí)行下面的程序段后,變量k中的值為_(kāi)_________。下列程序執(zhí)行后的輸出結(jié)果是__________。
main(){inta,b[5];a=0;b[0]=3;printf("%d,%d\n",b[0],b[1]);}A)3,0B)30C)0,3D)3,不定值下列程序執(zhí)行后的輸出結(jié)果是__________。以下程序的輸出結(jié)果是________。main(){inti,p=0,a[10]={1,5,9,0,-3,8,7,0,1,2};for(i=1;i<10;i++)if(a[i]<a[p])p=i;printf("%d,%d\n",a[p],p);}A)-3,4B)0,1C)9,2D)2,9以下程序的輸出結(jié)果是________。有如下說(shuō)明:inta[10]={0,1,2,3,4,5,6,7,8,9};則數(shù)值不為9的表達(dá)式是________。A)a[10-1]B)a[8]C)a[9]-0D)a[9]-a[0]有如下說(shuō)明:有如下程序
main(){intn[5]={0,0,0},i,k=3;for(i=0;i<k;i++)n[i]=i+1;printf("%d\n",n[k]);}該程序的輸出結(jié)果是________。A)不確定的值B)4C)2D)0有如下程序2121使用數(shù)組編程:步驟:定義數(shù)組;對(duì)數(shù)組進(jìn)行初始化;引用數(shù)組,對(duì)數(shù)組進(jìn)行相應(yīng)的操作;對(duì)結(jié)果數(shù)組進(jìn)行輸出;例.使用數(shù)組編程,計(jì)算出前10項(xiàng)fibonacci數(shù)列,要求一行打印5個(gè)數(shù)。斐波那契數(shù)列:1、1、2、3、5、8、13、21、34、55……
怎么做?2121使用數(shù)組編程:步驟:定義數(shù)組;例.使用數(shù)組編程,2222例:計(jì)算出fibonacci數(shù)列前10項(xiàng),要求一行打印5個(gè)數(shù)。目標(biāo)1:使用數(shù)組存放這10個(gè)數(shù);目標(biāo)2:輸出時(shí),一行打印5個(gè)數(shù)定義整型數(shù)組f:intf[10]輸出f[i],i:0~9輸出5個(gè)數(shù)換一次行。2222例:計(jì)算出fibonacci數(shù)列前10項(xiàng)2323f[1]:第二項(xiàng),為1;f[0]:第一項(xiàng),為0;f[0]=1;f[1]=1;從第三項(xiàng)開(kāi)始,每一項(xiàng)為:它的前兩項(xiàng)之和,即:f[i]=f[i-1]+f[i-2];(i:2~9)計(jì)算fibonacci中的項(xiàng):2323f[1]:第二項(xiàng),為1;f[0]:第一項(xiàng),為intf[10];f[0]=1;f[1]=1;ff[0]f[1]f[2]f[3]f[4]f[5]f[6]f[7]f[8]f[9]for(i=2;i<10;i++)f[i]=f[i-1]+f[i-2];for(i=0;i<10;i++){if(i%5==0)printf("\n");printf("%4d",f[i]);}11235813213455813213455523執(zhí)行過(guò)程:11intf[10];f[0]=1;ff[0]f[1]f2525四、對(duì)數(shù)組進(jìn)行輸入和輸出C語(yǔ)言規(guī)定,對(duì)數(shù)組的使用只能逐個(gè)引用數(shù)組元素,不能一次引用整個(gè)數(shù)組變量。同樣,對(duì)數(shù)組的輸入和輸出也是依次對(duì)每個(gè)元素進(jìn)行的。即:printf和scanf語(yǔ)句的操作對(duì)象是每個(gè)數(shù)組元素。例:輸入10個(gè)數(shù)到數(shù)組a中,然后將它們輸出。怎么做?2525四、對(duì)數(shù)組進(jìn)行輸入和輸出C語(yǔ)言規(guī)定,對(duì)數(shù)組的使26262727例6.4求若干個(gè)數(shù)(不多于10個(gè))的最大數(shù),最小數(shù)#defineN10#include"stdio.h"voidmain(){intI,n;
floata[N],max,min;printf("inputdatanumbers:");scanf("%d",&n);
printf("enternumbers:");for(i=0;i<n;i++)scanf("%f",&a[i]);max=min=a[0];
for(i=1;i<n;i++){if(a[i]>max)max=a[i];
if(a[i]<min)min=a[i];
}printf("\nmax=%f,min=%f\n",max,min);}
例6.4求若干個(gè)數(shù)(不多于10個(gè))的最大數(shù),最小數(shù)#def2929五、應(yīng)用舉例2929五、應(yīng)用舉例3030五、應(yīng)用舉例1、排序1、冒泡法排序2、選擇法排序2、查找1、順序查找2、折半查找3030五、應(yīng)用舉例1、排序3131用數(shù)組編程時(shí),可以這樣思考:在存儲(chǔ)器中有一片連續(xù)的內(nèi)存區(qū),名稱為a。將需要處理的一組數(shù)據(jù),依次放入這片連續(xù)內(nèi)存區(qū)的每一個(gè)單元中。對(duì)應(yīng)的名稱分別為:a[0]a[1]a[2]a[3]……a[n-2]a[n-1]a[0]a[1]a[2]a[3]……a[-2]a[-1]根據(jù)問(wèn)題的需要,對(duì)這組數(shù)據(jù)中的每一個(gè)數(shù)據(jù)元素進(jìn)行相應(yīng)的處理,處理時(shí)的訪問(wèn)方式為:a[i],即:數(shù)組a中下標(biāo)為i的位置處的數(shù)組元素。3131用數(shù)組編程時(shí),可以這樣思考:在存儲(chǔ)器中有一片連續(xù)的內(nèi)32321.有一個(gè)一維數(shù)組,有10個(gè)整數(shù)存放其中,找出其中最大的一個(gè)數(shù)。a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]0123456789數(shù)組amax=a[0];for(i=1;i<10;i++)if(a[i]>max)max=a[i];32321.有一個(gè)一維數(shù)組,有10個(gè)整數(shù)存放其中,定義main(){inti,max,x[10];printf("enterdata:\n");for(i=0;i<10;i++)scanf("%d",&x[i]);max=x[0];for(i=1;i<10;i++)if(x[i]>max)max=x[i];輸入處理輸出printf("max=%d\n",max);}定義main()printf("enterdata:\n"34342.用冒泡法對(duì)10個(gè)整數(shù)按從小到大的順序排列。什么是"冒泡法排序"?排序的過(guò)程核心程序段完整程序怎么做?34342.用冒泡法對(duì)10個(gè)整數(shù)按從小到大的順序排列。3535冒泡法排序的思想假設(shè)有n個(gè)數(shù),將相鄰的兩個(gè)數(shù)依次進(jìn)行比較,使小的在前,大的在后,那么第一輪比較n-1次就把最大的數(shù)排到了最后。第二輪比較n-2次,就把次大的數(shù)排到了倒數(shù)第二,依此類推,直到第n-1輪比較1次,將最小的數(shù)排到了第一,算法結(jié)束。算法的整體思路是讓大的數(shù)不斷地往下沉,小的數(shù)不斷地往上冒,所以叫"冒泡排序法"。3535冒泡法排序的思想假設(shè)有n個(gè)數(shù),將相鄰的兩個(gè)數(shù)依inta[5]13219032-113213290-1第一輪的結(jié)果:將最大的數(shù)移到了最后一個(gè)位置(n-1)。132132-190a[0]a[1]a[2]a[3]a[4]第一輪21139032-113219032-1inta[5]1321inta[5]132132-190a[0]a[1]a[2]a[3]a[4]132132-1901321-13290第二輪132132-190第二輪的結(jié)果:將第二大的數(shù)移到了n-2的位置。inta[5]1321inta[5]a[0]a[1]a[2]a[3]a[4]
1321-13290第三輪1321-13290
13-1
213290第三輪的結(jié)果:將第三大的數(shù)移到了n-3的位置。inta[5]a[0]a[1]ainta[5]a[0]a[1]a[2]a[3]a[4]
第四輪13-1213290-1
13213290-113213290結(jié)果:最后一輪的結(jié)果:將最小的數(shù)移到了第0的位置。inta[5]a[0]a[1]a排序程序段:排序程序段:414142423.選擇法排序要求:將n個(gè)數(shù)按照從大到小的順序排列。前提:n個(gè)數(shù)放入一個(gè)一維數(shù)組中。選擇法排序的思想:第一次,從n個(gè)數(shù)中,找出一個(gè)最大的,放到第一個(gè)數(shù)組元素的位置處。第二次,從剩下的n-1個(gè)數(shù)中,找出一個(gè)最大的,放到第二個(gè)數(shù)組元素的位置處。以此類推,第n-1次,從剩下的兩個(gè)數(shù)中,找出一個(gè)最大的放到第n-1個(gè)數(shù)組元素的位置處。42423.選擇法排序要求:將n個(gè)數(shù)按照從大到小的順序排列引例:從一組數(shù)中,找出其中最大的一個(gè)數(shù)。引例:從一組數(shù)中,找出其中最大的一個(gè)數(shù)。引例:從一組數(shù)中,找出其中最大的一個(gè)數(shù)。引例:從一組數(shù)中,找出其中最大的一個(gè)數(shù)。引例:從一組數(shù)中,找出其中最大的一個(gè)數(shù)。引例:從一組數(shù)中,找出其中最大的一個(gè)數(shù)。46463.選擇法排序要求:將n個(gè)數(shù)按照從大到小的順序排列。前提:n個(gè)數(shù)放入一個(gè)一維數(shù)組中。選擇法排序的思想:第一次,從n個(gè)數(shù)中,找出一個(gè)最大的,放到第一個(gè)數(shù)組元素的位置處。第二次,從剩下的n-1個(gè)數(shù)中,找出一個(gè)最大的,放到第二個(gè)數(shù)組元素的位置處。以此類推,第n-1次,從剩下的兩個(gè)數(shù)中,找出一個(gè)最大的放到第n-1個(gè)數(shù)組元素的位置處。46463.選擇法排序要求:將n個(gè)數(shù)按照從大到小的順序排列47474848寫一選擇法排序算法(小→大)寫一冒泡法排序算法(大→?。┧伎碱}:4848寫一選擇法排序算法(小→大)思考題:4949五、應(yīng)用舉例1、排序1、冒泡法排序2、選擇法排序2、查找1、順序查找2、折半查找4949五、應(yīng)用舉例1、排序5050關(guān)于查找:首先,待查找的數(shù)據(jù)放在一個(gè)一維數(shù)組中;問(wèn)題:到這樣一個(gè)一維數(shù)組中去尋找一個(gè)滿足某種特征的數(shù)組元素,如果找到,返回一個(gè)整數(shù)值,標(biāo)志這個(gè)數(shù)在數(shù)組中的位序;如果找不到,返回整數(shù)0。查找的方法:計(jì)算機(jī)中有許多的查找方法,在這里,我們只介紹兩個(gè)方法:順序查找和折半查找。5050關(guān)于查找:首先,待查找的數(shù)據(jù)放在一個(gè)一維數(shù)組中;51511、順序查找順序查找方法適用于無(wú)序存放的一組數(shù)據(jù)。查找從一維數(shù)組的最后一個(gè)數(shù)組元素開(kāi)始比較,直到找到指定的數(shù)組元素或已到達(dá)數(shù)組的頭部依然沒(méi)找到。51511、順序查找順序查找方法適用于無(wú)序存放的一組數(shù)據(jù)。52521、順序查找說(shuō)明:如果待查找的數(shù)據(jù)有n個(gè),那么,我們定義一個(gè)擁有n+1個(gè)數(shù)組元素的一維數(shù)組;其中,下標(biāo)為0的數(shù)組元素留作他用,待查找的數(shù)據(jù)從下標(biāo)為1的位置開(kāi)始存放。查找時(shí),首先將指定的數(shù)據(jù)放入下標(biāo)為0的位置,然后開(kāi)始查找。52521、順序查找說(shuō)明:5353順序查找過(guò)程:順序查找時(shí)的內(nèi)存狀態(tài):1098765432100號(hào)單元空置數(shù)據(jù)元素從1號(hào)單元開(kāi)始存放5353順序查找過(guò)程:順序查找時(shí)的內(nèi)存狀態(tài):109876545454順序查找過(guò)程:10987654321021378819920564568075ST假設(shè)給定值key=64,要求nkk64kkK=7ST[k]==key,問(wèn):k=?5454順序查找過(guò)程:10987654321021378815555順序查找過(guò)程:10987654321021378819920564568075ST假設(shè)給定值e=60,要求ST[k]==e,問(wèn):k=?nkk60kkK=0k5555順序查找過(guò)程:10987654321021378815656查找的結(jié)果:如果在查找表中存在要查找的元素,則返回該元素所在的位置的下標(biāo);如果在查找表中不存在要查找的元素,則返回整數(shù)0;程序描述如下:5656查找的結(jié)果:如果在查找表中存在要查找的元素,則返回該C語(yǔ)言一維數(shù)組課件58582、"折半"查找
若數(shù)組中的數(shù)據(jù)已經(jīng)按照從小到大的順序排好序,則查找過(guò)程可以基于"折半"進(jìn)行。折半查找又稱為二分查找。58582、"折半"查找若數(shù)組中的數(shù)據(jù)已經(jīng)按照從小到大的順5959折半查找基本思想先與“中間位置”的數(shù)組元素值比較,若相等則查找成功,否則:將給定值與"中間位置"的數(shù)組元素值比較,如果:給定值>"中間位置"的數(shù)組元素值,則在后半部繼續(xù)進(jìn)行折半查找。否則,在前半部進(jìn)行折半查找。5959折半查找基本思想先與“中間位置”的數(shù)組元素值比較,若6060折半查找算法設(shè)待查元素所在區(qū)域的下界為low,上界為high,則中間位置mid=(low+high)/2
若mid元素值等于給定值,則查找成功;
若mid元素值小于給定值,則在區(qū)域
[mid+1,high]進(jìn)行折半查找;若mid元素值大于給定值,則在區(qū)域
[low,mid-1]內(nèi)進(jìn)行折半查找;6060折半查找算法設(shè)待查元素所在區(qū)域的下界為low,上界為6161例如:key=64
的查找過(guò)程如下:low
指示查找區(qū)間的下界high
指示查找區(qū)間的上界mid=(low+high)/2051319213756647580889201234567891011lowhighmidlowmidhighmid6161例如:key=64的查找過(guò)程如下:low主要代碼:假設(shè)已有定義:inta[N],key,i,low,high,mid,find=0;low=0;high=N-1;while(low<=high){mid=(low+high)/2;if(key==a[mid]){find=1;break;}elseif(key<a[mid])high=mid-1;elselow=mid+1;}主要代碼:636364待續(xù)64待續(xù)
定義例:格式:類型說(shuō)明符數(shù)組名[常量表達(dá)式];inta[5];charc[20];floatx[10];定義一個(gè)數(shù)組元素為整型的,包含五個(gè)數(shù)組元素的一維數(shù)組定義一個(gè)數(shù)組元素為字符型的,包含20個(gè)數(shù)組元素的一維數(shù)組定義一個(gè)數(shù)組元素為浮點(diǎn)型的,包含10個(gè)數(shù)組元素的一維數(shù)組決定數(shù)組元素的類型用戶為數(shù)組起的名字決定數(shù)組元素個(gè)數(shù)定義例:格式:inta[5];cha66說(shuō)明:1.數(shù)組名定名規(guī)則和變量名相同,遵循標(biāo)識(shí)符定名規(guī)則。2.在定義數(shù)組時(shí),需要指定數(shù)組中元素的個(gè)數(shù),方括弧中的常量表達(dá)式用來(lái)表示元素的個(gè)數(shù),即數(shù)組長(zhǎng)度。3.常量表達(dá)式中可以包括常量和符號(hào)常量,但不能包含變量。也就是說(shuō),C語(yǔ)言不允許對(duì)數(shù)組的大小作動(dòng)態(tài)定義,即數(shù)組的大小不依賴于程序運(yùn)行過(guò)程中變量的值。2說(shuō)明:1.數(shù)組名定名規(guī)則和變量名相同,遵循標(biāo)識(shí)符定名規(guī)則。6767二、引用一維數(shù)組變量的數(shù)組元素原則:數(shù)組型變量必須先定義,后使用。只能逐個(gè)引用數(shù)組元素,不能直接引用整個(gè)數(shù)組型變量。數(shù)組下標(biāo)從0開(kāi)始。a[0]a[1]a[2]例如,定義數(shù)組a:inta[3],數(shù)組元素為:33二、引用一維數(shù)組變量的數(shù)組元素原則:a[0]a[1]a[6868二、引用一維數(shù)組變量的數(shù)組元素原則:
數(shù)組型變量必須先定義,后使用。只能逐個(gè)引用數(shù)組元素,不能直接引用整個(gè)數(shù)組型變量。數(shù)組下標(biāo)從0開(kāi)始。a[0]a[1]a[2]例如,定義數(shù)組a:inta[3],數(shù)組元素為:對(duì)數(shù)組變量的處理只能一個(gè)數(shù)組元素一個(gè)數(shù)組元素地處理44二、引用一維數(shù)組變量的數(shù)組元素原則:a[0]a[1]a[例inta[10];printf(“%d”,a);()
()必須
for(j=0;j<10;j++printf(“%d\t”,a[j]);例inta[10];()
()必須70注意:定義數(shù)組時(shí)用到的“數(shù)組名[常量表達(dá)式]”和引用數(shù)組元素時(shí)用到的“數(shù)組名[下標(biāo)]”是有區(qū)別的。例如∶
inta[10];t=a[6];6注意:例題鞏固在C語(yǔ)言中,引用數(shù)組元素時(shí),其數(shù)組下標(biāo)的數(shù)據(jù)類型允許是
。A)整型常量 B)整型表達(dá)式C)整型常量或整型表達(dá)式D)任何類型的表達(dá)式例題鞏固在C語(yǔ)言中,引用數(shù)組元素時(shí),其數(shù)組下標(biāo)的數(shù)據(jù)類型允C語(yǔ)言中,數(shù)組名代表A.?dāng)?shù)組全部元素的值 B.?dāng)?shù)組首地址C.?dāng)?shù)組第一個(gè)元素的值 D.?dāng)?shù)組元素的個(gè)數(shù)C語(yǔ)言中,數(shù)組名代表合法的數(shù)組定義是A.inta[]=”string”; B.inta[5]={0,1,2,3,4,5};C.chara=”string”; D.chara[]={0,1,2,3,4,5};合法的數(shù)組定義是若有定義和語(yǔ)句:chars[10];s={a,b,c,d};printf(“%s\n”,s);則結(jié)果是(以下u代表空格)A.輸出abcd B.輸出aC.輸出abcd uuuuu D.編譯不通過(guò)若有定義和語(yǔ)句:chars[10];s={a,b,c,d若有說(shuō)明:inta[10];則對(duì)a數(shù)組元素的正確引用是
。
A)a[10] B)a[3.5] C)a(5) D)a[10-10]若有說(shuō)明:inta[10];則對(duì)a數(shù)組元素的正確引用是以下能對(duì)一維數(shù)組a進(jìn)行正確初始化的語(yǔ)句是
。A)inta[10]=(0,0,0,0,0);B)inta[10]={};C)inta[]={0}; D)inta[10]=”10*1”;以下能對(duì)一維數(shù)組a進(jìn)行正確初始化的語(yǔ)句是對(duì)以下說(shuō)明語(yǔ)句的正確理解是
。inta[10]={6,7,8,9,10};A)將5個(gè)初值依次賦給a[1]至a[5]B)將5個(gè)初值依次賦給a[0]至a[4]C)將5個(gè)初值依次賦給a[6]至a[10]D)因?yàn)閿?shù)組長(zhǎng)度與初值的個(gè)數(shù)不相同,所以此語(yǔ)句不正確對(duì)以下說(shuō)明語(yǔ)句的正確理解是。若已定義數(shù)組:floata[8];則下列對(duì)數(shù)組元素引用正確的是
。
Aa[0]=1; B.a[8]=a[0]; C.a=1; D.a[3.5]=1;若已定義數(shù)組:floata[8];則下列對(duì)數(shù)組元素引用正確閱讀程序,寫出運(yùn)行結(jié)果:main(){ inti,a[10];for(i=0;i<10;i++)scanf(“%d”,&a[i]);while(i>0){ printf(“%3d”,a[--i]);if(!(i%5))putchar(‘\n’);}}輸入數(shù)據(jù)12345678910,則運(yùn)行結(jié)果為:A.12345678910 B.10987654321C.12345 678910 D.109876 54321閱讀程序,寫出運(yùn)行結(jié)果:執(zhí)行下面的程序段后,變量k中的值為_(kāi)_________。intk=3,s[2];s[0]=k;k=s[1]*10;A)不定值B)33C)30D)10執(zhí)行下面的程序段后,變量k中的值為_(kāi)_________。下列程序執(zhí)行后的輸出結(jié)果是__________。
main(){inta,b[5];a=0;b[0]=3;printf("%d,%d\n",b[0],b[1]);}A)3,0B)30C)0,3D)3,不定值下列程序執(zhí)行后的輸出結(jié)果是__________。以下程序的輸出結(jié)果是________。main(){inti,p=0,a[10]={1,5,9,0,-3,8,7,0,1,2};for(i=1;i<10;i++)if(a[i]<a[p])p=i;printf("%d,%d\n",a[p],p);}A)-3,4B)0,1C)9,2D)2,9以下程序的輸出結(jié)果是________。有如下說(shuō)明:inta[10]={0,1,2,3,4,5,6,7,8,9};則數(shù)值不為9的表達(dá)式是________。A)a[10-1]B)a[8]C)a[9]-0D)a[9]-a[0]有如下說(shuō)明:有如下程序
main(){intn[5]={0,0,0},i,k=3;for(i=0;i<k;i++)n[i]=i+1;printf("%d\n",n[k]);}該程序的輸出結(jié)果是________。A)不確定的值B)4C)2D)0有如下程序8585使用數(shù)組編程:步驟:定義數(shù)組;對(duì)數(shù)組進(jìn)行初始化;引用數(shù)組,對(duì)數(shù)組進(jìn)行相應(yīng)的操作;對(duì)結(jié)果數(shù)組進(jìn)行輸出;例.使用數(shù)組編程,計(jì)算出前10項(xiàng)fibonacci數(shù)列,要求一行打印5個(gè)數(shù)。斐波那契數(shù)列:1、1、2、3、5、8、13、21、34、55……
怎么做?2121使用數(shù)組編程:步驟:定義數(shù)組;例.使用數(shù)組編程,8686例:計(jì)算出fibonacci數(shù)列前10項(xiàng),要求一行打印5個(gè)數(shù)。目標(biāo)1:使用數(shù)組存放這10個(gè)數(shù);目標(biāo)2:輸出時(shí),一行打印5個(gè)數(shù)定義整型數(shù)組f:intf[10]輸出f[i],i:0~9輸出5個(gè)數(shù)換一次行。2222例:計(jì)算出fibonacci數(shù)列前10項(xiàng)8787f[1]:第二項(xiàng),為1;f[0]:第一項(xiàng),為0;f[0]=1;f[1]=1;從第三項(xiàng)開(kāi)始,每一項(xiàng)為:它的前兩項(xiàng)之和,即:f[i]=f[i-1]+f[i-2];(i:2~9)計(jì)算fibonacci中的項(xiàng):2323f[1]:第二項(xiàng),為1;f[0]:第一項(xiàng),為intf[10];f[0]=1;f[1]=1;ff[0]f[1]f[2]f[3]f[4]f[5]f[6]f[7]f[8]f[9]for(i=2;i<10;i++)f[i]=f[i-1]+f[i-2];for(i=0;i<10;i++){if(i%5==0)printf("\n");printf("%4d",f[i]);}11235813213455813213455523執(zhí)行過(guò)程:11intf[10];f[0]=1;ff[0]f[1]f8989四、對(duì)數(shù)組進(jìn)行輸入和輸出C語(yǔ)言規(guī)定,對(duì)數(shù)組的使用只能逐個(gè)引用數(shù)組元素,不能一次引用整個(gè)數(shù)組變量。同樣,對(duì)數(shù)組的輸入和輸出也是依次對(duì)每個(gè)元素進(jìn)行的。即:printf和scanf語(yǔ)句的操作對(duì)象是每個(gè)數(shù)組元素。例:輸入10個(gè)數(shù)到數(shù)組a中,然后將它們輸出。怎么做?2525四、對(duì)數(shù)組進(jìn)行輸入和輸出C語(yǔ)言規(guī)定,對(duì)數(shù)組的使90269127例6.4求若干個(gè)數(shù)(不多于10個(gè))的最大數(shù),最小數(shù)#defineN10#include"stdio.h"voidmain(){intI,n;
floata[N],max,min;printf("inputdatanumbers:");scanf("%d",&n);
printf("enternumbers:");for(i=0;i<n;i++)scanf("%f",&a[i]);max=min=a[0];
for(i=1;i<n;i++){if(a[i]>max)max=a[i];
if(a[i]<min)min=a[i];
}printf("\nmax=%f,min=%f\n",max,min);}
例6.4求若干個(gè)數(shù)(不多于10個(gè))的最大數(shù),最小數(shù)#def9393五、應(yīng)用舉例2929五、應(yīng)用舉例9494五、應(yīng)用舉例1、排序1、冒泡法排序2、選擇法排序2、查找1、順序查找2、折半查找3030五、應(yīng)用舉例1、排序9595用數(shù)組編程時(shí),可以這樣思考:在存儲(chǔ)器中有一片連續(xù)的內(nèi)存區(qū),名稱為a。將需要處理的一組數(shù)據(jù),依次放入這片連續(xù)內(nèi)存區(qū)的每一個(gè)單元中。對(duì)應(yīng)的名稱分別為:a[0]a[1]a[2]a[3]……a[n-2]a[n-1]a[0]a[1]a[2]a[3]……a[-2]a[-1]根據(jù)問(wèn)題的需要,對(duì)這組數(shù)據(jù)中的每一個(gè)數(shù)據(jù)元素進(jìn)行相應(yīng)的處理,處理時(shí)的訪問(wèn)方式為:a[i],即:數(shù)組a中下標(biāo)為i的位置處的數(shù)組元素。3131用數(shù)組編程時(shí),可以這樣思考:在存儲(chǔ)器中有一片連續(xù)的內(nèi)96961.有一個(gè)一維數(shù)組,有10個(gè)整數(shù)存放其中,找出其中最大的一個(gè)數(shù)。a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]0123456789數(shù)組amax=a[0];for(i=1;i<10;i++)if(a[i]>max)max=a[i];32321.有一個(gè)一維數(shù)組,有10個(gè)整數(shù)存放其中,定義main(){inti,max,x[10];printf("enterdata:\n");for(i=0;i<10;i++)scanf("%d",&x[i]);max=x[0];for(i=1;i<10;i++)if(x[i]>max)max=x[i];輸入處理輸出printf("max=%d\n",max);}定義main()printf("enterdata:\n"98982.用冒泡法對(duì)10個(gè)整數(shù)按從小到大的順序排列。什么是"冒泡法排序"?排序的過(guò)程核心程序段完整程序怎么做?34342.用冒泡法對(duì)10個(gè)整數(shù)按從小到大的順序排列。9999冒泡法排序的思想假設(shè)有n個(gè)數(shù),將相鄰的兩個(gè)數(shù)依次進(jìn)行比較,使小的在前,大的在后,那么第一輪比較n-1次就把最大的數(shù)排到了最后。第二輪比較n-2次,就把次大的數(shù)排到了倒數(shù)第二,依此類推,直到第n-1輪比較1次,將最小的數(shù)排到了第一,算法結(jié)束。算法的整體思路是讓大的數(shù)不斷地往下沉,小的數(shù)不斷地往上冒,所以叫"冒泡排序法"。3535冒泡法排序的思想假設(shè)有n個(gè)數(shù),將相鄰的兩個(gè)數(shù)依inta[5]13219032-113213290-1第一輪的結(jié)果:將最大的數(shù)移到了最后一個(gè)位置(n-1)。132132-190a[0]a[1]a[2]a[3]a[4]第一輪21139032-113219032-1inta[5]1321inta[5]132132-190a[0]a[1]a[2]a[3]a[4]132132-1901321-13290第二輪132132-190第二輪的結(jié)果:將第二大的數(shù)移到了n-2的位置。inta[5]1321inta[5]a[0]a[1]a[2]a[3]a[4]
1321-13290第三輪1321-13290
13-1
213290第三輪的結(jié)果:將第三大的數(shù)移到了n-3的位置。inta[5]a[0]a[1]ainta[5]a[0]a[1]a[2]a[3]a[4]
第四輪13-1213290-1
13213290-113213290結(jié)果:最后一輪的結(jié)果:將最小的數(shù)移到了第0的位置。inta[5]a[0]a[1]a排序程序段:排序程序段:105411061063.選擇法排序要求:將n個(gè)數(shù)按照從大到小的順序排列。前提:n個(gè)數(shù)放入一個(gè)一維數(shù)組中。選擇法排序的思想:第一次,從n個(gè)數(shù)中,找出一個(gè)最大的,放到第一個(gè)數(shù)組元素的位置處。第二次,從剩下的n-1個(gè)數(shù)中,找出一個(gè)最大的,放到第二個(gè)數(shù)組元素的位置處。以此類推,第n-1次,從剩下的兩個(gè)數(shù)中,找出一個(gè)最大的放到第n-1個(gè)數(shù)組元素的位置處。42423.選擇法排序要求:將n個(gè)數(shù)按照從大到小的順序排列引例:從一組數(shù)中,找出其中最大的一個(gè)數(shù)。引例:從一組數(shù)中,找出其中最大的一個(gè)數(shù)。引例:從一組數(shù)中,找出其中最大的一個(gè)數(shù)。引例:從一組數(shù)中,找出其中最大的一個(gè)數(shù)。引例:從一組數(shù)中,找出其中最大的一個(gè)數(shù)。引例:從一組數(shù)中,找出其中最大的一個(gè)數(shù)。1101103.選擇法排序要求:將n個(gè)數(shù)按照從大到小的順序排列。前提:n個(gè)數(shù)放入一個(gè)一維數(shù)組中。選擇法排序的思想:第一次,從n個(gè)數(shù)中,找出一個(gè)最大的,放到第一個(gè)數(shù)組元素的位置處。第二次,從剩下的n-1個(gè)數(shù)中,找出一個(gè)最大的,放到第二個(gè)數(shù)組元素的位置處。以此類推,第n-1次,從剩下的兩個(gè)數(shù)中,找出一個(gè)最大的放到第n-1個(gè)數(shù)組元素的位置處。46463.選擇法排序要求:將n個(gè)數(shù)按照從大到小的順序排列11147112112寫一選擇法排序算法(小→大)寫一冒泡法排序算法(大→?。┧伎碱}:4848寫一選擇法排序算法(小→大)思考題:113113五、應(yīng)用舉例1、排序1、冒泡法排序2、選擇法排序2、查找1、順序查找2、折半查找4949五、應(yīng)用舉例1、排序114114關(guān)于查找:首先,待查找的數(shù)據(jù)放在一個(gè)一維數(shù)組中;問(wèn)題:到這樣一個(gè)一維數(shù)組中去尋找一個(gè)滿足某種特征的數(shù)組元
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 食品加工管理制度
- Methyl-myristate-Standard-生命科學(xué)試劑-MCE
- 浙教版2021-2022學(xué)年度七年級(jí)數(shù)學(xué)上冊(cè)模擬測(cè)試卷 (752)【含簡(jiǎn)略答案】
- Mefenamic-acid-Standard-生命科學(xué)試劑-MCE
- Magnolol-Standard-生命科學(xué)試劑-MCE
- 教案怎么寫歷史課程設(shè)計(jì)
- 教師美術(shù)課程設(shè)計(jì)
- 教師如何做好課程設(shè)計(jì)
- 學(xué)校教輔資料管理規(guī)章制度
- 面對(duì)沖突 課程設(shè)計(jì)
- 2023年《移動(dòng)式壓力容器充裝質(zhì)量管理手冊(cè)》
- 《中學(xué)教育科研實(shí)務(wù)》課程教學(xué)大綱
- 眼科手術(shù)器械清洗滅菌流程圖
- 老年人常見(jiàn)眼病知識(shí)講座
- 英語(yǔ)面試介紹我的家鄉(xiāng)-浙江省諸暨市
- 2023學(xué)年完整公開(kāi)課版餡餅
- 小學(xué)道德與法治-行行出狀元教學(xué)課件設(shè)計(jì)
- 支氣管哮喘指南解讀
- 二氧化碳安全技術(shù)說(shuō)明書MSDS
- 定稿過(guò)敏性紫癜等6種疾病診療指南
- 2023年四川高考真題及答案理科數(shù)學(xué)
評(píng)論
0/150
提交評(píng)論