



























这篇文章回顾的是 1994 年 Microsoft(微软)实习面试中的四道编程题,场景还停留在 90 年代的 C 语言和 DOS 图形时代。评论区把题目补成了更完整的背景:有字符串拷贝、基于 CGA(Color Graphics Adapter,早期 PC 图形标准)的低色深图像处理、以及在像素网格上画圆。有人补充说当时常见的参考书是 K&R(经典 C 教材《The C Programming Language》),而 Borland Turbo Graphics(Borland 的 DOS 图形函数包)这类工具会直接影响解题思路。讨论里反复出现的 pitch、索引色和整数画圆算法,说明这套题依赖的是旧式底层图形知识,而不是今天常见的 LeetCode 式刷题经验。
评论区充满了 90 年代的怀旧感:有人回忆当年会带着装着作品的 floppy disk 去面试,直接要求别做测验,而是看实际代码。还有人用“这真是很久以前”的口吻调侃,甚至把 floppy disk 和今天的软件图标联系起来。另一些人提到自己当年在游戏开发里经常写这种底层代码,后来很多年都不再碰,说明编程实践的重心确实慢慢变了。也有人说 AI 让这种变化比过去任何时期都更陡,而自己在 1997 年的 Microsoft 面试里甚至根本没被问到编程题。
[来源1] [来源2] [来源3] [来源4] [来源5] [来源6]
字符串拷贝题被当成典型的 C 基础题。几个人直接用 `K&R` 里的经典写法来回答,认为只要不是简单调用 `strcpy()`,本质上就是考察循环、指针和终止符。也有人提醒真正的坑在于源地址和目标地址可能重叠,这时就不是 `strcpy` 语义,而要考虑 `memmove`。还有人觉得最好的面试回答不是盲写代码,而是先质疑题目本身:如果场景里不该直接用 C 字符串,那就应该明确说“不”。也有人强调 `strcpy` 至今仍是标准库的一部分,只是现代安全工具更容易检查边界。
[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8] [来源9] [来源10]
图形题的讨论几乎是在补 90 年代 PC 图形环境的课。有人解释所谓“2 bits per color”其实对应 CGA 的 4 色索引色模式,不是现代人熟悉的 RGB 每通道。`pitch` 也被说明为每一行像素起点之间的字节跨度,也就是写图像缓冲区时常见的 stride。还有人提到 Borland Turbo Graphics 这类 DOS 图形包在当年很常见,所以不少图形原语今天看起来冷门,但在当时却是实战知识。
[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8] [来源9] [来源10] [来源11] [来源12]
画圆题是争论最集中的部分。有人先想到用 trig 扫角度,也有人直接想到按 `x` 逐步找最接近圆周的 `y`,但评论里更多人强调 90 年代无 floats 的前提下,整数增量法才像是预期解。讨论里频繁出现中点画圆算法和 Bresenham 式对称性:先算一个八分之一圆,再镜像到其他七个方向,可以避免空洞和重复计算。也有人指出题目其实有点欠明确,如果允许 `draw_line()`、lookup table 或更宽松的预计算,解法会轻松很多。
[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8] [来源9] [来源10] [来源11] [来源12]
更大的分歧在于:这到底是好问题,还是只会考“背答案”的题。支持者认为它能看出候选人如何从朴素解法逐步优化,能不能在陌生约束下继续推进,而不是只会报出一个教科书算法。反对者则担心,能瞬间背出最优解的人未必更强,反而像是记忆型信号;对很多白板任务来说,能把思路讲清楚已经比一次性写对更重要。还有人用今天的 Microsoft 招聘做对照,说现在更多候选人是在刷 LeetCode、写 Python 或 managed C#,和当年的低层 C/图形题已经不是同一套能力模型。
[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7]
CGA: Color Graphics Adapter,早期 PC 图形标准之一,常见于 4 色或有限调色板模式。
pitch: 图像缓冲区中相邻两行起点之间的字节跨度,也叫 stride。
indexed color: 像素值存的是颜色索引而不是直接 RGB,适合低色深图像。
strcpy/memmove: C 里字符串/内存复制的经典 API,对比重点是是否允许内存重叠。
midpoint circle algorithm / Bresenham circle algorithm: 用整数增量和八分对称高效绘制圆的经典栅格化算法。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。