結(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頁,還剩2頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

/20XX結(jié)構(gòu)體與聯(lián)合體習(xí)題選擇題1、若程序中有以下的說明和定義:structabc{intx;chary;}花括號(hào)后少了分號(hào)。structabcs1,s2;則會(huì)發(fā)生的情況是______。 A>編譯時(shí)錯(cuò) B>程序?qū)㈨樞蚓幾g、連接、執(zhí)行C>能順序通過編譯、連接、但不能執(zhí)行 D>能順序通過編譯、但連接出錯(cuò)2、有以下程序段structst{intx;int*y;}*pt;inta[]={1,2};b[]={3,4};structstc[2]={10,a,20,b};pt=c;以下選項(xiàng)中表達(dá)式的值為11的是A>*pt->yB>pt->xC>++pt->xD><pt++>->x3、有以下說明和定義語句structstudent{intage;charnum[8];};structstudentstu[3]={{20,"200401"},{21,"200402"},{19,"200403"}};structstudent*p=stu;以下選項(xiàng)中引用結(jié)構(gòu)體變量成員的表達(dá)式錯(cuò)誤的是______。A><p++>->num B>p->num C><*p>.num D>stu[3].age4、設(shè)有如下枚舉類型定義enumlanguage{Basic=3,Assembly=6,Ada=100,COBOL,Fortran};枚舉量Fortran的值為______。A>4 B>7 C>102 D>1035、以下敘述中錯(cuò)誤的是_________。A>可以通過typedef增加新的類型B>可以用typedef將已存在的類型用一個(gè)新的名字來代表C>用typedef定義新的類型名后,原有類型名仍有效D>用typedef可以為各種類型起別名,但不能為變量起別名6、有以下程序段typedefstructNODE {intnum; structNODE*next;}OLD;以下敘述中正確的是 A>以上的說明形式非法 B>NODE是一個(gè)結(jié)構(gòu)體類型C>OLD是一個(gè)結(jié)構(gòu)體類型 D>OLD是一個(gè)結(jié)構(gòu)體變量7、以下選項(xiàng)中不能正確把cl定義成結(jié)構(gòu)體變量的是______。1.typedefstruct{intred;intgreen;intblue;}COLOR;COLORcl;2.structcolorcl{intred;intgreen;intblue;};3.structcolor{intred;intgreen;intblue;}cl;4.struct{intred;intgreen;intblue;}c1;A>1 B>2 C>3 D>48、設(shè)有以下語句typedefstructS{intg;charh;}T;則下面敘述中正確的是______。A>可用S定義結(jié)構(gòu)體變量B>可以用T定義結(jié)構(gòu)體變量C>S是struct類型的變量D>T是structS類型的變量9、設(shè)有如下說明typedefstructST{longa;intb;charc[2];}NEW;則下面敘述中正確的是_____。A>以上的說明形式非法B>ST是一個(gè)結(jié)構(gòu)體類型C>NEW是一個(gè)結(jié)構(gòu)體類型 D>NEW是一個(gè)結(jié)構(gòu)體變量10、以下對(duì)結(jié)構(gòu)體類型變量td的定義中,錯(cuò)誤的是______。A>typedefstructaa B>structaa{intn; {intn;floatm; floatm;}AA; };AAtd; structaatd;C>struct D>struct{intn; {intn;floatm; floatm;}aa; }td;structaatd;11、根據(jù)下面的定義,能打印出字母M的語句是_____。 structperson{charname[9];intage;};structpersonclass[10]={"John",17,"Paul",19,"Mary",18,"Adam",16};A>printf<"%c\n",class[3].name>; B>printf<"%c\n",class[3].name[1]>;C>printf<"%c\n",class[2].name[1]>; D>printf<"%c\n",class[2].name[0]>;12、設(shè)有以下語句:structst{intn;structst*next;};staticstructsta[3]={5,&a[1],7,&a[2],9,'\0'},*p;p=&a[0];則表達(dá)式的值是6。A>p++->nB>p->n++C><*p>.n++D>++p->n13、下面程序的輸出結(jié)果為 這里是設(shè)了一個(gè)結(jié)構(gòu)體指針變量*p。這個(gè)結(jié)構(gòu)體中又嵌套了一個(gè)指針變量*y。然后再設(shè)了一個(gè)普通數(shù)數(shù)組dt[4]。然后下一步是給結(jié)構(gòu)體定義的一個(gè)變量數(shù)組:de[4],并且分別給結(jié)構(gòu)體內(nèi)的成員直接賦值:里面分別賦了四次。這里是設(shè)了一個(gè)結(jié)構(gòu)體指針變量*p。這個(gè)結(jié)構(gòu)體中又嵌套了一個(gè)指針變量*y。然后再設(shè)了一個(gè)普通數(shù)數(shù)組dt[4]。然后下一步是給結(jié)構(gòu)體定義的一個(gè)變量數(shù)組:de[4],并且分別給結(jié)構(gòu)體內(nèi)的成員直接賦值:里面分別賦了四次。{intx;int*y;}*p;intdt[4]={10,20,30,40};structstaa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]};這里面是給結(jié)構(gòu)體里的x和*y直接賦值。因?yàn)槭莇t[4]所以賦了四次。第一次:x對(duì)應(yīng)50;*y對(duì)應(yīng)的是地址de[0]也就是10.然后這樣一次下去。這里面是給結(jié)構(gòu)體里的x和*y直接賦值。因?yàn)槭莇t[4]所以賦了四次。第一次:x對(duì)應(yīng)50;*y對(duì)應(yīng)的是地址de[0]也就是10.然后這樣一次下去。{p=aa;printf<"%d\n",++p->x>;printf<"%d\n",<++p>->x>;printf<"%d\n",++<*p->y>>;}A>10 B>50C>51 D>60206060702021213114、若已建立下面的鏈表結(jié)構(gòu),指針p、s分別指向圖中所示的結(jié)點(diǎn),則不能將s所指的結(jié)點(diǎn)插入到鏈表末尾的語句組是__________。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>.next=<*p>.next;<*p>.next=s;15、下面程序的輸出是 main<>{enumteam{my,your=4,his,her=his+10};printf<"%d%d%d%d\n",my,your,his,her>;}A>0123B>04010C>16、下面程序的輸出是main<>{structcmplx{intx;inty;}cnum[2]={1,3,2,7};printf<"%d\n",cnum[0].y/cnum[0].x*cnum[1].x>;}A>0B>1C>3D>617、設(shè)有如下定義: structsk{inta;floatb;}data,*p;若有p=&data;,則對(duì)data中的a域的正確引用是__________。A><*p>.data.a B>18、有以下程序:* #include<stdio.h>unionpw{inti;charch[2];}a;main<>{a.ch[0]=13;a.ch[1]=0;printf<"%d\n",a.i>;}程序的輸出結(jié)果是?!沧⒁猓篶h[0]在低字節(jié),ch[1]在高字節(jié)。A>13B>14C>208 D>20919、已知字符0的ASCII碼為十六進(jìn)制的30,下面程序的輸出是___________。main<>{union{unsignedcharc;unsignedinti[4];}z;z.i[0]=0x39;z.i[1]=0x36;printf<"%c\n",z.c>;}A>6B>9C>0D>320、字符'0'的ASCII碼的十進(jìn)制數(shù)為48,且數(shù)組的第0個(gè)元素在低位,則以下程序的輸出結(jié)果是_____________。#include<stdio.h> main<>{union{inti[2];longk;charc[4];}r,*s=&r;s->i[0]=0x39;s->i[1]=0x38;printf<"%c\n",s->c[0]>;}A>39B>9C>38D>8填空題1、以下函數(shù)creat用來建立一個(gè)帶頭結(jié)點(diǎn)的單向鏈表,新產(chǎn)生的結(jié)點(diǎn)總是插在鏈表的末尾。單向鏈表的頭指針作為函數(shù)值返回.請(qǐng)?zhí)羁? #include<stdio.h>structlist{chardata;structlist*next;};structlist*creat<>{structlist*h,*p,*q;charch;h=<structlist*>malloc<sizeof<structlist>>;p=q=h;ch=getchar<>;while<ch!='?'>{p=<structlist*>malloc<sizeof<structlist>>;p->data=ch;p->next=p;q=p;ch=getchar<>;}p->next='\0';return<h>;}2、有以下說明定義和語句,可用a.day引用結(jié)構(gòu)體成員day,請(qǐng)寫出引用結(jié)構(gòu)體成員a.day的其它兩種形式<*b>.day、b->day。 struct{intday;charmouth;intyear;}a,*b;b=&a;datanextheaddatanextdatadatanextheaddatanextdatanext…structlink{char*data;structlink*next;}*head;4、若有以下說明和定義語句,則變量w在內(nèi)存中所占的字節(jié)數(shù)是40。unionaa{floatx,y;charc[6];};structst{unionaav;floatw[5];doubleave;}w;//325、設(shè)有以下結(jié)構(gòu)類型說明和變量定義,則變量a在內(nèi)存所占字節(jié)數(shù)是32__。Structstud{charnum[6];ints[4];doubleave;}a,*p;6、以下程序用來輸出結(jié)構(gòu)體變量ex所占存儲(chǔ)單元的字節(jié)數(shù),請(qǐng)?zhí)羁?。structst{charname[20];doublescore;};main<>{structstex;printf<"exsize:%d\n",sizeof<_ex_____>>;}7、以下程序段用于構(gòu)成一個(gè)簡單的單向鏈表,請(qǐng)?zhí)羁铡tructSTRU{intx,y;floatrate;_structSTRU_*p;}a,b;a.x=0;a.y=0;a.rate=0;a.p=&b;b.x=0;b.y=0;b.rate=0;b.p=NULL;8、若有如下結(jié)構(gòu)體說明:structSTRU{inta,b;charc;doubled:structSTRUp1,p2;};請(qǐng)?zhí)羁?以完成對(duì)t數(shù)組的定義,t數(shù)組的每個(gè)元素為該結(jié)構(gòu)體類型_structSTRU_____t[20];9、若以下定義和語句,則sizeof<a>的值是____12_____,而sizeof<b>的值是__4______struct{intday;charmouth;intyear;}a,*b;b=&a;spnextdataspnextdata┌─┬─┬─┐root││││└─┴─┴─┘structlist{char*sp;_structlist*next______;_intdata______;}root;11、設(shè)有以下定義structss{intinfo;structss*link;}x,y,z;且已建立如下圖所示鏈表結(jié)構(gòu):_______________|||||||||||-|→||-|→||||__|__||__|__||__|__|x

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論