北京理工大学2000-2012考研计算机复试上机题详尽处理

点赞(0) 反对(0) 本站小编 福瑞考研网 2017-04-25 21:24:21 阅读(0)

北京理工大学计算机专业研究生复试上机试题(2000-2010)
 
计算机专业研究生复试上机试题
2000年:
1、    输入任意4个字符(如:abcd),并按反序输出(如:dcba)
#include<iostream>
#include<string>
using namespace std;
void main()
{
    string s;
    cin>>s;
    for(int i=3;i>=0;i--)
        cout<<s[i];
    cout<<endl;
}
2、    设a、b、c均是 0 到 9 之间的数字,abc、bcc是两个三位数,且有:abc+bcc=532。求满足条件的所有a、b、c的值。
#include<iostream>
using namespace std;
void main()
{
    int a,b,c;
    //int s;
    for(int i=100;i<1000;i++)
    {
        a=i/100;
        b=i/10-a*10;
        c=i%10;
        //cout<<i<<"  ";
        //cout<<a*100+b*10+c;
        if((i+b*100+c*10+c)==532)
        {
            cout<<a<<"  "<<b<<"  "<<c;
        cout<<endl;
        }
    }
}

3、    一个数如果恰好等于它的各因子(该数本身除外)子和,如:6=3+2+1,则称其为“完数”;若因子之和大于该数,则称其为“盈数”。求出2到60之间所有“完数”和“盈数”,并以如下形式输出: E: e1 e2 e3 ......(ei为完数) G: g1 g2 g3 ......(gi为盈数)
#include<iostream>
using namespace std;
void main()
{
    cout<<"E:";
    for(int i=2;i<=60;i++)
    {
        int s=0;
        for(int j=1;j<i;j++)
        {
            if(i%j==0)
            {
                 //s=0;
                s+=j;
            }
        }
        if(s==i)
        {
            cout<<i<<"  ";
        }
    }
    cout<<endl;
    cout<<"G:";
    for(int k=2;k<=60;k++)
    {
        int s=0;
        for(int j=1;j<k;j++)
        {
            if(k%j==0)
            {
                 
                s+=j;
            }
        }
        if(s>k)
        {
            cout<<k<<"  ";
        }
    }
    cout<<endl;
}

4、    从键盘输入4个学生的数据(包括姓名、年龄和成绩),并存放在文件sf1上。从该文件读出这些数据,按成绩从高到底排序,并输出其中成绩次高者的所有数据。
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
struct student
{
    string name;
    int age;
    int score;
};
void main()
{
    student st[4];
    student s;
    student t;
    int i=0;
    ofstream out("sf1.txt");
    cout<<"请输入4个学生的姓名,年龄,成绩:"<<endl;
    for(i=0;i<4;i++)
    {
        cin>>s.name>>s.age>>s.score;
        out<<s.name<<"  "<<s.age<<"  "<<s.score<<endl;
    }
    ifstream in("sf1.txt");
    cout<<"name  "<<"  age  "<<"score "<<endl;
    for(i=0;i<4;i++)
    {
        in>>st[i].name>>st[i].age>>st[i].score;
        cout<<st[i].name<<"   "<<st[i].age<<"  "<<st[i].score<<endl;
    }
    for(i=0;i<4;i++)
        for(int j=i+1;j<4;j++)
            if(st[i].score<st[j].score)
            {
                t=st[i];
                st[i]=st[j];
                st[j]=t;
            }
    cout<<"name  "<<"  age  "<<"score "<<endl;
    for(i=0;i<4;i++)
        cout<<st[i].name<<"   "<<st[i].age<<"  "<<st[i].score<<endl;

}

//my answer
#include<iostream>
#include<fstream>

using namespace std;

typedef struct student
{
    char name[10];
    int age;
    int grade;
}*Stu;

void sort(Stu &students, int num)
{
    for (int i = 1; i < num; i++)
    {
        student temp = students[i];
        int j;
        for (j = i - 1; j >= 0 && students[j].grade >= temp.grade; j--)
        {
            students[j + 1] = students[j];
        }
        students[j+1] = temp;
    }
}

int main()
{
    Stu students = (Stu)malloc(sizeof(student) * 4);
    student s;
    ofstream out("sf1.txt");
    for (int i = 0; i < 4; i++)
    {
        cin >> s.name >> s.age >> s.grade;
        out << s.name << " " << s.age << " " << s.grade << endl;
    }
    ifstream in("sf1.txt");
    for (int i = 0; i < 4; i++)
    {
        in >> students[i].name >> students[i].age >> students[i].grade;
    }
    sort(students, 4);
    for (int i = 0; i < 4; i++)
    {
        cout << students[i].name << students[i].age << students[i].grade << endl;
    }
    system("pause");
}

2001年(1):
1、    编写程序,计算下列分段函数y=f(x)的值。 y= -x+2.5 0<= x <2 y=2-1.5(x-3)(x-3) 2<= x <4 y=x/2-1.5 4<= x <6
#include<iostream>
using namespace std;
void main()
{
    int x;
    cout<<"请输入x(0-6):";
    cin>>x;
    if(x<0 && x>=6)
        cout<<"输入有误!";
    if(x>=0 && x<2)
        cout<<"y="<<(-x+2.5)<<endl;
    else if(x>=2 && x<4)
        cout<<"y="<<2-1.5*(x-3)*(x-3)<<endl;

 1/19    1 2 3 4 5 6 下一页 尾页
发表评论 已经有0条评论 查看全部评论

关键字

相关信息