- 0
- 0
- 约8.4千字
- 约 23页
- 2026-02-10 发布于福建
- 举报
第PAGE页共NUMPAGES页
2026年软件开发工程师面试题及代码测试题含答案
一、编程语言基础(15分)
题目1(5分)
请用Python编写一个函数,实现将任意进制数(2-16进制)转换为十进制数。要求:
1.输入参数为两个:待转换的数字字符串和原进制数
2.处理无效输入(如非数字字符、进制数超出范围)
3.示例:
-1A,16→26
-1011,2→11
-FF,16→255
题目2(5分)
用Java实现一个方法,检查一个字符串是否为有效的JSON格式。要求:
1.只需验证最外层结构(如花括号匹配)
2.忽略实际内容校验
3.示例:
-{\name\:\test\}→true
-{name:\test\}→false
-abc→false
题目3(5分)
用C++实现一个模板函数,实现冒泡排序算法。要求:
1.接受任意可比较元素的容器(vector)
2.返回排序后的容器
3.示例:
cpp
//调用示例
std::vectorintarr={5,3,8,4,1};
autosorted=bubble_sort(arr);
//sorted应为[1,3,4,5,8]
二、数据结构与算法(25分)
题目4(10分)
设计一个LRU(最近最少使用)缓存,要求:
1.支持get和put操作
2.get返回键对应的值,并更新访问顺序
3.put插入或更新键值对,如果容量已满则移除最久未使用的项
4.实现时至少说明数据结构选择和核心逻辑
题目5(10分)
给定一个链表,判断是否包含环。要求:
1.不使用额外空间
2.实现检测算法
3.说明时间复杂度和空间复杂度
题目6(5分)
用递归方式实现快速排序算法,并分析其平均时间复杂度
三、数据库与SQL(20分)
题目7(10分)
假设有用户表(users)和订单表(orders):
sql
CREATETABLEusers(
idINTPRIMARYKEY,
nameVARCHAR(50),
cityVARCHAR(50)
);
CREATETABLEorders(
idINTPRIMARYKEY,
user_idINT,
amountDECIMAL(10,2),
order_dateDATE,
FOREIGNKEY(user_id)REFERENCESusers(id)
);
请写出以下SQL查询:
1.查询每个城市的用户数量及平均订单金额(只显示城市和两个字段)
2.查找订单金额超过城市平均订单金额的用户列表
题目8(10分)
解释以下SQL语句执行逻辑:
sql
SELECTu.name,
COUNT(o.id)ASorder_count,
SUM(o.amount)AStotal_amount
FROMusersu
LEFTJOINordersoONu.id=o.user_id
GROUPBYu.id
HAVINGtotal_amount(SELECTAVG(total_amount)FROM(
SELECTSUM(amount)AStotal_amount
FROMorders
GROUPBYuser_id
)ASavg_orders)
ORDERBYorder_countDESC;
四、系统设计(30分)
题目9(15分)
设计一个简单的微博系统,要求:
1.用户可以发布不超过200字的状态更新
2.支持关注/取消关注功能
3.展示用户关注者的最新10条状态
4.说明核心数据结构、主要接口及关键技术选择
题目10(15分)
设计一个秒杀系统,要求:
1.支持每秒处理数千并发请求
2.防止超卖和恶意刷单
3.说明系统架构、关键模块及解决方案
五、编程测试题(30分)
题目11(15分)
用你熟悉的语言实现一个简单的内容推荐算法:
1.输入:用户历史行为列表({user_id:1,item_id:101,action:click})
2.输出:为每个用户推荐3个可能感兴趣的商品ID
3.要求说明算法逻辑,并给出核心代码实现
题目12(15分)
实现一个文本编辑器的基本功能:
1.支持插入文本
2.支持删除指定范围的文本
3.支持撤销/重做操作
4.给出数据结构和核心方法实现
答案与解析
一、编程语言基础
题目1答案(Python)
python
defconvert_to_decimal(num_str,base):
ifnot2=base=16:
raiseValueError(Basemustbebetw
原创力文档

文档评论(0)