【课后评量】.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
【课后评量】

第九章【課後評量】 一、問答題 1.請問下面的程式碼片段,在哪一行會發生編譯上的錯誤? 1 struct flower 2 { 3 /* 花的名稱 */ 4 char *name; 5 }; 6 struct flower fruit_flower[5]; 7 fruit_flower.name[0]= lotus; 解答:第7行。之所以會發生編譯上的錯誤,主要是程式不曉得到底要存取哪一元素的結構成員,所以必須將索引值[0]更正放在flower後面,即fruit_flower[0].name= lotus;如此,才可以程式執行無誤。 2.下面這個程式何者有誤? 01 struct student 02 { 03 unsigned bit1: 1; 04 unsigned bit2: 1; 05 unsigned bit3: 1; 06 unsigned bit4: 1; 07 } a = {1, 0, 1, 1}; 08 09 int main(void) 10 { 11 unsigned *ptr; 12 ptr = a.bit1; 13 printf(%u, *ptr); 14 15 return 0; 16 } 解答:最小可定址的記憶體單位為位元組,使用位元欄位時,您無法取得它的記憶體位址。 3.「結構指標」的功用為何? 解答:如果以結構為資料型態宣告指標變數,此指標就稱為「結構指標」。雖然結構變數可以直接對其成員進行存取,但由於結構指標為是以此結構為資料型態的指標變數,所儲存的內容是位址,因此還是跟一般指標變數一樣,必須先指定結構變數的位址給指標,才能間接存取其指定結構變數的成員。 4.請舉一實例說明,如何宣告巢狀結構。 解答: struct grade { struct { char *name; int height; int weight; } std[3]; /*省略了內層結構的名稱定義,而直接使用grade結構來定義*/ char *teacher; }; 5.有一結構內容如下: struct circle { float r; float pi; float area; }; 且宣告為結構指標: struct circle *getData; getData = myCircle; 請依照上述程式碼,寫出兩種結構指標存取方式? 解答: 第一種結構指標存取方式 printf(getData-r = %.2f\n, getData-r); printf(getData-pi = %.2f\n, getData-pi); printf(getData-area = %.2f\n, getData-area); 第二種結構指標存取方式 printf((*getData).r = %.2f\n, (*getData).r); printf((*getData).pi = %.2f\n, (*getData).pi); printf((*getData).area = %.2f\n, (*getData).area); 6.下列有關結構指標陣列的程式碼中,何者有誤?請說明原因。 int main() { struct student { int score; }; struct student s1[5] = { 90,95,98,75, 80}}; struct student *s2[5]; int i; for(i = 0; i 5; i++) s2[i] = s1[i];/* 複製結構成員 */ for(i = 0; i 5; i++) { printf(成績:%d \n, *s2[i].name); } return 0; } 解答:第16行,因為是結構指標陣列,所以不能使用*運算子或指標運算來存取結構內的資料成員。而必須改為: printf(成績:%d \n, s2[i]-score); 7.請列舉型態指令(enum)的意義與功用。 解答:列舉型態指令(enum)也是一種由使用者自行定義的資料型態,內容是由一組常數集合成的列舉成員,並給予各常數值不同的命名。列舉型態指令的優點,在於把變數值限定在列舉成員的常數集合裡,並利用名稱方式來作指定,使得程式可讀性大為提高。 8.二元樹(又稱knuth樹)是一個由有限節點所組成的集合,此集合可以為空

文档评论(0)

ailuojue + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档