数据结构教程(第3版)—李春葆第3章答案

合集下载

李春葆数据结构习题与解析

李春葆数据结构习题与解析

一、绪论选择题1.数据结构是一门研究非数值计算的程序设计问题计算机的以及它们之间的和运算等的学科。

1 A.数据元素 B.计算方法 C.逻辑存储 D.数据映像2 A.结构 B.关系 C.运算 D.算法2.数据结构被形式地定义为(K, R),其中K是的有限集,R是K上的有限集。

1 A.算法 B.数据元素 C.数据操作 D.逻辑结构2 A.操作 B.映像 C.存储 D.关系3.在数据结构中,从逻辑上可以把数据结构分成。

A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构4.线性结构的顺序存储结构是一种的存储结构,线性表的链式存储结构是一种的存储结构。

A.随机存取B.顺序存取C.索引存取D.散列存取5.算法分析的目的是,算法分析的两个主要方面是。

1 A.找出数据结构的合理性 B.研究算法中的输入和输出的关系C.分析算法的效率以求改进D.分析算法的易懂性和文档性2 A.空间复杂度和时间复杂度 B.正确性和简单性C.可读性和文档性D.数据复杂性和程序复杂性6.计算机算法指的是,它必须具备输入、输出和等5个特性。

1 A.计算方法 B.排序方法 C.解决问题的有限运算序列 D.调度方法2 A.可执行性、可移植性和可扩充性 B.可行性、确定性和有穷性C.确定性、有穷性和稳定性D.易读性、稳定性和安全性7.线性表的逻辑顺序与存储顺序总是一致的,这种说法。

A.正确B.不正确8线性表若采用链式存储结构时,要求内存中可用存储单元的地址。

A.必须连续的B.部分地址必须连续的C.一定是不续的D连续不连续都可以9.以下的叙述中,正确的是。

A.线性表的存储结构优于链式存储结构B.二维数组是其数据元素为线性表的线性表C.栈的操作方式是先进先出D.队列的操作方式是先进后出10.每种数据结构都具备三个基本运算:插入、删除和查找,这种说法。

A.正确B.不正确填空题1.数据逻辑结构包括三种类型、和,树形结构和图形结构合称为。

数据结构(第3版)习题答案

数据结构(第3版)习题答案

数据结构(第3版)习题答案⼗⼆五普通⾼等教育国家级本科规划教材第1章绪论⾼等学校精品资源共享课程1.1什么是数据结构?【答】:数据结构是指按⼀定的逻辑结构组成的⼀批数据,使⽤某种存储结构将这批数据存储于计算机中,并在这些数据上定义了⼀个运算集合。

1.2数据结构涉及哪⼏个⽅⾯?【答】:数据结构涉及三个⽅⾯的内容,即数据的逻辑结构、数据的存储结构和数据的运算集合。

1.3两个数据结构的逻辑结构和存储结构都相同,但是它们的运算集合中有⼀个运算的定义不⼀样,它们是否可以认作是同⼀个数据结构?为什么?【答】:不能,运算集合是数据结构的重要组成部分,不同的运算集合所确定的数据结构是不⼀样的,例如,栈与队列它们的逻辑结构与存储结构可以相同,但由于它们的运算集合不⼀样,所以它们是两种不同的数据结构。

1.4线性结构的特点是什么?⾮线性结构的特点是什么?【答】:线性结构元素之间的关系是⼀对⼀的,在线性结构中只有⼀个开始结点和⼀个终端结点,其他的每⼀个结点有且仅有⼀个前驱和⼀个后继结点。

⽽⾮线性结构则没有这个特点,元素之间的关系可以是⼀对多的或多对多的。

1.5数据结构的存储⽅式有哪⼏种?【答】:数据结构的存储⽅式有顺序存储、链式存储、散列存储和索引存储等四种⽅式。

1.6算法有哪些特点?它和程序的主要区别是什么?【答】:算法具有(1)有穷性(2)确定性(3)0个或多个输⼊(4)1个或多个输出(5)可⾏性等特征。

程序是算法的⼀种描述⽅式,通过程序可以在计算机上实现算法。

1.7抽象数据类型的是什么?它有什么特点?【答】:抽象数据类型是数据类型的进⼀步抽象,是⼤家熟知的基本数据类型的延伸和发展。

抽象数据类型是与表⽰⽆关的数据类型,是⼀个数据模型及定义在该模型上的⼀组运算。

对⼀个抽象数据类型进⾏定义时,必须给出它的名字及各运算的运算符名,即函数名,并且规定这些函数的参数性质。

⼀旦定义了⼀个抽象数据类型及具体实现,程序设计中就可以像使⽤基本数据类型那样,⼗分⽅便地使⽤抽象数据类型。

数据结构(李春葆)习题与解析

数据结构(李春葆)习题与解析

数据结构(李春葆)习题与解析编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(数据结构(李春葆)习题与解析)的内容能够给您的工作和学习带来便利。

同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。

本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为数据结构(李春葆)习题与解析的全部内容。

数据结构(C语言篇)―习题与解析(修订版)清华大学出版社一、绪论选择题1.数据结构是一门研究非数值计算的程序设计问题计算机的以及它们之间的和运算等的学科.1 A.数据元素 B。

计算方法C。

逻辑存储 D.数据映像2 A.结构 B.关系 C.运算 D.算法2。

数据结构被形式地定义为(K, R),其中K是的有限集,R是K 上的有限集。

1A。

算法 B。

数据元素C。

数据操作 D.逻辑结构2A。

操作 B。

映像C。

存储D。

关系3.在数据结构中,从逻辑上可以把数据结构分成。

A.动态结构和静态结构B.紧凑结构和非紧凑结构C。

线性结构和非线性结构 D。

内部结构和外部结构4.线性结构的顺序存储结构是一种A的存储结构,线性表的链式存储结构是一种B的存储结构。

A.随机存取 B。

顺序存取 C.索引存取 D.散列存取5。

算法分析的目的是C,算法分析的两个主要方面是AB。

1 A.找出数据结构的合理性 B。

研究算法中的输入和输出的关系C。

分析算法的效率以求改进 D.分析算法的易懂性和文档性2 A.空间复杂度和时间复杂度 B.正确性和简单性C。

可读性和文档性 D.数据复杂性和程序复杂性6.计算机算法指的是C,它必须具备输入、输出和B等5个特性。

1 A.计算方法 B。

排序方法C。

解决问题的有限运算序列D.调度方法2 A.可执行性、可移植性和可扩充性B。

可行性、确定性和有穷性C.确定性、有穷性和稳定性D.易读性、稳定性和安全性7.线性表的逻辑顺序与存储顺序总是一致的,这种说法B。

数据结构教程第三版第三章课后习题答案

数据结构教程第三版第三章课后习题答案

scanf("%d",&a); if (a>0) { if ((qu->rear+1)%QueueSize==qu->front)
printf(" 队列满,不能入队\n"); else { qu->rear=(qu->rear+1)%QueueSize; //入队
qu->data[qu->rear]=a; } } else if (a<0) { if (qu->rear==qu->front)
QT[x]=s;
之后 //让 QT[x]仍指向尾结点
}
}
void Create(QNode *QH[],QNode *QT[]) //根据用户输入创建队列
{ int n,x,i;
printf("n:");
scanf("%d",&n);
for (i=0;i<n;i++)
{ do
{ printf("输入第%d 个数:",i+1);
{ tail->next=QH[i];
tail=QT[i];
}
}
printf("\n 输出所有元素:");
while (head!=NULL)
{ printf("%d ",head->data);
head=head->next;
}
printf("\n");
}
void main()
{ int i; QNode *QH[MAXQNode],*QT[MAXQNode]; //各队列的队头 QH 和队尾指针 QT for

C#程序设计教程(第3版)李春葆 第3章

C#程序设计教程(第3版)李春葆 第3章

3.3.1
break语句
break语句使程序从当前的循环语句(do、while和 for)内跳转出来,接着执行循环语句后面的语句。
【例3.9】编写一个程序,判断从键盘输入的大于3的正整 数是否为素数。
using System; namespace Proj4_9 { class Program { static void Main(string[] args) { int n, i; bool prime = true; Console.Write("输入一个大于3的正整数:"); n = int.Parse(Console.ReadLine()); for (i = 3; i <= Math.Sqrt(n); i++) if (n % i == 0) { prime = false; break; } if (prime) Console.WriteLine("{0}是素数", n); else Console.WriteLine("{0}不是素数", n); } } }
3.2.1
while语句
while语句的一般语法格式如下:
while (条件表达式) 语句;
while 条件 表达式
true false
语句
【例3.6】编写一个程序,将用户输入的整数反向显示出来。
using System; namespace proj3_6 { class Program { static void Main(string[] args) { int digit,num; Console.Write( "输入一个整数:"); num=int.Parse(Console.ReadLine()); Console.Write( "反向显示结果:"); while (num!=0) { digit=num % 10; //依次求个位、十位、…上的数字digit num=num / 10; Console.Write(digit); } Console.WriteLine(); } } }

李春葆《数据结构教程》(C++语言描述)配套题库【课后习题】(栈和队列)

李春葆《数据结构教程》(C++语言描述)配套题库【课后习题】(栈和队列)
(9)若一个栈用数组 data[1..n]存储,初始栈顶指针 top 为 0,则以下元素 x 进栈 的正确操作是______。
A.top++;data[top]=x;
4 / 21
圣才电子书 十万种考研考证电子书、题库视频学习平台

B.data[top]=x;top++; C.top--;data[top]=x; D.data[top]=x;top--; 【答案】A 【解析】与上两题类似,此题中栈顶指针所指的元素为 i,而此时要进栈的元素在数组 中的位置为 data[i+1],因此需要先修改栈顶指针令其加 1,再将元素放入数组中,答案为 A 项。
因此答案为 C 项。
(12)栈和队列的不同点是______。 A.都是线性表 B.都不是线性表 C.栈只能在一端进行插入、删除操作,而队列在不同端进行插入、删除操作 D.没有不同点 【答案】C 【解析】栈为先进后出,意味着其只能在一端进行插入、删除操作,而队列为先进先出, 意味着其可以不同端进行插入、删除操作,所以答案为 C 项。
3 / 21
圣才电子书 十万种考研考证电子书、题库视频学习平台

A.top++;data[top]=x; B.data[top]=x;top++; C.top--;data[top]=x; D.data[top]=x;top--; 【答案】C 【解析】元素 x 进栈时,需要先修改栈顶指针指向栈顶元素的位置,而由题干可知,此 栈的栈顶指针的值应为 n+1-i,其中 i 为栈中已有元素的个数,因此第一步需要先将栈顶指 针减 1,再将元素放入栈顶指针所指位置,因此答案为 C 项。
(6)表达式(a+a*b)*a+C*b/a 的后缀表达式是______。 A.a a b*+a*c b*a/+ B.a a*b+a*c b*a/+ C.a a b*a*c b*+a/+ D.a a b*+a c b*a/+* 【答案】A 【解析】按照表达式到后缀表达式的原则可知,答案为 A 项。

数据结构教程习题答案 李蓉蓉 安杨等编著第三版 第三章答案

数据结构教程习题答案 李蓉蓉 安杨等编著第三版 第三章答案

资料范本本资料为word版本,可以直接编辑和打印,感谢您的下载数据结构教程习题答案李蓉蓉安杨等编著第三版第三章答案地点:__________________时间:__________________说明:本资料适用于约定双方经过谈判,协商而共同承认,共同遵守的责任与义务,仅供参考,文档可直接下载或修改,不需要的部分可直接删除,使用时请详细阅读内容3.3/********************************************题目:假设表达式中允许包含三种括号,圆括号,方括号和大括号,编写一个算法判断表达式中的括号是不是匹配实践:狼影时间:2012.9.19************************************************/# include <stdio.h># include <stdlib.h># define size 256//定义节点typedef struct{char ex[size];int top;}STACK;//函数声明STACK *init_stack(void);bool is_match(char *exp);bool pop_stack(STACK *stack, char *ch);void push_stack(STACK *stack, char e);main(){char exp[256];printf("输入表达式\n");scanf("%s", exp);if(is_match(exp)){printf("此表达式匹配\n");}else{printf("此表达式不匹配\n");}}//栈的初始化STACK *init_stack(void){STACK *stack = (STACK *)malloc(sizeof(STACK)); if(NULL == stack){printf("内存分配失败\n");exit(-1);}stack->top = -1;return stack;}//判断是不是匹配bool is_match(char *exp){int i = 0;char ch;STACK *stack;stack = init_stack();while(exp[i] != '\0'){if('('==exp[i] || '['==exp[i] || '{'==exp[i]){push_stack(stack, exp[i]);}else if(')'==exp[i] || ']'==exp[i] || '}'==exp[i]) {//线面是匹配的三种情况,switch(exp[i]){case ')':if(pop_stack(stack, &ch)){if(ch != '(')return false;}elsereturn false;break;case ']':if(pop_stack(stack, &ch)) {if(ch != '[')return false;}elsereturn false;break;case '}':if(pop_stack(stack, &ch)) {if(ch != '{')return false;}elsereturn false;break;default:break;}}i++;}if(-1 == stack->top) return true;elsereturn false;}//入栈的操作void push_stack(STACK *stack, char e){stack->top++;stack->ex[stack->top] = e;}//出栈的操作bool pop_stack(STACK *stack, char *ch){if(-1 == stack->top)return false;else{*ch = stack->ex[stack->top];stack->top--;}return true;}/*********************************************** 输入表达式(((1+2+3*5{{{[[[234]]]}}})))此表达式匹配Press any key to continue**********************************************/3.4/*************************************************题目;设从键盘输入一整数序列,编写程序,当ai大于零时,ai进队,当ai小于零时,将对首元素出队当ai等于零时,将表示输入结束,要求用环形队列,进队与出队单独编写算法,并在异常情况下打印出错实践:狼影时间;2012.9.20***************************************************************/ # include <stdio.h># include <stdlib.h># define size 100typedef struct{int node[size];int front;int rear;}QUEUE;//函数声明QUEUE *init_queue(void);bool en_queue(QUEUE *queue, int e);bool out_queue(QUEUE *queue);void print_queue(QUEUE *queue); main(){QUEUE *queue;int arry[size];int n;int i;queue = init_queue();printf("输入数字的个数\n"); scanf("%d", &n);printf("请输入数据\n");for(i = 0; i<n; i++){scanf("%d", &arry[i]);}i = 0;while(i<n){if(arry[i]>0){if(!en_queue(queue, arry[i])) {printf("进队出错\n");break;}if(arry[i]<0)if(!out_queue(queue)){printf("出队错误\n");break;}if(arry[i] == 0){break;}i++;}printf("队列内容是\n");print_queue(queue);printf("\n");}//初始化队列QUEUE *init_queue(void){QUEUE *queue = (QUEUE *)malloc(sizeof(QUEUE)); if(NULL == queue){printf("内存分配错误\n");exit(-1);queue->front = queue->rear = -1;return queue;}//进队的操作bool en_queue(QUEUE *queue, int e){if(queue->front == (queue->rear+1)%size) return false;else{queue->rear = (queue->rear+1)%size; queue->node[queue->rear] = e;}return true;}//进行出队操作bool out_queue(QUEUE *queue){if(queue->rear == queue->front)return false;elsequeue->front = (queue->front+1)%size; return true;}//打印队列void print_queue(QUEUE *queue){if(queue->front == queue->rear){printf("队列为空\n");return;}else{while(queue->front != queue->rear){queue->front = (queue->front+1)%size; printf("%d ", queue->node[queue->front]); }}}/***************************输入数字的个数5请输入数据1 2 3 -1 4队列内容是2 3 4Press any key to continue****************************/3.5/****************************************************题目:编写一个算法,将一个环形队列(容量为n,元素下标从1到n)的元素倒置(具体的图请参考课本p88)设计;狼影时间:2012.9.20********************************************/# include <stdio.h># include <stdlib.h>/******************************************解此题的思路是将队列中的数据先转到栈中,然后再把栈中的数据转到另一个队列中,实现倒置对照书中给的图来初始化两个队列图参考课本88页也有其他简单的方法,如果你想到告诉我一声啊,,共同学习吗!************************************************/typedef struct{char c[20];int top;}STACK;typedef struct{char ch[20];int rear;int front;}QUEUE;//函数声明void creat_queue(QUEUE *queue);QUEUE *init_queue1(void);void traverse(QUEUE *queue1, QUEUE *queue2, STACK *stack); STACK *init_stack(void);QUEUE *init_queue2(void);void creat_queue(QUEUE *queue);void print_queue(QUEUE *queue);main(){QUEUE *queue1, *queue2;STACK *stack;stack = init_stack();queue1 = init_queue1();queue2 = init_queue2();creat_queue(queue1);traverse(queue1, queue2, stack);print_queue(queue2);}//初始化队列QUEUE *init_queue1(void){if(NULL == queue){printf("内存分配错误\n");exit(-1);}queue->front = 8;queue->rear = 8;return queue;}//栈的初始化STACK *init_stack(void){STACK *stack = (STACK *)malloc(sizeof(STACK)); if(NULL == stack){printf("内存分配错误\n");exit(-1);}stack->top = -1;return stack;}//队列的初始化QUEUE *init_queue2(void){if(NULL == queue){printf("内存分配错误\n");exit(-1);}queue->front = 10;queue->rear = 0;return queue;}//创建队列void creat_queue(QUEUE *queue){char c;for(c = 'a'; c<='f'; c++){queue->rear = (queue->rear)%10+1;queue->ch[queue->rear] = c;}}//数的转置void traverse(QUEUE *queue1, QUEUE *queue2, STACK *stack) {queue1->front = (queue1->front)%10+1;//将队列中的数出队放到栈中{stack->top++;stack->c[stack->top] = queue1->ch[queue1->front]; queue1->front = (queue1->front)%10+1;}stack->top++;stack->c[stack->top] = queue1->ch[queue1->front]; free(queue1);//将元素出栈,放到队列中queue2->rear = (queue2->rear)%10+1;while(stack->top != -1){queue2->ch[queue2->rear] = stack->c[stack->top]; stack->top--;queue2->rear = (queue2->rear)%10+1;}}//打印队列中的内容void print_queue(QUEUE *queue){queue->front = (queue->front)%10+1;while(queue->front != queue->rear){printf("%c ", queue->ch[queue->front]);}printf("\n");}3.6/***************************************题目:输入n个10以内的数每输入i(0<=i<=9)就把它插入到第i号队列,最后把10个队中非空队列,按队列号从小到大的顺序串接成一条链,并输出该链的所有元素设计:狼影时间:2012.9.20***************************************************************** */# include <stdio.h># include <stdlib.h>//在这里用链表的形式来创建队列typedef struct node{int data;struct node *pNext;}NODE;typedef struct{NODE *front;NODE *rear;}QUEUE;//函数的声明NODE *init_link(void);QUEUE *init_queue(void);void en_queue(QUEUE *queue, int i);void print_link(NODE *pHead);void en_queue(QUEUE *queue, int i);bool is_empty(QUEUE *queue);void put_link(QUEUE *queue, NODE *pHead); main(){int n, i, j;QUEUE *queue[10];NODE *pHead;//初始化化链表pHead = init_link();//初始化10个队列for(j = 0; j<10; j++){queue[j] = init_queue();}//输入输入数的个数printf("请输入数的个数n\n");scanf("%d", &n);printf("请输入i值(0<=i<=9)\n");for(j = 0; j<n; j++){do{scanf("%d", &i);if(i<0 || i>=10){printf("你输入第%d个数据错误, 请重新输入\n", j+1); }}while(i<0 || i>=10); //当i值满足条件时,循环结束//将i值放入相应的队列中switch(i){case 0: en_queue(queue[0], i);break;case 1: en_queue(queue[1], i);break;case 2: en_queue(queue[2], i);break;case 3: en_queue(queue[3], i);break;case 4: en_queue(queue[4], i);break;case 5: en_queue(queue[5], i);break;case 6: en_queue(queue[6], i); break;case 7: en_queue(queue[7], i); break;case 8: en_queue(queue[8], i); break;case 9: en_queue(queue[9], i); break;default:break;}}//将队列中的内容放入链表for(i = 0; i<10; i++){if(!is_empty(queue[i])){put_link(queue[i], pHead);}}//打印链表printf("链表中的内容是\n"); print_link(pHead);}//初始化队列QUEUE *init_queue(void){QUEUE *queue;queue = (QUEUE *)malloc(sizeof(QUEUE));if(NULL == queue){printf("内存分配错误\n");exit(-1);}queue->front = (NODE *)malloc(sizeof(NODE)); if(NULL == queue->front){printf("内存分配错误\n");exit(-1);}queue->front->pNext = NULL;queue->rear = queue->front;return queue;}//链表的初始化NODE *init_link(void){NODE *pHead = (NODE *)malloc(sizeof(NODE)); if(NULL == pHead){printf("内存分配错误\n");exit(-1);}pHead->pNext = NULL;return pHead;}//进队列的操作void en_queue(QUEUE *queue, int i){NODE *pNew;pNew = (NODE *)malloc(sizeof(NODE));if(NULL == pNew){printf("内存分配错误\n");exit(-1);}pNew->pNext = NULL;pNew->data = i;queue->rear->pNext = pNew;queue->rear = pNew;}//将队列中的数据放入链表中void put_link(QUEUE *queue, NODE *pHead) {NODE *pNow = queue->front->pNext;NODE *pNew = pHead;while(NULL != pNew->pNext)pNew = pNew->pNext;pNew->pNext = queue->front->pNext; queue->front = queue->rear = NULL; free(queue);}//打印链表void print_link(NODE *pHead){NODE *pNow = pHead->pNext;if(NULL == pNow){printf("链表为空\n");return;}while(NULL != pNow){printf("%d ", pNow->data);pNow = pNow->pNext;}printf("\n");}//判断是不是空bool is_empty(QUEUE *queue){if(queue->front == queue->rear)return true;elsereturn false;}/*****************************************请输入数的个数n6请输入i值(0<=i<=9)1 3 4 102 3你输入第4个数据错误, 请重新输入3链表中的内容是1 2 3 3 3 4Press any key to continue********************************************************/。

3.数据结构作业答案第3章--第3章栈和队列自测卷答案作业答案

3.数据结构作业答案第3章--第3章栈和队列自测卷答案作业答案

head第3章 栈和队列 自测卷答案 姓名 班级一、填空题(每空1分,共15分)1. 【李春葆】向量、栈和队列都是 线性 结构,可以在向量的 任何 位置插入和删除元素;对于栈只能在 栈顶 插入和删除元素;对于队列只能在 队尾 插入和 队首 删除元素。

2. 栈是一种特殊的线性表,允许插入和删除运算的一端称为 栈顶 。

不允许插入和删除运算的一端称为 栈底 。

3. 队列 是被限定为只能在表的一端进行插入运算,在表的另一端进行删除运算的线性表。

4. 在一个循环队列中,队首指针指向队首元素的 前一个 位置。

(注:不一定,这是一种约定,在殷教材中是队首指针指向队列的首元素位置)5. 在具有n 个单元的循环队列中,队满时共有 n-1 个元素。

6. 向栈中压入元素的操作是先 移动栈顶指针 ,后 存入元素 。

7. 从循环队列中删除一个元素时,其操作是 先 移动队首指针 ,后 取出元素 。

(注:不一定,这是一种约定,在殷教材中是先 取出元素 ,后移动队首指针 )8. 〖00年统考题〗带表头结点的空循环双向链表的长度等于 0 。

解:二、判断正误(判断下列概念的正确性,并作出简要的说明。

)(每小题1分,共10分) ( × )1. 线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。

错,线性表是逻辑结构概念,可以顺序存储或链式存储,与元素数据类型无关。

( × )2. 在表结构中最常用的是线性表,栈和队列不太常用。

错,不一定吧调用子程序或函数常用,CPU 中也用队列。

( √ )3. 栈是一种对所有插入、删除操作限于在表的一端进行的线性表,是一种后进先出型结构。

(√)4. 对于不同的使用者,一个表结构既可以是栈,也可以是队列,也可以是线性表。

正确,都是线性逻辑结构,栈和队列其实是特殊的线性表,对运算的定义略有不同而已。

(×)5. 栈和链表是两种不同的数据结构。

错,栈是逻辑结构的概念,是特殊殊线性表,而链表是存储结构概念,二者不是同类项。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档