【课後评量】.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【课後评量】

第六章【課後評量】 一、問答題 1.現在有一維陣列如下: arr[ ]={ 43,35,12,9,3,99 }; 假設此陣列經由氣泡排序法(Bubble Sort)由小到大排序,在執行第三次(Swap)之後的結果為何?請寫出第一到第三次的交換結果。 解答: 第一次交換的結果為(35,43,12,9,3,99) 第二次交換的結果為(35,12,43,9,3,99) 第三次交換的結果為(35,12,9,43,3,99) 2.以下三種宣告方式,有哪些是不合法的宣告,請說明原因。 int A1[2][3]={{1,2,3},{2,3,4}}; int A2[ ][3]={{1,2,3},{2,3,4}}; int A3[2][ ]={{1,2,3},{2,3,4}}; 解答:A3的宣告不合法,因為C對於多維陣列註標的設定,只允許第一維可以省略不用定義,其它維數的註標都必須清楚定義長度。 3.假設宣告了陣列一整數陣列a[30],而a的記憶體位置為240ff40,請問a[10]與a[15]的記憶體位置為何? 解答:如果整數的長度為4個位元組,則a[10]表示從a的位置移動10*4個位元組位置,結果是240ffb8,同理可推a[15]的記憶體位置應為240fff4。 4.下面這個程式碼片段設定並顯示陣列初值,但隱含了並不易發現的錯誤,請找出這個程式碼片段的錯誤所在: 01 int a[2, 3] = {{1, 2, 3},{4, 5, 6}}; 02 int i, j; 03 for(i = 0; i 2; i++) 04 for(j = 0; j 3; j++) 05 printf(%d , a[i, j]); 解答:第01行與第05行出錯,因為二維陣列的宣告與指定是a[][]型式,而不是a[,],請修改為如下: 01 int a[2][3] = {{1, 2, 3},{4, 5, 6}}; 05 printf(%d ,a[i][ j]); 5.假設A為一個具有1000個元素的陣列,每個元素為4個位元組的實數 ,若A[500]的位置為100016,請問A[1000]的位址為何? 解答:本題很簡單,主要是位址以16進位法表式→ →loc(A[1000])=loc(A[500])+(1000-500)×4 =4096+2000=6096 6.陣列結構型態通常包含那幾種屬性?試說明之。 解答: 陣列結構型態通常包含五種屬性:起始位址、維度(dimension)、索引上下限、 陣列元素個數、陣列型態。 7.宣告陣列後,有哪兩種方法設定元素的數值? 解答: (1)宣告陣列時即給予初始值。 陣列名稱[陣列大小]={初始值1,初始值2,…}; (2)利用索引值,設定個別的陣列元素數值。 陣列名稱[陣列索引值] = 指定數值; 8.請指出以下程式碼是否有錯?為什麼? char Str1[]=Hello; char Str2[20]; Str2=Str1; 解答:由於字串不是C語言的基本資料型態,因此不能以上述的指定形式複製字串,所以要複製字串,必需從字元陣列中一個一個取出元素的內容作指定。通常的作法可利用strcpy()函數來複製,如下所示: strcpy(Str2,Str1); 9.請問以下str1與str2字串,分別佔了多少位元組(bytes)? char str1[ ]= You are a good boy; char str2[ ]= This is a bad book ; 解答: str1字串有19位元組。 str2字串有21位元組。 10.如何利用陣列表示與儲存多項式P(x,y)=9x5+4x4y3+14x2y2+13xy2+15?試說明之。 解答:假如m,n分別為多項式x,y的最大指數乘冪係數,對多項式P(x)而言,我們可用一個(m+1)*(n+1)的二維陣列加以儲存。例如本題P(x,y)可用(5+1)*(3+1)的二維陣列表示如下: 11.下面這個程式預定要顯示字串內容,但是結果不如預期,請問出了什麼問題? #include stdio.h int main(void){ char str[]={J,u,s,t}; printf(%s,str); return 0; } 解答:第3行改為: 03 char str[]={J,u,s,t,\0}; 12.為了要顯示陣列中所有元素的值,我們使用for迴圈,但結果並不正確,請問下面這個程式碼哪邊出了問題? 01 #include stdio.h 02 03 int main(void) 04 { 05 int arr[5] = {1, 2,

文档评论(0)

75986597 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档