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

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

    {
        /*控制输出N行*/
        for (j = 0; j<3 * (n - 1 - i); j++)
            cout << " ";/*控制第I行前的空格*/
        for (j = 1; j<i + 2; j++)
            cout << setw(6) << c(i, j); /*输入第I行第J个值*/
                                        //在C++中,setw(int n)用来控制输出间隔
        cout << endl;
    }
    system("pause");
}
int c(int x, int y)
{
    /*求杨辉三角形中X行Y列的值*/
    int z;
    if ((y == 1) || (y == x + 1))
        return(1); /*若为第X行第一和第X+1列则输出1*/
    z = c(x - 1, y - 1) + c(x - 1, y); /*否则其值为前一行的第Y-1列与Y的值的和*/
    return(z);
}
2002年 (B)
1、    打印所有不超过n(n<256)的,其平方具有对称性质的数。如11*11=121。
 #include<iostream>
#include<stdlib.h>
#include<string>
using namespace std;
void main()
{
    int t,x;
   
    char s[10] ;
    for(int i=1;i<256;i++)
    {
        int j=0;
         x=i*i;
        while(x)
        {
            t=x%10;
            s[j++]=t+48;
            x/=10;
        }
        s[j]='\0';
        if(i*i== (s))
        {
            cout<<i<<"  ";
        }
    }
    cout<<endl;
}
或者:-----------------------------------------------------------------
#include<iostream>

using namespace std;
void main()
{
   
    int a[20] = { 0 };
   
    int x, t;
    for (int i = 0; i < 256; i++)
    {
        //int i = 11;
        x = i*i;
        int k = 0;
        while (x)
        {
            t = x % 10;
            a[k++] = t;
            x /= 10;
        }
        int flag = 0;
        for (int i = 0; i < k; i++)
        {
            if (a[i]!=a[k-1-i])
            {
                flag = 1;
                break;
            }
        }
        if (flag == 0)
        {
            cout << i << " " << i*i << endl;
        }
    }
    system("pause");
}

2、    编写一个求菲波那奇数列的递归函数,输入n值,使用该递归函数,输出如下图形。例如:当n=6时。
                       0
                   0   1   1
               0   1   1   2   3
           0   1   1   2   3   5   8
       0   1   1   2   3   5   8  13  21
   0   1   1   2   3   5   8  13  21  34  55

#include<iostream>
#include<iomanip>
using namespace std;
int fac(int x)
{
    if (x == 0)
        return 0;
    if (x == 1)
        return 1;
    else
        return fac(x - 1) + fac(x - 2);
}
int main()
{
    int n;
    cin >> n;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j< 4 * (n - 1 - i); j++)
            cout << " ";
        for (int j = 0; j < 2*i+1; j++)
        {
            cout << setw(4) << fac(j);
        }
        cout << endl;
    }
    system("pause");
}
2003年
1、    输入球的中心点和球上某一点的坐标,计算球的半径和体积。
 #include<iostream>
#include<math.h>
using namespace std;
double const PI=3.14156;
void main()
{
    int  x1,x2,y1,y2,z1,z2;
    double r;
    cout<<"请输入中心点坐标: ";
    cin>>x1>>y1>>z1;
    cout<<"请输入球上某一点的坐标: ";
    cin>>x2>>y2>>z2;
   
    r=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)+(z1-z2)*(z1-z2));
    cout<<"半径为:"<<r<<endl;
    cout<<"体积为:"<<4*PI*r*r*r/3<<endl;
}
2、    手工建立一个文件,文件中每行包括学号、姓名、性别和年龄。每一个属性使用空格分开。文件如下:
    01 李江 男 21
02 刘唐 男 23
03 张军 男 19
04 王娜 女 19
根据输入的学号,查找文件,输出学生的信息。
#include<iostream>
#include<fstream>

using namespace std;

int main()
{
    int no;
    char name[20];
    char sex[4];
    int age;
    ofstream out("student.txt");
    for (int i = 0; i < 4; i++)
    {
        cin >> no >> name >> sex >> age;
        out << no << " " << name << " " << sex << " " << age << " " << endl;
    }
    int NO;
    cin >> NO;
    ifstream in("student.txt");
    for (int i = 0; i < 4; i++)
    {
        in >> no >> name >> sex >> age;
        if (no==NO)
        {
            cout << no << " " << name << " " << sex << " " << age << " " << endl;
            break;
        }
    }

    system("pause");
}
 真确算法:
#include<iostream>
#include<fstream>
#include<stdlib.h>
using namespace std;
int main()
{
    char str[80];
    int st_no;
    ifstream file("student.txt");
    if(!file)
    {
发表评论 已经有0条评论 查看全部评论

关键字

相关信息