资源描述:
《用户自定义数据类型.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、用户自定义的数据类型复习题一、选择题1.下列程序的输出结果是( )。A)5 B)6 C)7 D)8structabc{inta,b,c;};main(){structabcs[2]={{1,2,3},{4,5,6}};intt; t=s[0],a+s[1],b; printf("%d",t);}2.下列程序执行后的输出结果是( )。A)6 B)8 C)10 D)12#defineMA(x)x*(x-1)main(){inta=1,b=2;printf("%d",MA(1+a+b));}3.有以下结构体说明和变量的定义,则不能把结点b连
2、接到结点a之后的语句是( )。A)a.next=q; B)p.next=&b;C)p->next=&b; D)(*p).next=q;structnode{chardata; structnode*next;}a,b,*p=&a,*q=&b;4.变量a所占内存字节数是( )。A)4 B)5 C)6 D)8unionU{charst[4]; inti; longl;};structA{intc; unionUu;}a;5.有如下程序#defineN2#defineMN+1#defineNUM2*M+1#main(){inti; for(i=1;i
3、<=NUM;i++)printf(“%d”,i);}该程序中的for循环执行的次数是( )。A)5 B)6 C)7 D)86.以下程序的输出结果是( )。A)16 B)2 C)9 D)1#defineSQR(X)X*Xmain(){inta=16,k=2,m=1; a/=SQR(k+m)/SQR(k+m); printf(“d”,a);}7.以下程序的输出是( )。A)10 B)11 C)51 D)60structst{intx;int*y;}*p; intdt[4]={10,20,30,40}; structstaa[4]={
4、50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0],};main(){p=aa; printf(“%d”,++(p->x));}8.以下程序的输出结果是( )。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],p=h; printf(“%d%d”,(h[0],p)->x,(h[1],p)->y);}A)12 B)23 C)14 D)329.以下程
5、序的输出结果是( )。unionmyun{struct{intx,y,z;}u; intk;}a;main(){a.u.x=4;a.u.y=5;a.u.z=6; a.k=0; printf(%d”,a.u.x);}A)4 B)5 C)6 D)010.以下程序的输出结果是( )。#defineM(x,y,z)x*y+zmain(){inta=1,b=2,c=3;printf(“%d”,M(a+b,b+c,c+a));}A)19 B)17 C)15 D)1211.若指针p已正确定
6、义,要使p指向两个连续的整型动态存储单元,不正确的语句是( )。A)p=2*(int*)malloc(sizeof(int));B)p=(int*)malloc(2*sizeof(int));C)p=(int*)malloc(2*2);D)p=(int*)calloc(2,sizeof(int));12.若有下面的说明和定义:structtest{intml;charm2;floatm3;unionuu{charul[5];intu2[2];}ua;}myaa;则sizeof(structtest)的值是( )。A)12B
7、)16C)14D)913.若以下定义:structlink{intdata;strucklink*next;}a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构:abcdatanextdatanextdatanext┌──┬──┐┌──┬──┐┌──┬──┐│5│┼──→│9 │ ││7 │ │└──┴──┘└──┴──┘└──┴──┘↑p↑q指针p指向变量a,q指向变量c。则能够把c插入到a和b之间并形成新的链表的语句组是:( )。A)a.next=c;c.next=b; B)p
8、.next=q;q.ne