结构体与共用体及用户定义类型.doc
文本预览下载声明
第十四部分:结构体与共用体及用户定义类型
一、选择题:(1)有以下程序段?typedef struct NODE?{ int? num;? ?? struct NODE? *next;?} OLD;以下叙述中正确的是 A)以上的说明形式非法??? B)NODE是一个结构体类型 C)OLD是一个结构体类型??? D)OLD是一个结构体变量(2)有以下程序?# include?? string.h?struct STU?{ int? num;? ?float? TotalScore;? };?void f(struct STU? p)?{ struct STU? s[2]={{20044,550},{20045,537}};?? p.num = s[1].num;??? p.TotalScore = s[1].TotalScore;?}?main()?{ struct STU? s[2]={{20041,703},{20042,580}};?? f(s[0]);?? printf(%d? %3.0f\n, s[0].num, s[0].TotalScore);?}程序运行后的输出结果是 A)20045 537?? B)20044 550?? C)20042 580?? D)20041 703
(3)有以下程序?# include??? string.h?struct STU ?{ char? name[10];? ? int? num; };?void f(char? *name,? int? num)?{ struct STU? s[2]={{SunDan,20044},{Penghua,20045}};?? num = s[0].num;?? strcpy(name, s[0].name);?}?main()?{ struct STU? s[2]={{YangSan,20041},{LiSiGuo,20042}},*p;?? p=s[1];?? f(p-name, p-num);?? printf(%s? %d\n, p-name, p-num);?}程序运行后的输出结果是 A)SunDan? 20042???? B)SunDan? 20044 C)LiSiGuo? 20042 ???? D)YangSan? 20041
(4)有以下程序?struct STU ?{ char? name[10];??? int? num;??? float? TotalScore;? };?void f(struct STU? *p)?{ struct STU? s[2]={{SunDan,20044,550},{Penghua,20045,537}}, *q=s;?? ++p ;? ++q;? *p=*q;?}?main()?{ struct STU? s[3]={{YangSan,20041,703},{LiSiGuo,20042,580}};?? f(s);?? printf(%s? %d? %3.0f\n, s[1].name, s[1].num, s[1].TotalScore);?}程序运行后的输出结果是 A)SunDan? 20044? 550???? B)Penghua? 20045? 537 C)LiSiGuo? 20042? 580???? D)SunDan? 20041 703(5)若有以下说明和定义union? dt{??? int? a;?? char? b;? double? c;}data;以下叙述中错误的是????????????????????????? A)data的每个成员起始地址都相同 B)变量data所占内存字节数与成员c所占字节数相等 C)程序段:data.a=5;printf(%f\n,data.c);输出结果为5.000000 D)data可以作为函数的实参(6)设有如下说明typedef? struct? ST{?? long a;?? int? b;?? char? c[2];} NEW;则下面叙述中正确的是???????????? A)以上的说明形式非法 B)ST是一个结构体类型 C)NEW是一个结构体类型 D)NEW是一个结构体变量(7)有以下结构体说明和变量定义,如图所示,指针pqr分别指向此链表中三个连续结点。struct? node{???? int data;?? ???? struct node? *next;} *p,*q,*r;现要将q所指结点从链表中删除,同时保持链表的连续,以
显示全部