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

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

    else if(x>=4 && x<6)
        cout<<"y="<<x/2-1.5<<endl;
}
2、    编写程序,读入一个整数 N。若 N 为非负数,则计算 N 到 2N 之间的整数和;若 N 为一个负数,则求 2N 到 N 之间的整数和。
#include<iostream>
#include<stdlib.h>
using namespace std;
void main()
{
    int N;
    cout<<"请输入一个整数:";
    cin>>N;
    cout<<((N+2*N)*(abs(N)+1))/2<<endl;
}
3、    设N是一个四位数,它的 9 倍恰好是其反序数(例如:1234的反序数是4321),求N的值。
#include<iostream>
using namespace std;
void main()
{
    for(int i=1000;i<=9999;i++)
    {
        int a,b,c,d;
        a=i/1000;
        b=i/100-a*10;
        c=(i/10)%10;
        d=i%10;
        if(9*i==d*1000+c*100+b*10+a)
            cout<<i<<endl;
    }
}
4、    N个人围成一圈顺序编号,从1号开始按1、2、3顺序报数,报3者退出圈外,其余的人再从1、2、3开始报数,报3的人再退出圈外,依次类推。请按退出顺序输出每个退出人的原序号。要求使用环行链表编程。
#include<iostream>
#include<malloc.h>
using namespace std;
typedef struct node
{
    int num;
    struct node *next;
}LNode;
void main()
{
    LNode *head,*p,*q;
    int N;
    cout<<"输入人数:";
    cin>>N;
    p=(LNode*)(malloc(sizeof(LNode)));
    p->num=1;
    head=p;
    for(int i=1;i<N;i++)
    {
        p->next=(LNode*)(malloc(sizeof(LNode)));
        p=p->next;
        p->num=i+1;
    }
    p->next=head;
    p=head;
    cout<<"输出序列为:"<<endl;
    while(p->next!=p)
    {
        q=p->next;
        p=q->next;
        q->next=p->next;
        cout<<p->num<<"  ";
        delete p;
        p=q->next;
    }
    cout<<p->num<<endl;
    delete p;
}
       
2001年 (2)
1、    请输入高度h,输入一个高为h,上底边长为h的等腰梯形(例如h=4,图形如下)。
****
  ******
 ********
**********
#include<iostream>
using namespace std;
void main()
{
    int h;
    cout<<"请输入h:";
    cin>>h;
    for(int i=0;i<h;i++)
    {
        for(int j=0;j<h-i-1;j++)
            cout<<" ";
        for(int k=0;k<h+2*i;k++)
            cout<<"*";   
        cout<<endl;
    }
   
   
}

2、    请编写一个程序,从键盘上输入n(n的范围是1~20),求n的阶乘。
#include<iostream>
using namespace std;
void main()
{
    int n;
    int sum=1;
    //int t=0;
    cout<<"请输入n(1-20):";
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        sum=sum*i;
    }
    cout<<sum<<endl;
}
3、    从键盘上任意输入一个长度不超过20的字符串,对所输入的字符串,按照ASCII码的大小从小到大进行排序,请输出排序后的结果。
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
void main()
{
    string s;
    cout<<"Enter string :";
    cin>>s;
    sort(s.begin(),s.end());
   
    cout<<s<<endl;
}
2002年 (A)
1、    某人有8角的邮票5张,1元的邮票4张,1元8角的邮票6张,用这些邮票中的一张或若干张可以得到多少中不同的邮资?
#include<iostream>
using namespace std;

bool isin(double a[], int size, double num)
{
    for (int i = 0; i < size; i++)
    {
        if (a[i]==num)
        {
            return true;
        }
       
    }
    return false;
}

void main()
{
    double sum = 0;
    double a[220] = { 0.0 };
    int t = 0;
    for (int i = 0; i <= 5; i++)
        for (int j = 0; j <= 4; j++)
            for (int k = 0; k <= 6; k++)
            {
                sum = i*0.8 + j * 1 + 1.8*k;
                if (isin(a, t, sum))
                {
                    break;
                }
                else
                {
                    a[t] = sum;
                    t++;
                }
            }
   
    int i = 0;
    for (i = 0; i < t-1; i++)
    {
        cout << a[i] << " ";
    }
    cout << a[i] << endl;
    cout << t << endl;
    system("pause");
}
               
2、    输入n值,使用递归函数,求杨辉三角形中各个位置上的值,按照如下形式打印输出图形。例如:当n=6时。
                    1
                 1     1
              1     2     1
           1     3     3     1
        1     4     6     4     1
     1     5    10    10     5     1

#include<iostream>
#include<iomanip>
using namespace std;
int c(int x, int y);
void main()
{
    int i, j, n;
    cout << "请输入杨辉三角的行数:";
    cin >> n;
    while (n>12)
    {
        cout << "输入数据过大,请重新输入:";
        cin >> n;
    }
    /*控制正确的值保证屏幕的显示正确,当大于12时屏幕无法
    正确显示*/
    for (i = 0; i<n; i++)
发表评论 已经有0条评论 查看全部评论

关键字

相关信息