电子科技大学820计算机复试自己编写C复试答案(4)

本站小编 福瑞考研网/2017-04-22


                flag=0;
            }
            q=p;
            p=p->next;
        }   
    }

}
void LNodeFind_1(struct LNode *Head)//first one out
{
    struct LNode *p,*q,*r;
    p=q=Head;
    while(p->next!=NULL)
    {
        if(q->next->data<p->next->data)
            q=p;
        p=p->next;
    }
    if(q->next!=p)
    {
        r=q->next;
        q->next=r->next;
        p->next=r;
        p=r;
        p->next=NULL;
    }

}
void main()
{
    struct LNode *Head,*p;
    Head=CreateLinklist();
//    LNodeFind(Head);
    LNodeFind_1(Head);
    printf("\n移动后的结果为\n");
    p=Head->next;
    while(p)
    {
        printf("%-4d",p->data);
        p=p->next;
    }
    printf("\n");
}

简洁版本//好方法,多学习一下
void movemax(node *L)
{
    node *p = L->next, *pre = L, *max = p;
    while (p)
    {
        if (p->data>max->data)max = p;
        pre = p;
        p = p->next;
    }
    int temp = pre->data;
    pre->data = max->data;
    max->data = temp;//交换结点的数值就可以了,没必要交换结点
}
15、编写一个函数,把整数序列分成两个部分,使得左边部分都不大于右边部分,不需要排序。 ( 考察的是快速排序的部分)
#include <stdio.h>
void partition(int A[],int n)
{
    int pivot=A[0];
    int low=0,high=n-1;
    while(low!=high)
    {
        while(low<high&&A[high]>=pivot)
            --high;
            A[low]=A[high];
        while(low<high&&A[low]<=pivot)
            ++low;
            A[high]=A[low];
    }
    A[low]=pivot;
}
void main()
{
    int i,A[5]={10,1,9,7,8};
    partition(A,5);
    for(i=0;i<5;i++)
    printf("%-4d",A[i]);
    printf("\n");

}
16编写一个函数,删除链表中的最小值。(结点node由整型data和节点指针next构成)
void delmin(node *L)
{
    node *p=L->next, *pre=L;
    node *min=p, *minpre=L;
    while(p)
    {
        if(p->data < min->data)
        {
            min = p;
            minpre = pre;
        }

        pre = p;
        p = p->next;
    }
    minpre->next = min->next;
    free(min);
}
17、有两个整数数组A和B,它们分别有m、n个整数。并且都是按非递减序列,现将B数组插入A数组中,使得A数组中各元素不大于B数组中各元素,且还是非递减序列。
#include <stdio.h>
int ArrayOrder(int a[],int b[],int m,int n)
{
    int i,j;
    for(i=0;i<m&&i<n;i++)
    {
        if(a[i]>b[i])
        {
            a[i]=b[i];
        }
    }
    if(m<n)
    {
        for(i=m;i<n;i++)
            a[i]=b[i];
    }
       
    return m<n?n:m;

}
void main()
{
    int a[30],b[30];
    int i,m,n,len;
    printf("请输入两个数组分别的个数,以空格隔开\n");
    scanf("%d %d",&m,&n);
    printf("第一个数组输入:\n");
    for(i = 0;i < m;i ++)
        scanf("%d",&a[i]);
    printf("第二个数组输入:\n");
    for(i = 0;i < n;i ++)
        scanf("%d",&b[i]);
    len=ArrayOrder(a,b,m,n);
    for(i=0;i<len;i++)
    printf("%-4d",a[i]);
    printf("\n");
    for(i=0;i<n;i++)
    printf("%-4d",b[i]);
    printf("\n");
}


18、两个递增有序整数数列链表La和Lb,将他们合并后,变成一个新的链表,要求该链表递减排序。(结点node由整型data和节点指针next构成)
#include <stdio.h>
#include <malloc.h>
#define N 5
struct Node{
    int data;
    struct Node *next;
};
struct Node * CreateLinklist()
{
    struct Node *p,*Head,*q;
    int i,temp;
    Head=(struct Node *)malloc(sizeof(struct Node));
    q=Head;
    printf("建立单链表,输入%d个数据:\n",N);
    for(i=0;i<N;i++)
    {
        scanf("%d",&temp);
        p=(struct Node *)malloc(sizeof(struct Node));
        p->data=temp;
        q->next=p;
        q=p;
    }
    q->next=NULL;
    return Head;
}
struct Node * ReverseLinklist(struct Node * Head)
{
    struct Node *p,*q;
    p=Head->next;
    Head->next=NULL;
    while(p)
    {
        q=p->next;
        p->next=Head->next;
        Head->next=p;
        p=q;
    }
    return Head;
   
}
struct Node * MergeList(struct Node *list1,struct Node *list2)
{
    struct Node * list3,*r,*la=list1->next,*lb=list2->next;
    list3=(struct Node*)malloc(sizeof(struct Node));
    r=list3;
    if(la->data<=lb->data)
    {
        r->next=la;
        r=la;
        la=la->next;
    }
    else
    {
        r->next=lb;
        r=lb;
        lb=lb->next;
    }
    while(la&&lb)
    {
        if(la->data<=lb->data)
        {
            r->next=la;
            r=la;
            la=la->next;
        }
        else
        {
            r->next=lb;
            r=lb;
            lb=lb->next;

相关话题/计算机

  • 领限时大额优惠券,享本站正版考研考试资料!
    大额优惠券
    优惠券领取后72小时内有效,10万种最新考研考试考证类电子打印资料任你选。涵盖全国500余所院校考研专业课、200多种职业资格考试、1100多种经典教材,产品类型包含电子书、题库、全套资料以及视频,无论您是考研复习、考证刷题,还是考前冲刺等,不同类型的产品可满足您学习上的不同需求。 ...
    本站小编 Free壹佰分学习网 2022-09-19
  • 武汉理工大学材料学院考研复试答案(专业课+计算机基础)
    武汉理工大学材料学院考研复试答案总结 1、材料科学与工程的定义及特点。 材料科学与工程就是研究有关材料组成, 结构, 制备工艺流程与材料性能与用途之间关系的产生和应用的学科。材料科学与工程的特点: (1)多学科交叉。材料科学与工程具有与物理学,化学,冶金学,金属学,陶瓷学,计算数学等互相融合和交叉的结果. (2)具 ...
    本站小编 福瑞考研网 2017-04-22
  • 2016大连理工大学计算机组成原理期末考试试卷
    本站小编 福瑞考研网 2017-04-19
  • 东北大学2017计算机考研复试回忆考研真题
    东北大学2017考研计算机复试笔试回忆 第一部分:数据库(30分) 多选题 1, 2,安全控制什么的(记不清了) 3,读脏数据的情况是() 4,事物的原子性是指() 设计题 一个公司有多个生产厂家,多个生产厂家生产一款产品,一家成产长家生产数款产品。现在该公司想设计一个数据库管理helli ...
    本站小编 福瑞考研网 2017-04-12
  • 重庆大学2013年计算机复试考研题目
    2013重大C上机试题 1.(25)输出5位以内的对称素数 2.(35)有一个天平,有六种砝码,分别重1,2,3,5,10,20克,每种砝码各有5,3,2,2,1,1个,计算天平能称出的重量及种类 3.(40&)输入n个由0和1组成的字符串(n由用户输入),规定字符串的比较规则如下: a.字符串长的比较大 ...
    本站小编 福瑞考研网 2017-04-09
  • 天津大学计算机学院非全日制2017考研调剂信息发布
      根据计算机学院2017年招生指标及硕士研究生报考情况,计算机学院2017年接收校内外非全日制硕士研究生调剂考生,欢迎全国优秀考生调剂到计算机学院攻读硕士学位研究生。  一、基本条件  我院非全日制专业学位(领域)研究生接收院内、校内、校外调剂。调剂基本条件为:考生第一志愿报考专业成绩须达到我校对应学科复试 ...
    本站小编 福瑞考研网 2017-04-02
  • 安徽大学考研复试计算机组成原理考研真题
    安徽大学 《计算机组成与结构 》考试试题参考答案及评分标准 一、选择题(每小空1分,共10分) 1. 超前进位加法电路引入的进位产生函数Gi=(D)。 A.XiYi B.XiYi C.(XiYi)XiYi D.XiYi 2. 下述 (A)属于时序逻辑电路。 A.触发器 B.译码器 C.数据选择器 D.加 ...
    本站小编 福瑞考研网 2017-03-26
  • 2017泰晤士英国大学排名计算机科学专业英国大学榜单
      2017年泰晤士报英国大学排名出炉,以下为您带来2017年泰晤士报英国大学排名计算机科学专业英国大学榜单,希望2017年泰晤士报英国大学排名计算机科学专业英国大学榜单能够对您的英国留学选校提供一定的帮助。 以下就是2017泰晤士英国大学排名计算机科学专业英国大学榜单 专业排名 综 ...
    本站小编 福瑞考研网 2017-03-25
  • 2018年USNews美国大学研究生专业排名计算机科学专业排名
    2018年USNews美国大学研究生专业排名计算机科学专业排名于2017年3月14日正式发布。此次美国大学研究生专业排名同样基于商业、教育、工程、医学、法律和护理等六大专业;当然,其中包含了六大类专业中的各个具体专业排名。 据USNews官方介绍,2018年USNews美国大学研究生专业排名计算机科学专业排名 ...
    本站小编 福瑞考研网 2017-03-19
  • 2018年USNews美国大学研究生专业排名计算机工程专业排名
    2018年USNews美国大学研究生专业排名计算机工程专业排名
    2018年USNews美国大学研究生专业排名计算机工程专业排名于2017年3月14日正式发布。此次美国大学研究生专业排名同样基于商业、教育、工程、医学、法律和护理等六大专业;当然,其中包含了六大类专业中的各个具体专业排名。 据USNews官方介绍,2018年USNews美国大学研究生专业排名计算机工程专业排 ...
    本站小编 福瑞考研网 2017-03-19
  • 常同学成功申请萨省大学计算机科学专业本科
      常同学,在鑫泉留学精英团队的帮助下,在无语言成绩的情况下,被萨省大学计算机科学专业录取。今天给大家分享一下常同学之所以能成功申请萨省大学计算机科学本科的申请解析!希望通过这个案例可以给与常同学申请条件类似的同学们提供申请方面的参考!  萨省大学计算机科学专业本科成功案例分享:   学生姓名:常同 ...
    本站小编 免费考研网 2017-03-19
  • 曼彻斯特大学计算机系统工程硕士申请案例分享
    曼彻斯特大学计算机系统工程硕士申请条件是什么?以下是杨同学的真实申请案例:他毕业于西北工业大学物联网工程专业,申请时无语言成绩,GPA78,在鑫泉留学的帮助下成功申请了曼彻斯特大学的计算机系统工程硕士。  曼彻斯特大学计算机系统工程硕士申请条件  GPA 75%, 雅思总分6.5(单项不低6.0)  ...
    本站小编 免费考研网 2017-03-19
  • 特拉华大学电气与计算机工程专业硕士申请案例解读
      孙同学,在鑫泉留学团队的帮助下,以GPA2.7,托福97,GRE309的成绩,被特拉华大学电气与计算机工程专业硕士录取。今天跟大家分享一下孙同学特拉华大学电气与计算机工程专业硕士录取过程全解读!希望通过这个案例可以给与孙同学申请条件类似的同学们提供申请方面的参考!  特拉华大学电气与计算机工程专 ...
    本站小编 免费考研网 2017-03-19
  • 罗格斯大学计算机科学专业硕士申请成功案例分享
      马同学,在鑫泉留学团队的帮助下,以GPA2.9,托福98,GRE321的成绩,成功被罗格斯大学计算机科学专业硕士录取。今天跟大家分享一下马同学罗格斯大学计算机科学专业硕士录取过程全解读!希望通过这个案例可以给与马同学申请背景相仿的同学提供美国硕士申请方面的参考!  罗格斯大学计算机科学专业硕士申 ...
    本站小编 免费考研网 2017-03-19
  • 惠灵顿维多利亚大学电子计算机系统硕士申请案例
      惠灵顿维多利亚大学电子计算机系统硕士申请实战分析:毛同学毕业于中国矿业大学徐海学院自动化专业,雅思成绩仅有5.0,不过平均分高达82,在鑫泉留学的帮助下搭配语言课程顺利被惠灵顿维多利亚大学电子计算机系统硕士录取。  惠灵顿维多利亚大学电子计算机系统硕士申请条件:  雅思成绩 6.5 (6.0)  ...
    本站小编 免费考研网 2017-03-19
  • 雅思5.0照读维多利亚大学电子与计算机系统硕士
      毛同学毕业于中国矿业大学徐海学院,雅思成绩仅有5.0,但是GPA高达82分,在鑫泉留学的帮助下成功申请到了惠灵顿维多利亚大学的电子计算机系统硕士Offer。  惠灵顿维多利亚大学电子计算机系统硕士申请条件  语言成绩:  6.5 (单项不低于6.0)  学术要求:  要求相关专业背景  平均分8 ...
    本站小编 免费考研网 2017-03-19