第九章 结构体与共用体 | ||||||||||||||||||||||||||
一、 选择题 1、 根据以下的定义,能输出字母M的语句是 A) printf("%c\n",class[3].name); A) B) printf("%c\n",class[3].name[1]); A) printf("%c\n",class[2].name[1]); B) printf("%c\n",class[2].name[0]); struct person {char name[9];int age; } struct person class[10]={"John",17, "Paul",19, "Mary",18, "Adam",16,}; 2、 以下程序的输出结果是 A)0 B)1 C)3 D)6 main() {struct cmplx{int x; int y;} cnum[2]={1,3,2,7}; printf("%d\n",cnum[0].y/cnum[0].x*cnum[1].x):} 3、若有以下说明和语句,则值为6的表达式是 A)P++->n B)p->n++ c)(*p).n++ D)++p->n struct st {int n; struct st *next; }; struct st a[3],*p; a[0].n=5; a[0].next=&a[1]; a[1].n=7; a[1].next=&a[2]; a[2].n=9; a[0].next='\0'; p=&a[0]; 4、已知字符0的ASCII代码值的十进制数是48,且数组的第0个元素在低位,以下程序的输出结果是 A)39 B)9 C)38 D)8 main() { union {int i[2]; long k; char c[4]; }r,*s=&r; s->i[0]=0x39; s->i[1]=0x38; printf("%x\n",s->c[0]);} 5、以下程序的输出结果是 A) 32 B)16 C) 8 D) 24 typeedef union { long x[2]; int y[4]; char z[8]; } MYTYPE; MYTYPE them; main() { printf(“%d\n”,sizeof(them)); } 6、 以下程序的输出结果是 A) 10 B) 50 C) 51 D) 60 20 60 60 70 20 21 11 31 struct st { int x; int *y; } *p; int dt[4]={10,20,30,40}; struct st aa[4]={50,&dt[0],60, &dt[0],60, &dt[0],60, &dt[0],}; main() { p=aa; printf(“%d\n”,++p->x); printf(“%d\n”,(++p)->x); printf(“%d\n”,++(*p->y)); } 7、 若已建立下面的链表结构,指针p,s分别指向图中所示结点, 则不能将s所指的结点插入到链表末尾的语句是 A) s->next=NULL; p=p->next; p->next=s; B) p=p->next;s->next=p->next;p->next=s; C) p=p->next; s->next=p; p->next=s; D) p=(*p).next; (*s).next=(*p).next=s;
data next p
8、以下程序的输出结果是 A) 25 B) 30 C) 18 D) 8 typedef union { long i; int k[5]; char c; } DATE; struct date
{ int cat; DATE cow; double dog; } too; DATE max; main() { printf(“%d\n”,sizeof(struct date)+sizeof(max)); } |
|