- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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,
您可能关注的文档
- 6.UIC60道岔规范.doc
- 5.话务台功能-三先公司欢迎您.doc
- 6.4测定条件的选择.ppt
- 6228-海丰国小.ppt
- 74项纺织行业标准.doc-臻龙粘合剂.doc
- 7改电表改装与校准.doc.doc
- 8.1物联网工程的安全概述物联网工程的安全性主要从数据机密性.ppt
- 8.1软体Software.ppt
- 9.附件(2016.6.1-6.7).doc.doc
- 8.doc.doc-朝阳科技大学机构典藏系统.doc
- 2024年江西省高考政治试卷真题(含答案逐题解析).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)物理试卷(含答案详解).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)地理试卷(含答案详解).pdf
- 2024年内蒙通辽市中考化学试卷(含答案逐题解析).docx
- 2024年四川省攀枝花市中考化学试卷真题(含答案详解).docx
- (一模)长春市2025届高三质量监测(一)化学试卷(含答案).pdf
- 2024年安徽省高考政治试卷(含答案逐题解析).pdf
- (一模)长春市2025届高三质量监测(一)生物试卷(含答案).pdf
- 2024年湖南省高考政治试卷真题(含答案逐题解析).docx
- 2024年安徽省高考政治试卷(含答案逐题解析).docx
文档评论(0)