文章目录
- 前言
- 一、专业面试
- 1、什么是面向对象编程?
- 2、软件工程的主要模型有哪些?
- 3、Cache和寄存器的区别
- 4、卷积层有哪些参数,它们代表什么?
- 5、你有读博的打算吗?
- 6、你的师兄/姐临近毕业,仍做不出成果,于是他选择了造假数据,你如果知道了会怎么做?
- 二、英文口语
- 1、Family and career; which is more important to you? Why?
- 2、What do you think of people who lie?
- 三、算法上机
- 1、交换最值
- 2、找到最大值和最小值
前言
今天是模拟面试系列第十一天,为大家精心准备了 4 道专业课面试题,2 道综合面试题,2 道英语口语题,2 道算法上机题。
涵盖复试中常见的考察点,助你从容应对考官提问!
一、专业面试
1、什么是面向对象编程?
面向对象编程(OOP)是一种编程范式,通过类(Class)和 对象(Object)组织代码,核心思想是将数据和行为封装成独立的 “对象”,并通过继承 、多态和封装实现模块化与复用。
例如,定义一个 “学生”类包含属性(姓名、成绩)和方法(计算平均分),具体学生实例(对象)则继承并扩展这些特性。
OOP的优势在于提升代码可维护性(如修改一处影响全局)和可扩展性(通过继承避免重复代码),同时通过封装隐藏复杂性,仅暴露必要接口。
2、软件工程的主要模型有哪些?
软件工程的核心模型包括:
- 瀑布模型 :线性阶段化开发(需求→设计→编码→测试→维护),强调文档和阶段交付,适合需求明确的项目。
- 敏捷开发(Agile) :通过短周期迭代(Sprint)快速交付增量功能,注重客户反馈和团队协作(如Scrum、Kanban)。
- 螺旋模型 :结合瀑布的阶段性和敏捷的迭代性,通过多次循环(计划→风险分析→开发→测试)平衡风险与灵活性,适合复杂项目。
- 增量模型 :分模块逐步开发并集成,每阶段交付可用子功能,降低整体风险。
3、Cache和寄存器的区别
寄存器 :是CPU内部的超高速存储单元 ,直接参与运算(如加法、逻辑操作),容量极小(以字为单位),用于临时存放当前操作的指令或数据,是计算机执行代码的最底层硬件支持。
Cache(高速缓存) :位于CPU与主存之间,容量比寄存器大(如KB/MB级),速度比主存快但略慢于寄存器。其作用是通过局部性原理 (时间/空间局部性)预存常用数据,减少CPU等待主存的时间。例如,当CPU访问某数据时,Cache会自动加载其附近的数据块以加速后续访问。
核心区别 :
- 寄存器是 CPU 直接操作的最小存储单元,速度最快但容量最小;
- Cache 是为缓解 “CPU-内存速度鸿沟” 设计的中间层,容量更大但访问速度次于寄存器。
4、卷积层有哪些参数,它们代表什么?
参考这篇文章 揭秘AI:机器学习与深度学习的奥秘
5、你有读博的打算吗?
我对进一步深造持开放态度,但目前更倾向于先完成硕士阶段的研究并积累实践经验。博士是一个需要长期专注和明确研究方向的选择,我希望在接下来的学习或工作中进一步明确自己的科研兴趣和目标。
例如,如果未来我的研究方向(如[具体领域])需要更深入的理论突破或资源支持,我会认真考虑攻读博士学位。但现阶段,我更关注如何扎实完成当前课题,并通过参与项目或实习探索自己的学术与职业兴趣。
6、你的师兄/姐临近毕业,仍做不出成果,于是他选择了造假数据,你如果知道了会怎么做?
学术诚信是科研的基石,如果遇到这种情况,我会首先尝试与师兄沟通,了解他面临的压力和困难,提醒他数据造假的严重后果(如学术生涯受损、项目失败风险)。
如果沟通无果,我会按照学校或实验室的学术规范流程,匿名或实名向导师、伦理委员会或相关部门报告,同时尽可能提供证据支持调查。
保护学术诚信不仅是责任,也是对整个研究领域未来的负责。在此过程中,我会优先通过制度化的渠道解决问题,避免直接冲突,同时确保自身不参与或默许任何不端行为。"
二、英文口语
1、Family and career; which is more important to you? Why?
家庭和事业;哪个对你更重要?为什么?
Both family and career are important, but family holds a deeper significance for me because it provides emotional support and a sense of belonging. However, a fulfilling career is also essential as it allows me to contribute to society and achieve personal growth. Balancing both is key to a meaningful life.
家庭和事业都很重要,但家庭对我来说意义更深,因为它提供了情感支持和归属感。然而,一份充实的职业也很重要,因为它让我能够为社会做贡献并实现个人成长。平衡两者是过上充实生活的关键。
2、What do you think of people who lie?
你怎么看待说谎的人?
I believe lying undermines trust and damages relationships. While people may lie for various reasons, honesty is essential for building strong connections and maintaining integrity. It’s important to address the root causes of dishonesty and encourage open communication.
我认为撒谎会破坏信任并损害关系。尽管人们可能出于各种原因撒谎,但诚实对于建立牢固的关系和保持正直至关重要。重要的是解决不诚实的根本原因,并鼓励开放的沟通。
三、算法上机
1、交换最值
编写程序,定义一个一维整型数组,从键盘输入 10 个互不相同的整数,将数组中的最大值与数组中的
第一个元素交换,数组中最小值与最后一个元素交换,输出交换后的数组元素。
代码实现
#include <bits/stdc++.h>
using namespace std;
#define N 10
void Swap(int arr[], int n) {
int minId = 0;
int maxId = 0;
for (int i = 0; i < n; i++) {
if (arr[minId] > arr[i])
minId = i;
if (arr[maxId] < arr[i])
maxId = i;
}
int tmp = arr[minId];
arr[minId] = arr[maxId];
arr[maxId] = tmp;
}
int main() {
int arr[N];
for (int i = 0; i < N; ++i)
scanf("%d", &arr[i]);
Swap(arr, N);
for (int i = 0; i < N; ++i)
printf("%d ", arr[i]);
return 0;
}
2、找到最大值和最小值
编写程序,定义含有 10 个元素一维整型数组,编写整型数组数据的输入函数,编写计算数组的最大
值、最小值及其所在下标位置的函数,完成函数定义及 main 函数测试。
例如输入数据:2 5 0 4 1 9 12 45 15 77
输出结果:最大值 a[9]=77
,最小值 a[2]=0
代码实现
#include <bits/stdc++.h>
using namespace std;
#define N 10
void Swap(int arr[], int n) {
int minId = 0;
int maxId = 0;
for (int i = 0; i < n; i++) {
if (arr[minId] > arr[i])
minId = i;
if (arr[maxId] < arr[i])
maxId = i;
}
printf("最大值: arr[%d]=%d\n", maxId, arr[maxId]);
printf("最小值: arr[%d]=%d\n", minId, arr[minId]);
}
int main() {
int arr[N];
for (int i = 0; i < N; ++i)
scanf("%d", &arr[i]);
Swap(arr, N);
return 0;
}