考出面试者基本功的 10 个简单编程题

本文精选10个编程题,用于考察面试者的编程基础与优化能力,覆盖素数判断、字符串操作、排序算法等方面,适用于评估初级至中级程序员的技术水平。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

昨天在朋友圈感慨了一下被面试的小朋友,会拉控件,会做应用,但是基本功差,还要价高,结果引来了 60多条评论。朋友们大都是感慨行业浮躁、人傻钱多,也有朋友问到,什么样的编程题能考察程序员的基本功呢?本文就奉上 10个笔者常用来考察面试者的编程题。

由于我们不是大公司,也不是搞算法研究,所以一般不会特意出一些算法题来为难面试者,但是由于要从事编程开发工作,基本的编程素养绝对是要的,否则这样的面试者不会有太大的成长空间,面对比较棘手的工作也解决不好。

一、给一个数 N,判定这个数是否是素数。

1、先让面试者说素数的定义,如果不知道可以提示素数的定义

2、最差的面试者,会没有思路,这是很可怕的,大学第一学期学完,应该学会这个题

3、一般的面试者,能比较费劲地写出正确的程序,但是可能存在边界、标记等问题。

4、写出程序出来,可以进一步问,优化的空间,在哪里,所谓优化,无非就是时间和空间复杂度。

5、只有少数的面试者,能进行几轮优化

6、有训练的面试者可能知道一些特定的高效方法

二、给一个数 N,把 2 到 N 之间的素数输出出来

1、这个题比上面这个难度加大了一层

2、可以限定,不让其使用子函数,增加逻辑上的复杂度

3、其他的,同样一层层考优化的方法

三、写出三角状的 9*9 乘法表

1、这个题目面向基础比较差的面试者

2、最差的面试者,也会说没有思路,在学校会写,现在忘记了

3、比较一般的能写出来,更进行一步的,可以让其用几种循环来写,写倒三角

4、如果都没有问题,循环思维逻辑值得肯定

四、用递归编写求和或者求阶乘的函数

1、可以先让其不用递归写一遍

2、再让其递归实现

3、最差的面试者同样无法下手

4、接下来可以探讨递归的一些优劣之处,在哪些常见算法中用到了递归

5、也可以问问1024的阶乘有多少个零这种的问题。

五、将字符串反转,比如 “abcdefg” 转化为 “gfedcba”

1、如果面试者使用 C 语言效果最佳

2、可以进一步考察这种形式的反转算法, www.ucai.cn => cn.ucai.www

六、求出 IPV4 IP地址所对应的整数,比如 192.168.199.1 对应整数

3194598946

1、可以先让其求字符串所对应的整数这个简单算法

2、如果面试者使用 C 语言效果最佳

七、使用最高效的算法,将一堆100以内的数排序,不能使用排序的库函数

1、不允许使用现成的各种排序算法

2、要求一遍遍历完成即实现排序

3、也可以问:如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1)

八、有上千万个1000万以内的数据,请排除掉重复的数

1、可以转化为找出重复的数

2、要求空间最省

3、要求一次遍历完成整个查找

4、延伸:如果用 Shell 命令实现怎么办?

九、如果从1000万行左右的文件中,随机地取出 10万行左右的样本数据

1、要求一遍文件扫描完成数据获取

2、空间最省,将结果输出在另外一个文件中

3、可以要求写出完整程序,包括 fopen 的使用等

十、字符串库函数的相关实现思路

1、检测一个字符串是否包含在另一个字符串中

2、实现 trim 函数、strlen 函数

3、复杂一些的:求出给定字符串中最长的回文字符的长度以及把它们给输出来。

以上 10个编程题,随便选出一个或者几个题,请面试者来现场编写程序,然后在点评程序的过程中,步步延展,可以相对准确地看出这个人的基本编程素养,建议所有的程序员面试,都应该有这个环节,否则的话,你招来的可能是一个花架子。而面试者也可以使用这些题目评估一下自己的能力,是否在面对的时候,真正做到胸有成竹。如果你无从下手,这就意味着你该通过一些手段来加强训练了。优才网一直强调的是,正像技术支撑起一个产品的高度的,你的基本功,也支撑起你职业的高度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值