版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 部隊(duì)安全制度
- 中考祖國(guó)作文題目及答案
- 軟件測(cè)試自動(dòng)化工具介紹與分析
- 車輛使用制度
- 財(cái)務(wù)審簽制度
- 試論執(zhí)行異議制度
- 行政復(fù)議制度本質(zhì)上是司法審查制度
- 2025年永興人事資源考試及答案
- 2025年鞍鋼專業(yè)知識(shí)筆試及答案
- 2025年筆試和面試的考試及答案
- 全國(guó)民用建筑工程設(shè)計(jì)技術(shù)措施-結(jié)構(gòu)
- (正式版)YST 1693-2024 銅冶煉企業(yè)節(jié)能診斷技術(shù)規(guī)范
- 1999年勞動(dòng)合同范本【不同附錄版】
- 2024年重慶中考物理模擬考試試題
- 全國(guó)優(yōu)質(zhì)課一等獎(jiǎng)職業(yè)學(xué)校教師信息化大賽《語(yǔ)文》(基礎(chǔ)模塊)《我愿意是急流》說(shuō)課課件
- 初三寒假家長(zhǎng)會(huì)ppt課件全面版
- 2023年中國(guó)造紙化學(xué)品發(fā)展現(xiàn)狀與趨勢(shì)
- 《干部履歷表》1999版電子版
- 視頻旋轉(zhuǎn)滴方法在界面擴(kuò)張流變性質(zhì)研究中的應(yīng)用
- 傳統(tǒng)醫(yī)學(xué)師承關(guān)系合同書
- 血流動(dòng)力學(xué)不穩(wěn)定骨盆骨折急診處理
評(píng)論
0/150
提交評(píng)論