资源描述:
《C语言上机作业12 答案》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C语言程序设计上机作业12答案结构体与共用体上机作业答案1.答案:【1】10【2】42.答案:343.答案:【1】(*b).day【2】b->day4.答案:【1】structlink*next5.答案:【1】structlist*next【2】intdata6.答案:【1】struct【2】ch【3】NULL7.答案:177771,1777778.答案:605019.答案:4,810.答案:2511.答案:1312.答案:2013.答案:1814.答案:A15.答案:DDBBCCC语言程序设计上机作
2、业12结构体与共用体上机作业要求:把下列各题填空。直接把答案填写在相应的位置,然后保存此word文件,上传。1.有以下定义和语句,则sizeof(a)的值是【1】,而sizeof(a.share)的值是【2】。structdate{intday;intmonth;intyear;union{intshare1;floatshare2;}share;}a;2.若有以下说明和定义语句,则变量w在内存中所占字节数________。unionaa{floatx,y;charc[6];};structst{un
3、ionaav;floatw[5];doubleave;}w;3.有以下说明定义语句,可用a.day引用结构体成员day,请写出引用结构体成员a.day的其它两种形式【1】【2】。{intday;charmouth;intyear;}a,*b;b=&a;4.为了建立如图所示的存储结构(即每个结点含两个域,data是数据域,next是指向该结构的指针域,data用以存放整型数)请填空。 data next
4、 structlink{chardata;(【1】)}node;Spdatanext5.变量root有如图所示的存储结构,其中sp是指向字符串的指针的指针域,next是指向该结构的指针域,data用以存放整型数。请填空,完成此结构的类型说明和变量root的定义。rootstructlist{char*sp;( 【1】)( 【2】
5、 )}root;6.以下函数creatlist用来建立一带头节点的单链表,链表的结构如下图所示,新的节点总是插入在链表的末尾。链表的头指针作为函数值返回。链表最后一个节点的next域放入NULL,作为链表结束的标志。data为字符型数据域,next为指针域。读入时字符以#表示输入结束(#不存入链表)。请填空。0h… structnode{chardata;structnode*next;};……( 【1】 )creatlist( ){structnode*h,*s,*r;charch;h=(str
6、uctnode*)malloc(sizeof(structnode));r=h;ch=getchar();while(ch!=’#’){s=(structnode*)malloc(sizeof(structnode));s->data=( 【2】 );r->next=s.r;r=s;ch=getchar();}r->next=( 【3】 );returnh;}7.下列程序的执行结果为_______。main(){unionbt{intk;charc[2];}a;a.k=-7;printf("%o,%o
7、",a.c[0],a.c[1]);}8.若有以下的说明、定义和语句,则输出结果为_______(已知字母A的十进制数为65)。main(){unionun{inta;charc[2];}w;w.c[0]='A';w.c[1]='a';printf("%o",w.a);}9.程序运行的结果是________。main(){unionEXAMPLE{struct{intx;inty;}in;inta;intb;}e;e.a=1;e.b=2;e.in.x=e.a*e.b;e.in.y=e.a+e.b
8、;printf("%d,%d",e.in.x,e.in.y);}10.下面程序的输出结果是________。structks{inta;int*b;}main(){structkss[4],*p;intn=1,i;for(i=0;i<4;i++){s[i].a=n;s[i].b=&s[i].a;n=n+2;}p=&s[0];printf("%d,%d",++(*p->b),*(s+2)->b);}11.下面程序的输出结果是________。#in