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

下載本文檔

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

文檔簡介

1、-PAGE . z.2013年 構(gòu)造體與聯(lián)合體習(xí)題選擇題1、假設(shè)程序中有以下的說明和定義:struct abc int *;char y; 花括號后少了分號。struct abc s1,s2;則會發(fā)生的情況是_。A) 編譯時錯B) 程序?qū)㈨樞蚓幾g、連接、執(zhí)行C) 能順序通過編譯、連接、但不能執(zhí)行D) 能順序通過編譯、但連接出錯2、有以下程序段struct st int *; int *y;*pt;int a=1,2;b=3,4;struct st c2=10,a,20,b;pt=c;以下選項(xiàng)中表達(dá)式的值為11的是A) *pt-yB) pt-*C) +pt-*D) (pt+)-*3、有以下說明和

2、定義語句struct student int age; char num8;struct student stu3=20,200401,21,200402,19,200403;struct student *p=stu;以下選項(xiàng)中引用構(gòu)造體變量成員的表達(dá)式錯誤的選項(xiàng)是_。A) (p+)-numB) p-numC) (*p).numD)stu3.age4、設(shè)有如下枚舉類型定義 enum language Basic=3,Assembly=6,Ada=100,COBOL,Fortran;枚舉量Fortran的值為_。A) 4B) 7C)102D) 103 5、以下表達(dá)中錯誤的選項(xiàng)是_。A)可以通過

3、typedef增加新的類型B)可以用typedef將已存在的類型用一個新的名字來代表C)用typedef定義新的類型名后,原有類型名仍有效D)用typedef可以為各種類型起別名,但不能為變量起別名6、有以下程序段typedef struct NODEint num; struct NODE *ne*t; OLD;以下表達(dá)中正確的選項(xiàng)是A)以上的說明形式非法B) NODE是一個構(gòu)造體類型C)OLD是一個構(gòu)造體類型D) OLD是一個構(gòu)造體變量7、以下選項(xiàng)中不能正確把cl定義成構(gòu)造體變量的是_。1typedef struct int red; int green; int blue; COLOR;

4、 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;則下面表達(dá)中正確的選項(xiàng)是_。A)可用S定義構(gòu)造體變量B)可以用T定義構(gòu)造體變量C) S是struct類型的變量D) T是struct S類型的變量9、設(shè)有如下說明typedef struct

5、ST long a;int b;char c2; NEW;則下面表達(dá)中正確的選項(xiàng)是_。A)以上的說明形式非法B) ST是一個構(gòu)造體類型C)NEW是一個構(gòu)造體類型D) NEW是一個構(gòu)造體變量10、以下對構(gòu)造體類型變量td的定義中,錯誤的選項(xiàng)是_。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; float m; aa; td; struct aa td;11、根據(jù)下面的定義,能打印出字

6、母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,1);D) printf(%cn,0);12、設(shè)有以下語句:struct st int n; struct st *ne*t; static struct st a3=5,&a1,7,&a2,9,0,*p;p=&a0;則表

7、達(dá)式的值是6。A) p+ -nB) p-n+C) (*p).n+D) +p-n13、下面程序的輸出結(jié)果為這里是設(shè)了一個構(gòu)造體指針變量*p。這個構(gòu)造體中又嵌套了一個指針變量*y。然后再設(shè)了一個普通數(shù)數(shù)組dt4。然后下一步是給構(gòu)造體定義的一個變量數(shù)組:de4,并且分別給構(gòu)造體內(nèi)的成員直接賦值:里面分別賦了四次。 struct st int *; int *y; *p;int dt4=10,20,30,40;struct st aa4= 50,&dt0,60,&dt1,70,&dt2,80,&dt3 ;這里面是給構(gòu)造體里的*和*y直接賦值。因?yàn)槭莇t4所以賦了四次。第一次:*對應(yīng)50;*y對應(yīng)的是地

8、址de0也就是10.然后這樣一次下去。main() p=aa; printf(%dn, +p-* );printf(%dn, (+p)-*); printf(%dn, +( *p-y);A) 10 B) 50 C) 51 D) 6020 60 60 7020 21 21 3114、假設(shè)已建立下面的鏈表構(gòu)造,指針p、s分別指向圖中所示的結(jié)點(diǎn),則不能將s所指的結(jié)點(diǎn)插入到鏈表末尾的語句組是_。A) s-ne*t=NULL; p=p-ne*t; p-ne*t=s;B) p=p-ne*t; s-ne*t=p-ne*t; p-ne*t=s;C) p=p-ne*t; s-ne*t=p; p-ne*t=s;D

9、) p=(*p).ne*t; (*s).ne*t=(*p).ne*t; (*p).ne*t=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 cmpl* int *; int y; um2=1,3,2,7;printf(%dn,um0.y /um0.* * um1.*);A) 0 B) 1 C) 3 D) 617、設(shè)有如下

10、定義: struct skint a;float b;data,*p; 假設(shè)有p=&data;,則對data中的a域的正確引用是_。A) (*p).data.a B)18、有以下程序: *#includeunion pw int i; char ch2; a;main() a.ch0=13; a.ch1=0; printf(%dn,a.i); 程序的輸出結(jié)果是。注意: ch0在低字節(jié),ch1在高字節(jié)。A) 13B) 14 C) 208 D) 20919、字符0的ASCII碼為十六進(jìn)制的30,下面程序的輸出是_。main() union unsigned char c;unsigned int

11、i4; z;z.i0=0*39;z.i1=0*36;printf(%cn,z.c);A) 6 B)9 C) 0 D) 320、字符0的ASCII碼的十進(jìn)制數(shù)為48,且數(shù)組的第0個元素在低位,則以下程序的輸出結(jié)果是_。#includemain( ) union int i2; long k; char c4; r,*s=&r;s-i0=0*39;s-i1=0*38;printf(%cn,s-c0) ; A) 39 B)9 C) 38 D) 8填空題1、以下函數(shù)creat用來建立一個帶頭結(jié)點(diǎn)的單向鏈表,新產(chǎn)生的結(jié)點(diǎn)總是插在鏈表的末尾。單向鏈表的頭指針作為函數(shù)值返回.請?zhí)羁?#includestru

12、ct list char data; struct list * ne*t; ;struct list * creat() struct list * h,* p,* q;char ch;h=(struct list *) malloc(sizeof(struct list);p=q=h;ch=getchar();while(ch!=) p=(struct list *)malloc(sizeof(struct list);p-data=ch;p-ne*t=p;q=p;ch=getchar();p-ne*t=0;return(h);2、有以下說明定義和語句,可用a.day引用構(gòu)造體成員day,

13、 請寫出引用構(gòu)造體成員a.day的其它兩種形式 (*b).day 、b-day 。structint day;char mouth;int year;a,*b; b=&a;datane*theaddatane*tdatane*t3、現(xiàn)有如下圖的存儲構(gòu)造,每個結(jié)點(diǎn)含兩個域,data是指向字符串的指針域,ne*t是指向結(jié)點(diǎn)的指針域。請?zhí)羁胀瓿纱藰?gòu)造的類型定義和說明。struct linkchar *data ; struct link *ne*t; *head;4、假設(shè)有以下說明和定義語句,則變量w在內(nèi)存中所占的字節(jié)數(shù)是 40 。union aa float *, y;char c6;struct

14、 st union aa v; float w5; double ave; w;/325、設(shè)有以下構(gòu)造類型說明和變量定義,則變量a在內(nèi)存所占字節(jié)數(shù)是32_。Struct stud char num6;int s4;double ave; a,*p;6、以下程序用來輸出構(gòu)造體變量e*所占存儲單元的字節(jié)數(shù),請?zhí)羁?。struct st char name20; double score; ;main() struct st e*; printf(e* size: %dn,sizeof( _e*_ );7、以下程序段用于構(gòu)成一個簡單的單向鏈表,請?zhí)羁?。struct STRU int *, y ;flo

15、at rate;_struct STRU_* p; a, b;a.*=0; a.y=0; a.rate=0; a.p=&b;b.*=0; b.y=0; b.rate=0; b.p=NULL;8、假設(shè)有如下構(gòu)造體說明:struct STRU int a, b ; char c; double d:struct STRU p1,p2;請?zhí)羁?,以完成對t數(shù)組的定義,t數(shù)組的每個元素為該構(gòu)造體類型_struct STRU_ t20;9、假設(shè)以下定義和語句,則sizeof(a)的值是 _12_ ,而sizeof(b)的值是 _4_ struct int day; char mouth; int year

16、; a, *b; b=&a; sp ne*t data root 10、變量root有如下圖有存儲構(gòu)造,其中sp是指向字符串的指針域,ne*t 是指向該構(gòu)造的指針域,data用以存放整型數(shù). 請?zhí)羁?, 完成此構(gòu)造的類型說明和變量root的定義struct list char *sp;_struct list *ne*t_;_int data_;root;11、設(shè)有以下定義 struct ss int info; struct ss *link;*,y,z; 且已建立如下列圖所示鏈表構(gòu)造: _ _ _| | | | | | | | | | -| | -| | |_|_| |_|_| |_|_| * y z請寫出刪除結(jié)點(diǎn)y的賦值語句_ *.link=z;_。12、以下程序的運(yùn)行結(jié)果是 2002Shang*ian# include typedef struct student char name10; long sno; float score; STU;main( ) STU a=zhangsan,2001,95,b=Shang*ian,2002,90,c=Anhua,2003,95,d,*p=&d; d=a; if(

溫馨提示

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

評論

0/150

提交評論