【良心出品】第三講-結(jié)構(gòu)體習(xí)題_第1頁(yè)
【良心出品】第三講-結(jié)構(gòu)體習(xí)題_第2頁(yè)
【良心出品】第三講-結(jié)構(gòu)體習(xí)題_第3頁(yè)
【良心出品】第三講-結(jié)構(gòu)體習(xí)題_第4頁(yè)
【良心出品】第三講-結(jié)構(gòu)體習(xí)題_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡(jiǎn)介

第三講結(jié)構(gòu)體與共用體一、選擇題1.在說(shuō)明一個(gè)結(jié)構(gòu)體變量時(shí)系統(tǒng)分配給它的存儲(chǔ)空間是。該結(jié)構(gòu)體中第一個(gè)成員所需存儲(chǔ)空間該結(jié)構(gòu)體中最后一個(gè)成員所需存儲(chǔ)空間該結(jié)構(gòu)體中占用最大存儲(chǔ)空間的成員所需存儲(chǔ)空間該結(jié)構(gòu)體中所有成員所需存儲(chǔ)空間的總和2.若有以下說(shuō)明和語(yǔ)句:structworker{intno;char﹡name;}work,﹡p=&work;則以下引用方式不正確的是。*A)work.noB)(﹡p).noC)p->noD)work->no3.有如下定義:structdate{intyear,month,day;};structworklist{charname[20];charsex;structdatebirthday;}person;對(duì)結(jié)構(gòu)體變量person的出生年份進(jìn)行賦值時(shí),下面正確的賦值語(yǔ)句是。*A)year=1958B)birthday.year=1958C)person.birthday.year=1958D)person.year=19584.以下對(duì)結(jié)構(gòu)體類型變量的定義中不正確的是。*#defineSTUDENTstructstudentB)structstudentSTUDENT{intnum;{intnum;floatage;floatage;}std1;}std1;C)structD)struct{intnum;{intnum;floatage;floatage;}student;}std1;structstudentstd1;5.設(shè)有以下說(shuō)明語(yǔ)句structstu{inta;floatb;}stutype;則下面的敘述不正確的是。*struct是結(jié)構(gòu)體類型的關(guān)鍵字structstu是用戶定義的結(jié)構(gòu)體類型stutype是用戶定義的結(jié)構(gòu)體類型名a和b都是結(jié)構(gòu)體成員名6.C語(yǔ)言結(jié)構(gòu)體類型變量在程序執(zhí)行期間。所有成員一直駐留在內(nèi)存中只有一個(gè)成員主留在內(nèi)存中部分成員駐留在內(nèi)存中沒(méi)有成員駐留在內(nèi)存中7.以下程序的運(yùn)行結(jié)果是。*#include<stdio.h>main(){structdate{intyear,month,day;}today;printf(“%d\n”,sizeof(structdate));}A)6B)8C)10D)8.有如下定義

structperson{charname[9];intage;};

structpersonclass[10]={“Johu”,17,

“Paul”,19

“Mary”,18,

“Adam16,};

根據(jù)上述定義,能輸出字母M的語(yǔ)句是。*

A)prinft(“%c\n”,class[3].mane);

B)pfintf(“%c\n”,class[3].name[1]);

C)prinft(“%c\n”,class[2].name[1]);

D)printf(“%^c\n”,class[2].name[0]);9.設(shè)有如下定義

structss

{charname[10];

intage;

charsex;

}std[3],*p=std;

下面各輸入語(yǔ)句中錯(cuò)誤的是。*

A)scanf("%d",&(*p).age);

B)scanf("%s",&);

C)scanf("%c",&std[0].sex);

D)scanf("%c",&(p->sex))10.設(shè)有以下說(shuō)明語(yǔ)句,則下面的敘述中不正確的是。*

structex{intx;floaty;charz;}example;

A)struct結(jié)構(gòu)體類型的關(guān)鍵字B)example是結(jié)構(gòu)體類型名

C)x,y,z都是結(jié)構(gòu)體成員名D)structex是結(jié)構(gòu)體類型11.若程序中有下面的說(shuō)明和定義:structstt{intx;charb;}structstta1,a2;則會(huì)發(fā)生的情況是。*A)程序?qū)㈨樌幾g、連接、執(zhí)行。B)編譯出錯(cuò)。C)能順利通過(guò)編譯、連接,但不能執(zhí)行。D)能順利通過(guò)編譯,但連接出錯(cuò)。12.已知教師記錄定義為:structstudent{intno;charname[30];struct{unsignedintyear;unsignedintmonth;unsignedintday;}birthday;}stu;structstudent*t=&stu;若要把變量t中的生日賦值為“1980年5月1日”,則正確的賦值方式為。*A)year=1980;B)t.year=1980;month=5;t.month=5;day=1;t.day=1;C)t.birthday.year=1980;D)t->birthday.year=1980;t.birthday.month=5;t->birthday.month=5;t.birthday.day=1;t->birthday.day=1;13.以下結(jié)構(gòu)類型可用來(lái)構(gòu)造鏈表的是。*

A)structaa{inta;int*b;};B)structbb{inta;bb*b;};

C)structcc{int*a;ccb;};D)structdd{int*a;aab;};14.以下程序的輸出結(jié)果是。**

amovep(int*p,inta[3][3],intn)

{inti,j;

for(i=0;i<n;i++)

for(j=0;j<n;j++){*p=a[i][j];p++;}

}

main()

{int*p,a[3][3]={{1,3,5},{2,4,6}};

p=(int*)malloc(100);

amovep(p,a,3);

printf("%d%d\n",p[2],p[5]);free(p);

}

A)56B)25C)3415.以下程序的輸出結(jié)果是。**

structHAR

{intx,y;structHAR*p;}h[2];

main()

{h[0].x=1;h[0].y=2;

h[1].x=3;h[1].y=4;

h[0].p=&h[1].x;h[1].p=&h[0].x;printf("%d%d\n",(h[0].p)->x,(h[1].p)->y);

}

A)12B)23C)14D二、填空題1.有如下定義:*struct{intx;inty;}s[2]={{1,2},{3,4}},﹡p=s;則:表達(dá)式++p->x的結(jié)果是。表達(dá)式++p->x的結(jié)果是。2.若有定義:**structnum{inta;intb;floatf;}n={1,3,5.0}};structnum﹡pn=&n;則表達(dá)式pn->b/n.a(chǎn)﹡++pn->b的值是,表達(dá)式(﹡pn).a(chǎn)+pn->f的值是。3.若要使指針p指向一個(gè)double類型的動(dòng)態(tài)存儲(chǔ)單元,請(qǐng)?zhí)羁铡?

p=malloc(sizeof(double));4.設(shè)有以下結(jié)構(gòu)類型說(shuō)明和變量定義,則變量a在內(nèi)存所占字節(jié)數(shù)是。*

Structstud

{charnum[6];

ints[4];

doubleave;

}a,*p;三、程序填空題1.結(jié)構(gòu)數(shù)組中存有三人的姓名和年齡,以下程序輸出三人中最年長(zhǎng)者的姓名和年齡。請(qǐng)?zhí)羁铡?staticstructman{charname[20];intage;}person[]={“l(fā)i-ming”,18,“wang-hua”,19,”zhang-ping”,20};main(){structman*p,*q;intold=0;p=person;for(;(1))if(old<p->age){q=p;(2);}printf(“%s%d”,(3));}2.以下程序段的功能是統(tǒng)計(jì)鏈表中結(jié)點(diǎn)的個(gè)數(shù),其中first為指向第一個(gè)結(jié)點(diǎn)的指針(鏈表不帶頭結(jié)點(diǎn))。請(qǐng)?zhí)羁铡?structlink{chardata;structlink*next;};……structlink*p,*first;intc=0;p=first;while((1)){(2);p=(3);}3.已知head指向一個(gè)帶頭結(jié)點(diǎn)的單向鏈表,鏈表中每個(gè)結(jié)點(diǎn)包含數(shù)據(jù)域(data)和指針域(next),數(shù)據(jù)域?yàn)檎汀R韵潞瘮?shù)求出鏈表中所有鏈結(jié)點(diǎn)數(shù)據(jù)域的和值,作為函數(shù)值返回。請(qǐng)?zhí)羁铡?*structlink{intdata;structlink*next;};main(){structlink*head;...sum(head);...}sum((1)){structlink*p;ints=0;p=head->next;while(p){s+=(2);p=(3);}return(s);}4.已知head指向單鏈表的第一個(gè)結(jié)點(diǎn),以下函數(shù)完成往降序單向鏈表中插入一個(gè)結(jié)點(diǎn),插入后鏈表仍有序。請(qǐng)?zhí)羁铡?*#include<stdio.h>structstudent{intinfo;structstudent*link;};structstudent*insert(structstudent*head,structstudent*stud){structstudent*p0,*p1,*p2;p1=head;p0=stud;if(head==NULL){head=p0;p0->link=NULL;}elsewhile(p0->info<p1->info)&&(p1->link!=NULL)){p2=p1;p1=p1->link;}if(p0->info>=p1->info){if(head==p1){(1);head=p0;}else{p2->link=p0;(2);}}else{p1->link=p0;(3);}return(head);}四、讀程序?qū)懡Y(jié)果題1.以下程序的運(yùn)行結(jié)果是。*structn{intx;charc;};main(){structna={10,’x’};func(a);printf(“%d,%c”,a.x,a.c);}func(structnb){b.x=20;b.c=’y’;}2.以下程序的運(yùn)行結(jié)果是。*main(){structEXAMPLE{struct{intx;inty;}ininta;intb;}e;e.a=1;e.b=2;e.in.x=e.a*e.b;e.in.y=e.a+e.b;printf(“%d,%d”,e.in.x,e.in.y);}3.以下程序的運(yùn)行結(jié)果是。**main(){staticstructs1{charc[4],*s;}s1={“abc”,”def”};staticstructs2{char*cp;structs1ss1;}s2={“ghi”,{“jkl”,“mno”}};printf(“%c,%c\n”,s1.c[0],*s1.s);printf(“%s,%s\n”,s1.c,s1.s);printf(“%s,%s\n”,s2.cp,s2.ss1.s);printf(“%s,%s\n”,++s2.cp,++s2.ss1.s);}4.以下程序的運(yùn)行結(jié)果是。*structs{inta;floatb;char*c;}main(){staticstructsx={19,83.5,”zhang”};structs*px=&x;printf(“%d%.1f%s\n”,x.a,x.b,x.c);printf(“%d%.1f%s\n”,px->a,(*px).b,px->c);printf(“%c%s\n”,*px->c-1,&px->c[1]);}5.以下程序的運(yùn)行結(jié)果是。*structstru{intx;charc;};main(){structstrua={10,’x’},*p=&a;func(p);printf(“%d,%c”,a.x,a.c);}func(structstru*b){b->x=20;b->c=’y’;}6.以下程序的執(zhí)行結(jié)果是。*#include<stdio.h>

structstu{intnum;

charname[10];

intage;};voidfun(structstu*p)

{printf("%s\n",(*p).name);}

voidmain(void)

{

structstustudents[3]={{9801,"Zhang",20},{9802,"Wang",19},{9803,"Zhao",18}};

fun(students+2);

}五、編程題1.試?yán)媒Y(jié)構(gòu)體類型編制一程序,實(shí)現(xiàn)輸入一個(gè)學(xué)生的數(shù)學(xué)期中和期末成績(jī),然后計(jì)算并輸出其平均成績(jī)。*2.試?yán)弥赶蚪Y(jié)構(gòu)體的指針編制一程序,實(shí)現(xiàn)輸入三個(gè)學(xué)生的學(xué)號(hào)、數(shù)學(xué)期中和期末成績(jī),然后計(jì)算其平均成績(jī)并輸出成績(jī)表。*3.請(qǐng)編程建立一個(gè)帶有頭結(jié)點(diǎn)的單向鏈表,鏈表結(jié)點(diǎn)中的數(shù)據(jù)通過(guò)鍵盤輸入,當(dāng)輸入數(shù)據(jù)為-1時(shí),表示輸入結(jié)束。(鏈表頭結(jié)點(diǎn)的data域不放數(shù)據(jù),表空的條件是ph->next==NULL)。**4.已知head指向一個(gè)帶頭結(jié)點(diǎn)的單向鏈表,鏈表中每個(gè)結(jié)點(diǎn)包含字符型數(shù)據(jù)域(data)和指針域(next)。請(qǐng)編寫函數(shù)實(shí)現(xiàn)在值為a的結(jié)點(diǎn)前插入值為key的結(jié)點(diǎn),若沒(méi)有值為a的結(jié)點(diǎn),則插在鏈表最后。**第三講答案一、選擇題1~5DDCDC6~10AADBB11~15BDBAD二、填空題23126.0(double*)22三、程序填空題1.(1)p<=person+2(2)old=p->age(3)q->name,q->age2.(1)p!=NULL(2)c++(3)p->next3.(1)structlink*head(2)p->data(3)p->next4.(1)p0->link=head(2)p0->link=p1(3)p0->link=NULL四、讀程序?qū)懡Y(jié)果10,x2,3a,d<cr>abc,def<cr>ghi,mno<cr>hi,no<cr>1983.5zhang<cr>1983.5zhang<cr>yhang<cr>20,yZhao編程題1.main(){structstudy{intmid;intend;intaverage;}math;scanf(“%d%d”,&math.mid,&math.end);math.average=(math.mid+math.end)/2;printf(“average=%d\n”,math.average);}2.structstu{intnum;intmid;intend;intave;}s[3];main(){structstu*p;for(p=s;p<s+3;p++){scanf(“%d%d%d”,&(p->num),&(p->mid),&(p->end));p->ave=(p->mid+p->end)/2;}for(p=s;p<s+3;p++)printf(“%d%d%d%d\n”,p->num,p-

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論