返回 自考 - 资讯详情
2018数据结构自考试题及答案(4月)
2019-10-31 来源: 作者:tao2018

算法阅读题

 

第1题

已知队列的基本操作定义如下,请在空白处填写适当的语句,完成指定的功能。 #define QueueSize 100

typedef struct {         //队列定义

         char data[QueueSize];

         int front, rear;

  } CirQueue;

  CirQueue Q;

void Init Queue( CirQueue *Q)      //队列初始化

{       Q->front=Q->rear=0;;

}

  int Queue Empty( CirQueue *Q)        //判队列是否空

{ return ____(1)____;

}

int Queue Full( CirQueue * Q)          //判队列是否满

{     return(Q->rear+ 1)% QueueSize==Q->front;

  }

  char EnQueue( CirQueue *Q, char c)       ///入队操作

{      if (QueueFulk(Q))

      return ‘\0’;         //^操作失败

     else

  {      Q->data[ Q->rear]=c;

       Q->rear=____(2)____;

     retum c;        //操作成功

  }

}

 char DeQueue(CirQueue *Q)        //出队列操作

{      char x;

     if( Queue Empty(Q))

     return ‘\n’;         //操作失败

     else

  {      x=Q->data[[Q->font];

     O->front=____(3)____;

    retum x;       //操作成功

    }

}


 

 

查看答案解析及完整练习

 

第2题

程序f31是将输入的m行n列的二维数组a变换为三元组表形式存储在数组b中。请在空白处填上适当内容将算法补充完整。

#define MAXSIZE 100

typedef int DataType;

typedef struct {

        int i, j;                  //1非零元素行列下标

       Data Type v;       //非零元素值

} TriTupleNode;

typedef struct {

      TriTupleNode data[MAXSIZE];          //存储三元组数组

      int m, n, t;              //m:矩阵的行,n:矩阵的列,t非零元素数量

} TSMatrix;

     void f31(TSMatrix *b, int*a, int m, int n)           

     //将m行n列的矩阵a变换为三元组表形式存储在b中

{      int i, j, k=0;

       for(i=0; i<m;i++);

         for(j=0; j<a;j++)

           {     b->data k].i=i;

                 b->data k].j=j;

                 b->data[k].v=____(1)____;

               ____(2)____;

           }

          b->m=m;

          b->n=n;

           b->t=____(3)____;

}


 

 

查看答案解析及完整练习

 

第3题

已知二叉树T如题32图所示。

922100600935937.png

阅读程序f32,写出执行f32(T)的输出结果。

typedef char DataType

typedef struct node

{       DataType data;         //data是数据域

struct node * lchild, * rchild;      //分别指向左右孩子

} BinTNode;

typedef BinTNode * BinTree;

void f32( BinTree bt)

{       if(bt!=NULL)

    {    f32(bt->rchild);

  printf(“%c”, bt->data);

  f32(bt->lchild);

  }

}

执行结果:


 

 

查看答案解析及完整练习

 

第4题

阅读程序,写出执行结果。

void f33(int a[], int n)

{     int i;

       for(i=(n-1)/2; i>=0; i--)

       Sift(a, i, n-1);

}

    void Sift( inta[], int i, int h)

  {    int j, temp *a[i];

       j=2*i+1;

      while(j<=h)

{   if((j<h&&a[j]<a[j+1])

      j++;

      if( temp=>=a[j])

      break;

      a[i]=a[j];

       i=j;

        j=2*i+1;

}

 a[i]=temp;

}

int main()

{           int i, a[10]={10,20,5,23,25,62,21,1,32,39};

           f33(a,10);

           for(i=0; i<10; i++)

             printf(“%d,”,a[i]);

       printf(“\n”);

       return 0;

}

执行结果:


查看答案解析及完整练习

温馨提示 : 因考试政策、内容不断变化与调整,上学吧提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准。
扫码下载自考题库APP
扫码下载自考题库APP

自考题库APP您的考前提分神器

点击一键安装
题库微信小程序
题库微信小程序

免下载,即可体验题库在线练习

相关推荐 更多相关资讯
推荐试题 更多试题