




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、以下说法中正确的是:以下说法中正确的是: 。A:一个结构只能包含一种数据类型:一个结构只能包含一种数据类型B:不同结构中的成员不能有相同的成员名:不同结构中的成员不能有相同的成员名C:两个结构变量不可以进行比较:两个结构变量不可以进行比较D:关键字:关键字typedef用于定义新的数据类型用于定义新的数据类型C结构体、链表综合习题结构体、链表综合习题设有以下说明,则值为设有以下说明,则值为210的表达式是:的表达式是: 。struct s int a;int *b;int x0=110,120,x1=210,220;struct s x=100,200,*p=x;x0.b=x0;x1.b=x1
2、;A:*p-b B. (+p)-a C. *(p+)-b D.*(+p)-bD结构体、链表综合习题结构体、链表综合习题struct int x,y;c3= 1,2,2,3;正确的语句是正确的语句是 。A:C2=3,4;B:C2=C1;C:C2=C1-C0;D:if(c1c0)c2=c1;else c2=c0;B结构体、链表综合习题结构体、链表综合习题已知有如下的结构类型定义和变量声明:已知有如下的结构类型定义和变量声明: struct student int num; char name10; stu = 1,”Mary”,*p=&stu;则下列语句错误的是则下列语句错误的是_A:pr
3、intf(“%d”,stu.num);B:printf(“%d”,(&stu) - num);C:printf(“%d”,&stu - num);D:printf(“%d”,p - num);C结构体、链表综合习题结构体、链表综合习题已知有结构类型定义:已知有结构类型定义:typedef struct exlong int num; char sex; struct ex *next; student;下列叙述错误的是下列叙述错误的是_。A. struct ex 是结构类型是结构类型 B. student是结构类型的变量名是结构类型的变量名C. ex可缺省可缺省 D. stud
4、ent不可缺省不可缺省B结构体、链表综合习题结构体、链表综合习题若要使表达式若要使表达式“P+”无语法错误,则变量无语法错误,则变量P不能声明为不能声明为_。A. int P; B. double P; C. int *P; D. structint x;P;D结构体、链表综合习题结构体、链表综合习题数组和链表都可以用于存储一组彼此有关联的数据,以数组和链表都可以用于存储一组彼此有关联的数据,以下说法中不正确的是:下说法中不正确的是: A:数组占用一块连续的存储区域,链表可能占用:数组占用一块连续的存储区域,链表可能占用 若若干不连续的存储区域干不连续的存储区域B:数组和链表所占用的存储区域均
5、不能在程序运行期:数组和链表所占用的存储区域均不能在程序运行期间动态地分配间动态地分配C:数组中的数据可以随机存取或顺序存取,链表中的:数组中的数据可以随机存取或顺序存取,链表中的数据只能顺序存取数据只能顺序存取D:数组的长度是固定的,链表的长度是不固定的:数组的长度是固定的,链表的长度是不固定的B结构体、链表综合习题结构体、链表综合习题值为值为6的表达式为的表达式为 struct stint n;struct st *next;static struct st a3=5,&a1,7,&a2,9,0,*p;p=&a0;A)p+-n B)p-n+ C)(*p).n+ D)
6、 +p-nD结构体、链表综合习题结构体、链表综合习题对以下结构体变量对以下结构体变量example中成员中成员x的引的引用正确的是用正确的是 struct int x ; int y ; example , *p=&example;A)(*p).example. x B) (*p). x C) p-example D) p.example. xB结构体、链表综合习题结构体、链表综合习题结构体、链表综合习题结构体、链表综合习题对于下列程序段:对于下列程序段: struct SD int x; float y; ; struct SD a3=1001, 3.5,1002,4.5,1003,
7、4.0, *p; p=a;则下面不正确的使用是则下面不正确的使用是_。A. (+p)-x B. p+ C. (*p).y D. p=&a0.xD结构体、链表综合习题结构体、链表综合习题若有以下程序段:若有以下程序段: struct SD int x; int *r; ; int a=1,b=2,c=3; struct SD s3=1001,&a,1002,&b,1003,&c; main() struct SD *p; p=s; 则以下表达式中值为则以下表达式中值为2的是的是_。A. *(+p)- r B. *(p+)- rC. (*p).r D. (p+)-
8、rA结构体、链表综合习题结构体、链表综合习题有以下结构体类型的说明和变量定义,并给出图示,有以下结构体类型的说明和变量定义,并给出图示,则选项中不能把结点则选项中不能把结点b连接到连接到a之后的语句是之后的语句是_。 data next data next a b p q struct ND char data; struct ND *next; a,b,*p=&a,*q=&b;A.a.next=q; B. p.next=&b;C. p-next=&b; D. (*p).next=q;B结构体、链表综合习题结构体、链表综合习题设有定义如下:设有定义如下:type
9、def structint x,y;POINT;typedef enum RED,YELLOW,BLUE,GREENCOLOR;struct POINT xy;COLOR c;pixel,*p=&pixel;以下对变量以下对变量pixel的赋值操作中正确的是的赋值操作中正确的是 。A:pixel= 1,2,BLUE;B:scanf(“%d%d%d%d”,p-xy.x,p-xy.y,&pixel.c);C:p-xy.x=1;p-xy.y=2;p-c=BLUE;D:scanf(“%d%d”,&pixel.xy);pixel.color=2;C设链表上的结点的数据结构定义如下
10、:设链表上的结点的数据结构定义如下:struct node int x; struct node *next; ; 函数函数create的功能是:创建一个有序的链表(结点中的功能是:创建一个有序的链表(结点中x的值按升序排列),链表中结点的个数为参数的值按升序排列),链表中结点的个数为参数n的值,的值,函数返回该有序链表的头指针。算法思想如下:每产函数返回该有序链表的头指针。算法思想如下:每产生一个新结点,插入到链表中的恰当位置,使得插入生一个新结点,插入到链表中的恰当位置,使得插入新结点后的链表仍然保持有序。新结点后的链表仍然保持有序。 (27) creat(int n) struct no
11、de *p, *p1, *p2, *h=NULL;int i=0;if(nx);p-next=NULL;if(h= =NULL) (29) ;else p1=p2=h; while(p2&p-x=p2-x)p1=p2;p2=p2-next; if( p2= =h) (30);h=p; elsep-next=p2;p1-next=p; i+; return h;struct node *inext=h已知某链表中结点的数据结构定义如下:已知某链表中结点的数据结构定义如下:struct nodeint x; struct node *next;;函数函数find_del功能是:在参数功能是
12、:在参数head指向的链表中指向的链表中查找并删除查找并删除x值最大的结点,如有多个相同的值最大的结点,如有多个相同的x值值最大的结点,删除第一个结点,保存该结点的地最大的结点,删除第一个结点,保存该结点的地址到址到pm指向的指针变量中,函数返回链表首结指向的指针变量中,函数返回链表首结点的指针。点的指针。struct node *find_del(struct node *head,struct node *pm)stuct node *p1,*p2,*pmax,*pre; if(head= =NULL) return NULL;pmax=(1) ;p2=p1=pmax; while(p1)
13、 if(p1-x (2) ) pre=p2;pmax=p1; p2=p1;p1=p1-next; if(pmax= =head)head=pmax-next; else (3) =pmax-next; (4) =pmax; return head; 1 head2 pmax-x3 pre-next4 *pm设链表上的结点的数据结构定义如下:设链表上的结点的数据结构定义如下:struct node int x; struct node *next;假设已经建立了一个链表,假设已经建立了一个链表,h为链首指针。函为链首指针。函数数deladd的功能是:若链表上能找到结点的的功能是:若链表上能找到结
14、点的x值为值为value,则从链表上删除该结点(假定,则从链表上删除该结点(假定链表上的各个结点的值是不同的);否则构链表上的各个结点的值是不同的);否则构造一个新结点,其值为造一个新结点,其值为value,并将新结点,并将新结点插入链尾。该函数要求返回新链表的首指针。插入链尾。该函数要求返回新链表的首指针。struct node *deladd(struct node *h,int value) struct node *p1, *p2;int flag=0;p1=p2=h;while(p1&flag= =0)if(p1-x= =value) flag=1;if(p1= =h) h=
15、 (1) ;free(p1);else p2-next= (2) ; free(p1); else p2=p1;p1= (3) ;if(flag= =0) p1=(struct node *)malloc(sizeof(struct node);p1-x=value;p1-next=0;if(h= =0)h=p1;else (4) ;return h;(1)h-next (2)p1-next(3)p1-next (4)p2-next=p1颠倒链表的链接顺序颠倒链表的链接顺序struct nodeint data; struct node *next; ;reverse (struct node
16、 *h) struct node *p,*v1,*v2; _; v1=NULL; while(v2!=NULL) _; v2-next=v1; v1=v2; v2=p; h=v1; return h; v2=hP=v2-next已知某链表中结点的数据结构定义如下:已知某链表中结点的数据结构定义如下:#includestruct nodeint x; struct node *next;函数函数loop的功能是:根据的功能是:根据dir的值循环移位的值循环移位head指向的链指向的链表中的所有结点,当表中的所有结点,当dir为正数时实现循环右移一次,为正数时实现循环右移一次,否则循环左移一次。函
17、数返回链表首结点的指针。否则循环左移一次。函数返回链表首结点的指针。例如,移位前的链表数据:例如,移位前的链表数据:head-1-3-5-4, 移一次后的链表数据:移一次后的链表数据:head-4-1-3-5。算法提示:循环右移时,将链表最后一个结点删除,再将算法提示:循环右移时,将链表最后一个结点删除,再将其插入到链表首部;循环左移时,将链表第一个结点删其插入到链表首部;循环左移时,将链表第一个结点删除,再将其连接到链表尾部。除,再将其连接到链表尾部。struct node *loop(struct node *head,int dir)struct node *p1,*p2; p1=hea
18、d; if(p1= =NULL|p1-next= =NULL)return head; if(dir=0) while(p1-next) p2=p1;p1=p1-next; _(1)_=NULL; p1-next=_(2)_; head=p1; else head=_(3)_; p2=head; while(p2-next)p2=p2-next; _(4)_; p1-next=NULL; return head;(1)p2-next(2)head(3)p1-next(4)p2-next=p1.以下程序中函数以下程序中函数padd的功能是:调整的功能是:调整pa指向的链表中各结点的位置,使得所指
19、向的链表中各结点的位置,使得所有有x值为偶数的结点出现在链表的前半部,所有值为偶数的结点出现在链表的前半部,所有x值为奇数的结点出现在链值为奇数的结点出现在链表的后半部。表的后半部。#includetypedef struct p int x; struct p *next; PNODE;PNODE *padd(PNODE *pa)PNODE *p1, *p2,*p; p1=p2=pa; while(p1) if(p1-x%2= =0& (1) ) p=p1; p1=p1-next; (2) =p1; p-next=pa;(3) ; else p2=p1;p1=p1-next; ret
20、urn pa;main()PNODE a10=1,2,3,4,5,6,7,8,9,10,*ha=a,*p; int i ; for(i=0;i,p-x);p=p-next;(1)p1!=pa(2)p2-next(3)pa=p(4)NULL.下面程序用来从键盘上读入一行字符,并按输入顺序建立一个链下面程序用来从键盘上读入一行字符,并按输入顺序建立一个链式结点序列,新添加的结点存入当前刚读入的字符,读入完成后,式结点序列,新添加的结点存入当前刚读入的字符,读入完成后,再按该链式序列的反向顺序输出这一行字符,最后,释放全部结再按该链式序列的反向顺序输出这一行字符,最后,释放全部结点空间。请在点空间。
21、请在 处填入正确内容。处填入正确内容。 #define getnode(type) (type*)malloc (sizeof(type) #define null 0 #include “stdio.h” main()struct node char info; struct node *link; *top,*p; char c; top= (1) ; while(c=getchar()!=n) p=getnode( (2) ); p-info=c; p-link= (3) ; top= (4) ; while (top!=null) p= (5) ; top= (6) ; putchar(p-info);free(p);(1)null(2)struct node(3)top(4)p(5)top(6)top-link.设链表上的每个结点的数据结构为设链表上的每个结点的数据结构为: struct node int data; struct node *next; 假设已建立了一条链表假设已建立了一条链表, 链表上第一个结点的值为该链表上结点的链表上第一个结点的值为该链表上结点的个数个数. 下面的函数要删除链上具有相同值的所有结点下面的函数要删除链上具有相同值的所有结点, 使得结点上使得结点上的数值各不相同的数值各不相同.struct node *delsamen
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物理人教版第一单元测试题及答案
- 2025年铁路混凝土试题及答案
- 教师招聘之《小学教师招聘》考前冲刺练习题库提供答案解析附参考答案详解(能力提升)
- 安全风险辨识培训学习课件
- 教师招聘之《小学教师招聘》高分题库a4版附答案详解
- 预防针考试题及答案
- 湖南体育职业学院单招测试题附答案(语文)
- 乙肝感染试题及答案
- 海南食品安全培训课件
- 封管液的配制方法
- 特殊学生档案
- GB/T 6822-2024船体防污防锈漆体系
- 大型活动火灾应急预案
- 剪映专业版教学课件
- 地坪拆除服务合同
- DB22T 277-2011 建筑电气防火检验规程
- 广东省执法证网上考试系统题库及答案
- 《建筑设计基础》全套教学课件
- 统编2024版七年级语文上册全册知识点梳理
- 2024年新青岛版(六三制)六上科学全册知识点
- 山东省潍坊市寒亭区2023-2024学年七年级上学期9月入学测试数学试卷(含答案)
评论
0/150
提交评论