2018华东师范大学计算机系机试题目代码

49人阅读 评论(0) 收藏 举报
分类:

C语言版

第1题

#include <stdio.h>

int main(void)
{   
    char op,n1,n2;
    int res;
    n1=getchar();
    op=getchar();
    n2=getchar();
    switch(op)
    {
        case '+':
            res=(n1-'0')+(n2-'0');
            break;
        case '-':
            res=(n1-'0')-(n2-'0');
            break;
        case '*':
            res=(n1-'0')*(n2-'0');
            break;
        case '/':
            res=(n1-'0')/(n2-'0');
            break;
        default:
            break;
    }
    printf("%d\n",res);
    return 0;
}

第2题:

#include <stdio.h>
#include <math.h>

void Fractal(int n,int level)
{
    int p=pow(3,n);

    if(level==1)
    {
        printf("FD 1/%d\n",p);
        printf("LD 60\n");
        printf("FD 1/%d\n",p);
        printf("LD 240\n");
        printf("FD 1/%d\n",p);
        printf("LD 60\n");
        printf("FD 1/%d\n",p);
    }
    else
    {
        Fractal(n,level-1);
        printf("LD 60\n");
        Fractal(n,level-1);
        printf("LD 240\n");
        Fractal(n,level-1);
        printf("LD 60\n");
        Fractal(n,level-1);
    }
}

void output(int n)
{
    Fractal(n,n);
}

int main(void)
{
    int n;
    scanf("%d",&n);
    output(n);
    return 0;
}

第3题:

#include <stdio.h>
#include <string.h>

#define MAXDIGIT 57
#define MAXN 200007
typedef struct numNode ElemType;

struct numNode
{
    int isPositive;
    int digit;
    char value[MAXDIGIT];
};
ElemType a[MAXN];

int myCompare(ElemType a,ElemType b);
void sort(ElemType *a,int N);

int main(void)
{
    int i,N;

    scanf("%d",&N);
    for(i=0;i<N;i++)
    {
        scanf("%s",a[i].value);
        a[i].digit=strlen(a[i].value);
        if(a[i].value[0]=='-')
            a[i].isPositive=0;
        else
            a[i].isPositive=1;
    }

    sort(a,N);

    for(i=0;i<N;i++)
        printf("%s ",a[i].value);
    printf("\n");
    return 0;

}


int myCompare(ElemType a,ElemType b)
{
    if(a.isPositive && b.isPositive == 1){
        //both of a and b are positive 
        if(a.digit!=b.digit)
            return a.digit<b.digit;
        else
            return strcmp(a.value,b.value)<0;
    }
    else if(a.isPositive==0 && b.isPositive==0){
        if(a.digit!=b.digit)
            return a.digit>b.digit;
        else
            return strcmp(a.value+1,b.value+1)>0;
    }
    else
        return a.isPositive==0;
}


void QuickSort(ElemType *a,int lwbd,int upbd)
{

    int i=lwbd,j=upbd;
    if(i<j){
            ElemType tmp=a[i];
        while(i<j)
        {
            while(i<j && myCompare(tmp,a[j]))
                j--;
            if(i<j)
                a[i++]=a[j];
            while(i<j && myCompare(a[i],tmp))
                i++;
            if(i<j)
                a[j--]=a[i];
        }
        a[i]=tmp;
        QuickSort(a,lwbd,i-1);
        QuickSort(a,i+1,upbd);
    }

}


void sort(ElemType *a,int N)
{
    QuickSort(a,0,N-1);
}

第5题:

#include <stdio.h>
#define DEBUG 1
#define MAXN 100 
// if MAXN reach the upperbound 2e+5, it must beyond the memory limit

int N;
/*
** N is the order of matrix
**
** all of the function will use it
**
** therefore, we defined N as globle variable
*/

int valid(int x,int y)
{
    if(x>=0 && x<N & y>=0 && y<N)
        return 1;
    else 
        return 0;
}

typedef long long resType;
resType accumulate(resType *a)
{
    int i;
    resType s=0;
    for (i=0;i<N;i++)
        s+=a[i];
    return s;
}

int main(void)
{

    int i,k,x,y;

    resType a[MAXN][MAXN];

    for(x=0;x<MAXN;x++)
        for(y=0;y<MAXN;y++)
            a[x][y]=0;

    scanf("%d",&N);

    int dir[4][2]={{0,1},{0,-1},{1,0},{-1,0}};
    a[0][0]=1;

    k=0;x=0;y=0;
    for(i=2;i<=N*N;i++)
    {
        while(!(valid(x+dir[k][0],y+dir[k][1]) && a[x+dir[k][0]][y+dir[k][1]]==0))
            k=(k+1)%4;
        x=x+dir[k][0];
        y=y+dir[k][1];
        a[x][y]=i;
    }

#if DEBUG
// output the matrix
    for(x=0;x<N;x++){
        for(y=0;y<N;y++)
            printf("%4d",a[x][y]);
        printf("\n");
    }
#endif

    for(i=0;i<N;i++)
        printf("%d\n",accumulate(a[i]));

    return 0;


}
查看评论

华东师范大学计算机研究生复试机试练习题

  • 2015年06月25日 14:49
  • 206KB
  • 下载

2018华为校招机试题目

华为机试一共3道题,第1题100分,第2题200分,第3题300分,满分600分。考试时间为两个小时。想拿sp,当然要全部AC了。 1.数字处理 题目描述:给出一个不多于5位的整数,进行反序处...
  • kl1411
  • kl1411
  • 2017-11-22 10:57:36
  • 1279

南京大学计算机学院研究生入学复试上机试题

  • 2012年06月19日 23:01
  • 250KB
  • 下载

华为2018实习生机试题目

更了一下第三题题解,之前考虑的不全面 100分 题目 emmm 有点抽象,扯到什么无线通信最大径啥的,不过抽象出来就是这个意思: 找一组数字中(共21个),四个连续的数字的和最大,然后输出这...
  • lixibin0829
  • lixibin0829
  • 2018-03-28 22:00:23
  • 171

2009华东师范大学计算机系上机试题及参考代码

  • 2010年04月21日 22:15
  • 42KB
  • 下载

华东师范大学计算机考研机试题目答案

  • 2018年01月28日 18:56
  • 8KB
  • 下载

华师大软院离散数学试卷

  • 2010年05月05日 16:37
  • 865KB
  • 下载

2017年北大信科夏令营机试A

题目链接:点击打开链接 描述 输入两个整数X和Y,输出两者之间的素数个数(包括X和Y)。 输入 两个整数X和Y(1 5)。 输出 输出一个整数,表示X,Y之间的素数个数(包...
  • hongbudao
  • hongbudao
  • 2017-07-15 17:00:40
  • 835

2011 北邮计算机复试 机试代码

A 题比较简单 分割字符串 然后倒序输出 就行 B 模拟 按题意模拟 #include #include #include const int N = 1000 + 3;//...
  • fx397993401
  • fx397993401
  • 2011-05-23 16:28:00
  • 653

2018北邮网研院机试真题

2018北邮网研院机试真题(答案仅供参考) 根据刚机试结束的同学回忆,今年北邮机试题目下,并附上本人解答。(应该有一些细节没考虑,如果发现问题,欢迎留言指正交流) 大神就当看个笑话 =。= ...
  • birdreamer
  • birdreamer
  • 2018-03-29 21:05:00
  • 738
    个人资料
    等级:
    访问量: 3577
    积分: 152
    排名: 110万+
    文章存档
    最新评论