资源预览内容
第1页 / 共25页
第2页 / 共25页
第3页 / 共25页
第4页 / 共25页
第5页 / 共25页
第6页 / 共25页
第7页 / 共25页
第8页 / 共25页
第9页 / 共25页
第10页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
14. 结构体与共用体及用户定义类型一、选择题:(1)有以下程序段typedef struct NODE int num; struct NODE *next; OLD;以下叙述中正确的是A)以上的说明形式非法B)NODE是一个结构体类型C)OLD是一个结构体类型D)OLD是一个结构体变量(2)有以下程序# include struct STU int num; float TotalScore; ;void f(struct STU p) struct STU s2=20044,550,20045,537; p.num = s1.num; p.TotalScore = s1.TotalScore;main() struct STU s2=20041,703,20042,580; f(s0); printf(%d %3.0fn, s0.num, s0.TotalScore);程序运行后的输出结果是A)20045 537B)20044 550C)20042 580D)20041 703 (3)有以下程序# include struct STU char name10; int num; ;void f(char *name, int num) struct STU s2=SunDan,20044,Penghua,20045; num = s0.num; strcpy(name, s0.name);main() struct STU s2=YangSan,20041,LiSiGuo,20042,*p; p=&s1; f(p-name, p-num); printf(%s %dn, p-name, p-num);程序运行后的输出结果是A)SunDan 20042B)SunDan 20044C)LiSiGuo 20042 D)YangSan 20041(4)有以下程序struct STU char name10; int num; float TotalScore; ;void f(struct STU *p) struct STU s2=SunDan,20044,550,Penghua,20045,537, *q=s; +p ; +q; *p=*q;main() struct STU s3=YangSan,20041,703,LiSiGuo,20042,580; f(s); printf(%s %d %3.0fn, s1.name, s1.num, s1.TotalScore);程序运行后的输出结果是A)SunDan 20044 550B)Penghua 20045 537C)LiSiGuo 20042 580D)SunDan 20041 703(5)若有以下说明和定义union dt int a; char b; double c;data;以下叙述中错误的是 A)data的每个成员起始地址都相同B)变量data所占内存字节数与成员c所占字节数相等C)程序段:data.a=5;printf(%fn,data.c);输出结果为5.000000D)data可以作为函数的实参(6)设有如下说明typedef struct ST long a; int b; char c2; NEW;则下面叙述中正确的是 A)以上的说明形式非法B)ST是一个结构体类型C)NEW是一个结构体类型D)NEW是一个结构体变量(7)有以下结构体说明和变量定义,如图所示,指针pqr分别指向此链表中三个连续结点。struct node int data; struct node *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)typedef struct aa int n; float m; AA; AA td;B)struct aa int n; float m; ; struct aa td;C)struct int n; float m; aa; struct aa td;D)struct int n; float m; td;(9) 有以下说明和定义语句struct student int age; char num8;struct student stu3=20,200401,21,200402,109,200403;struct student *p=stu;以下选项中引用结构体变量成员的表达式错误的是A) (p+)-num B) p-num C) (*p).num D) stu3.age1012.以下程序的功能是:建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中,请从与下划线处号码对应的一组选项中选择出正确的选项。#include stuct node char data; struct node *next;(10) CreatList(char *s) struct node *h,*p,*q); h=(struct node *) malloc(sizeof(struct node); p=q=h; while(*s!=0) p=(struct node *) malloc(sizeof(struct node); p-data= (11) ; q-next=p; q= (12) ; s+; p-next=0; return h;main() char str=link list; struct node *head; head=CreatList(str); .(10) A) char * B) struct node C) struct node* D) char(11) A) *s B) s C) *s+ D)(*s)+(12) A) p-next B) p C) s D) s-next(13) 设有以下语句typedef struct S int g; char h; T;则下面叙述中正确的是A) 可用S定义结构体变量 B)可以用T定义结构体变量C)S是struct类型的变量 D)T是struct S类型的变量(14) 有以下程序struct STU char name10; int num;void f1(struct STU c) struct STU b=“LiSiGuo”,2042; c=b;void f2(struct STU *c) struct STU b=“SunDan”,2044; *c=b;main() struct STU a=“YangSan”,2041,b=“WangYin”,2043; f1(a) ;f2(&b) ; printf(“%d %dn”,a.num,b.num); /形参和实参的问题/执行后的输出结果是A)2041 2044 B)2041 2043 C)2042 2044 D)2042 2043(15) 有以下程序struct STU char name10; int num; int Score;main() struct STU s5=“YangSan”,20041,703,“LiSiGuo”,20042,580, “wangYin”,20043,680,“SunDan”,20044,550, “Penghua”,20045,537
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号