智能车队机试大纲
1. 综述
智能车队的选拔分为 程序组 和 电路组 两组进行.程序组往后负责智能车的软件部分职责包括但不限于:
- 控制系统建模
- 智能车的主控程序
- 为新增加的硬件配置(或手写)驱动
电路组的职责包括但不限于:
- 绘制智能车的电路(小底板, 电机驱动板)
- 焊接电路板的元件
- 负责车模结构(如: 处理轮胎, 车模重心)
- 安装传感器
- 绘制3D打印模型
2. 评分方式
机试为加入智能车队的必要环节, 编程对程序组的重要性不言而喻, 对于电路组, 也需要自行编写电路板的测试程序, 故也需要具有一定的编程能力. 机试由四道题组成, 分值为: \(20 + 25 + 25 + 30 = 100\). 但考虑到二者的主攻方向不同, 电路组只需要完成前两题, 限时90分钟, 满分45分; 而程序组需要完成全部四题, 限时180分钟, 满分100分.
此外, 电路组还要增加电路基础知识面试, 故电路组的考核方式为:
\[ 总分(100) = 机试(45) + 电路基础面试(55),\]
程序组需要增加代码规范性考察, 满分20分, 故程序组考核分式为:
\[ 总分(100) = 机试(100) \times 0.8 + 代码规范性考察(20).\]
3. 机试
本次机试限定使用 C 或 C++ 请根据自己的习惯选择合适的语言, 服务器上编译命令如下:
C (GCC5.4)
/usr/bin/gcc -DONLINE_JUDGE -02 -w -fmax-errors=3 -std=c11 {srcpath} -o {exe_path}
C++ ( G++ 5.4)
/usr/bin/g++ -DONLINE_JUDGE -02 -w -fmax-errors=3 -std=c++14 {src_path} -o {exe_path}
机试时请 自行携带电脑, 并安装好C语言编译器和集成开发环境. 机试判题有智能车队的在线判题系统自动完成, 全程无人工参与, 系统输出得分即为最终试题得分, 以保障公平性. 机试时每道题限制 最大提交次数 为10次, 所以请线下编译测试后再提交. 机试时 允许携带纸质参考资料 但是不允许上网搜索答案, 机试时只允许使用浏览器打开在线判题系统网页, 如打开任何其他网页都按违规处理.
4. 电路基础面试
- 常见电子元器件的辨别和具体数值的读法;
- 基础电路分析,电阻分压网络计算;
- 二极管、晶体三极管及MOS管相关知识;
- 万用表的使用及原理;
- 信息提取整合运用能力及英文资料阅读;
- 实操技能(待定):
5. 代码规范性考察
智能车是一个团队工作, 保持代码规范非常重要, 智能车队一直遵从 Google C++ Style. 我们将随机抽取每个人的3份机试提交, 进行代码规范性考察. 主要考察变量名, 缩进, 注释, 名称空间的规范性以及逻辑结构的必要性.
情况 | 得分 |
---|---|
非常规范 | 15 - 20 |
基本还算规范 | 10 - 15 |
缩进不规范 | 5 - 10 |
变量名不规范 | 0 - 5 |
6. 机试考察范围
包括但不限于:
- 结构体, 共用体, 枚举等数据类型
- 排序, 搜索等基本算法
- 队列, 栈等基本数据结构
- 散列操作
- C语言的基本特性
每道题目都会限制程序运行时间和内存, 请权衡时空成本. 灵活选择空间换时间, 还是时间换空间.
机试题目偏向于简单, 侧重于考察语言特性, 如果大家都不会做, 也就失去了我们这次机试的意义了.
7. 程序组附加题
由于机试题目较为简单, 而机试时间充足, 故增设一道30分的附加题, 供程序组选做. 如果担心代码规范性得不到满分, 可以选做附加题, 但附加题得分加入后总分仍然不超过100分. 附加题考察侧重于算法, 包括但不限于:
- 堆
- 二叉排序树
- 平衡二叉树
- 哈夫曼编码
- 树的遍历和重构
- 并查集
- 基本图论算法
- 动态规划算法
- 基本数论算法
- 对时间和空间复杂度的估计与权衡
8. 电路组附加题
专业软件使用 (CAD/SolidWorks,Altium Designer), 20分.
⬅️ Go back