A.定义软件的主要结构元素及其之间的关系
B.确定软件涉及的文件系统的结构及数据库的表结构
C.描述软件与外部环境之间的交互关系,软件内模块之间的调用关系
D.确定软件各个模块内部的算法和数据结构
搜题
第1题
A.定义软件的主要结构元素及其之间的关系
B.确定软件涉及的文件系统的结构及数据库的表结构
C.描述软件与外部环境之间的交互关系,软件内模块之间的调用关系
D.确定软件各个模块内部的算法和数据结构
第2题
A.定义软件的主要结构元素及其之间的关系
B.确定软件涉及的文件系统的结构及数据库的表结构
C.描述软件与外部环境之间的交互关系,软件内模块之间的调用关系
D.确定软件各个模块内部的算法和数据结构
第3题
A.定义软件的主要结构元素及其之间的关系
B.确定软件涉及的文件系统的结构及数据库的表结构
C.描述软件与外部环境之间的交互关系,软件内模块之间的调用关系
D.确定软件各个模块内部的算法和数据结构
第4题
A.定义软件的主要结构元素及其之间的关系
B.确定软件涉及的文件系统的结构及数据库的表结构
C.描述软件与外部环境之间的交互关系,软件内模块之间的调用关系
D.确定软件各个模块内部的算法和数据结构
第5题
A.软件详细设计
B.软件对象设计
C.软件环境设计
D.软件架构设计
第6题
A.定义软件的主要结构元素及其之间的关系
B.指定软件涉及的文件系统的结构及数据库的表结构
C.描述软件与外部环境之间的交互关系,软件内模块之间的调用关系
D.确定软件各个模块内部的算法和数据结构
第7题
A.数据流图
B.E-R图
C.状态-迁移图
D.加工规格说明
A.定义软件的主要结构元素及其之间的关系
B.确定软件涉及的文件系统的结构及数据库的表结构
C.描述软件与外部环境之间的交互关系,软件内模块之间的调用关系
D.确定软件各个模块内部的算法和数据结构
第8题
A.数据流图
B.E-R图
C.状态-迁移图
D.加工规格说明
A.定义软件的主要结构元素及其之间的关系
B.确定软件涉及的文件系统的结构及数据库的表结构
C.描述软件与外部环境之间的交互关系,软件内模块之间的调用关系
D.确定软件各个模块内部的算法和数据结构
第9题
A.数据流图B.E-R图C.状态-迁移图D.加工规格说明A.定义软件的主要结构元素及其之间的关系B.确定软件涉及的文件系统的结构及数据库的表结构C.描述软件与外部环境之间的交互关系,软件内模块之间的调用关系D.确定软件各个模块内部的算法和数据结构
第10题
【题目描述】
阅读以下说明和c语言函数。
[说明]
函数bool Del_elem(STACK*s,char para_ch)的功能是:删除栈*s中与para ch之值相等且最接近栈顶的元素(字符),若栈中不存在该元素,则函数返回 FALSE,否则返回 TRUE。其中,STACK是栈的类型名。
函数Del_elem实现上述功能的方法是:利用栈的基本操作,先将栈*s中所有比 para_ch之值更接近栈顶的元素暂时存放在临时工作栈s_bak中,使得与para_ch之值相等的元素成为栈顶元素,此时执行出栈操作,即从栈中删除与Para ch之值相等的元素,最后再将s bak中的元素依次存回栈*s。
在函数Del_elem中必须使用栈的基本操作进行栈上的运算,实现栈的基本操作的函数原型说明如下:
void InkStack(STACK*S):初始化栈。
void Push(STACK*S,char e):将一个字符压栈,栈中元素数目增1。
void Pop(STACK*S):栈顶元素出栈,栈中元素数目减1。
char Top(STACKS):返回非空栈的栈顶元素值,栈中元素数目不变。
bool IsEmpty(STACK S):若S是空栈,则返回TRUE;否则返回FALSE。
bool类型定义如下:
typedef enum{FALSE=0,TRUE=1)bool;
[C语言函数]
bool Del_elem(STACK*s,char para_ch)
{
STACK s_bgk; /*定义临时工作栈s_bak,*/
char ch;
bool tag=FALSE;
(1) /*初始化临时工作栈s_bak*/
/*,将栈*s中所有比para_ch更接近栈顶的元素暂时存放在临时工作栈s bak中*/
while(!IsEmpty(*s)){
ch=(2); /*取栈顶元素*/
Pop(s);
if(ch=para_ch){
tag=TRUE;
break;
}
(3);
}
/*将暂存于临时工作栈s_bak中的元素存回栈*s*/
while((4))
ch=Top(s_bak);
(5)
Push(s,ch)
}
return tag;
}
【我提交的答案】:
【参考答案分析】:
(1)InitStack(&s_bak)(2)Top(*s)(3)Push(&s_bak,ch)(4)!IsEmpty(s_bak),或IsEmpty(s_ak)==FALSE(5)Pop(&s_bak) 解析:本题考查的是C语言的函数调用和参数传递问题。
C语言采用传值调用方式,即将实际参数的值传递给形式参数,因此,实际参数一般是与形式参数类型相同的变量或表达式。但是,若形式参数为指针,则调用语句中的实参应将一个变量的地址传递给形参。
函数bool Del_elem(STACK*s,char para_ch)的功能是删除栈*s中与para_ch之值相等且最接近栈顶的元素(字符)。因此,利用栈的基本操作,先将栈*s中所有比para ch之值更接近栈顶的元素暂时存放在临时工作栈s_bak中,使得与para_ch之值相等的元素成为栈顶元素,此时执行出栈操作,即从栈中删除与para_ch之值相等的元素,最后再将s bak中的元素依次存回栈*s。
从初始化栈的函数原型“void lnitStack(STACK*S)”可知,形参是一个指针变量,那么实参应该是对STACK类型的变量取地址,因此空(1)处应填入“initStack(&s bak)”。
根据出栈操作的函数原型“void Pop(STACK*S)”,出栈时栈中元素数目减1但调用环境不能获得栈顶元素,因此需要首先调用函数Top()获取栈顶元素的值,然后调用Pop()从栈中删除栈顶元素。因此空(2)应填入“Top(*s)”。临时工作栈需要保存从栈*s弹出的元素,因此,参考压栈操作的函数原型“void Push(STACK*S,chare)”,空(3)应填入“Push(&s bak,ch)”。
从栈中取元素时,应首先判断是否为空栈,这是使用栈结构的一项基本常识。参考函数原型“bool IsEmpty(STACK S)”和bool类型的定义,空(4)应填入“!IsEmpty(s_bak)”。同时,通过Top和Pop操作从临时工作栈s bak中取出元素,再用Push操作将该元素压入栈*s中,来实现将暂存于临时工作栈s bak中的元素存回栈*s,因此,空(5)填入“Pop(&s_bak)”。
为什么答案中有&符号?
第11题
【题目描述】
阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。
函数说明
函数movetoend(1inkedList La,int i)的功能是:将线性表A的第i个元素移到表尾。若移动成功,则返回0,否则返回-1。线性表A采用带头结点的单链表表示,La为表A的头指针,如下图所示。
.jpg)
链表结点的类型定义为;
typedef struct node{
int key;
street node*next;
}*LinkedList;
函数
int movetoend(LinkedList La,int i)
{
LinkedListp,q,prep;
int k=1;
p=La->next;prep=La;
while((1) ){/*严查找第i个元素并使指针p指向该结点*/
prep=p;p=p->next;k++;
}
if(!p||k>i)return-1;
if((2) ) /*第i个元素结点已经是表尾结点,则无需移动*/
return 0;
q=p;
while((3) )q=q->next;/*查找表尾并使q指向表尾结点*/
(4)=p->next;
p->next=NULL;
(5);
return 0;
}
【我提交的答案】:
【参考答案分析】:
(1)p&&k<i,及其等价形式(2)!p->next,及其等价形式(3)q->next(4)prep->next(5)q->next=p 解析:本题考查的是指针运算和链表操作。
在函数中,通过语句“p=La->next;prep=La;”可知,若链表不空,则p指向链表的第一个元素结点且prep直接指向其前趋结点,同时计数器k的值为1。因此,只要计数器k的值小于i且链表长度大于i(即p指向的结点存在),则指针p将随着while循环,向表尾方向扫描下去。因此,函数中空(1)处应填入“p&&k<i”或其等价形式。显然,当找到第i个结点时,p指向该结点,且prep指向其前趋结点,如下图(a)所示。因此, p->next为空指针表明第i个元素结点已经在表尾,无需移动,即函数中空(2)处应填入“!p->next”。反之,若第i个结点不是表尾,则可通过“prep->next=p->next'’操作将其从链表中删除,如下图(b)所示。
.jpg)
为了将p指向的结点链接到表尾,则需找到表尾结点并令q指向该结点(通过函数中的注释得知),此时q->next应等于空指针。因此空(3)处应填入“q->next”。由于在空(4)处将p指向的结点从链表中删除,因此,空(5)处应将其接在表尾,即填入“q->next=p”。
请问(1)处的解答是什么意思?
警告:系统检测到您的账号存在安全风险
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!