第七章 结构体与共用体.docx
《第七章 结构体与共用体.docx》由会员分享,可在线阅读,更多相关《第七章 结构体与共用体.docx(17页珍藏版)》请在冰豆网上搜索。
![第七章 结构体与共用体.docx](https://file1.bdocx.com/fileroot1/2023-7/8/310f7762-9f7f-4224-a14f-db86ce23c99b/310f7762-9f7f-4224-a14f-db86ce23c99b1.gif)
第七章结构体与共用体
第七章结构体与共用体
(1)以下程序输出的是
#include
unionun
{
intj;
charc[2];
};
voidmain()
{
unionunx;
x.c[0]=10;
x.c[1]=1;
x.j=11;
printf("%d\n",x.j);
}
(2)以下程序输出的是
#include
typedefintINTEGER;
voidmain()
{
INTEGERx;
x=12;
printf("%d\n",x);
}
(3)以下程序输出的是
#include
main()
{
structdata
{
intyear,month,day;
}today;
union
{
longi;
intk;
charj;
}mix;
printf("%d\n",sizeof(structdata));
printf("%d\n",sizeof(mix));
}
(4)以下程序输出的是
#include
typedefunion
{
inti;
charc;
}IC;
voidmain()
{
ICic;
ic.i=0;
ic.c='1';
printf("%d,%d\n",ic.c,ic.i);
printf("%d,%d,%d\n",sizeof(ic.i),sizeof(ic.c),sizeof(ic));
}
(5)以下程序输出的是
#include
structn
{
intx;
charc;
};
voidfunc(structnb)
{
b.x=20;
b.c='y';
}
voidmain()
{
structna={10,'x'};
func(a);
printf("%d,%c\n",a.x,a.c);
}
(6)以下程序输出的是
#include
voidmain()
{
structexam
{
struct
{
intx,y;
}q;
inta,b;
}e;
e.a=1;
e.b=2;
e.q.x=e.a*e.b;
e.q.y=e.a+e.b;
printf("%d,%d\n",e.q.x,e.q.y);
}
(7)以下程序输出的是
#include
main()
{
struct
{
intnum;
floatscore;
}person;
intnum=1;
floatscore=2;
person.num=2;
person.score=5;
printf("%d\n%f\n",num,score);
}
(8)以下程序输出的是
#include
structperson
{
intnum;
floatscore;
};
main()
{
structpersonper,*p;
per.num=1;
per.score=2.5;
p=&per;
printf("%d\n%f\n",p->num,p->score);
}
(9)以下程序输出的是
#include
typedefstruct
{
intx,y;
}DATA;
voidmain()
{
DATAtemp;
temp.x=1;
temp.y=2;
printf("%d,%d\n",temp.x,temp.y);
}
(10)以下程序输出的是
#include
main()
{
union
{
charc;
inti;
}t;
t.c='A';
t.i=1;
printf("%d,%d\n",t.c,t.i);
}
(11)以下程序输出的是
#include
structcmplx
{
intx;
inty;
}cnum[2]={1,3,2,7};
voidmain()
{
printf("%d\n",cnum[0].y*cnum[1].x);
}
(12)以下程序输出的是
#include
structtree
{
intx;
char*s;
}t;
intfunc(structtreet)
{
t.x=10;
t.s="computer";
return(0);
}
voidmain()
{
t.x=1;
t.s="minicomputer";
func(t);
printf("%d,%s\n",t.x,t.s);
}
(13)以下程序输出的是
#include
main()
{
struct
{
intx;
char*y;
}tab[2]={{1,"ab"},{2,"cd"}},*p=tab;
printf("%c,%c\n",*p->y,*(++p)->y);
}
(14)以下程序输出的是
#include
main()
{
struct
{
intx;
char*y;
}tab[2]={{1,"ab"},{2,"cd"}},*p=tab;
printf("%c\n",*p->y);
printf("%c\n",*(++p)->y);
}
(15)以下程序输出的是
#include
main()
{
struct
{
intx,y;
}s[2]={{1,2},{3,4}},*p=s;
printf("%d\n",++p->x);
printf("%d\n",(++p)->x);
}
(16)以下程序输出的是
#include
main()
{
struct
{
intx,y;
}s[2]={{1,2},{3,4}},*p=s;
printf("%d,%d\n",++p->x,(++p)->x);
}
(17)以下程序输出的是
#include
structstudent
{
intnumber;
char*name;
char*birthday;
floatscore;
};
voidmain()
{
staticstructstudents={8,"Lifeng","78.5.20",99.5};
structstudent*p=&s;
printf("Nameis%s,scoreis%.1f\n",p->name,(*p).score);
}
(18)以下程序输出的是
#include
structstr
{
floatx;
char*y;
}*m;
char*student[]={"Li","wang","sun"};
structstrgroup[3]={{95.0},{82.5},{73.5}};
main()
{
group[0].y=student[0];
m=group;
printf("%.1f,%s\n",m->x,m->y);
}
(19)以下程序输出的是
#include
enum
{
jiao5,jiao1,fen5,ren2,fen1
};
char*name[]={"jiao5","jiao1","fen5","ren2","fen1"};
main()
{
enumcoinm1,m2;
m1=fen5;
m2=jiao5;
printf("%d,%d\n",m1,m2);
printf("%s,%s\n",name[(int)m1],name[(int)m2]);
}
(20)以下程序输出的是
#include
structs
{
inta;
floatb;
char*c;
};
voidmain()
{
staticstructsx={10,64.2,"suen"};
structs*p=&x;
printf("%d,%.1f,%s\n",x.a,x.b,x.c);
printf("%d,%.1f,%s\n",p->a,(*p).b,p->c);
}
(21)以下程序输出的是
#include
#include
#include
structs
{
char*n;
floatg;
}*p;
voidmain()
{
structsm;
p=&m;
p->g=80.0;
p->n=(char*)malloc(50);
strcpy(p->n,"wangpeng");
printf("%s,%.1f\n",p->n,p->g);
}
(22)以下程序输出的是
#include
structlink
{
inta;
structlink*next;
};
voidmain()
{
structlinkm[3]={1,m+1,2,m+2,3,m},*p=m;
do
{
printf("%d\n",p->a-=p->next->a);
p=p->next;
}while(p!
=m);
}
(23)以下程序输出的是
#include
union
{
inta;
charc[2];
}u;
main()
{
charx;
u.a=259;
x=u.c[0];
u.c[0]=u.c[1];
u.c[1]=x;
printf("%d\n",u.a);
}
(24)以下程序输出的是
#include
main()
{
structdata
{
intyear,month,day;
}today;
printf("%d\n",sizeof(structdata));
}
(25)以下程序输出的是
#include
typedefunion
{
longa[2];
intb[4];
charc[8];
}TY;
TYour;
main()
{
printf("%d\n",sizeof(our));
}
(26)以下程序输出的是
#include
main()
{
unionaaa
{
inti;
charch;
doublef;
}b;
printf("%d\n",sizeof(unionaaa));
}
(27)以下程序输出的是
#include
main()
{
structcmplx
{
intx,y;
}cnum[2]={1,3,2,7};
printf("%d\n",cnum[0].y/cnum[0].x*cnum[1].x);
}
(28)以下程序输出的是
#include
unionpw
{
inti;
charch[2];
}a;
main()
{
a.ch[0]=13;
a.ch[1]=0;
printf("%d\n",a.i);
}
(29)以下程序输出的是
#include
main()
{
intj;
union
{
inta;
longb;
unsignedcharc;
}m;
m.b=0x;
printf("%x\n",m.a);
printf("%x\n",m.c);
}
(30)以下程序输出的是
#include
main()
{
structEXAMPLE
{
struct
{
intx,y;
}in;
inta,b;
}e;
e.a=1;
e.b=2;
e.in.x=e.a*e.b;
e.in.y=e.a+e.b;
printf("%d,%d\n",e.in.x,e.in.y);
}
(31)以下程序输出的是
#include
main()
{
structnum
{
inta;
intb;
floatf;
}n={1,3,5.0};
structnum*pn=&n;
printf("%d\n",pn->b/n.a*++pn->b);
}