其它c構(gòu)造類型老師_第1頁
其它c構(gòu)造類型老師_第2頁
其它c構(gòu)造類型老師_第3頁
其它c構(gòu)造類型老師_第4頁
其它c構(gòu)造類型老師_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

8構(gòu)造類型構(gòu)造類型88構(gòu)造類型傳遞結(jié)構(gòu)本章內(nèi)容結(jié)構(gòu)體typedef結(jié)構(gòu)數(shù)組結(jié)構(gòu)指針鏈表動態(tài)存儲劉備,字玄德,河北涿州人,161年生,1.73m,雙股劍張飛,字翼德,河北涿州人,167年生,1.85m,丈八蛇矛槍關(guān)羽,字云長,山西運城人,162年生,2.07m,青龍偃月刀桃園三結(jié)義結(jié)構(gòu)體定義結(jié)構(gòu)體structxs{charname[8];intage;floatscore;};structxsz3;z3.scorez3.agez31結(jié)構(gòu)體[2007.4.18]設(shè)有說明

structDATE

{

intyear,month,day;

};

寫出定義語句,定義d為上述結(jié)構(gòu)體變量,并同時為其成員year、month和day依次賦初值為:2006、10、1。structDATEd

=

{2006,10,1};2結(jié)構(gòu)體[2011.3.36]設(shè)有以下定義,則錯誤的語句是

struct{inta;doubleb;charc[8];}t1,t2;A)t2

=

t1;B)t2.a

=

t1.a;C)t2.b

=

t1.b;D)t2.c

=

t1.c;t結(jié)構(gòu)體數(shù)組structxst[3]={"劉備",28,77.7,"關(guān)羽",27,88.8,"張飛",22,66.6};for(i=0;i<3;i++)printf("%s\t%d\t%f\n",t[i].name,

t[i].age,t[i].score);結(jié)構(gòu)數(shù)組t[0]t[2]t[1]劉備2877.7關(guān)羽2788.8張飛2266.61結(jié)構(gòu)體數(shù)組[2011.3.38]以下程序的運行結(jié)果是

structS

{

inta,b;

}data[2]={10,100,20,200};

main()

{

structSs=data[1];

printf("%d",++(s.a));

}21指向結(jié)構(gòu)體的指針structxs*p=t;for(i=0;i<3;i++){printf("%s\t%d\t%f",t[i].name,

p->age,(*p).score);

p++;}t[0]t[2]t[1]劉備2877.7關(guān)羽2788.8張飛22t66.6pppp結(jié)構(gòu)指針1結(jié)構(gòu)體指針[2012.3.37]錯誤引用color成員的是

structMP3{charname[20];charcolor;}s,*p=&s;A)s.colorB)p->colorC)s->colorD)(*p).color2結(jié)構(gòu)體指針[2009.3.37][2011.3.37]運行結(jié)果是

structord

{

intx,y;

}

dt[3]

=

{1,3,5,7,9,11};structord*p=dt;

printf("%d,",++p->x);printf("%d",++p->y);2,43結(jié)構(gòu)體指針[2010.3.38]能給w中m成員賦5的語句是

structstu{charname[8],sex;inth;struct{inty,m,d;}s;}w,*p=&w;A)*p.m=5;B)w.m=5;C)p->m=5;D)w.s.m=5;結(jié)構(gòu)體指針p結(jié)構(gòu)體變量ww的成員s的成員結(jié)構(gòu)體嵌套定義wnamesexhsymdp①用原類型名定義變量。例如:inta;②在前面加上typedef,把變量名換成新類型名。例如:

typedefintINTEGER;③用INTEGER代替int作整型變量的類型說明。例如:INTEGERa;typedef用戶自定義類型用戶自定義類型沒有增加新的數(shù)據(jù)類型,只是將已存在的類型用一個新的名字來代表,而且原有的類型名仍然有效。用戶自定義結(jié)構(gòu)體類型structst{inta,b;}v;typedef

structst{inta,b;}TT;TTv;structstv;struct{inta,b;}v;typedefstruct{inta,b;}TT;TTv;1用戶自定義結(jié)構(gòu)體類型[2004.4.39][2006.9.44][2010.9.39]若有以下定義語句,則各選項正確的是

typedefstructS{intg;charh;}T;A)可用S定義結(jié)構(gòu)體變量

B)可用T定義結(jié)構(gòu)體變量

C)S是struct類型的變量

D)T是structS類型的變量voidf(structxsw5){w5.age=40;}main(){structxsz3={"張飛",22,66.6};f(z3);printf("%s,%d,%.1f",,z3.age,z3.score);}張飛,22,66.6傳遞結(jié)構(gòu)結(jié)構(gòu)體作函數(shù)參數(shù)結(jié)構(gòu)體指針作函數(shù)參數(shù)voidf(structxs*p){p->age=40;}main(){structxsz3={"張飛",22,66.6};f(&z3);printf("%s,%d,%.1f",,z3.age,z3.score);}張飛,40,66.6結(jié)構(gòu)體成員作函數(shù)參數(shù)voidf(char*p,inta){strcpy(p,"張三");a=40;}main(){structxsz3={"張飛",22,66.6};f(,z3.age);printf("%s,%d,%.1f",,z3.age,z3.score);}張三,22,66.6返回結(jié)構(gòu)體的函數(shù)structxsf(structxss[3]){returns[1];}main(){structxst[3]

=

{"劉備",28,77.7,"關(guān)羽",27,88.8,"張飛",22,66.6};structxsv=f(t);printf("%s,%d,%.1f",,v.age,v.score);}關(guān)羽,27,88.81結(jié)構(gòu)體作函數(shù)參數(shù)[2007.4.33]以下程序的運行結(jié)果是

typedefstruct{intb,p;}A;voidf(Ac){c.b+=1;c.p+=2;}main(){Aa={1,2};f(a);printf("%d,%d",a.b,a.p);}1,22結(jié)構(gòu)體作函數(shù)參數(shù)[2012.3.38]以下程序的運行結(jié)果是

typedefstruct

{inta;charc[8];}A;voidfun(A*p){printf("%s",p->c);}main(){

Ax[3]={1,"Zhang",2,"Wang",

3,"Zhao"};fun(x+2);}Zhao3結(jié)構(gòu)體作函數(shù)參數(shù)[2011.9.36]以下程序的運行結(jié)果是

typedefstruct{chars[5],t;}A;

Af(Aa){Ab={"BB",'m'};a.t=b.t;strcpy(a.s,b.s);returna;}main(){Ac={"CC",'f'},d=f(c);printf("%s%c",

d.s,

d.t);}BBm動態(tài)分配指針=malloc(字節(jié)數(shù))

動態(tài)釋放

free(指針)動態(tài)存儲動態(tài)存儲分配動態(tài)存儲分配[例]以下程序的運行結(jié)果是

int*p;p=malloc(sizeof(int));*p=3;

printf("%d",*p);

free(p);32000堆320003000p棧[例]以下程序的運行結(jié)果是

inti,*p;p=malloc(sizeof(int)*3);for(i=0;i<3;i++){p[i]=i;printf("%d,",p[i]);}

free(p);02000堆0,1,2,20003000p棧動態(tài)分配數(shù)組1220042008p[0]p[1]p[2]1動態(tài)存儲分配[2010.9.37]以下程序的運行結(jié)果是

int*a,*b,*c;a=b=c=(int*)malloc(sizeof(int));*a=1;*b=2;*c=3;a=b;printf("%d,%d,%d",*a,*b,*c);3,3,32動態(tài)存儲分配[2012.3.14]以下程序的運行結(jié)果是char*p,*q,*r;p=q=r=(char*)malloc(sizeof(char)*20);strcpy(p,"e!");printf("%c%c%c",p[11],q[3],r[4]);free(p);cab鏈表鏈表的五種操作釋放刪除插入訪問建立鏈表的五種操作鏈表鏈表的存儲結(jié)構(gòu)structlink{intdata;

structlink*next;}*h;5473NULLhdatanextdatanextdatanextdatanext鏈表的存儲結(jié)構(gòu)structlink*p,*w;intsize=sizeof(structlink);p=(structlink

*)malloc(size);w=(structlink

*)malloc(size);p->data=3;w->data=4;p->next=w;w->next=NULL;p=p->next;34NULLdatanextdatanext400040003000p3000w40004000后插入創(chuàng)建鏈表for(i=1;i<=n;i++){p=(structlink*)malloc(size);scanf("%d",&p->data);if(i==1)h=p;elsew->next=p;w=p;}345datanextdatanextdatanextNULLp->next=NULL;pppwwwh前插入創(chuàng)建鏈表h=NULL;for(i=1;i<=n;i++){p=(structlink*)malloc(size);scanf("%d",&p->data);p->next=h;h=p;}543datanextdatanextdatanextNULLhppphh訪問鏈表p=h->next;while(p!=NULL){printf("%d,",p->data);

p=p->next;}543NULLp=NULL;ppphdatanextdatanextdatanextdatanext)插入結(jié)點intsize=sizeof(structlink);p=(structlink*)malloc(size);scanf("%d",&p->data);p->next=w->next;w->next=p;543NULL7datanext①②wphdatanextdatanextdatanextdatanext刪除結(jié)點p=w->next;w->next=p->next;free(p);4datanextdatanext3datanextNULL7datanexthwp釋放鏈表p=NULL;h=NULL;p=h;while(p!=NULL){h=h->next;free(p);p=h;}3datanextNULL5datanext4datanexthppphh帶頭結(jié)點的鏈表0547NULLhdatanextdatanextdatanextdatanextpp=h->next;鏈表的逆置NULLh2datanext4datanext6datanext8datanextp=h;while(q){r=q->next;q->next=p;p=q;q=r;}pqNULLrq=p->next;p->next=NULL;pqrpqr=NULL;pq=NULL;returnp;帶頭結(jié)點的鏈表逆置NULL2datanext4datanext6datanextp=h->next;while(q){r=q->next;q->next=p;p=q;q=r;}pqNULLq=p->next;p->next=NULL;prqr=NULL;pq=NULL;h->next=p;hdatanext釋放鏈表的尾結(jié)點2datanext4datanext6NULLdatanextt=p->next;while(t->next!=NULL){s=t;t=t->next;}printf("%d",t->data);s->next=NULL;tNULLs=p;pdatanextfree(t);sstst在有序鏈表中插入結(jié)點2datanext4datanext6NULLdatanextq=h;while(p!=NULL&&x>p->data){q=p;p=p->next;}s->next=p;q->next=s;phdatanextqqpqpp=h->next;5datanextsp=h;while(p){q=p->next

溫馨提示

  • 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

提交評論