资源描述:
《C语言模拟题13-结构体与公用体》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第十四部分:结构体与共用体及用户定义类型一、选择题:(1)有以下程序段typedefstructNODE{intnum;structNODE*next;}OLD;以下叙述中正确的是 A)以上的说明形式非法 B)NODE是一个结构体类型 C)OLD是一个结构体类型 D)OLD是一个结构体变量(2)有以下程序#includestructSTU{intnum;floatTotalScore;};voidf(structSTUp){structSTUs[2]={{20044,550},{20045,537}};p.num=s[1].num;p.TotalSc
2、ore=s[1].TotalScore;}main(){structSTUs[2]={{20041,703},{20042,580}};f(s[0]);printf("%d%3.0f",s[0].num,s[0].TotalScore);}程序运行后的输出结果是 A)20045537 B)20044550 C)20042580 D)20041703(3)有以下程序#includestructSTU{charname[10];intnum;};voidf(char*name,intnum){structSTUs[2]={{"SunDan",2004
3、4},{"Penghua",20045}};num=s[0].num;strcpy(name,s[0].name);}main(){structSTUs[2]={{"YangSan",20041},{"LiSiGuo",20042}},*p;p=&s[1];f(p->name,p->num);printf("%s%d",p->name,p->num);}程序运行后的输出结果是 A)SunDan20042 B)SunDan20044 C)LiSiGuo20042 D)YangSan20041(4)有以下程序structSTU{charname[10];intnum;f
4、loatTotalScore;};voidf(structSTU*p){structSTUs[2]={{"SunDan",20044,550},{"Penghua",20045,537}},*q=s;++p;++q;*p=*q;}main(){structSTUs[3]={{"YangSan",20041,703},{"LiSiGuo",20042,580}};f(s);printf("%s%d%3.0f",s[1].name,s[1].num,s[1].TotalScore);}程序运行后的输出结果是 A)SunDan20044550 B)Penghua20045
5、537 C)LiSiGuo20042580 D)SunDan20041703(5)若有以下说明和定义uniondt{inta;charb;doublec;}data;以下叙述中错误的是 A)data的每个成员起始地址都相同 B)变量data所占内存字节数与成员c所占字节数相等 C)程序段:data.a=5;printf("%f",data.c);输出结果为5.000000 D)data可以作为函数的实参(6)设有如下说明typedefstructST{longa;intb;charc[2];}NEW;则下面叙述中正确的是 A)以上的说明形式非法 B)ST是一个结构体
6、类型 C)NEW是一个结构体类型 D)NEW是一个结构体变量(7)有以下结构体说明和变量定义,如图所示,指针pqr分别指向此链表中三个连续结点。structnode{intdata;structnode*next;}*p,*q,*r;现要将q所指结点从链表中删除,同时保持链表的连续,以下不能完成指定操作的语句是 A)p->next=q->next; B)p->next=p->next->next; C)p->next=r; D)p=q->next;(8)以下对结构体类型变量td的定义中,错误的是 A)typedefstructaa {intn;floatm;}AA;A
7、Atd; B)structaa {intn;floatm;}td;structaatd; C)struct{intn;floatm;}aa;structaatd; D)struct {intn;floatm;}td;(9)有以下说明和定义语句structstudent{intage;charnum[8];};structstudentstu[3]={{20,"200401"},{21,"200402"},{109,"200403"}};structstudent*p=stu;以下选项中引用结构体变量成员的表达式错误的是 A)(p++)-