版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優(yōu)質文檔-傾情為你奉上數(shù)組練習解答1 定義一個名為a的單精度實型一維數(shù)組,長度為4,所有元素的初值均為0的數(shù)定義語句是_【分析】按照一般數(shù)據(jù)定義語句的格式,可以直接寫出方法一(參看答案);考慮到所有元素均賦初值時可以省略數(shù)組長度,可以寫出方法二(參看答案);考慮到不省略數(shù)組長度,給部分元素賦初值時,所有未賦初值的元素均有空值(對數(shù)值型數(shù)組來說,初值為0),可以寫出方法三(參看答案);考慮到選用靜態(tài)型,不賦初值所有元素也自動賦予。空值(對數(shù)值型數(shù)組來說,初值為0),可以寫出方法四(參看答案)?!敬鸢浮糠椒ㄒ唬篺loat a400,00,00,00; 方法二:float a 00,00,00,
2、00; 方法三:float a4= 00; 方法四: static float 4;2 下列數(shù)組定義語句中,錯誤的是() char x1a; auto char x1=0; static char xl; char xl;【分析】顯然答案中給字符型數(shù)組賦初值的格式不對(不能直接賦予字符常量,必須用花括號括?。詡溥x答案是符合題意的答案?!敬鸢浮?3 用冒泡排序法對n個數(shù)據(jù)排序,需要進行n一1 步。其中第k步的任務是:自下而上,相鄰兩數(shù)比較,小者調上;該操作反復執(zhí)行nk次?,F(xiàn)在假設有4個數(shù)據(jù):4、l、3、2要排序,假定4為上、2為下,則利用冒泡排序法執(zhí)行第2步后的結果是_?!痉治觥块_始排序前
3、的排列執(zhí)行第1步后的排列執(zhí)行第2步后的排列 4 1 1 1 4 2 3 2 4 2 3 3 【答案】 l、2、4、34 用選擇排序法對n個數(shù)據(jù)排序,需要進行n1步。其中第k步的任務是:在第k個數(shù)據(jù)到第n個數(shù)據(jù)中尋找最小數(shù),和第k個數(shù)據(jù)交換?,F(xiàn)在假設有4個數(shù)據(jù):4、1、3、2要排序,則利用冒泡排序法執(zhí)行第2步后的結果是_?!痉治觥?開始排序前的排列為: 4 1 3 2 執(zhí)行第1步后的排列為: 1 4 3 2 執(zhí)行第2步后的排列為: 1 2 3 4【答案】1、2、3、45 下列數(shù)組定義語句中,正確的是() int a=1,2,3,4,5,6; char a23a,b; int a3= 1,2,3,
4、4,5,6; static int a1,2,3,4,5,6;【分析】規(guī)定,二維數(shù)組定義時不允許省略第二維的長度,所以備選答案是錯誤的。還規(guī)定,定義字符型數(shù)組時不允許直接使用字符常量的方式賦初值,所以備選答案也是錯誤的。顯然備選答案符合題意?!敬鸢浮? 定義一個名為s的字符型數(shù)組,并且賦初值為字符串123的錯誤語句是()char s=1,2,3,0 ; char s=123;char s=123n; char s4=1,2,3;【分析】備選答案中省略了數(shù)組長度,所以每個元素都賦了初值,共計4個元素,初值依次為l、2、3、0,最后一個元素的值為字符串結束標記,所以數(shù)組S中存放的是字符串123,該
5、答案不符合題意(即正確的);備選答案中直接賦予字符串作為初值所以數(shù)組s的長度為4,其中的初值是字符串123,不符合題意(即正確的);備選答案中也是給數(shù)組s賦予字符串的初值,但是字符串不是123,而是123n,所以該答案符合題意(即錯誤的);顯然答案也不符合題意(即正確的)。下面來分析答案為什么是正確的,該答案給出了數(shù)組長度為4,賦初值時僅給前3個元素賦予字符1 、 2、3,第 4個元素沒有賦初值,按照 的規(guī)定,也有初值,且初值為空值, 對字符型數(shù)組來說,空值就是0,即字符率結束標記,所以數(shù)組S中存放的也是字符串 123?!敬鸢浮? 設有下列數(shù)據(jù)定義語句,則數(shù)組元素xi的值是_。int i 3,
6、x4= 1,2,3;【分析】由于i的初值為3,所以xi就是x3。由于數(shù)組的下標是從0開始的,所以x3實際上是數(shù)組x的第4個元素。從定義語句中可以看出數(shù)組x的前3個元素的初值依次為1、2、3,第4個元素沒有賦初值,其初值自動設為空值,對整型數(shù)組來說,空值是0,顯然x3的值是0.【答案】08 設有下列數(shù)據(jù)定義語句,則 puts(s00)的輸出結果是_; puts(s0輸出結果是_。char s45=l,0,23,345,40;【分析】首先分析字符型數(shù)組s的初值,s的第1行中存放的字符串是1、第2行中存放的符串是23、第3行中存放的字符串是345、第4行中存放的字符串是4。puts()函數(shù)的功能是輸
7、出從參數(shù)處開始存放的字符串中有效字符。按照上的分析,第1個輸出的結果是從S00開始的字符串,這個地址對應的就是數(shù)s的第1行,所以輸出結果為1;第2個輸出的結果是從“s”開始的字符串,這個址對應的也是數(shù)組s的第1行,所以輸出結果也為1。【答案】 1 19 設有下列數(shù)據(jù)定義語句:char a410=11,22,33,44;則 puts(strcat(a1,a3)的輸出結果是_;putS(strcpy(a0,a2)的輸出結果是_?!痉治觥孔址麛?shù)組a共有4行,每行存放一個字符串。這4行的首地址依次為:a0、a1、a2、a3,從這4個地址開始存放的字符串依次為:11、22、33、44。strcat(a1
8、,a3)函數(shù)調用的功能是將s3處的字符串連接到al的字符串后面,所以執(zhí)行該函數(shù)調用后的al處的字符串為2244,而該函數(shù)的返回值就是a1的首地址,puts()函數(shù)的功能就是輸出這個地址存放的字符串,由此,第1個輸出的結果就是:2244。同樣理由可以分析strcpy(a0,a2)的功能是將a2處的字符串(33)復制到a0處,返回a0的地址,puts()輸出的就是a0處的字符串,結果為:33。【答案】2244 3310 設有下列數(shù)據(jù)定義語句: char str210=abc,ABC;則printf(d,strcmp(str1,str0)的輸出結果是_;printf(d,strcmp(strlwr(
9、str1,str0),str0)的輸出結果是_?!痉治觥孔址蛿?shù)組str中,從str0開始存放的字符串是abc、從strl開始存放的字符串是ABC。strcmp(strl,str0)是比較strl和str【0處的兩個字符串的大小,由于ABC是小于abc的,按照srrcmp函數(shù)的功能可知,返回值是一個小于0的整數(shù),這是第1個空的答案。再來分析第2個空的答案,strlwr(strl)函數(shù)的功能是將strl處的字符串中大寫字母改為小寫字母,其返回值是修改后字符串的地址。strcmp(stlwr(sir1),str0)函數(shù)的功能是比較strl和str0處的字符串,由于strl處的字符串已經改為小寫字母
10、了,所以和 str0處的字符串完全相同,返回值是0,這就是第2個空的答案。答案某個小于0的任意整數(shù) 011 下列程序的功能是讀取10個實數(shù),然后依次輸出前l(fā)個實數(shù)和、前2個實數(shù)和、前9個實數(shù)和、前10個實數(shù)和。請?zhí)顚懗绦蛑腥鄙俚恼Z句。 main() float f10,X00; int i; for(i=0;i10;i+) scanf( f, fi); for(i=1;i=10;i+) _ printf(sum of NO 2dfn,i,x); 【分析】瀏覽程序清單后,可以發(fā)現(xiàn)前一個次數(shù)型循環(huán)是輸入 10個實數(shù)存入數(shù)組 f中。后一個次數(shù)型循環(huán)是計算前i個實數(shù)和并存入變量X中,然后再輸出這個x的
11、值。程序中所缺少的語句就是實現(xiàn)計算前i個實數(shù)和并存入變量X中的。當i等于1時,x要等于f0的值,即fil的值;當i等于2時,x要等于f0 fl的值,即f0fi1的值,此時f0的值已經計算并存入變量x中;當i等于3時,x要等于f0f1f2的值,即f0f1fil的值,此時f0f1的值已經計算并存入變量x中;由此可以推出:前i個值的計算公式為:xxfi1,將這個表達式組成語句就是需要填寫的內容?!敬鸢浮?x=xfil; 或 xfil;12 運行下列程序的輸出結果是() 111ll llll lll 222 main() int a=1,2,3,4, 5 ,i; for( i=1;i 5; i) pr
12、intf( 1d, ai ai一1); 【分析】首先分析數(shù)組a各元素的值,由于是賦初值,很容易看出:a0 1、a12、a45。再分析次數(shù)型循環(huán)共計執(zhí)行4次(i1、i2、i3、i4),每次輸出1位整數(shù);iai1,當i1時,輸出的是211;當i2時,輸出的是32l;當i=3時,輸出的是43l;當i4時,輸出的是541。整個程序的輸出結果是1111?!敬鸢浮?3 下列程序的功能是輸入一個5行5列的實數(shù)矩陣,然后求出其中的最大數(shù)和最小數(shù),并且對調這兩個數(shù)后,再輸出,請?zhí)顚懗绦蛑腥鄙俚恼Z句。main() float f 55,max, x;int i,j,max_l,max_J,min_i,min_J;
13、for(i0;i5;i) for(j0;j5;j) scanf(f,x); fijx; maxminf00;max_imax_imin_imin_j 0;for(i= 0;i5;i) for(j0;j5;j) if(maxfij) maxfij,max_ii,max_jj; if(minfij) _ fmax_imax_jmin;fmin_imin_jmax; for(i0;i5;i) printf(n); for(j0;j5;j) printf(82f,fij); 【分析】首先宏觀上閱讀程序,可以看出程序的基本結構是:用雙重次數(shù)型循環(huán)讀取5行5列矩陣的元素值存入二維數(shù)組f中;尋找矩陣中的最大
14、數(shù)和最小數(shù);交換最大數(shù)和最小數(shù);輸出交換后的矩陣元素值。需要填寫的語句屬于第2個部分?,F(xiàn)在來仔細分析這個部分的程序。通常尋找最大數(shù)(或最小數(shù))的算法是首先假定最前面的數(shù)是最大數(shù)(或最小數(shù)),并記錄該數(shù)及其在數(shù)組中的下標,然后依次處理所有元素,若當前處理的元素大于(小于)最大數(shù)(最小數(shù)),則重新記錄新的最大數(shù)(最小數(shù))及其下標。從本程序清單來看,的確是采用了這個算法,由于是同時求最大數(shù)和最小數(shù),所以用max、max_i、max_j分別記錄當前的最大數(shù)及其行列下標,用min、min_i、min_j分別記錄當前的最小數(shù)及其行列下標。在二重循環(huán)的循環(huán)體中有兩條單分支語句,前一個單分支語句的功能很清楚,
15、判斷當前的數(shù)組元素是否大于最大數(shù),是則重新記錄最大數(shù)及其行列下標(注意,這里是用一個逗號表達式完成三項賦值工作的)。循環(huán)體中的第2條單分支語句當然是求當前最小數(shù)的,由此分析,當條件成立(當前數(shù)組元素小于當前最小數(shù))時,需要重新記錄當前的最小數(shù)及其行列下標,所缺少的語句正是完成這項工作的,由于只能用一條語句完成三項賦值工作,所以必須使用遠號表達式。對照該循環(huán)體的前一個單分支語句,很容易寫出所缺少的語句。接下來閱讀以后的程序,來驗證所填寫的語句。接下來的兩條賦值語句正好完成了最大數(shù)和最小數(shù)的交換工作。前一個語句“fmax_imax_j min;”是將找到的最小數(shù)存入對應最大數(shù)的位置(maxi是最大
16、數(shù)的行下標,max_i是最大數(shù)的列下標,fmax_imaxj就是最大數(shù)),類似的,后一個語句“fminimin_jmax ;”是將找到的最大數(shù)存入對應最小數(shù)的位置?!敬鸢浮縨infij,minii,minj=j;14 閱讀下列 程序,寫出程序運行后的輸出結果。 main()int al=1,3,6,7,100,a2=2,4,5,8,100,a10,i,j,k; ij0; for(k0;k8;k) if(a1ia2j) aka1i; else aka2j; for (k 0; k 8; k ) printf(1d,ak); 【分析】程序開始用賦初值方式給數(shù)組al和a2的所有元素賦值。接下來是給變
17、量 i、j清0,從后面的for循環(huán)中可以看出,變量i、j是作為一維數(shù)組的下標的,所以它們的初值是從0下標開始的。重點分析其后的次數(shù)型循環(huán),共計循環(huán)8次,控制變量k的值依次為0、l、7,這個控制循環(huán)的變量k也是作為下標使用的。再分析循環(huán)體,這是一條雙分支語句,控制條件是“a1iaj”,即a1數(shù)組的第葉元素值小于a2數(shù)組的第j個元素值。這個條件成立時,執(zhí)行的操作包括: al數(shù)組的第i個元素存入 a數(shù)組的第 k個元素中、同時 i加1,使得 a1i成為其后的元素;如果這個條件不成立(即a2數(shù)組的第 j個元素值小于或等于 al數(shù)組的第 i個元素值),執(zhí)行的操作包括: a2數(shù)組的第j個元素在入a數(shù)組的第k
18、個地素中、同時j加1,使得a2j成為其后的元素。綜合上述的分析,可以看出,循環(huán)體的工作是將數(shù)組al和a2的當前元素中值小的元素復制到數(shù)組 a中,如果數(shù)組 al的元素被復制,則其下標后移一個位置,指向 al的新元素;如果數(shù)組a2的元素被復制,則其下標后移一個位置,指向a2的新元素。該循環(huán)執(zhí)行8次,恰好把數(shù)組a1和數(shù)組a2中的各4個元素按照從小到大的順序復制到數(shù)組a中。最后看看輸出,是一個次數(shù)型循環(huán)語句,輸出的結果是數(shù)組a中的8個元素值,而且輸出格式為一位整數(shù),結果當然是: 。 請讀者注意,由于原來的兩個數(shù)組al和a2中的元素是從小到大的順序排列的,所以合并后的數(shù)組a的元素也必然是從小到大的。這是
19、一種排序的算法,稱為兩路歸并排序法。但是,真正的兩路歸并排序法要考慮到某個數(shù)組的元素全部復制后,另一個數(shù)組中的剩余元素要全部復制。本程序中沒有考慮這個臨界問題,而是采用了在兩個數(shù)組的有效數(shù)據(jù)之后,放一個最大數(shù)的方法,并且知道歸并后的數(shù)據(jù)總個數(shù)?!敬鸢浮?15 閱讀下列程序,寫出程序運行后的輸出結果。 include string.h main() char s320=2345,2347; int i, k; for( k 0, i1; i 3; i) if(strcmp(sk,si)0) k i: puts(sk); 【分析】該程序很簡單,開始給二維字符型數(shù)組賦初值為3個字符串,通過一個次數(shù)型
20、循環(huán)求得變量k的值,然后輸出sk對應的字符串。從上面的分析可知,關鍵是循環(huán)語句執(zhí)行后變量k的值等于多少?我們呵以用記錄的方法來記錄在循環(huán)中變量k的值。 執(zhí)行循環(huán)語句,記錄如下: k0,i1,控制循環(huán)的條件i 3成立,執(zhí)行循環(huán)體的單分支語句,條件(strcmp (sk,si)0相當于(strcmp(2345,)0,條件不成立,變量k值不變,i加1后繼續(xù)循環(huán); k0,i 2,控制循環(huán)的條件i 3成立,執(zhí)行循環(huán)體的單分支語句,條件(strcmp(sk,si)0相當于(strcmp(2345,2345)0,條件成立,執(zhí)行ki,k值為2,i加1后繼續(xù)循環(huán); k2,i=3,控制循環(huán)的條件i3不成立,退出循
21、環(huán)。 此時變量k值為2. 執(zhí)行puts(sk);語句,輸出的是s2處存放的 字符串:2347 顯然該程序的主要功能是在3個字符串中。尋找最大字符串的【答案】 234716 閱讀下列程序,寫出程序的主要功能。 main() int i, a10, x, flag 0; for(i=0; i10;i十十) scanf(d, a 【i】); scanf(d, X); for(i=0;i10;i十十) if( x ai) flag i十1; break; if(flag= 0 ) printf(no found!n); else printf(dn,flag); 【分析】該程序屬于比較簡單的,開始定義
22、整型數(shù)組a以及整型變量x、flag和i。下面的次數(shù)型循環(huán)是輸入10個整數(shù)到數(shù)組a中,此時可以看出變量i是作為循環(huán)的控制變量使用的。接著輸入一個整數(shù)到變量x中。接下來的次數(shù)型循環(huán)執(zhí)行10次,這是的用單重次數(shù)型循環(huán)來依次處理一維數(shù)組元素的程序段,處理的內容是循環(huán)體中的單分支語句,即判斷當前的數(shù)組元素是否等于變量x,是,則在變量師中記錄 i1后退出循環(huán);否,則繼續(xù)循環(huán)。由此可以分析出,這個流環(huán)足在數(shù)組a中尋找x的,找不到,則變社flag的值不會改變(注意動值為0);如果找到,則lleq變量的值將等于il,其中的i是循環(huán)控制變量,也就是找到的數(shù)組元素的下標,將其加 1后存入變量flag,所以此時的fl
23、ag是對應數(shù)組元素的下標加 1的。我們再仔細分析一下,當i0時,找到的是數(shù)組元素a0,此時flag為1,表示是數(shù)組的第1個元素,即在10個待查整數(shù)中的序號為 1;當 i l時,找到的是數(shù)組元素 a1,此時 flag為2,表示是數(shù)組的第 2個元素,即在 10個待查整數(shù)中的序號為 2. 當 i9時,找到的是數(shù)組元素a9,此時 flag為10,表示是數(shù)組的第1O個元素,即在10個待查整數(shù)中的序號為10.所以,找到則flag的值為1、2、10;找不到則為0。循環(huán)后面的輸出恰好是按照flag的值分別處理找到和找不到的兩種情況。綜上所述,可以總結出本程序的主要功能。【答案】輸入10個整數(shù)存入數(shù)組a,再輸入
24、一個整數(shù)x,在數(shù)組a中查找x。找到輸出x在10個整數(shù)中的序號(從1開始),找不到則輸出no found!。17 閱讀下列程序,寫出程序的主要功能。 main() int i,sum 0,a 10; for(i0;i10;i) scanf( d,ai); for(i9;i0;i) if( ai 7 0) sumai; printf(d,ai); printf(nsumdn,sum); 【分析】這是的次數(shù)型循環(huán)結構。第1個循環(huán)是輸入10個整數(shù)存入數(shù)組a中;第 2個循環(huán)是從后向前的順序依次處理一維數(shù)組的元素。具體的處理是體現(xiàn)在其循環(huán)體中,它是判斷當前數(shù)是否滿足條件“ai70”,滿足條件的元素則參加累
25、加的計算,并輸出滿足條件的數(shù)組元素。退出循環(huán)后,再輸出這些滿足條件的數(shù)組元素之和。 程序功能的關鍵是搞清楚條件ai7 0的含義,其實很簡單,這個條件就是數(shù)組元素能被7整除。綜上所述,可以總結出該程序的主要功能?!敬鸢浮枯斎?0個整數(shù),按從后向前的順序依次尋找并輸出其中能被7整除的所有整數(shù)以及能被7整除的這些整數(shù)的和。18 編一個程序,計算并輸出下列數(shù)列的前24項,每行輸出4項。 數(shù)列第1項的值1 數(shù)列第2項的值2 數(shù)列第k項的值=第kl項的值十第k2項的值,當k為奇數(shù)時, 數(shù)列第k項的值=第kl項的值一第k2項的值,當k為偶數(shù)時。【分析】求數(shù)列的前 24項可使用次數(shù)型循環(huán)結構,只要按照給出的公式計算并保存即可。按每行4個數(shù)據(jù)的格式輸出一維數(shù)組中的數(shù)據(jù)是一個的次數(shù)型循環(huán)?!敬鸢浮縱oid main() long int a25=0,1,2 ;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度生物醫(yī)藥研發(fā)平臺土地租賃合同3篇
- 2025年巡演設備租賃合同
- 2025年度個人消費貸款合同提前還款流程規(guī)范4篇
- 2025年度特色農產品加工廠舊房購置合同書4篇
- 2025年家電預付款服務合同
- 二零二五年度池塘租賃合同(含水產養(yǎng)殖技術培訓合作)4篇
- 二零二五年度環(huán)保行業(yè)勞動合同參考4篇
- 二零二五年度機場航站樓清潔與消毒合同范本3篇
- 二零二五年度XX項目融資轉讓居間合同3篇
- 2024年度黑龍江省公共營養(yǎng)師之三級營養(yǎng)師模考模擬試題(全優(yōu))
- 廣東省茂名市電白區(qū)2024-2025學年七年級上學期期末質量監(jiān)測生物學試卷(含答案)
- 2024版?zhèn)€人私有房屋購買合同
- 2024爆炸物運輸安全保障協(xié)議版B版
- 2025年度軍人軍事秘密保護保密協(xié)議與信息安全風險評估合同3篇
- 《食品與食品》課件
- 讀書分享會《白夜行》
- 光伏工程施工組織設計
- DB4101-T 121-2024 類家庭社會工作服務規(guī)范
- 化學纖維的鑒別與測試方法考核試卷
- 2024-2025學年全國中學生天文知識競賽考試題庫(含答案)
- 自動駕駛汽車道路交通安全性探討研究論文
評論
0/150
提交評論