欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    第10章 结构与链表.docx

    • 资源ID:8520904       资源大小:19.17KB        全文页数:10页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第10章 结构与链表.docx

    1、第10章 结构与链表一. 选择题1. C语言结构体类型变量在程序执行期间( )A) 所有成员一直驻留在内存中 B) 只有一个成员驻留在内存中C) 部分成员驻留在内存中 D) 没有成员驻留在内存中2. 当说明一个结构体变量时系统分配给它的内存是( )A) 各成员所需内存量的总和B) 结构中第一个成员所需内存量C) 成员中占内存量最大者所需的容量D) 结构中最后一个成员所需内存量3. 以下对结构体类型变量的定义中,不正确的是( )A) typedef struct aa B) #define AA struct aa int n; AAint n; float m; float m; AA; td

    2、1; AA td1; C) struct D) struct int n; int n; float m; float m; aa; td1; stuct aa td1;4. 设有以下说明语句struct stu int a; float b; stutype;则下面的叙述不正确的是( )A) struct是结构体类型的关键字B) struct stu是用户定义的结构体类型C) stutype是用户定义的结构体类型名D) a和b都是结构体成员名5. 以下选项中不能正确把cl定义成结构体变量的是( )A) typedef struct B) struct color cl int red; in

    3、t red; int green; int green; int blue; int blue; COLOR; ; COLOR cl;C) struct color D) struct int red; int red; int green; int green; int blue; int blue; cl; cl;6. 若有如下定义struct data int i; char ch; double f; b;则结构变量b占用内存的字节数是( )A) 1 B) 2 C) 8 D) 117. 以下关于共用体的叙述正确的是( )A) 一个共用体变量中可同时存放所有成员的数据B) 一个共用体变量

    4、中不可同时存放所有成员的数据C) 可直接对共用体变量进行赋值操作D) 共用体不能嵌套定义8. 下列程序的输出结果是( )enum week sun=7,mon,tue,wed,thu,fri,sat day=wed;main() printf(“%d”, day);A) 2 B) 3 C) 7 D) 109. 下面对typedef的叙述中不正确的是( )A) 用typedef可以定义各种类型名,但不能用来定义变量B) 用typedef可以增加新类型C) 用typedef只是将已存在的类型用一个新的标识符来代表D) 使用typedef有利于程序的通用和移植10. 以下程序的运行结果是( )#in

    5、clude stdio.hmain() struct date int year,month,day; today; printf(%dn,sizeof(struct date);A) 6 B) 8 C) 10 D) 1211. 设有以下说明,则下面不正确的叙述是( )union data int i; char c; float f;a;A. a所占的内存长度等于成员f的长度B. a的地址和它的各成员地址都是同一地址 C. a可以作为函数参数D. 不能对a赋值,也不可以在定义a时对它初始化12. 已知学生记录描述为struct student int no; char name20; cha

    6、r sex; struct int year; int month; int day; birth; ;struct student s;设变量s中的“生日”应是“1984年11月11日”,下列对“生日”的正确赋值方式是( )A) year=1984;month=11;day=11;B) birth.year=1984;birth.month=11;birth.day=11;C) s.year=1984;s.month=11;s.day=11;D) s.birth.year=1984;s.birth.month=11;s.birth.day=11; 13. 变量a所占内存字节数是( )unio

    7、n U char st4; int i; long l;struct A int c; union U u;a;A) 4 B) 5 C) 6 D) 814. 有以下结构体说明和变量的定义,指针p指向变量a,指针q指向变量b。则不能把结点b连接到结点a之后的语句是( )struct node char data;struct node *next; a,b,*p=&a,*q=&b; A) a.next=q; B) p.next=&b;C) p-next=&b; D) (*p).next=q;15. 下列程序的输出结果是( )struct abc int a, b, c; ;main() stru

    8、ct abc s2=1,2,3,4,5,6; int t; t=s0.a+s1.b; printf(%d n,t);A) 5 B) 6 C) 7 D) 816. 设有如下定义:struck sk int a; float b;data; int *p;若要使P指向data中的a域,正确的赋值语句是( )A) p=&a; B) p=data.a; C) p=&data.a; D) *p=data.a;17. 根据下面的定义,能打印出字母 M 的语句是( )struct personchar name9; int age; ;struct person class10=John,17, Paul,

    9、19, Mary,18, adam,16 ;A) printf(%cn,class3.name);B) printf(%cn,class3.name1);C) printf(%cn,class2.name1);D) printf(%cn,class2.name0); 18. 有以下程序#include “stdio.h”struct NODE int num; struct NODE *next; ;main() struct NODE *p,*Q,*R; p=(struct NODE*)malloc(sizeof(struct NODE); q=(struct NODE*)malloc(si

    10、zeof(struct NODE); r=(struct NODE*)malloc(sizeof(struct NODE); p-num=10; q-num=20; r-num=30; p-next=q;q-next=r; printf(“%dn”,p-num+q-next-num);程序运行后的输出结果是( )A) 10 B) 20 C) 30 D) 4019. 设有如下定义 struct ss char name10; int age; char sex; std3,*p=std; 下面各输入语句中错误的是 ( )A) scanf(%d,&(*p).age); B) scanf(%s,&s

    11、td.name); C) scanf(%c,&std0.sex) D) scanf(%c,&(p-sex);20. 有以下程序 main() union unsigned int n; unsigned char c; u1; ul.c=A; printf(%cn,u1.n); 执行后输出结果是( ) A) 产生语法错 B) 随机值 C) A D) 65 21. 设有如下说明 typedef struct int n; char c; double x;STD; 则以下选项中,能正确定义结构体数组并赋初值的语句是 ( )A) STD tt2=1,A,62,2, B,75; B) STD tt2

    12、=1,A,62,2, B,75; C) struct tt2=1,A,2, B; D) struct tt2=1,A,62.5,2,B,75.0;22. 有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向一个链表中的三个连续结点。 struct node int data; struct node *next; *p, *q, *r; _ | data next data next data next | | | | p q r | |_|现要将q和r所指结点的先后位置交换,同时要保持链表的连续,以下错误的程序段是 ( )A) r-next=q; q-next=r-next; p-n

    13、ext=r; B) q-next=r-next; p-next=r; r-next=q; C) p-next=r; q-next=r-next; r-next=q; D) q-next=r-next;r-next=q; p-next=r;23. 有以下程序 struct s int x,y; data2=10,100,20,200;main() struct s *p=data; printf(%dn,+(p-x); 程序运行后的输出结果是 ( )A) 10 B) 11 C) 20 D) 2124. 若以下定义:struct link int data;struct link *next;a,

    14、b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构: a b data next data next 5 -+ 9 0 pc data next 7 q指针p指向变量a,q指向变量c。则能够把c插入到a和b 之间并形成新的链表的语句组是: ( )A) a.next=c; c.next=b; B) p.next=q; q.next=p.next;C) p-next=&c; q-next=p-next; D) (*p).next=q; (*q).next=&b;25. 以下程序的输出是( )struct st int x; int *y; *p;int dt4= 10,20,30,40

    15、;struct st aa4= 50,&dt0,60,&dt0,60,&dt0,60,&dt0,;main() p=aa;printf(%dn,+(p-x);A) 10 B) 11 C) 51 D) 6026. 设有以下说明语句struct ex int x ; float y; char z ; example;则下面的叙述中不正确的是( )A) struct结构体类型的关键字 B) example是结构体类型名C) x,y,z都是结构体成员名 D) struct ex是结构体类型27. 设有以下说明语句typedef struct int n;char ch8;PER;则下面叙述中正确的是

    16、( )A) PER 是结构体变量名 B) PER是结构体类型名C) typedef struct 是结构体类型 D) struct 是结构体类型名28. 若有下面的说明和定义:struct test int ml; char m2; float m3; union uu char ul5; int u22; ua; myaa;则sizeof(struct test )的值是( )A) 12 B) 16 C) 14 D) 929. 以下程序的输出结果是( )union myun struct int x, y, z; u; int k; a;main() a.u.x=4; a.u.y=5; a.

    17、u.z=6; a.k=0; printf(“%dn,a.u.x);A) 4 B) 5 C) 6 D) 030. 以下程序的输出结果是( )struct HAR int x, y; struct HAR *p; h2;main() h0.x=1; h0.y=2; h1.x=3; h1.y=4; h0.p=&h1; h1.p=h; printf(%d %d n,(h0.p)-x,(h1.p)-y);A) 1 2 B) 2 3 C) 1 4 D) 3 2二填空题1. 已有定义如下: struct node int data; struct node *next; *p; 以下语句调用malloc函数

    18、,使指针p指向一个具有struct node类型的动态存储空间。请填空。p = (struct node *)malloc( );2. 设有以下结构类型说明和变量定义,则变量a在内存所占字节数是 ( )。Struct stud char num6; int s4; double ave; a,*p;3. 以下程序段用于构成一个简单的单向链表,请填空。struct STRU int x, y ; float rate; ( ) p; a, b;a.x=0; a.y=0; a.rate=0; a.p=&b;b.x=0; b.y=0; b.rate=0; b.p=NULL;4. 写出下面程序运行的结

    19、果( )struct s int x,*y; *p;int data=10,20,30,40,50;struct s array5=100,&data0,200,&data1,300,&data2,400,&data3, 500,&data4;main() p=array; printf(%dt,+p-x); printf(%dt,(+p)-x); printf(%dt,+(*p-y); printf(%dt,*p-y);5. 以下程序用来输出结构体变量ex所占存储单元的字节数,请填空。struct st char name20; double score; ;main() struct st

    20、 ex; printf(ex size: %dn,sizeof( );6. 下面程序的运行结果是:( ) 。typedef union student char name10; long sno; char sex; float score4;STU;main() STU a5; printf(“%dn”,sizeof(a);7. 以下定义的结构体类型拟包含两个成员,其中成员变量info用来存入整形数据;成员变量link是指向自身结构体的指针.请将定义补充完整。struct nodeint info; ( ) link;8. 下面程序的运行结果是:( )union un int a; char

    21、 c;a;main() a.a=256; a.c=b; printf(“%d”,a.a);9. #include stdio.h#define M 10struct mode float data; struct mode *next;main() struct mode *base,*p; int i,n=0; float r=0,aM; printf(Please input 10 numbers:n); for(i=0;iM;i+) scanf(%f,&ai); r+=ai; r/=M; for(i=0;ir) n+;an=ai; base=NULL; for(i=n;i0;i-) p=(struct mode *)malloc(sizeof(struct mode); p-data=ai; p-next=base; base=p; printf(average=%6.2fn,r); do printf(%6.2f,p-data); p=p-next; while(p!=0);执行程序时输入:12.5 23.6 0 9.8 10 88.2 5.1 19.2 6.8 2.8执行程序时输出:( ) ( )


    注意事项

    本文(第10章 结构与链表.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开