文章目录
- 前言
- 一、专业面试
- 1、计算机网络中数据传输是并行还是串行?
- 2、操作系统如何实现同步?
- 3、面向对象如何实现模块独立性?其耦合和内聚的含义是什么?
- 4、什么是关系数据库的函数依赖?
- 5、你课余时间喜欢做什么?
- 6、对研究生扩招的看法
- 二、英文口语
- 1、Which is more important, health or wealth?
- 2、How do you think about Judging People by their Appearance?
- 三、算法上机
- 1、交换最大值和最小值
- 2、求平均成绩
- 3、今夕是何年
前言
今天是模拟面试系列第十天,为大家精心准备了 4 道专业课面试题,2 道综合面试题,2 道英语口语题,2 道算法上机题。
涵盖复试中常见的考察点,助你从容应对考官提问!
一、专业面试
1、计算机网络中数据传输是并行还是串行?
计算机网络中的数据传输通常采用串行传输 ,即数据以逐位顺序的方式在单条信道上传输,例如以太网和光纤通信均基于这一方式,因其简单且成本低,尤其适合长距离传输。
而并行传输(如多位同时传输)因布线复杂和同步困难在网络中极少使用,尽管某些高速网络技术(如波分复用WDM)通过多路复用实现多信号传输,但底层仍基于串行机制。
2、操作系统如何实现同步?
操作系统通过进程同步机制确保多任务环境下资源访问的正确性,主要通过互斥锁(Mutex)允许多个进程竞争访问共享资源但确保同一时间仅一个进程持有锁,信号量(Semaphore)通过计数器控制资源访问权限,条件变量(Condition Variable)与互斥锁结合让进程在条件未满足时等待,以及信号(Signal)实现进程间事件通知。
这些机制共同避免了竞态条件,保障关键代码段(临界区)的原子性。
3、面向对象如何实现模块独立性?其耦合和内聚的含义是什么?
面向对象通过封装(将数据和方法捆绑为类并隐藏内部实现)、继承(复用基类代码以降低重复耦合)和多态(通过接口或抽象类定义统一行为减少直接依赖)实现模块独立性。
其中耦合指模块间的依赖程度,低耦合通过接口或抽象层交互使模块修改对其他模块影响小,内聚则指模块内部功能的关联性,高内聚要求模块内的方法和数据紧密相关(如用户认证类仅负责认证功能),二者共同确保模块更易维护和扩展。
4、什么是关系数据库的函数依赖?
关系数据库的函数依赖(Functional Dependency, FD)描述表中属性间的确定性关系,若属性集A决定B的值(即A的每个唯一值对应B的唯一值),则称A→B为函数依赖。
例如学号决定姓名,分类包括平凡依赖(B包含于A)和非平凡依赖(B不包含于A),其作用是通过分析依赖关系设计规范化的关系模式,消除冗余和更新异常,如通过学号→年龄的非平凡依赖优化表结构。
5、你课余时间喜欢做什么?
课余时间我喜欢通过运动、阅读和持续学习来平衡生活与成长。每周会保持规律的羽毛球或徒步,运动不仅能放松身心,也能提升专注力。阅读是日常习惯,偏爱技术类书籍(如算法、系统设计)和社科类作品(如《人类简史》《原则》),帮助拓宽思维边界。
此外,我会利用碎片时间学习新技术或深化专业领域知识,例如研究 AI 模型优化或跟进行业论文,这种持续探索让我保持对领域的敏感度,同时为学术或职业发展积累能
6、对研究生扩招的看法
研究生扩招反映了国家提升高层次人才储备的战略需求,尤其在科技创新和产业升级领域,短期内确实为更多人提供了深造机会,也促进了知识传播与社会流动性。
但这一政策也面临挑战:部分院校可能因资源分散导致培养质量参差不齐,就业市场对“学历通胀”的反应(如硕士岗位学历要求水涨船高)也让部分学生面临预期落差。
我认为扩招的核心应是“质量导向的精准扩容”——优先在国家战略急需领域(如芯片、AI、新能源)加强导师与科研资源配置,同时鼓励校企联合培养,让学生的研究方向与产业需求直接挂钩。
对个人而言,扩招既是机会(更多深造路径),也需谨慎规划(明确学术或职业目标),避免盲目跟风。
二、英文口语
1、Which is more important, health or wealth?
健康和财富哪个更重要?
Health is more important than wealth because good health is the foundation of a fulfilling life. Without health, it is difficult to enjoy the benefits of wealth or pursue personal and professional goals. Prioritizing health ensures long-term well-being and the ability to achieve other aspirations.
健康比财富更重要,因为健康是充实生活的基础。没有健康,很难享受财富的好处或追求个人和职业目标。优先考虑健康可以确保长期的幸福感和实现其他愿望的能力。
2、How do you think about Judging People by their Appearance?
你怎么看待以貌取人?
Judging people by their appearance is unfair and often misleading. True character, abilities, and potential cannot be accurately assessed based on looks alone. It’s important to focus on qualities like actions, skills, and values, which provide a more meaningful and accurate understanding of a person.
以貌取人是不公平的,而且常常会产生误解。真正的品格、能力和潜力无法仅通过外表来准确评估。重要的是关注行动、技能和价值观等品质,这些才能更真实、更有意义地了解一个人。
三、算法上机
1、交换最大值和最小值
编写程序,定义函数 fun()
,其功能是找出任意长度的整型数组的最大值与最小值,然后,把最大值与最小值相互交换位置 。
要求:
- 按照上述题目要求,定义函数
fun()
- 数组在
main
函数中定义并初始化,在 main 函数中调用函数fun()
然后,输出数组的值。
样例输入:int a[]={35,3,67,29,15,38,98,86}
样例输出:35,98,67,29,15,38,3,86
代码实现
#include <bits/stdc++.h>using namespace std;void Swap(int* a, int* b) {int tmp = *a;*a = *b;*b = tmp;
}void func(int arr[], int n) {int min = 0;int max = 0;for (int i = 0; i < n; i++) {if (arr[min] > arr[i]) {min = i;}if (arr[max] < arr[i]) {max = i;}}int tmp = arr[min];arr[min] = arr[max];arr[max] = tmp;
}int main() {int n;scanf("%d", &n);int arr[n];for (int i = 0; i < n; i++)scanf("%d", &arr[i]);func(arr, n);for (int i = 0; i < n; i++)printf("%d ", arr[i]);return 0;
}
2、求平均成绩
有 N 个学生,每个学生有 3 门课的成绩,从键盘输入数据(包括学生学号,姓名,三门课成绩),求出每个学生的课程平均成绩。
定义结构体类型存储学生:学号、姓名、三门课成绩、平均成绩。
代码实现
#include <bits/stdc++.h>using namespace std;typedef struct student {char ID[15];char name[20];float degree[3]; // 三门课程float average;
}Stu;int main() {int n;scanf("%d", &n);Stu st[n];for (int i = 0; i < n; i++) {scanf("%s", &st[i].ID); scanf("%s", &st[i].name);scanf("%f %f %f", &st[i].degree[0], &st[i].degree[1], &st[i].degree[2]); }// 求平均成绩float avg = 0.0;for (int i = 0; i < n; i++) {avg = (st[i].degree[0] + st[i].degree[1] + st[i].degree[2]) / 3.0;st[i].average = avg;} // 打印结果 for (int i = 0; i < n; i++) {printf("%s ", st[i].ID); printf("%s ", st[i].name);printf("%.2f %.2f %.2f ", st[i].degree[0], st[i].degree[1], st[i].degree[2]); printf("%.2f", st[i].average);}return 0;
}
3、今夕是何年
要求计算任意一天在本年中为第几天?(每年的 1 月 1 日为该年的第 1 天)
注意考虑闰年问题:能被 4 整除但不能被100整除,或能被400整除的年份即为闰年
要求写一个函数 Days,实现上面的计算。
定义一个日期结构体 DAY(包括年、月、日),保存日期信息
要求日期由用户输入,将其保存为 DAY 结构体的一个变量,由主函数将该变量传递给 Days 函数
计算结果在主函数中进行输出
代码实现
#include <bits/stdc++.h>using namespace std;// 日期结构体
typedef struct Date{int year;int month;int day;
}Date;// 月份
int Mon[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; // 判断闰年
int isLeapYear(int y) {return ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0));
} int func(Date d) {// 检查合法性if (d.month < 1 || d.month > 12 || d.month < 0 || d.month > 31)return 0; // 判断闰年 if (isLeapYear(d.year))Mon[2] = 29;// 计算天数 int cnt = 0;for (int i = 1; i < d.month; i++)cnt += Mon[i];cnt += d.day;return cnt;
}int main() {Date d;scanf("%d %d %d", &d.year, &d.month, &d.day);int today = func(d);printf("%d", today);return 0;
}