苏大机试第三批-回忆版
大致题型
6 个程序设计题 +2 个数据结构题 +2 个算法题
具体的形式是给你一个 pdf 文件,里面有题目,然后给你一个 sample.cpp 文件,里面把 10 个题的函数声明好,把主体空出来让你填,十个函数一个 main 函数(!main 函数中是空的,所以想要测试函数逻辑对不对,需要自己写测试用例)(func1 … func10)26 年机试第一批和第二批都有原题(力扣热题 100,但是第三批没有原题🤷🤷🤷)
例如:
string func2(int n){
return “”;
}
1.学生成绩评级问题( if -else 问题)
题目给定四个参数,违纪 violation ,奖学金 award ,成绩 score ,出勤 attend ,计算学生的评级(A+ -> D),评级规则大概是:第一看违纪,如果有违纪直接 D,否则第二看奖学金(一等奖二等奖三等奖无),选定奖学金后判断 成绩和出勤情况,比如:score>=80 && attend >=18,输出 A+,以此类推。
2.忠实数判断:一个数是 7 的幂或者 7 的幂之和
比如 57=1+7+49,所以 57 是 7 的幂,输出 Yes,比如 3 不是 7 的幂,输出 NO。
3.给定一个步数 k 和一对坐标 (x, y),计算 k 步之后,遍历过的二维数组中的值的总和(bfs)
题目给定一个二维数组,每一个步长需要计算 上下左右(包括本身位置) 五个位置的值,但是不能重复计算。
4.回文串的回文子串(以测试用例解释)
给定一个字符串 a1bcbbcb,其可以划分为 a1bcb 和 bcb 两个子串,
5.找圆心(其实没太读懂题意)
题目给定一个坐标,给定一个半径,以该半径画圆,能覆盖最多点数的圆心坐标在哪里?(最优圆心)
样例 (2,-3),半径 r=1 :输出(5,5)
6.题目给定一个二维网格,其中 . 代表可行,x 代表障碍物,在行走过程中,如果遇到障碍物或者边界就右转(右转也算一步),给定一个步数 K,计算 K 步之后,有过多少个不重复的格子。(bfs)
注:7 8 题是数据结构题
7.给定一个数 K,找到第 K 个节点的值 v1 和倒数第 K 个节点 v2 的值,找出在这两个值 v1v2 之间的值的个数。
- 注意一个点:它提供给你的数据结构不是 LeetCode 上的,是类似大一 c++ 课程上的数据结构 LinkedList() 好好复习这些用法
(题目很好理解,但是难的是会用他给你的链表结构,不能更改原有结构,只能添加函数)
8.给定两个节点,求两个节点高度差的绝对值
注:算法题
9.零件流水线加工问题:给定数组与数值 k,在保持数组元素相对顺序不变的前提下,将数组拆分为 k 份。计算每段子数组最大值乘以子数组长度的总和,求出该总和的最小值。
10. 网格图里从 S 走到 T,每个格子有传送带,走的方向和传送带方向不一致则产生 1 代价,问最小代价
参与讨论