您的位置:首页 > 游戏 > 游戏 > 淘宝网页设计模板html_疫情防控政策调整_北京seo课程培训_发免费广告电话号码

淘宝网页设计模板html_疫情防控政策调整_北京seo课程培训_发免费广告电话号码

2025/3/14 15:50:00 来源:https://blog.csdn.net/m0_63325890/article/details/146208220  浏览:    关键词:淘宝网页设计模板html_疫情防控政策调整_北京seo课程培训_发免费广告电话号码
淘宝网页设计模板html_疫情防控政策调整_北京seo课程培训_发免费广告电话号码

文章目录

  • 前言
  • 一、专业面试
      • 1、OSI 参考模型和 TCP/IP 模型的主要区别是什么?简述各层功能
      • 2、什么是瀑布模型?其优缺点是什么?
      • 3、什么是递归?使用时需注意什么?
      • 4、监督学习与无监督学习的核心区别是什么?请举例说明典型算法
      • 5、你在项目中遇到过哪些技术挑战?是如何解决的?
  • 二、英文口语
      • 1、Can you tell us about a time you worked in a team and faced challenges? How did you handle it?
      • 2、Explain the term 'Big O Notation' in algorithm analysis.
  • 三、算法上机
      • 1、倒序输出一个四位整数
      • 2、提取字符串中的数字


前言

今天是模拟面试系列第二天,为大家精心准备了 5 道经典面试题、2 道英文口语题和 2 道算法题上机题,涵盖复试中常见的考察点,助你从容应对考官提问!

一、专业面试

1、OSI 参考模型和 TCP/IP 模型的主要区别是什么?简述各层功能

OSI 模型分为 7 层:

  • 物理层(传输比特流)
  • 数据链路层(帧传输)
  • 网络层(IP寻址与路由)
  • 传输层(端到端通信)
  • 会话层(会话管理)
  • 表示层(数据格式转换)
  • 应用层(网络服务)。

TCP/IP 模型分为 4 层:

  • 网络接口层(对应 OSI 物理 + 数据链路层)
  • 网际层(IP 协议)
  • 传输层(TCP/UDP)
  • 应用层(HTTP/FTP 等)。

主要区别 :

  • OSI 强调理论分层,TCP/IP 注重实用;
  • OSI有 7 层,TCP/IP 合并为 4 层;
  • TCP/IP 是实际应用的标准,OSI 是理论框架。

在这里插入图片描述

2、什么是瀑布模型?其优缺点是什么?

定义 :瀑布模型是线性开发模型,分为:需求分析 → 系统设计 → 编码 → 测试 → 维护,阶段间严格顺序且文档驱动。

优点 :流程清晰,易于管理;文档规范,适合需求明确的项目。

缺点 :难以应对需求变更;测试阶段晚,早期问题难以发现;不适合复杂或需求模糊的项目。

3、什么是递归?使用时需注意什么?

定义 :递归是函数直接或间接调用自身,需满足递归边界 (终止条件)和递归公式 (分解子问题)。

注意事项 :栈溢出风险(递归深度过大);重复计算问题(需优化,如记忆化)。

4、监督学习与无监督学习的核心区别是什么?请举例说明典型算法

核心区别 :

  • 监督学习:数据包含输入特征(X)和对应标签(Y),模型学习从 X 到 Y 的映射关系。
    • 目标:预测或分类(如房价预测、垃圾邮件分类)。
  • 无监督学习:数据仅有输入特征(X),无标签信息,模型通过数据内在结构进行学习。
    • 目标:聚类、降维或生成(如客户分群、数据压缩)。

典型算法举例 :

  • 无监督学习:K-means(聚类)、PCA(降维)、自编码器(生成)。
  • 监督学习:线性回归(回归任务)、逻辑回归(分类任务)、支持向量机(SVM)、决策树。

5、你在项目中遇到过哪些技术挑战?是如何解决的?

在开发XX项目时,我遇到了XX问题(如性能瓶颈、兼容性问题)。

首先,我通过查阅文档/调试日志/团队讨论定位到根本原因(如数据库查询效率低)。

然后,我尝试了XX方法(如添加索引、优化算法),并通过A/B测试验证效果。

最终,系统性能提升了XX%,并总结出XX经验(如提前性能测试的重要性)。

二、英文口语

1、Can you tell us about a time you worked in a team and faced challenges? How did you handle it?

您能否跟我们讲讲您曾身处团队之中并遭遇挑战的经历?您又是如何应对的?

“During a group project at university, our team had conflicting ideas about the project direction. I facilitated a discussion to ensure everyone’s opinions were heard, and we eventually reached a consensus by combining the best aspects of each idea. This experience taught me the importance of communication and collaboration in teamwork.”
 
“在大学的一个小组项目中,我们对项目方向有分歧。我组织了一次讨论,确保每个人的意见都被听到,最终我们结合了各自想法中的优点达成共识。这次经历让我认识到沟通和协作在团队合作中的重要性。”

2、Explain the term ‘Big O Notation’ in algorithm analysis.

解释算法分析中 “大 O 表示法” 这一术语。

“Big O Notation is a mathematical concept used to describe the performance or complexity of an algorithm. It represents the worst-case scenario of how the runtime or space requirements grow as the input size increases. For example, O(n) means the algorithm’s complexity grows linearly with the input size.”
 
“Big O Notation 是一种用于描述算法性能或复杂性的数学概念。它表示算法在最坏情况下,运行时间或空间需求随输入规模增长的变化趋势。例如,O(n) 表示算法的复杂度随输入规模线性增长。”

三、算法上机

1、倒序输出一个四位整数

输入一个四位正整数,然后按数字的相反次序输出。

如:输入 9187,则输出 7819;

又如:若输入为 7000,则输出为 0007。

要求:只能用一个整型变量接收键盘输入。

代码实现

#include <bits/stdc++.h>
#include <algorithm>using namespace std;int reverseN(int n) {// 非法检测if (n < 1000 || n > 9999) {return 0;}// result 用于存储反转后的结果,p 是权重(初始为 1000)int result = 0, p = 1000;for (int i = 0; i < 4; i++) {result += n % 10 * p; // 将 n 的最后一位乘以权重 p,加到 result 中p /= 10;  // 权重 p 缩小 10 倍             n /= 10;  // 去掉 n 的最后一位}return result;
}int main()
{int n;scanf("%d", &n);int ret = reverseN(n);printf("%04d", ret);return 0;
}

循环 4 次(因为 n 是 4 位数):

  • n % 10 获取 n 的最后一位数字。
  • n % 10 * p 将最后一位数字乘以权重 p,得到该数字在反转后的位置。
  • 将结果加到 result 中。
  • p /= 10 将权重缩小 10 倍(从千位到百位、十位、个位)。
  • n /= 10 去掉 n 的最后一位。

2、提取字符串中的数字

输入一个字符串,内有数字和非数字字符,如:b56x6g*6454er790v,将其中连续的数字作为一个长整型数依次存入数组 a 中,例如:56 存入 a[0] 中,6 存入 a[1] 中,6454 存入 a[2] 中,统计共有多少个整数,并通过数组 a 输出这些整数。(假设连续的数字作成的长整型数不存在溢出情况)。

注:若字符串中存在字符 -(减号),且其后为数字,则该数字应看作负数。

代码实现

#include <bits/stdc++.h>
#include <string.h>
#include <stdlib.h>
using namespace std;int func(char str[], long int arr[]) {int len = strlen(str); // 获取字符串长度int cnt = 0, temp = 0, index = 0; // cnt: 当前数字字符个数,temp: 当前数字的值,index: arr 的索引int op; // 用于判断是否有负号for (int i = 0; i < len; i++) {if (str[i] == '-') op = i; // 记录负号的位置if (str[i] >= '0' && str[i] <= '9') { // 如果当前字符是数字temp = temp * 10 + str[i] - '0'; // 将字符转换为数字并累加cnt++; // 数字字符个数加 1// 如果下一个字符不是数字,则当前数字结束if (!(str[i+1] >= '0' && str[i+1] <= '9')) {arr[index] = temp; // 将当前数字存入数组if (op == i - cnt) // 如果负号在当前数字的前面arr[index] = -arr[index]; // 将数字变为负数temp = 0;index++;cnt = 0;}}} return index;
}int main()
{char str[256];scanf("%s", str);long int arr[100];int n = func(str, arr);for (int i = 0; i < n; i++) printf("%ld ", arr[i]);return 0;
}

遍历字符串:

  • 如果当前字符是负号 -,记录其位置到 op
  • 如果当前字符是数字:
    • 将字符转换为数字并累加到 temp
    • 如果下一个字符不是数字,则当前数字结束:
      • temp 存入数组 arr
      • 如果负号在当前数字的前面,则将数字变为负数。
      • 重置 tempcnt,并增加 index

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com