当前位置:   article > 正文

2022年硕士研究生招生考试初试模拟试题参考答案_2022年硕士研究生招生考试(初试)试题科目代码:814科目名称:程序综合设计答案

2022年硕士研究生招生考试(初试)试题科目代码:814科目名称:程序综合设计答案

作者:江上_酒
QQ: 1470784960
Email: iszhaoxl@163.com
申明:

  1. 此为模拟卷一答案,如有错误可直接在评论区留言,我会及时处理。
  2. 转载使用均需要标明出处,(制作不易,点赞关注万分感谢!)。
  3. 祝愿所有考生在专业课上可以取得理想成绩!!!
扬 州 大 学
2022年硕士研究生招生考试初试模拟试题参考答案
科目代码:858 科目名称:程序设计与数据结构 满分:150分

一、选择题(共20小题,每小题2分,共40分)

题号12345
答案CACAD
题号678910
答案BBBDC
题号1112131415
答案DBDCC
题号1617181920
答案DCCDD

二、应用题(共3小题,每小题10分,共30分)

  1. (1) q->next!=p; (2) q->next=p-next; (3) free(p);
  2. 二叉排序树如下所示:
    在这里插入图片描述
    平均查找长度为: A S L S U C C = 1 12 ( 1 + 2 × 2 + 3 × 3 + 4 × 3 + 2 × 5 + 1 × 6 ) = 7 2 ASL_{SUCC}=\frac{1}{12}(1+2\times2+3\times3+4\times3+2\times5+1\times6)=\frac{7}{2} ASLSUCC=121(1+2×2+3×3+4×3+2×5+1×6)=27
  3. 二叉树如下所示:
    在这里插入图片描述

三、编写程序(共4小题,每小题10分,共40分)

  1. 代码如下
    void statistics()
    {
        int a;
        int r=0,s=0,t=0;
        printf("请输入10个数据:");
        for(int i=0;i<10;i++)
        {
            scanf("%d",&a);
            if(a>0)
                r++;
            else if(a<0)
                s++;
            else
                t++;
        }
    printf("正数:%d,负数:%d,零:%d\n",r,s,t);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
  2. 代码如下
    int max(int x,int y)
    {
        if(x>=y){return x;}
        else{return y;} 
    }   
    int main()
    {
        int a,b,m;
        scanf("%d,%d",&a,&b);
        m=max(a,b);
        printf("最大值max=%d",m);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
  3. 代码如下
    void sum()
    {
        int i,sum=0;
        for(i=1;i<1000;i=i+2)
            sum=sum+i;
        printf("1-1000间的所有奇数和sum=%d",sum);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  4. 代码如下
    void transpose()
    {
        int a[2][3],b[3][2],i,j;
        for(i=0;i<2;i++)
            for(j=0;j<3;j++)
                scanf("%d",&a[i][j]);
        for(i=0;i<3;i++)
            for(j=0;j<2;j++)
                b[i][j]=a[j][i];
        for(i=0;i<3;i++)
            for(j=0;j<2;j++)
                printf("%d",b[i][j]);
            printf("\n");
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

四、算法设计(共4小题,每小题10分,共40分)

  1. 代码如下
    void merge(SqList A,SqList B,SqList *C)
    {
        int i=0,j=0,k=0;
        while(i<A.length && j<B.length)
        {
            if(A.data[i]<B.data[j])
                C->data[k++]=A.data[i++];
            else
                C->data[k++]=B.data[j++];
        }
        while(i<A.length) C->data[k++]=A.data[i++];
        while(j<B.length) C->data[k++]=B.data[j++];
        C->length=k;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
  2. 代码如下
    typedef struct BiTNode 
    {
        char data;
        BiTNode  *lchild, *rchild;
    } BiTNode, *BiTree;
    int Similar(BiTree B1, BiTree B2)
    {
        if(!B1 && !B2)
            return 1; 
        else if(B1 && !B2 || !B1 && B2)
            return 0;
        else{
            if(Similar(B1->lchild,B2->lchild) && Similar(B1->rchild,B2->rchild))
                return 1;
            else
                return 0;    
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
  3. 代码如下
    int BiTreeDepth(BiTree T)
    {
        int i,j;
        if(!T)
            return 0;
        if(T->lchild)
            i=BiTreeDepth(T->lchild);
        else
            i=0;
        if(T->rchild)
            j=BiTreeDepth(T->rchild);
        else
            j=0;
        return i>j?i+1:j+1;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
  4. 代码如下
    typedef struct QNode
    {
       int data;
       struct QNode *next;
    }QNode,*QueuePtr;
    typedef struct
    {
       QueuePtr rear;
    }LinkQueue;
    
    void EnQueue(LinkQueue *Q,int x)
    {
        QueuePtr s=(QueuePtr)malloc(sizeof(QNode));
        s->data=x;                                 
        s->next=Q->rear->next;                    
        Q->rear->next=s;
        Q->rear=s; 
    } 
    void DeQueue(LinkQueue *Q)
    {
        QueuePtr p;
        if(Q->rear->next==Q->rear)
        {
            printf("队列为空!!!");
            return;
        }
        p=Q->rear->next;        
        Q->rear->next=p->next;
        free(p);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/532566
推荐阅读
相关标签
  

闽ICP备14008679号