下列给定程序中,函数fun的功能是:在带头结点的单向链表中,查找数据域中值为eh的结点。找到后通过函数值返回该结点在链表中所处的顺序号;若不存在值为ch的结点,函数返回0值。 请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

admin2018-02-02  28

问题 下列给定程序中,函数fun的功能是:在带头结点的单向链表中,查找数据域中值为eh的结点。找到后通过函数值返回该结点在链表中所处的顺序号;若不存在值为ch的结点,函数返回0值。
    请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
    注意:不得增行或删行,也不得更改程序的结构!
    试题程序:
#include
#include
#define N 8
typedef struet list
  int data;
  struet list*next;
}SLIST;
SLIST*creatlist(char*);
void ouflist(SLIST});
int fun(SLIST*h,char ch)
{
  SLIST*P;int n=0;
  P=h一>next;
/******found******/
while(P!=__1__)
{
    n++:
    if(P一>data:=ch)
/******found******/
  return __2__;
    else P=P一>next:
  }
  return 0;
}
main()
i
  SLIST$head:int k;char eh;
  chae:a[N]=;‘m’,‘P’,’g‘,’a’,‘w’;
  ‘x’.‘r’,‘d’;;
  head:creatlist(a);
  outhst(nead);
  printf(“Enter a letter:”);
  scanf(“%c,&chj:
  k:fun(___3___);
  if (k==0)
  prinff(“\nNot found!\n”);
  else
  onnff(The sequence number is:%d\n”,k):
}
SLIST*creatlist(char*a)
{
  SLIST*h,*P,*q;int i;
h=P=(SLIST*)malloe(sizeof(SLIST));
for(i=0;i{
  q=(SLIST*)malloc(sizeof(SLIST));
  q一>data=a
  P一>next=q;
  p=q;
}
P一>next=0:
return h:
}
void outlist(SLIST*h)
{
SLIST*p;
P=h一>next;
if(P==NULL)
  prinff(“\nThe list is NULL!\n”);
  else
  {
  printf(“\nHead”);
  do
  {
    prinff(“一>%c”,P一>data);
    P=p一>next;
  }while(P!=NULL);
  printf(“一>End\n”);
  }
}

选项

答案(1)NULL (2)n (3)llead,ch

解析 本题考查:链表相关知识;while循环语句;函数返回值。
填空1:while循环语句判断是否到达链表结尾,链表结尾结点指针域是NULL。
填空2:若找到指定字符,则通过return语句将该结点在链表的顺序号返回给main函数。
填空3:函数调用语句,其形式是:函数名(实际参数表),因此根据函数定义语句,填入:heaqd,ch。
转载请注明原文地址:https://kaotiyun.com/show/KWxp777K
0

最新回复(0)