




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十章 结构体与共用体一、选择题1.在说明一个结构体变量时系统分配给它的存储空间是 。(0级)A) 该结构体中第一个成员所需存储空间B) 该结构体中最后一个成员所需存储空间C) 该结构体中占用最大存储空间的成员所需存储空间D) 该结构体中所有成员所需存储空间的总和2.若有以下说明和语句: struct worker int no; char name; work, p=&work; 则以下引用方式不正确的是 。(1级)A) workno B) (p)no C) p-no D)work-no3.有如下定义: struct date int year, month, day; ; struct worklist char name20; char sex; struct date birthday; person; 对结构体变量person的出生年份进行赋值时,下面正确的赋值语句是 。 (1级) A) year=1958 B) birthdayyear=1958 C) personbirthdayyear=1958 D) personyear=19584.以下对结构体类型变量的定义中不正确的是 。(1级)A) #define STUDENT struct student B) struct student STUDENT int num; int num; float age; float age; std1; std1;C) struct D) struct int num; int num; float age; float age; student; std1; struct student std1; 5.设有以下说明语句struct stu int a; float b; stutype; 则下面的叙述不正确的是 。(1级)A) struct是结构体类型的关键字B) struct stu是用户定义的结构体类型C) stutype是用户定义的结构体类型名D) a和b都是结构体成员名6.C语言结构体类型变量在程序执行期间 。(0级)A) 所有成员一直驻留在内存中B) 只有一个成员主留在内存中C) 部分成员驻留在内存中D) 没有成员驻留在内存中7.以下程序的运行结果是 。(1级) # include main( ) struct date int year, month, day; today;printf(“%dn”,sizeof(struct date); A) 6 B) 8 C) 10 D)128.有如下定义 struct personchar name9; int age; struct person class10=“Johu”, 17, “Paul”, 19 “Mary”, 18, “Adam 16,; 根据上述定义,能输出字母M的语句是 。(1级)A) prinft(“%cn”,class3.mane); B) pfintf(“%cn”,1); C) prinft(“%cn”,1); D) printf(“%cn”,0);9.设有如下定义struct ss char name10;int age;char sex; std3,* p=std;下面各输入语句中错误的是 。(1级)A) scanf(%d,&(*p).age);B) scanf(%s,&);C) scanf(%c,&std0.sex);D) scanf(%c,&(p-sex)10.设有以下说明语句,则下面的叙述中不正确的是 。(1级)struct ex int x ; float y; char z ; example;A) struct结构体类型的关键字 B) example是结构体类型名C) x,y,z都是结构体成员名 D) struct ex是结构体类型11.若程序中有下面的说明和定义:struct stt int x; char b;struct stt a1,a2;则会发生的情况是 。(1级) A)程序将顺利编译、连接、执行。B)编译出错。C)能顺利通过编译、连接,但不能执行。D)能顺利通过编译,但连接出错。12.已知教师记录定义为:struct student int no; char name30; struct unsigned int year; unsigned int month; unsigned int day; birthday; stu;struct student *t = &stu;若要把变量t中的生日赋值为“1980年5月1日”,则正确的赋值方式为 。(1级)A) year = 1980; B) t.year = 1980; month = 5; t.month = 5; day = 1; t.day = 1;C) t.birthday.year = 1980; D) t- birthday.year = 1980; t.birthday.month = 5; t- birthday.month = 5; t.birthday.day = 1; t- birthday.day = 1;13.以下结构类型可用来构造链表的是 。(1级) A) struct aa int a;int * b; B) struct bb int a;bb * b; C) struct cc int * a;cc b; D) struct dd int * a;aa b;14.以下程序的输出结果是 。(2级)amovep(int *p, int a33,int n) int i, j;for( i=0;in;i+)for(j=0;jx,(h1.p)-y);A) 12 B) 23 C) 14 D) 32二、填空题1.有如下定义:(1级)struct int x; int y; s2=1,2,3,4, p=s;则:表达式 +p-x 的结果是 。 表达式 +p-x 的结果是 。 2.若有定义:(2级)struct num int a; int b; float f; n=1, 3, 5.0;struct num pn=&n;则表达式pn-b/na+pn-b的值是 ,表达式(pn)a+pn-f的值是 。 3.若要使指针p指向一个double类型的动态存储单元,请填空。(1级) p= malloc(sizeof(double); 4.设有以下结构类型说明和变量定义,则变量a在内存所占字节数是 。(1级) Struct stud char num6; int s4; double ave; a,*p;三、程序填空题1.结构数组中存有三人的姓名和年龄,以下程序输出三人中最年长者的姓名和年龄。请填空。(1级) static struct man char name20; int age; person = “li-ming”,18, “wang-hua”,19,”zhang-ping”,20; main( ) struct man *p,*q; int old=0; p=person; for( ; (1) ) if(oldage) q=p; (2) ; printf(“%s %d”, (3) ); 2.以下程序段的功能是统计链表中结点的个数,其中first为指向第一个结点的指针(链表不带头结点)。请填空。(1级) struct link char data; struct link *next; ; struct link * p, * first; int c=0; p=first;while ( (1) ) (2) ; p= (3) ; 3.已知head 指向一个带头结点的单向链表,链表中每个结点包含数据域(data)和指针域(next),数据域为整型。以下函数求出链表中所有链结点数据域的和值,作为函数值返回。请填空。(2级) struct linkint data; struct link *next; ;main( ) struct link *head; . . . sum(head); . . .sum( (1) ) struct link *p; int s=0; p=head-next; while(p) s+= (2) ; p= (3) ; return(s); 4.已知head指向单链表的第一个结点,以下函数完成往降序单向链表中插入一个结点,插入后链表仍有序。请填空。(2级) # include struct studentint info; struct student *link; ; struct student *insert(struct student * head, struct student * stud) struct student * p0, * p1, * p2; p1=head; p0=stud; if(head= =NULL) head=p0; p0-link=NULL; else while(p0-infoinfo)&(p1-link!=NULL) p2=p1; p1=p1-link; if(p0-info=p1-info) if(head= =p1) (1) ; head=p0; else p2-link=p0; (2) ; else p1-link=p0; (3) ; return(head); 四、读程序写结果题1.以下程序的运行结果是 。(1级)struct n int x; char c; ;main( ) struct n a=10, x; func(a); printf ( “%d,%c”, a.x, a.c); func(struct n b)b.x=20; b.c=y; 2.以下程序的运行结果是 。(1级)main( ) struct EXAMPLE struct int x; int y; in int a; int b; e; e.a=1; e.b=2; e.in.x=e.a * e.b; e.in.y=e.a + e.b; printf(“%d,%d”, e.in.x, e.in.y); 3.以下程序的运行结果是 。(2级)main( ) static struct s1 char c4, *s; s1=“abc”,”def”;static struct s2 char *cp; struct s1 ss1; s2=“ghi”, “jkl”, “mno”;printf(“%c,%cn”, s1.c0, *s1.s); printf(“%s,%sn”, s1.c, s1.s);printf(“%s,%sn”, s2.cp, s2.ss1.s); printf(“%s,%sn”, +s2.cp, +s2.ss1.s);4.以下程序的运行结果是 。(1级)struct s int a; float b; char *c; main( )static struct s x=19,83.5,”zhang”; struct s *px=&x; printf(“%d %.1f %sn”, x.a, x.b,x.c); printf(“%d %.1f %sn”, px-a, (*px).b,px-c); printf(“%c %sn”, *px-c-1, &px-c1);5.以下程序的运行结果是 。(1级)struct stru int x; char c; ;main( ) struct stru a=10, x,*p=&a; func (p); printf ( “%d,%c”, a.x, a.c); func (struct stru *b)b-x=20; b-c=y; 6.以下程序的执行结果是 。(1级) #include struct stu int num;char name10;int age;void fun(struct stu *p) printf(%sn,(*p).name); void main(void) struct stu students3= 9801,Zhang,20, 9802,Wang,19, 9803,Zhao,18 ; fun(students+2);五、编程题1.试利用结构体类型编制一程序,实现输入一个学生的数学期中和期末成绩,然后计算并输出
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 老人跌倒预警与紧急呼叫器行业跨境出海项目商业计划书
- 汽车改装件创新创业项目商业计划书
- 红豆味花生坊行业跨境出海项目商业计划书
- 美术用品出口市场拓展企业制定与实施新质生产力项目商业计划书
- 米面条调料企业制定与实施新质生产力项目商业计划书
- 水痘相关知识培训课件
- 道德广东中考试卷及答案
- 2025年卫生副高级职称考试(病案信息技术)综合试题及答案
- 2025年检验科三基培训义务学习考试试题含答案
- 2025年6s管理培训试题及答案
- 污泥池清理管理制度
- 秩序员休假管理制度
- 保护环境的课件
- 2025年中国张裕产区葡萄酒特色与品牌国际化发展报告
- 图深度强化学习在配电网故障恢复中的应用研究
- (2017)海南省房屋建筑与装饰装修工程综合定额交底资料
- 2024-2025学年下学期高一英语人教版同步经典题精练之语法填空
- 《社会科学研究方法》课件
- 提高市政雨水管道接口施工一次验收合格率
- 2025年有机化学实验模板
- 基坑安全事故及防范措施
评论
0/150
提交评论