2018西工大计算机夏令营记录

写在前面

  本人普通211院校计算机学科大三党,成绩一般般,本打算安安心心考研,但是临近瓜大夏令营时一老乡一直建议我报报夏令营试试,于是抱着试一试的心态报了个名,提交了相关材料,然后加了瓜大夏令营QQ群,静候结果;结果预录取名单并没有我,然后就果断退了群,准备好好学习。结果后来又有了补录,而我就在补录名单里;因为班上有几个同学预录取就进了;看到了群消息通知了我,由于当时在做课设,也没太在意选导师的问题(挖坑…),下午时我又进了群,要报上意向导师名字,结果我就随便报了个导师(搞错系了…)。夏令营总共有60人左右(虽然面试时有63人);下图是瓜大夏令营安排:
  附:六级得过,否则没戏,这是硬性要求!

这里写图片描述

我是如何准备的

  有个微信公众号叫“西工大考研”,里面有一些关于往年夏令营的面试的问题(具体不再赘述);我就看了看,查了一些资料恶补了两天;其次就是机试题,看网上往年的机试题并不很难,也就随便刷了刷;还有就是自我介绍(英文);

开始

  和同学一起在指定日期去报到并入住宾馆(莱卡酒店),酒店条件还不错,有的房间有电脑(有的没有),有的没有所以建议编程能力不太强的同学可以带上自己的电脑恶补一下;酒店对面就是西工大友谊校区;奥,对,西工大还给每人发了一件T恤,纯白的;然后还给每个人发了饭票,大概是没人每顿饭两张,一张可以抵20元(只有第一天是,后面几天好像是当10元),结果第一天不知情,一餐吃了40元(给了两张)。。。感觉巨亏。。。第二天上午就是听院长和几个教授作报告。然后下午就开始面试了(md,最紧张的环节)。面试分了6组,分别同时进行,主要是你之前报的意向导师面你;我进去面试时把自己材料交上,然后就开始英文自我介绍,但是四个老师只是轮流传阅材料,并没人听我的自我介绍(刚好,我自己慢慢说。。反正没人听),然后导师就开始就材料上我自己写的一些科研经历提问(我简历上写了数学建模比赛,还有一些图像项目处理的经历(这个其实瞎扯的)),马马虎虎15分钟就过去了。感觉一般。。。

面试总结:

  • 简历上项目经历尽管写,只要是你熟悉的,能扯出来的,就能写(哪怕是一个简单的算法),因为如果项目经历没写的话,导师就会问你很多专业课的知识了(范围太广,噩梦。。),同组的一个同学就是如此,问了很多专业课知识(mac是什么啊(网络)blabla….),而且都回答的支支吾吾。
  • 英文自我介绍导师基本不听,简单准备下,不卡壳就行。
  • 其实面试时可以反客为主,比如你可以问导师一些关于你自己的疑问(关于自己对每个问题的看法或录取调剂什么的,反正随便问),这样也可以整理一下自己的情绪,不至于那么紧张。

机试

  机试本来只安排了一个小时,但后来又改成了两个小时,五道题,并不难,code IDE:codeblocks(西工大自己改的一个版本)or VC++6.0,注意输入输出的格式控制。

Problem1:输入三角形的三边长,判断是否能组成三角形(简单吧)

input:

2
2 6 9
3 4 5

output:

no
yes
source code:
#include <iostream>

using namespace std;

int main()
{
    double a = 0.0;
    double b = 0.0;
    double c = 0.0;

    int n = 0;
    while (cin >> n)
    {
        for (int i = 0; i < n; i++)
        {
            cin >> a >> b >> c;

            if ((a - b < c) && (b - a < c) && (a - c < b) && (c - a < b) && (b - c < a) && (c - b < a) && (a + b > c) && (a + c > b) && (b + c > a))
                cout << "yes" << endl;
            else
                cout << "no" << endl;
        }
    }
    return 0;
}
Problem2:输入方程 a x 2 + b x + c = 0 中的 a b c 的值,输出是否有解,无则输出 NaN,有则输出两解的值(保留两位小数)。注意精度控制!

input:

2
4 6 2
5 9 2

output:

2.33 2.33
NaN
source code:
#include <iostream>
#include <iomanip>
#include <cmath>

using namespace std;

int main()
{
    int num = 0;
    double a = 0.0;
    double b = 0.0;
    double c = 0.0;
    double res1 = 0.0;
    double res2 = 0.0;

    while (cin >> num)
    {
        for (int i = 0; i < num; i++)
        {
            cin >> a >> b >> c;

            cout << setprecision(2);         // 单用setprecision是控制有效数字位数
            cout << setiosflags(ios::fixed); // 配合setprecision使用,控制输出小数精度

            if (b * b - 4 * a * c < 0)
                cout << "NaN" << endl;
            else if (b * b - 4 * a * c - 0 < 1.0e10)
            {
                res1 = -b / (2.0 * a);
                res2 = -b / (2.0 * a);
                cout << res1 << " " << res2 << endl;
            }
            else
            {
                res1 = (-b + sqrt(b * b - 4 * a * c)) / (2.0 * a);
                res2 = (-b - sqrt(b * b - 4 * a * c)) / (2.0 * a);
                cout << res1 << " " << res2 << endl;
            }
        }
    }
    return 0;
}
Problem3:输入几组整数(先输入要输入的数据组数,再输入每组数据个数,其次输入数据),从小到大排序输出。

input:

2 5
4 6 2 9 4
8 9 5 4 2

output:

2 4 4 6 9
2 4 5 8 9
source code:
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main()
{
    vector<int> a;
    int n = 0;
    int num = 0;
    int temp = 0;

    while (cin >> n)
    {
        cin >> num;
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < num; j++)
            {
                cin >> temp;
                a.push_back(temp);

                if (getchar() == '\n')
                    break;
            }

            sort(a.begin(), a.end());

            for (vector<int>::iterator i = a.begin() + 1; i != a.end(); i++)
                cout << *i << " ";

            cout << endl;

            a.clear();
        }
    }
    return 0;
}
Problem4:时差问题。一个地方和北京相差17个小时(比北京慢17h),输入北京时间,输出当地时间;输入格式:年 月 日 时 分,输出格式一样。此题注意输出格式控制(后四项数字位数为两位)

input:

2
2015 06 21 18 02
2016 01 01 04 23 

output:

2015 06 21 01 02
2015 12 31 12 23
source code:
#include <iostream>
#include <iomanip>

using namespace std;

bool isRun(int year);

int main()
{
    int yearB = 0;
    int monB = 0;
    int dayB = 0;
    int hourB = 0;
    int minB = 0;
    int yearJ = 0;
    int monJ = 0;
    int dayJ = 0;
    int hourJ = 0;
    int minJ = 0;

    int n = 0;

    while (cin >> n)
    {
        for (int i = 0; i < n; i++)
        {
            cin >> yearB >> monB >> dayB >> hourB >> minB;

            minJ = minB;

            if (hourB >= 17)
            {
                yearJ = yearB;
                monJ = monB;
                dayJ = dayB;
                hourJ = hourB - 17;
            }
            else
            {
                if (dayB == 1)
                {
                    if (monB == 1 || monB == 2 || monB == 4 || monB == 6 || monB == 8 || monB == 9 || monB == 11)
                    {
                        if (monB == 1 && dayB == 1)
                        {
                            yearJ = yearB - 1;
                            monJ = 12;
                            dayJ = 31;
                            hourJ = hourB + 24 - 17 + 1;
                        }
                        else
                        {
                            yearJ = yearB;
                            monJ = monB - 1;
                            dayJ = 31;
                            hourJ = hourB + 24 - 17 + 1;
                        }

                        if (monJ == 0)
                            monJ = 12;
                    }
                    else if (monB == 5 || monB == 7 || monB == 10 || monB == 12)
                    {
                        yearJ = yearB;
                        monJ = monB - 1;
                        dayJ = 30;
                        hourJ = hourB + 24 - 17 + 1;
                    }
                    else
                    {
                        if (isRun(yearB))
                        {
                            yearJ = yearB;
                            monJ = monB - 1;
                            dayJ = 29;
                            hourJ = hourB + 24 - 17 + 1;
                        }
                        else
                        {
                            yearJ = yearB;
                            monJ = monB - 1;
                            dayJ = 28;
                            hourJ = hourB + 24 - 17 + 1;
                        }
                    }
                }
                else
                {
                    yearJ = yearB;
                    monJ = monB;
                    dayJ = dayB - 1;
                    hourJ = hourB + 24 - 17 + 1;
                }
            }
            cout << yearJ << " " << setw(2) << setfill('0') << monJ << " " << setw(2) << setfill('0') << dayJ << " " << setw(2) << setfill('0') << hourJ << " " << setw(2) << setfill('0') << minJ << endl;
        }
    }
}

bool isRun(int year)
{
    if (year % 400 == 0 || (year % 100 != 0 && year % 4 == 0))
        return true;
    else
        return false;
}
Problem5:算数表达式求值(算是最难的一题了),输入算数表达式(可含小数),输出计算数值。

input:

3
2—8/2
3+7/2
6*(6-2)/2

output:

-2
6.5
12

source code:

此题不会,略。

英语测试,心理测试

  英语测试紧接着机试,机试刚完就是英语测试;就是给你一段计算机方面比较专业性的英文,让你翻译;此项无需特殊准备,大家大差不多;然后是心理测试,也是电脑上操作,MD,全是选择题,题贼多,不再赘言。

小结

总的来说,挺简单的,63进49,也就刷了14个人。

猜你喜欢

转载自blog.csdn.net/wayne17/article/details/81431622