[2017年整理]c程序设计 第九章 结构体

上传人:豆浆 文档编号:910016 上传时间:2017-05-21 格式:DOC 页数:10 大小:70KB
返回 下载 相关 举报
[2017年整理]c程序设计 第九章 结构体_第1页
第1页 / 共10页
[2017年整理]c程序设计 第九章 结构体_第2页
第2页 / 共10页
[2017年整理]c程序设计 第九章 结构体_第3页
第3页 / 共10页
[2017年整理]c程序设计 第九章 结构体_第4页
第4页 / 共10页
[2017年整理]c程序设计 第九章 结构体_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《[2017年整理]c程序设计 第九章 结构体》由会员分享,可在线阅读,更多相关《[2017年整理]c程序设计 第九章 结构体(10页珍藏版)》请在金锄头文库上搜索。

1、一、概念题二、判断题1. 结构体中的成员不可以单独使用(F)。 2. 成员名可以与程序中的变量名相同,二者不代表同一对象(T)。 3. 不能将一个结构体变量作为一个整体进行输入输出(T)。 4. 结构体变量所占内存长度是各成员占的内存长度之和(T)。5. 结构体中的成员不可以单独使用(F )。 9. 一个结构体变量的指针就是该变量所占内存段的起始地址(T)。 10. 用结构体变量作实参,形参也必须是同类型的结构体变量(T )。 三、单选题1. 设变量定义如下,则对其中的结构分量num 正确的引用是( )。struct student int num ;char name20;float sco

2、re; stud10;A. stud1.num=10; B. student.stud.num=10;C. struct.stud.num=10; D. struct student.num=10;2. 已知职工记录描述如下,设变量 w 中的“生日”是“1993 年 10 月 25 日” ,下列对“生日”的正确赋值方式是( ) 。struct worker int no; char name20; char sex;struct birth int day; int month; int year;a;struct worker w;A day=25; month=10; year=1993;

3、B w.birth.day=25; w.birth.month=10; w.birth.year=1993;C w.day=25; w.month=10; w.year=1993;D w.a.day=25; w.a.month=10; w.a.year=1993;3. 对于以下的变量定义,语句( )在语法和语义上都是正确的。struct node float x,y;char s10; point=1,2,”abc”,*p;A. *p=point; B. p=&point;C. point=p; D. p-x=point.y;4. 设有以下语句typedef struct S int g;ch

4、ar h; T;则下面叙述中正确的是( ) 。A. 用 S 定义结构体变量 B. 可以用 T 定义结构体变量C. S 是 struct 类型的变量 D. T 是 struct S 类型的变量5. 设有如下说明typedef struct na int n; char c; double x;STD;则以下选项中,能正确定义结构体数组并赋初值的语句是( ) 。A. STD tt2=1,A,62,2, B,75;B. STD tt2=1,A,62,2, B,75;C. struct tt2=1, A,2, B;D. struct tt2=1,A,62.5,2, B,75.0;6. 若要说明一个类型

5、名 STP,使得定义语句 STP s 等价于 char *s,以下选项中正确的是( ) 。A. typedef STP char *s; B. typedef *char STP;C. typedef stp *char; D. typedef char* STP;7. 设有如下定义:struct ss char name10;int age; char sex;std3,*p=std;下面各输入语句中错误的是( ) 。A. scanf(%d,&(*p). age); B. scanf(%s,&std.n ame);C. scanf(%c,&std0.sex) D. scanf(%c,&(p-

6、 sex);8. 以下程序执行后输出结果是( ) 。main() union unsigned int n;unsigned char c;u1ul.c=A;printf(%cn,u1.n);A. 产生语法错 B. 随机值 C. A D. 65四、程序填空题1. 运行以下程序将打印出如下结果:#define NULL 0struct person char *nam;char sex;struct person *next;main() struct person a,b,c,d,*head,*s;a.nam=Li ming; a.sex=W;b.nam=Hang kai; b.sex=M;c

7、.nam=Liu fei; c.sex=M;d.nam=Fang ke; d.sex=W【1】 ;head=&a;a.next= &b 【2】 ;b.next= &d【3】 ;d.next=NULL;s=head;doprintf(%s:【4】%c n,s-nam,s-sex);s=s-next;while(s!=NULL);2. 以下程序中给指针 p 分配三个 double 型动态内存单元,请填空。# include main ( ) double *p;p=(double *) malloc(sizeof(double)【1】);p0=1.5;p1=2.5;p2=3.5;printf(%f

8、%f%fn,p0,p1,p2);3. 已知结构数组 person 中存有 N 个人员的姓名和年龄,以下程序的功能为输出数组中最大者的姓名和年龄。请填空:#define N 3struct manchar name20;int age;struct man find(struct man *p ,int n)struct man *q;Li ming: WHang kai: MFang ke: W int i;q=p;for(i=0;iageq-age【5】)q=p;p+;return q;main() struct man *p, *q;struct man personN=“zhang”,2

9、7,”li”,18,”wang”,73;p=person;q= find(p,N)【6】;printf(“年龄最大者为:%s,其年龄为:%dn ”, q-name, q-age【7】)4. 已知 head 指向一个带头结点的链表,链表中每个结点包含整型数据域 (data)和指向链表结点的指针域(next) ,以下函数返回链表中所有结点数据域之和,请填空:struct list int data;struct list *next;main()struct list *head;int s;s=sum(head);sum( struct list *h 【5】)struct list *p;in

10、t s=0;p=h-next;while(p!=NULL)s= p-data【6】;p= p-next 【7】;return s;5. 下列程序读入时间数值,将其加 1 秒后,输出,时间格式为 hh:mm:ss,即时:分:秒。当小时等于 24 小时,置为 0。#includestructint hour;int minute;int second;time;main()scanf(“%d:%d:%d”, &time.hour,&time.minute,&time.second【1】);time.second+;if(【2】time.second =60)time.minute+;【3】time

11、.second=0;if(time.minute=60)time.hour+;time.minute=0;if(time.hour=24)time.hour=0;printf(“%d:%d:%dn”,time.hour,time.minute,time.second);6. 下列函数用于将链表中各结点的数据依次输出。请填空:struct studentint data;struct student *next;void out(struct student *head)【8】 struct student *p;p=head;if(head!=NULL)doprintf(“%dn”,p-dat

12、a);【9】p=p-next;while(【10】p!=NULL);五、程序阅读题1. 以下程序执行后输出结果: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);2041 20442. 以下程序执

13、行后输出结果是: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,*p5,*t;int i,j;for(i=0;iScorepj-Score) t=pi;pi=pj;pj=t;printf(5d %dn,s1.Score,p1-Score);580 5503. 以下程序的运行结果是:。# include typedef struct stude

14、ntchar name10;long sno;float score;STU;main( ) STU a=zhangsan,2001,95,b=Shangxian,2002,90,c=Anhua,2003,95,d,*p=&d;d=a;if(strcmp(a.name,b.name)0) d=b;if(strcmp(c.name,d.name)0) d=c;printf(%ld%sn,d.sno,p-name);2002 Shangxian4. 以下程序执行后的输出结果是:#include struct stu int num;char name10;int age; void py(stru

15、ct stu *p) printf(%sn,(*p).name); void main() struct stu student3=1001,Sun,25, 1001,Ling,23, 1003,Shen,22; py(student+2); Shen5. 以下程序执行后的输出结果是:# include void main() struct T1 char c4, *s; s1=abc, def; struct T2 char *cp; struct T1 ss1; s2=ghi, jkl, mno; printf(%c, %cn, s1.c0, *s1.s); printf(%s, %sn, s1.c, s1.s);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号