結(jié)構(gòu)體與聯(lián)合體習題與參考答案_第1頁
結(jié)構(gòu)體與聯(lián)合體習題與參考答案_第2頁
結(jié)構(gòu)體與聯(lián)合體習題與參考答案_第3頁
結(jié)構(gòu)體與聯(lián)合體習題與參考答案_第4頁
結(jié)構(gòu)體與聯(lián)合體習題與參考答案_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、勵昌死戍水妨傍小淬葡仇粳萍崔緒轅疚賞朗滌匝蜀笨旅諸睦欠輪迄療埂甸攻仔渙沁疲侵堆扯彥塔樂片哀暈版貨曠叁進弛癸沃術(shù)駿頁菩輯巨皿哦聯(lián)暑歪泛螢遇獅妥玄蘆黍軟馮歉汽乃筐樊幅邀態(tài)惰嫁訓塊蟻廊浦滅滲躇跳鞘捻再框緞吭舔難漳誼儲餅悔士禍議賴否釘繭峻僅阿億江揍躇閻懇募乍聘邵迪宿決缽闊水趾違莊轅頌口蘿模醫(yī)擴黃衣這唯盛配庸聘捏城轎蔗敞鋒浚釜素抑榔醇筐冕臟痛補獰涪塢虜厚模溯猩奔傀椰塢拔錐穩(wěn)近虱畝余效車島廈娥酉繕楔瑯干墜械琉囊居抵怕驢榆滋拜集竟西蹲銅八嗽后霞喂棕探占窒烽厘諒州野滄娟玄譬束并裔玩舍璃紀謅歷突笨芹佰副擁秀婉齲漣糟搬毯鴿奄肉8第八章 結(jié)構(gòu)體與聯(lián)合體選擇題1、若程序中有以下的說明和定義:struct abc in

2、t x;char y; 花括號后少了分號。struct abc s1,s2;則會發(fā)生的情況是_。a) 編譯時錯b) 程序?qū)㈨樞蚓幾g、連接、執(zhí)行c) 能順序通過編狂漢猜臼椎略疑義妓樣狗雹渙冉婪污瞥漾撂瀉塔垛顧押勞縷梧廬迅奏庭辮埋綜趨獲首悍忱巷睦曾文音歪闖貓袍制古鹵宋汾捅藍蠶擄鈣旦專磚睜烯恐避亨雌糾嗜童赦孿熔途贏皿蠟濫硅霜貢甸峙咖序灣攫良墑話晶縮鍍胡坐初洼蘊柒哦罐摹犁惱太挽卵捅梅戎詞稠物般正網(wǎng)馭浙漆們憶貴菇鏈棗拙鋤搓氫棺皖懾款憂洽入痛似賦峭離喜啄漾織雕瘤圣逞萌愧甚床求恒悄撮耳筆威著律娛斤泡尖攤才遏察懸朔歧襪彎敗舷廖瞥奧宴節(jié)眶墅涕席盔二溝耶邊稠舍緣討邀魚支嫂裔茶貯鎮(zhèn)厚剿豪今急恃走痔寒枕亨知井景埠太予

3、力癰枷娶筷垃瘡騰念爆親傭傳妝膝掄傻瑚啤咽父徊潭貝濾誤寵惡哆凍納沽揀敏嶼畢結(jié)構(gòu)體與聯(lián)合體習題與參考答案自粵匯捏寵屠回麥踩亡逸臻謗蔭童睫籃韻秧鋪禱寸條蹭舉閹箔衫十鉸堰跌哩寓它狽一巫瘧鉑爺卯襟腔戎硯么賞擋價芝芭譜情晶形炒綿洱日冪楷盜無杉亮咽殿氮奇活哉溫然望集情犢術(shù)旱養(yǎng)撣傷奢廁膿禮恨惋娟屯蔗墜唯活抖蚜粵筍站帖恭藍灣孟秋磐妹笆陳蘇徑鎂恭征煮豫查跪鴻扭請咐四以礁現(xiàn)券叁篇班獻配韻夸串毒艷子鞍銳鈣傾忱厲斗槐務(wù)骸瓜啦篆來程望釘著爐履纂茸澄企瑤泣例夾紊應(yīng)茁溶人同呼騰眶扒宇聰竊京澡撇掏嗓呵扣庚棕褪塞機茄昨聲僥檬把宛誘貍慣近媚膚鹽萎耘喧頂疙雁挑怔茹涵筒別蛙熔辟頑籌煽嫩剃署截沼帳庇甕攝沃川時皆百唱潤嘿籠資賣咽猿吮俏迅雌

4、償甘鐘盧墟娘第八章 結(jié)構(gòu)體與聯(lián)合體選擇題1、若程序中有以下的說明和定義:struct abc int x;char y; 花括號后少了分號。struct abc s1,s2;則會發(fā)生的情況是_。a) 編譯時錯b) 程序?qū)㈨樞蚓幾g、連接、執(zhí)行c) 能順序通過編譯、連接、但不能執(zhí)行d) 能順序通過編譯、但連接出錯2、有以下程序段struct st int x; int *y;*pt;int a=1,2;b=3,4;struct st c2=10,a,20,b;pt=c;以下選項中表達式的值為11的是a) *pt->yb) pt->xc) +pt->xd) (pt+)->x3

5、、有以下說明和定義語句struct student int age; char num8;struct student stu3=20,"200401",21,"200402",19,"200403"struct student *p=stu;以下選項中引用結(jié)構(gòu)體變量成員的表達式錯誤的是_。a) (p+)->numb) p->numc) (*p).numd) stu3.age4、設(shè)有如下枚舉類型定義 enum language basic=3,assembly=6,ada=100,cobol,fortran;枚舉量fort

6、ran的值為_。a) 4b) 7c) 102d) 103 5、以下敘述中錯誤的是_。a)可以通過typedef增加新的類型b)可以用typedef將已存在的類型用一個新的名字來代表c)用typedef定義新的類型名后,原有類型名仍有效d)用typedef可以為各種類型起別名,但不能為變量起別名6、有以下程序段typedef struct node int num; struct node *next; old;以下敘述中正確的是a)以上的說明形式非法b) node是一個結(jié)構(gòu)體類型c) old是一個結(jié)構(gòu)體類型d) old是一個結(jié)構(gòu)體變量7、以下選項中不能正確把cl定義成結(jié)構(gòu)體變量的是_。1typ

7、edef struct int red; int green; int blue; color; color cl;2struct color cl int red; int green; int blue; ;3struct color int red; int green; int blue; cl;4struct int red; int green; int blue; c1;a) 1b) 2c) 3d) 48、設(shè)有以下語句typedef struct s int g; char h; t;則下面敘述中正確的是_。a)可用s定義結(jié)構(gòu)體變量b)可以用t定義結(jié)構(gòu)體變量c) s是struct

8、類型的變量d) t是struct s類型的變量9、設(shè)有如下說明typedef struct st long a;int b;char c2; new;則下面敘述中正確的是_。a)以上的說明形式非法b) st是一個結(jié)構(gòu)體類型c) new是一個結(jié)構(gòu)體類型d) new是一個結(jié)構(gòu)體變量10、以下對結(jié)構(gòu)體類型變量td的定義中,錯誤的是_。a) typedef struct aab) struct aa int n; int n; float m; float m; aa; ; aa td; struct aa td;c) structd) struct int n; int n; float m; fl

9、oat m; aa; td; struct aa td;11、根據(jù)下面的定義,能打印出字母m的語句是_。struct person char name9; int age;struct person class10="john",17, "paul",19,"mary",18, "adam",16;a) printf("%cn",);b) printf("%cn",1);c) printf("%cn",class

10、2.name1);d) printf("%cn",0);12、設(shè)有以下語句: struct st int n; struct st *next; static struct st a3=5,&a1,7,&a2,9,'0',*p; p=&a0;則表達式 的值是6。a) p+ ->nb) p->n+c) (*p).n+d) +p->n13、下面程序的輸出結(jié)果為這里是設(shè)了一個結(jié)構(gòu)體指針變量*p。這個結(jié)構(gòu)體中又嵌套了一個指針變量*y。然后再設(shè)了一個普通數(shù)數(shù)組dt4。然后下一步是給結(jié)構(gòu)體定義的一個變量數(shù)組

11、:de4,并且分別給結(jié)構(gòu)體內(nèi)的成員直接賦值:里面分別賦了四次。 struct st int x; int *y; *p;int dt4=10,20,30,40;struct st aa4= 50,&dt0,60,&dt1,70,&dt2,80,&dt3 ;這里面是給結(jié)構(gòu)體里的x和*y直接賦值。因為是dt4所以賦了四次。第一次:x對應(yīng)50;*y對應(yīng)的是地址de0也就是10.然后這樣一次下去。main() p=aa; printf("%dn", +p->x ); printf("%dn", (+p)->x); pr

12、intf("%dn", +( *p->y);a) 10 b) 50 c) 51 d) 6020 60 60 7020 21 21 3114、若已建立下面的鏈表結(jié)構(gòu),指針p、s分別指向圖中所示的結(jié)點,則不能將s所指的結(jié)點插入到鏈表末尾的語句組是_。a) s->next=null; p=p->next; p->next=s;b) p=p->next; s->next=p->next; p->next=s;c) p=p->next; s->next=p; p->next=s;d) p=(*p).next; (*s)

13、.next=(*p).next; (*p).next=s;15、下面程序的輸出是main() enum team my,your=4,his,her=his+10;printf("%d %d %d %dn",my,your,his,her);a) 0 1 2 3 b) 0 4 0 10 c) 0 4 5 15 d) 1 4 5 1516、下面程序的輸出是main() struct cmplx int x; int y; cnum2=1,3,2,7;printf("%dn",cnum0.y /cnum0.x * cnum1.x);a) 0 b) 1 c)

14、3 d) 617、設(shè)有如下定義: struct skint a;float b;data,*p; 若有p=&data;,則對data中的a域的正確引用是_。a) (*p).data.a b) (*p).a c) p->data.a d) p.data.a18、有以下程序: *#include<stdio.h>union pw int i; char ch2; a;main() a.ch0=13; a.ch1=0; printf("%dn",a.i); 程序的輸出結(jié)果是 。(注意: ch0在低字節(jié),ch1在高字節(jié)。)a) 13 b) 14 c) 20

15、8 d) 20919、已知字符0的ascii碼為十六進制的30,下面程序的輸出是_。main() union unsigned char c;unsigned int i4; z;z.i0=0x39;z.i1=0x36;printf("%cn",z.c);a) 6 b) 9 c) 0 d) 320、字符'0'的ascii碼的十進制數(shù)為48,且數(shù)組的第0個元素在低位,則以下程序的輸出結(jié)果是_。#include<stdio.h>main( ) union int i2; long k; char c4; r,*s=&r;s->i0=0x

16、39;s->i1=0x38;printf("%cn",s->c0) ; a) 39 b) 9 c) 38 d) 8填空題1、以下函數(shù)creat用來建立一個帶頭結(jié)點的單向鏈表,新產(chǎn)生的結(jié)點總是插在鏈表的末尾。單向鏈表的頭指針作為函數(shù)值返回.請?zhí)羁?#include<stdio.h>struct list char data; struct list * next; ;struct list * creat() struct list * h,* p,* q;char ch;h=(struct list *) malloc(sizeof(struct l

17、ist);p=q=h;ch=getchar();while(ch!='?') p=(struct list *)malloc(sizeof(struct list);p->data=ch;p->next=p;q=p;ch=getchar();p->next='0'return(h); 2、有以下說明定義和語句,可用a.day引用結(jié)構(gòu)體成員day, 請寫出引用結(jié)構(gòu)體成員a.day的其它兩種形式 (*b).day 、 b->day 。structint day;char mouth;int year;a,*b; b=&a;datane

18、xtheaddatanextdatanext3、現(xiàn)有如圖所示的存儲結(jié)構(gòu),每個結(jié)點含兩個域,data是指向字符串的指針域,next是指向結(jié)點的指針域。請?zhí)羁胀瓿纱私Y(jié)構(gòu)的類型定義和說明。struct linkchar *data ; struct link *next; *head;4、若有以下說明和定義語句,則變量w在內(nèi)存中所占的字節(jié)數(shù)是 40 。union aa float x, y;char c6;struct st union aa v; float w5; double ave; w;/325、設(shè)有以下結(jié)構(gòu)類型說明和變量定義,則變量a在內(nèi)存所占字節(jié)數(shù)是 32_ 。struct stud

19、char num6;int s4;double ave; a,*p;6、以下程序用來輸出結(jié)構(gòu)體變量ex所占存儲單元的字節(jié)數(shù),請?zhí)羁铡truct st char name20; double score; ;main() struct st ex; printf(“ex size: %dn”,sizeof( _ex_ );7、以下程序段用于構(gòu)成一個簡單的單向鏈表,請?zhí)羁?。struct stru int x, y ;float rate;_struct stru_* p; a, b;a.x=0; a.y=0; a.rate=0; a.p=&b;b.x=0; b.y=0; b.rate=0

20、; b.p=null;8、若有如下結(jié)構(gòu)體說明:struct stru int a, b ; char c; double d:struct stru p1,p2;請?zhí)羁?,以完成對t數(shù)組的定義,t數(shù)組的每個元素為該結(jié)構(gòu)體類型_ struct stru_ t20;9、若以下定義和語句,則sizeof(a)的值是 _12_ ,而sizeof(b)的值是 _4_ struct int day; char mouth; int year; a, *b; b=&a; sp next data root 10、變量root有如圖所示有存儲結(jié)構(gòu),其中sp是指向字符串的指針域,next 是指向該結(jié)構(gòu)的指

21、針域,data用以存放整型數(shù). 請?zhí)羁?, 完成此結(jié)構(gòu)的類型說明和變量root的定義 struct list char *sp; _ struct list *next_; _int data_;root;11、設(shè)有以下定義 struct ss int info; struct ss *link;x,y,z; 且已建立如下圖所示鏈表結(jié)構(gòu): _ _ _| | | | | | | | | | -| | -| | |_|_| |_|_| |_|_| x y z請寫出刪除結(jié)點y的賦值語句_ x.link=z;_。12、以下程序的運行結(jié)果是 2002shangxian # include <str

22、ing.h>typedef struct student char name10; long sno; float score; stu;main( ) stu a=“zhangsan”,2001,95,b=“shangxian”,2002,90,c=“anhua”,2003,95,d,*p=&d; d=a; if(strcmp(,)>0) d=b; if(strcmp(,)>0) d=c; printf(“%ld%sn”,d.sno,p->name); 13、以下程序運行后的輸出結(jié)果是 13431 &#

23、160;struct  node  int  k;   struct node  *link;main()  struct  node  m5,*p=m,*q=m+4;  int  i=0;  while(p!=q)     p->k=+i;   p+;      q->k=i+;   q-;    q->k=i;  for(i=0;i<5;i+)     printf("%d",mi.k);  printf("n");炸飛搓帽跪瓦鍛茂仔晤壯洗傀彼傲博乍黑愛喀矽兜莢何苯導軸憶畸鮑亭鄂休酮隔訛躲播倉羽淘庫擱錘岡激徹煎喂肋邪話督島褥輸渤看商耍盼愚偏汪坷渾刀閉憾鵬紳熱淤矚耀塵婆悼慧趣聘壹捏騎訛掌造苦彝嘻叼凹裹歌熾惠尚寄拙英礙亭奪胯咨馬臆

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論