2012年北理复试上机题

这篇博客整理了2012年北京理工大学复试的上机考试题目,包括链接到详细资源,供考生参考和复习。

历年北京理工大学复试上机题题目汇总:

http://blog.csdn.net/u014552756/article/details/78505845


#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
    int a[15];
    for(int i=0; i<10; i++)
        cin>>a[i];

    sort(a,a+10);

    for(int i=0; i<9; i++)
        cout<<a[i]<<",";
    cout<<a[9]<<endl;

    return 0;
}

'

http://blog.chinaunix.net/uid-26284412-id-3189214.html

http://www.cnblogs.com/lyq105/archive/2009/11/28/1612677.html

#include <iostream>
#include <stdio.h>
#include <string>
#include <algorithm>
using namespace std;

struct Stu
{
    int num;
    string name;
    string sex;
    int age;
};

bool cmp(Stu a,Stu b)
{
    return a.num<b.num;
}

int main()
{
    char op[105];
    int i,num,age,n=3;
    Stu stu[105];
    stu[0].num=10;stu[0].name="wes";stu[0].sex="f";stu[0].age=23;
    stu[1].num=20;stu[1].name="ert";stu[1].sex="f";stu[1].age=45;
    stu[2].num=30;stu[2].name="str";stu[2].sex="t";stu[2].age=89;

    while(1)
    {
        gets(op);

        if(op[0]=='0')
            break;
        else if(op[0]=='I')//插入
        {
            char name[105],sex[105];
            int num,age;

            sscanf(op,"I%d,%[^,],%[^,],%d",&num,name,sex,&age);//sscanf用法
            stu[n].num=num;
            stu[n].name=name;
            stu[n].sex=sex;
            stu[n].age=age;
            n++;

            sort(stu,stu+n,cmp);

            for(i=0; i<n-1; i++)
                cout<<"("<<stu[i].num<<","<<stu[i].name<<","<<stu[i].sex<<","<<stu[i].age<<"),";
            cout<<"("<<stu[n-1].num<<","<<stu[n-1].name<<","<<stu[n-1].sex<<","<<stu[n-1].age<<")"<<endl;
        }
        else if(op[0]=='D')//删除
        {
            int t;
            sscanf(op,"D%d",&t);
            for(i=0; i<n; i++)
            {
                if(stu[i].num==t)
                {
                    if(i==n-1)
                    {
                        n--;
                    }
                    else
                    {
                        stu[i].num=stu[n-1].num;
                        stu[i].name=stu[n-1].name;
                        stu[i].sex=stu[n-1].sex;
                        stu[i].age=stu[n-1].age;
                        n--;
                    }
                    break;
                }
            }

            sort(stu,stu+n,cmp);

            for(i=0; i<n-1; i++)
                cout<<"("<<stu[i].num<<","<<stu[i].name<<","<<stu[i].sex<<","<<stu[i].age<<"),";
            cout<<"("<<stu[n-1].num<<","<<stu[n-1].name<<","<<stu[n-1].sex<<","<<stu[n-1].age<<")"<<endl;
        }
    }

    return 0;
}

http://m.blog.csdn.net/article/details?id=49931995

#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;

char a[20],b[20];

void f(int ab,int ae,int bb,int be)
{
    int i;
    if(ab>ae) return;
    cout<<a[ae];
    for(i=bb; b[i]!=a[ae]; i++); //后序序列的最后一个为根
    f(ab,ab+i-bb-1,bb,i-1);//递归求左子树先序
    f(ab+i-bb,ae-1,i+1,be);//递归求右子树先序,注意ae-1
}

int main()
{
    //a为后序,b为中序
    while(scanf("%s%s",a,b)!=EOF)
    {
        int len=strlen(a);
        f(0,len-1,0,len-1);
        cout<<endl;
    }
    
    return 0;
}

#include <iostream>
#include <string>
using namespace std;
//建树
string a,b;

struct node
{
    char c;
    node *l;
    node *r;
};

void dfs(node *T)
{
    if(T==NULL)
        return ;
    cout<<T->c;
    dfs(T->l);
    dfs(T->r);
}

//a后序 b中序
//CHBEDA  CBHADE
void f(int aa,int ae,int bb,int be,node *&T)
{
    if(aa>ae||bb>be)
        return ;

    if(T==NULL)
    {
        T=new node;
        T->l=T->r=NULL;
    }

    int i;

    T->c=a[ae];

    for(i=0; i<b.length(); i++)
        if(b[i]==a[ae])
            break;
    f(aa,aa+i-bb-1,bb,i-1,T->l);//左子树
    f(aa+i-bb,ae-1,i+1,be,T->r);//右子树,注意ae-1
}

int main()
{
    node *T=NULL;
    cin>>a>>b;
    f(0,a.length()-1,0,b.length()-1,T);
    dfs(T);
    
    return 0;
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值