导航:首页 > 程序命令 > 程序员面试编程题开根号

程序员面试编程题开根号

发布时间:2023-03-04 14:13:36

1. 程序员面试问题及答案

程序员面试问题及答案

程序员是从事程序开发、维护的专业人员。我整理的程序员面试问题及答案,希望大家喜欢!

1、两柱香问题

题目:有两柱不均匀的香,每柱香燃烧完需要1个小时,问:怎样用两柱香切出一个15分钟的时间段?这个题的重点就是怎么切。

解答:将甲香的一头点着,将乙香的两头点着,当乙香燃烧完时,说明已经过了半个小时,同时也说明甲香也正好燃烧了一半,此时,将甲香的另一头点着,从此时起到甲香完全烧完,正好15分钟。

2、灯管问题

在房里有三盏灯,房外有三个开关,在房外看不见房内的情况,你只能进门一次,你用什么方法来区分那个开关控制那一盏灯?

解答:打开一盏灯10分钟,关掉,打开第二盏,进去看看哪盏亮,摸摸哪盏热,热的是第一个打开的开关开的,亮的是第二个开关开的',另一个就是第三个。

3、两位盲人问题

他们都各自买了两对黑袜和两对白袜,八对袜了的布质、大小完全相同,而每对袜了都有一张商标纸连着。两位盲人不小心将八对袜了混在一起。 他们每人怎样才能取回黑袜和白袜各两对呢?

答案:每一对分开,一人拿一只,因为袜子不分左右脚的;

4、果冻问题

你有一桶果冻,其中有黄色,绿色,红色三种,闭上眼睛,同时抓取两个果冻。抓取多少个就可以确定你肯定有两个同一颜色的果冻?

答案:2次4个!

5、喝啤酒问题

假如每3个空啤酒瓶可以换一瓶啤酒,某人买了10瓶啤酒,那么他最多可以喝到多少瓶啤酒?

答案:喝完10瓶后用9个空瓶换来3瓶啤酒(喝完后有4个空瓶)喝完这三瓶又可以换到1瓶啤酒(喝完后有2个空瓶),这时他有2个空酒瓶,如果他能向老板先借一个空酒瓶,就凑够了3个空瓶可以换到一瓶啤酒,把这瓶喝完后将空瓶还给老板就可以了。

所以他最多可以喝10+3+1+1=15瓶

6、三人住旅馆

有三个人去住旅馆,住三间房,每一间房$10元,于是他们一共付给老板$30,第二天,老板觉得三间房只需要$25元就够了于是叫小弟退回$5给三位客人,谁知小弟贪心,只退回每人$1,自己偷偷拿了$2,这样一来便等于那三位客人每人各花了九元,于是三个人一共花了$27,再加上小弟独吞了不$2,总共是$29。可是当初他们三个人一共付出$30那么还有$1呢?

答案:他们所消费的27元里已经包括小弟的2元了,再加退还的3元=30元。这种题一定不要乱了阵脚,根据一条思路做:这30元现在的分布是:老板拿25元,伙计拿2元,三人各拿1元,正好!

7、三筐苹果问题

有三筐水果,一筐装的全是苹果,第二筐装的全是橘子,第三筐是橘子与苹果混在一起。筐上的标签都是骗人的,(就是说筐上的标签都是错的)你的任务是拿出其中一筐,从里面只拿一只水果,然后正确写出三筐水果的标签。

答案:从标着“混合”标签的筐里拿一只水果,就可以知道另外两筐装的是什么水果了。

分析:从混合的拿出一个来,如果是苹果,而贴苹果的筐里有可能是橘子和混合,如果是混合,说明贴橘子的筐里是橘子,不成立(因为前提说了,每个标签都是错的)。所以贴苹果的筐里是橘子,则贴橘子的筐里是混合。

8、汽车加油问题

一辆载油500升的汽车从A开往1000公里外的B,已知汽车每公里耗油量为1升,A处有无穷多的油,其他任何地点都没有油,但该车可以在任何地点存放油以备中转,问从A到B最少需要多少油

解答:严格证明该模型最优比较麻烦,但确实可证,大胆猜想是解题关键。题目可归结为求数列an=500/(2n 1) n=0,1,2,3......的和Sn什么时候大于等于1000,解得n>6当n=6时,S6=977.57,所以第一个中转点离起始位置距离为1000-977.57=22.43公里.所以第一次中转之前共耗油22.43*(2*7 1)=336.50升此后每次中转耗油500升,所以总耗油量为7*500 336.50=3836.50升。

9、两个人猜数问题

教授选出两个从2到9的数,把它们的和告诉学生甲,把它们的积告诉学生乙,让他们轮流猜这两个数, 甲说:“我猜不出”, 乙说:“我猜不出”, 甲说:“我猜到了”, 乙说:“我也猜到了”, 问这两个数是多少?

解答:3和4。设两个数为n1,n2,n1> =n2,甲听到的数为n=n1 n2,乙听到的数为m=n1*n2,证明n1=3,n2=4是唯一解。证明:要证以上命题为真,不妨先证n=7

1)必要性:

i) n> 5 是显然的,因为n <4不可能,n=4或者n=5甲都不可能回答不知道

ii) n> 6 因为如果n=6的话,那么甲虽然不知道(不确定2 4还是3 3)但是无论是2,4还是3,3乙都不可能说不知道(m=8或者m=9的话乙说不知道是没有道理的)

iii) n <8 因为如果n> =8的话,就可以将n分解成 n=4 x 和 n=6 (x-2),那么m可以是4x也可以是6(x-2)而4x=6(x-2)的必要条件是x=6即n=10,那样n又可以分解成8 2,所以总之当n> =8时,n至少可以分解成两种不同的合数之和,这样乙说不知道的时候,甲就没有理由马上说知道。以上证明了必要性。

2)充分性

当n=7时,n可以分解成2 5或3 4

显然2 5不符合题意,舍去,容易判断出3 4符合题意,m=12,证毕

于是得到n=7 m=12 n1=3 n2=4是唯一解。

10、猴子吃香蕉问题

一个小猴子边上有100 根香蕉,它要走过50 米才能到家,每次它最多搬50 根香蕉,每走1 米就要吃掉一根,请问它最多能把多少根香蕉搬到家里。

解答:设 小猴从0 走到50, 到A 点时候他可以直接抱香蕉回家了, 可是到A 点时候他至少消耗了3A 的香蕉( 到A, 回0, 到A), 一个限制就是小猴只能抱50 只香蕉, 那么在A 点小猴最多49 只香蕉.100-3A=49, 所以A=17. 这样折腾完到家的时候香蕉剩100-3A-(50-A)=50-2A=16.


;

2. 如何用java编写一元二次方程的求根问题

import java.util.Scanner;

public class 一元二次方程 {

public static void main(String[] args) {

System.out.println("请输入你一元二次方程的a,b,c");

Scanner input=new Scanner(System.in);

int a=input.nextInt();

int b=input.nextInt();

int c=input.nextInt();

double d=b*b-4*a*c;

double e,f;

if (d==0){

System.out.println("这是个完全平方");

e=f=-b/2*a;

System.out.print(e);

}

else if(d<0) {

System.out.println("无效根");

}

else {

System.out.println("这是个不完全平方,需要用求根公式");

double g=Math.sqrt(Math.abs(b));

e=-(b+g)/2*a;

f=-(e);

System.out.println("第一根是"+e);

System.out.println("第二根是"+f);

}

}

}

这是我的运行结果

(2)程序员面试编程题开根号扩展阅读:

利用java编程解决数学上的解方程题,我们需要把方程求解的思路写出来,然后对应到每一步具体的求解步骤上。就比如解一元二次方程,需要我们把解方程的求根公式,判断式写出,最后用代码表示出来就好了。

需要注意的是,java中有特定的包和数学函数去求解数学问题,比如求根号可以用Math.sqrt()函数,求绝对值用Math.abs()函数


3. 3道有意思的逻辑思维面试题

从小到大做了无数道智力题,工作之后接触到程序员逻辑思维面试题,也曾经饶有兴致的研究过。这些智力题,表面上是考智力水平,实际上是考察逻辑思维能力,而从更一般的意义而言,是在考察解决问题的能力。

一个人学习、研究、工作,其实无时无刻不是在训练或使用解决问题的能力。解决问题的能力,在我看来,有很多方面,其中很重要的一方面就是逻辑思维能力。很多人对于逻辑思维的理解是存在误区的,总以为逻辑思维只是理科生和工程师用的东西,与文科生甚至普通人没有什么关系。而实际上, 逻辑思维所涉及的范围远远不止以数学为基础的理工科,而是一种涵盖各种学科、各种工作的通识能力 。

比如说,大学学文科专业的罗振宇,几年前开了一个节目叫“罗辑思维”,强调用逻辑思维来理解世界,节目的内容涉及社会、历史、经济、人文、理工等各方面,俘获了几百万乃至上千万的粉丝。后来罗打造得到APP成为最知名的知识付费应用,就是以罗辑思维这个品牌栏目为底子做的。

最近看了一些大的科技公司(比如谷歌、微软等)等招聘员工的面试题,很有意思,在这里与大家分享,并共同探讨。

这是微软非常知名的一道面试题,曾经难倒无数学霸才子:不是说好的考程序题或者智力题吗,怎么来了一个社会基础建设问题?

为什么是圆的?方的不行吗?圆的究竟优势在哪里?

这就是在考察面试者的逻辑思维了。其实认真思考之后,不难得出“标准答案”:

如果面试者能够这样回答,说明他的逻辑思维不错,或者至少生活经验比较丰富。

那么这是唯一的正确答案吗?没有这么简单。我从一些优秀者的回答中,还发现了其它也很有道理的答案:

如果面试者能够在所谓“标准答案”的基础上,多给出几个原因,那么说明不仅逻辑思维很好,工程思维也非常棒,善于运用生活中的知识。这道题基本上给考官的印象应该是满分了。

但是,关于这道题的讨论并非到此为止。 下水道井盖一定是圆的吗?有没有可能是方的或者其它形状的?

传说有一位面试者,在被问到该问题的时候,坚持说也可以用方的井盖,并给出了合理的理由,最终成功说服了考官。下面是传说的面试过程:

这位面试者不仅逻辑思维和工程经验丰富,说服人的能力也非常强,让考官觉得他是不可多得的人才,被推荐到更需要综合技能的销售部门工作。

其实,像这样的逻辑思维面试题并没有所谓的标准答案,考官的真实目的是 考察面试者的逻辑思维能力 ,更一般的讲,是 解决问题的能力 。下水道盖也可以是方的,只要你能给出合理的理由,自圆其说。

这是Google的一道面试题:

有一栋100层高的大楼,给你两个完全相同的玻璃球。假设从某一层开始,丢下玻璃球会摔碎。那么怎么利用手中的两个球,用什么最优策略知道这个临界的层是第几层?

最笨的办法谁都能想到:

可是这个办法,最坏的情况下要试99次,平均意义上要试49次。而且只用了一个球,另一个球没利用上。显然不是最优的策略。

计算机专业的学生很容易想到更高级的办法——二分法。具体是:

用这种方法,需要log100,也就是大约7次,能够找到答案。

面试者如果能这样回答,说明对计算机专业基本算法是有了解的。但是,仔细想想,这个方法对吗?

这个方法显然是有毛病的。比如说我举一个反例,第10层是临界层的情况。按照二分法来执行,第一次试验第50层将摔碎,第二次试验第25层又将摔碎,此时两个玻璃球都摔碎了,将没有办法继续进行试验!

注意最多有两个球,也就是最多可以摔碎两次。尽管上述二分法不可行,我们是否可以借鉴其思路,先大致确定一个小的范围,然后逐个试验呢?根据这样的思路,可以提出下面的方法:

这种方法最坏的情况出现在临界层为100时,将需要试验10+10=20次;最好的情况出现在临界层为2时,只需要试验2次。而平均意义上大约需要试验10次。怎么样,是不是有效的利用了两个球呢?

按照吴军老师的说法,这种解题方法其实体现了 一种典型的工程思维:粗调和精调 。其中第一个球用于粗调,确定一个大致的范围;第二个球用于精调,在大致的范围内确定精确的值。

其实,粗调和精调的工程思维在生活和工程中都很常见:

从这几个例子,我们可以对粗调和精调的优点及注意事项进行简单的总结:

了解了粗调和精调的概念之后,我们回过头来,再次考察这道玻璃球题目。如果有3个玻璃球呢,是否有更好的方法?

当然是有的,标准的答案是采取三步试验:

细心的读者会发现,这三步试验分别把答案的可能范围缩小了4、4、5倍,最终确定了答案。

为什么是这几个数呢?而且,回过头来想想,为什么两个小球的情况下,两步试验缩小的范围分别是10、10呢?

这几个数的选择,当然绝非巧合。实际上,2个和3个玻璃球的情况下,缩小倍数分别是按照根号下100(也就是10)、3次根号下100(大约是5)来选择的。 推广到n个玻璃球的情况下,每步试验的范围缩小倍数应该是n次根号下100。 具体证明,我们在这里不做讨论。

这绝不仅仅是一个小小的逻辑题, 考官想考察的是面试者的逻辑思维,包括工程思想、分析能力以及举一反三的归纳概括能力 。知道标准答案不算什么,吃透这道题并弄清背后的深刻原理,才是本事。

这道题相对前两道来说要简单一些。据说Google过去面试产品经理的时候会问到这个问题。什么数据都不给,直接就这么问。

有些中国面试者可能不乐意了:你又不告诉我高尔夫球多大,也不告诉我这个房间的尺寸,什么数据都没有,我怎么算啊?

但是这个题没错,考官考察的就是不给数据你怎么计算!要不然小学生都能算出来了。

有些人一看没给数据,可能就会胡猜:一间普通办公室,又不是很大,高尔夫球直径大概几厘米,直观感觉应该能装几千个或者几万个吧?

然而答案恰恰违反我们的直觉:至少能装几十万个,甚至能装上百万个。

我们来算算:

一个房间竟然能装这么多高尔夫球?是不是大的出乎我们的意料呢?

有人可能会怀疑,这道题如此简单,小学生都能做,侮辱人智商吗?然而这道题实际考察的,是我们解决问题的方式。Google对产品经理的要求是:

有的面试者在没给数据的情况下可能会根据直觉乱猜,这是做事的大忌,因为很多东西其实是反直觉的,乱猜可能导致完全错误的结论,这是很危险的。最准确的做法是拿工具量一下会议室的长宽高以及高尔夫球的直径,然后进行计算。不过,在没有准确数据的情况下,合理的估算也是可行的,甚至也是必要的,估算能够帮助我们大致知道答案的范围,这在很多情况下已经足够支持决策!

4. 谁有JAVA程序员面试的程序题啊

一、 选择题:(每题1分,共30分)
1. Which statement about the garbage collection mechanism are true? (B)
A.Garbage collection require additional program code in cases where multiple threads are running.
B.The programmer can indicate that a reference through a local variable is no longer of interest.
C.The programmer has a mechanism that explicit and immediately frees the memory used by Java objects.
D.The garbage collection mechanism can free the memory used by Java Object at expectable time.
E.The garbage collection system never reclaims memory from objects while are still accessible to running user threads.
2. Give the following method: D
1)public void method( ){
2) String a,b;
3) a=new String(“hello world”);
4) b=new String(“game over”);
5) System.out.println(a+b+”ok”);
6) a=null;
7) a=b;
8)System.out.println(a);
9) }
In the absence of compiler optimization, which is the earliest point the object a referred is definitely hand to be garbage collection. ()
A. before line 3 B.before line 5 C. before line 6 D.before line 7 E. Before line 9
3. Give the following code:
public class Example{
public static void main(String args[] ){
int l=0;
do{
System.out.println(“Doing it for l is:”+l);
}while(l>0)
System.out.println(“Finish”);
}
}
Which well be output: D
A. Doing it for l is 3 B. Doing it for l is 1C Doing it for l is 2
D. Doing it for l is 0 E. Doing it for l is –1F. Finish
4. 以下(C)是JAVA的保留字。(选择一项)
A.Java B.Hello C.class D.Class
5. 下面程序运行之后,变量x的值是(B). (选择一项)
......
//swap方法的声明
public static void swap(int a,int b){
int t=a;
a=b;
b=t;
}
//main方法
public static void main(String args[]){
int x=2;
int y=3;
swap(x,y);
}
A、2 B、3 C、4 D、6
6. 下面变量var的作用域范围是(D)。(选择一项)
1. //....
2. int x;
3. switch(x){
4. case 0:
5. {
6. int var;
7. //process
8. }
9. break;
10. case 1:
11. {
12. int var1;
13. //process
14. }
15. break;
16. }
A、1和16行之间 B、4和8行之间 C、6和8行之间 D、6和14行之间
7. 以下的类(接口)定义中正确的是(A)。(选择一项)
A.
public class a {
private int x;
public getX(){
return x;
}
}
B.
public abstract class a {
private int x;
public abstract int getX();
public int aMethod(){
return 0;
}
}
C.
public class a {
private int x;
public abstract int getX();
}
D.
public interface interfaceA{
private int x;
public int getX(){
return x;
}
}
8. 已知A类被打包在packageA , B类被打包在packageB ,且B类被声明为public ,且有一个成员变量x被声明为protected控制方式 。C类也位于packageA包,且继承了B类 。则以下说话正确的是(C)(选择一项)
A. A类的实例不能访问到B类的实例
B. A类的实例能够访问到B类一个实例的x成员
C. C类的实例可以访问到B类一个实例的x成员
D. C类的实例不能访问到B类的实例
9. 编译并运行下面的Java代码段:
char c='a';
switch (c) {
case 'a':
System.out.println("a");
default:
System.out.println("default");
}

输出结果是(B)。(选择一项)
A.代码无法编译,因为switch语句没有一个合法的表达式
B.a Default
C.a
D.default
10. 在Java中,关于final关键字的说法正确的是(AC)。(选择两项)
A.如果修饰变量,则一旦赋了值,就等同一个常量
B.如果修饰类,则该类只能被一个子类继承
C.如果修饰方法,则该方法不能在子类中被覆盖
D.如果修饰方法,则该方法所在的类不能被继承
11. 在Java中,要想使只有定义该类所在的包内的类可以访问该类,应该用(A)关键字。(选择一项)
A.不需要任何关键字
B.private
C.final
D.protected
12. 在Java中,下面关于包的陈述中正确的是(AD)。(选择两项)
A.包的声明必须是源文件的第一句代码
B.包的声明必须紧跟在import语句的后面
C.只有公共类才能放在包中
D.可以将多个源文件中的类放在同一个包中
13. public static void main方法的参数描述是:AB(请选择2个正确答案)
A.String args[]
B.String[] args
C.Strings args[]z
D.String args
14. 编译并运行下面的Java程序:B
class A{
int var1=1;
int var2;
public static void main(String[] args){
int var3=3;
A a=new A();
System.out.println(a.var1+a.var2+var3);
}
}
将产生()结果。(选择一项)
A.0
B.4
C.3
D.代码无法编译,因为var2根本没有被初始化
15. 编译,运行下列代码后的结果是:D(选择一项)
public class Test {
public static void main (String args []) {
int age;
age = age + 1;
System.out.println("The age is " + age);
}
}
A.编译,运行后没有输出
B.编译,运行后输出:The age is 1
C.能通过编译,但运行时产生错误
D.不能通过编译
16. 下列哪些表达式返回true:AB(请选择2个正确答案 )
A."john" == "john"
B."john".equals("john")
C."john" = "john"
D."john".equals(new Button("john"))
17. Give the code fragment:B
1)switch(x){
2) case 1: System.out.println(“Test 1”);break;
3) case 2:
4) case 3: System.out.println(“Test 2”);break;
5) default: System.out.println(“end”);
6) }
which value of x would cause “Test 2” to the output:
A. 1B. 2C. 3D. default
18. Given the following class definition: A
class A{
protected int i;
A(int i){
this.i=i;
}
}
which of the following would be a valid inner class for this class?
Select all valid answers:
A. class B{
}
B.class B extends A{
}
C.class B extends A{
B(){System.out.println(“i=”+i);}
}
D.class B{
class A{}
}
E.class A{}
19. The following code is entire contents of a file called Example.java,causes precisely one error ring compilation: D
1) class SubClass extends BaseClass{
2) }
3) class BaseClass(){
4) String str;
5) public BaseClass(){
6) System.out.println(“ok”);}
7) public BaseClass(String s){
str=s;}
9) }
10) public class Example{
11) public void method(){
12) SubClass s=new SubClass(“hello”);
13) BaseClass b=new BaseClass(“world”);
14) }
15) }

Which line would be cause the error?
A. 9 B. 10 C. 11 D.12
20. Float s=new Float(0.9F);
Float t=new Float(0.9F);
Double u=new Double(0.9);
Which expression’s result is true? B
A. s= =t B. s.equals(t) C. s= =u D. t.equals(u)
21. What happens when you try to compile and run the following program? A
class Mystery{
String s;
public static void main(String[] args){
Mystery m=new Mystery();
m.go();
}
void Mystery(){
s=”constructor”;
}
void go(){
System.out.println(s);
}
}
A.this code will not compile
B.this code compile but throws an exception at runtime
C.this code runs but nothing appears in the standard output
D.this code runs and “constructor” in the standard output
E.this code runs and writes ”null” in the standard output
22. Give the following class: B
public class Example{
String str=new String(“good”);
char ch[]={‘a’,’b’,’c’};
public static void main(String args[]){
Example ex=new Example();
ex.change(ex.str,ex.ch);
System.out.println(ex.str+”and”+ex.ch[0] +ex.ch[1] +ex.ch[2]);
}
public void change(String str,char ch[]){
str=”test ok”;ch[0]=’g’;
}
}
Which is the output:
A. good and abc B. good and gbc C. test ok and abc D. test ok and gbc
23. Which correctly create a two dimensional array of integers? CD
A.int a[][] = new int[][];
B.int a[10][10] = new int[][];
C.int a[][] = new int[10][10];
D.int [][]a = new int[10][10];
E.int []a[] = new int[10][10];
24. Examine the following code which includes an inner class: B
public final class Test4 implements A{
class Inner{
void test(){
if (Test4.this.flag);{
sample();
}
}
private boolean flag=false;
}
public void sample(){
System.out.println(“Sample”);
}
public Test4(){
(new Inner()).test();
}
public static void main(String args[]){
new Test4();
}
}
What is the result:
A.Print out “Sample”
B.Program proces no output but terminates correctly.
C. Program does not terminate.
E.The program will not compile
25. Which statement is true about an inner class? D
A.It must be anonymous
B.It can not implement an interface
C.It is only accessible in the enclosing class
D.It can access any final variables in any enclosing scope
26. public class Test{ A
public int aMethod(){
static int i=0;
i++;
return i;
}
public static void main(String args[]){
Test test = new Test();
test.aMethod();
int j=test.aMethod();
System.out.println(j);
}
}

What is the result?
A.Compilation will fail
B.Compilation will succeed and the program will print”0”.
C.Compilation will succeed and the program will print”1”.
D.Compilation will succeed and the program will print”2”
27. class Super{ D
public int i=0;

public Super(String text){
i=1;}
}

public class Sub extends Super{
public Sub(String text){
i=2;
}
public static void main(String ag[]){
Sub sub=new Sub(“Hello”);
System.out.println(sub.i);
}
}

What is the result?
A.Compilation will fail
B.Compilation will succeed and the program will print”0”.
C.Compilation will succeed and the program will print”1”
D.Compilation will succeed and the program will print”2”
28. Given A
Package foo;

public class Outer{
public static class Inner{
}
}
Which statement is true?
A.An instance of the Inner class can be constructed with “new Outer.Inner():
B.An instance of the Inner class cannot be constructed outside of package foo;
C.An instance of the Inner class can only be constructed from within the Outer class.
D.From within the package bar, an instance of the Inner class can be constructed with “new Inner()”
29. What is the result? E
public class Test{
static String s=”Hello”;
public static void main(String args[]){
Test t=new Test();
t.methodA(s);
System.out.println(s);
}
void methodA(String s){
s+=”World”;
}
}
A.print “Hello”
B.print “World”
C.print “Hello World”
D.It does not compile
30. what is the result? C
public class Test{
public static void main(String args[]){
String s=new String(”true”);
Boolean b=new Boolean(true);
If(s.equals(b))
{ System.out.println(“hello”);}
}
}
A.print “hello”
B.compile error at line 6
C.compile succeed but print nothing
D.compile succeed but throw exception at runtime

1、 B
2、 D
3、 D
4、 C
5、 B
6、 D
7、 A
8、 C
9、 B
10、 AC
11、 A
12、 AD
13、 AB
14、 B
15、 D
16、 AB
17、 B
18、 A
19、 D
20、 B
21、 A
22、 B
23、 CD
24、 B
25、 D
26、 A
27、 D
28、 A
29、 E
30、 C

补充一下:真正的面试时的笔试题,很少是选择题的,大多都是些问答题或者直接让你写程序的。如有你需要正规大公司的面试题,我这有一些word文档,可以给你发邮件。

5. 程序员人品面试题及答案,HR必备!

在我们招聘技术的时候,如果只是一个面试官面试,通常会遇到,面试管徇私舞弊,类似狗眼看人低,或者遇到高手心存嫉妒不愿招聘此人的情况,从而剔除掉面试的人才,无法有效招聘到公司所需的人。

如何避免面试人员的徇私舞弊,就至关重要,我们统长可以通过加试的流程,或者加面的流程来规避这种事情,通常情况下,我们也可以通过笔试+面试+面试2的流程进行,这样的环节越多,面试官徇私舞弊的问题就越少,对于重要的岗位我们依然要综合考虑清晰,不能让人品差的人混入。

1.排挤或者拉帮结派,在公司内部制造不和睦的情景。

2.影响公司的正常运营,还可能存在贪污腐败像闲。

3.可以吃回扣的岗位,尤其是采购会给公司造成重大的损失。

对此我总结和个人的经验,整理如下的10个人品测试题,每小题10分共100分,同样的您可以和技术题混合在一起对求职者进行这样的笔试。

如果A是您的直属领导,当遇到了紧急情况,且你正在忙手头要紧事,需要你的协助或者帮助时你会怎么做?( )

A.尽力而为 B.手上工作忙,会建议找别人 C.我没有必要帮助他人 D.放下手头要紧的事,去协助领导

答案:B

解析:作为领导,和下属都属于公司员工,没有谁更加需要帮助,只有自己的工作职责,和同事之间的互帮互助行为,二遇到这种事,应是优先做好的自己的事,再去帮助他人,选A的人是属于,阿谀奉承拍马屁的类型,选C的人是极度理性,且规规矩矩的人,选D的人是属于,斜度个人工作职责的行为。

如果A是您的直属领导,他今天搬家,告诉你去他家里帮忙,他这种行为属于?( )

A.徇私舞弊 B.私事公办 C.小气 D.欺负员工

答案:B

解析:作为领导,搬家时个人私事,不能要求任何的员工帮忙,且给钱也不行,这种行为属于私事公办。

直属的领导,再一次工作失误后,果断甩锅下属,且指责有续,领导的这种行为是否属于正常范畴,遇到这种的事情,领导最好应该怎么做?

简答题:两问,行为和怎么做。

在公共场所,因为琐事辱骂他人或者领导,这种行为属于什么行为,是否违法,能否维权?

简答题:三问,行为、违法和如何维权,主要考的求职者对法律和道德的认知。

当你下班途中,遇到一个摔倒的老人,这附近有很多碰瓷的传闻,且没有摄像头和路人,这时候你会怎么做?

A.默默路过,并报警。 B.先报警,然后扶起老人 C.录视频,且报警,扶起老人 D.回去叫人

答案:C

解析:只有C是最好的处理方式,且能体现出这位求职者的心思缜密。

如果以后你面试新人,遇到一个能力特别强的人,但没有学历,且人说话很冲,工作能力完全过关,你会向领导反应录取他嘛?()

A.不会,没学历 B.可能对我有影响,拒绝录用 C.继续等待其他合适人选 D.和领导与同事商议后录用

答案:D

解析:
选A的人可以看出这不是一个好的员工。公司是一个商业组织,目的是为了盈利,能力强的人往往求之不得,不能因为学历问题剔除。

选B的人可以看出这是一个小气,且人品和眼界都很低的员工,建议直接pass,后续对公司的发展也不好。

选C的人可以看出是个负责任的员工,会选择继续等待更合适的人选。

在你身上发生了一件事,并不是丑闻,也不是坏事,就是一件很平常的事情,这时你会觉得?()

A.自己是焦点 B.不想去上班 C.自己丢人了 D.散布的这个人真可恶 E.平平淡淡

答案:E

解析:有心理疾病的人,才会觉得自己是焦点,才会有负面情绪。

如果你是个技术大牛,且领导要求你必须教导其他人,你会怎么做?()

A.热心是不需要强迫的,会不代表一定要交

B.不听从领导的话

C.要求公司给予,教导他人的费用。

D.接受领导的要求去教人。

答案:C

解析:技术是自己的,属于个人,不属于公司,且教不教不需要强制,强制属于违法行为,懂得不代表义务教导,这属于行为绑架的行为。

领导一直强制你做事,且必须你做,出了事就甩锅给你,你会怎么做?()

A.辞职不干 B.向更高领导举报 C.果断拒绝 D.顶撞领导

答案:B A

解析:有这样爱甩锅的公司领导,也不是什么好公司,在这里工作不是勾心斗角就是你争我夺,故此B和A都是对的。

假如你遇到困难,你不想得到别人的帮助,但是就是有人要帮你,这种行为属于什么行为?()

A.强人所难 B.太过热心 C.不考虑其他人感受 D.不尊重我的主观意图

答案:A B C D

解析:这是多选题,都对,别人不需要那么就应该尊重别人,即使是送黄金,也会有人不需要的时候,不需要而自以为是强迫别人接受,就属于强人所难,不考虑其他人感受,不尊重个人主观意图。

6. 精选程序员面试常问的逻辑题

大家在面试的时候,难免会遇到让人摸不着头脑的逻辑题,这类题目让同学们往往连答案应该回答些什么都摸不清楚,只能和面试官四目相对,非常尴尬。

其实,很多面试的考官,都是从题库随机挑选逻辑题来考验同学们,面试官有时候自己也未必完全摸透这类题目,所以面试的时候不必过于紧张,就算答不出来啊也非常正常。

在我的理解中,这类题目主要还是考大家的思路,至于答案标准与否,其实不是特别重要。

本文总结了面试中我自己面试中遇到的几道非常常见的逻辑题,大家可以作为面试前的突击复习材料。

一群人开舞会,每人头上都戴着一顶帽子。帽子只有黑白两种,黑的至少有一顶。每个人都能看到其它人帽子的颜色,却看不到自己的。主持人先让大家看看别人头上戴的是什么帽子,然后关灯,如果有人认为自己戴的是黑帽子,就打自己一个耳光。第一次关灯,没有声音。于是再开灯,大家再看一遍,关灯时仍然鸦雀无声。一直到第三次关灯,才有劈劈啪啪打耳光的声音响起。问有多少人戴着黑帽子?

三个人

若是两个人,设A、B是黑帽子,第二次关灯就会有人打耳光。原因是A看到B第一次没打耳光,就知道B也一定看到了有带黑帽子的人,可A除了知道B带黑帽子外,其他人都是白帽子,就可推出他自己是带黑帽子的人!同理B也是这么想的,这样第二次熄灯会有两个耳光的声音。

如果是三个人,A,B,C。A第一次没打耳光,因为他看到B,C都是带黑帽子的;而且假设自己带的是白帽子,这样只有BC戴的是黑帽子;按照只有两个人带黑帽子的推论,第二次应该有人打耳光;可第二次却没有...于是他知道B和C一定看到了除BC之外的其他人带了黑帽子,于是他知道BC看到的那个人一定是他,所以第三次有三个人打了自己一个耳光

N个人是黑帽子,就会在第N天,有N个人打自己一个耳光。

一个是两种药片,每种有两个,一个人需要早上吃两种药片各一个,现在这四个药片混在一起了这个人什么方法吃。

把所有的4颗药丸都切开成相等的两半,然后早上和晚上,分别吃掉每颗药丸的一半

一个5L,一个6L的瓶子,要得到3L的水,问什么方法

6-5=1 1L水放在5L那个瓶里面,然后再装6L水,往5L(里面已经有1L)里面倒,这样就会剩下2L水在6L里面,再把2L水放在5L里面,再装一次,不就可以6L那里到处3L水到5L里面,自己就剩下3L了

一共1000瓶酒,其中一瓶有毒。如果一只老鼠喝了有毒的酒,会在一天之后死亡,那么如果给你一天时间,然你判定哪瓶酒有毒,至少需要几只老鼠?

答案是10只。这个需要使用二进制编码来解决,1000瓶酒至少需要10位二进制数来进行编码。然后取十只杯子分别代表这是个二进制数的十个位,分别将1000瓶酒倒入其编码为1的对应的杯子中。取十个老鼠分别喝十个杯子中的酒,一天之后,就可以根据喝哪些杯子的老鼠死掉来确定出有毒的那瓶酒的编码,从而确定哪瓶酒有毒。其根据就是只有有毒酒的编码对应的毒死老鼠的杯子位置。这个题目就是利用了二进制编码的一些特性。

还有一些其他的题目也使用这些特性,比如使用特殊的位运算,一般使用比较多的位运算就是与、或和异或。
这样,就可以对应到现实生活中的一些为题,比如一个类似的问题原本我们想需要用900多台服务器来解决,经过这样分析后就可以使用10台服务器来解决,大大节约了成本。

再比如,国王有10000桶酒,已知一桶酒有毒,喝了之后一定会在23-24小时内死亡(例如0点喝,会在23-第二天0点这个时间段死亡)。现在国王要在48小时后举办一个宴会,需要用罪犯实验,请问最少几个罪犯。(可以混合酒)

如果是常规利用二进制解题的话,那就需要14个犯人,2^14=16384>10000,但是这样一来死亡时间这个条件就用不到,也不是最优解。

应该利用酒死的时间是固定的,一个罪犯像上面那样可以表示成25种状态,三个罪犯就可以表示25 x 25 x25种状态,超过10000了,所以只需要三个罪犯。

有8个小球,其中七个的重量是相同的,有一个较轻。给你一个天平,问秤几次能找出那个较轻的小球,若天平只能秤两次,又该怎么秤

第一次两边各放随机三个,如果平了,则另外一个是轻的,若不平,还有第二次,拿出那三个轻的,在两边随机放一个,就能测出哪个最轻了。

本体图解参考:

https://blog.csdn.net/hinyunsin/article/details/6632062

已知: 每个飞机只有一个油箱,飞机之间可以相互加油(注意是相互,没有单独的加油机),一箱油可供一架飞机绕地球飞半圈

问题:为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?(所有飞机从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间没有飞机场)

分为3架飞机5架次和3架飞机6架次

1. 3架飞机6架次

(上图)ABC 3架同时起飞

(上图)1/8处,C给AB加满油,C返航。此时飞机的油量分别是:A: 3/4, B: 3/4, C: 3/4。此时C分别给A和B加满油,三架飞机当前油量分别是:A: 1, B: 1, C: 1/4。C返回机场。A、B继续向前飞行。

(上图)1/4处,B给A加满油,B返航,A到达1/2处,此时C已经返回机场,三家飞机此时油量分别是:A: 3/4, B: 3/4, C: 0。此时B给A加满油,C加满油,此时三架飞机的油量分别是:A: 1, B: 1/2, C: 1。然后B返回机场,A继续向前飞行。

(上图)当A飞行至半圈位置时,B已经返回机场并且加满了油(假设加油时间为0),此时,B和C沿逆时针方向飞行,三架飞机当前油量分别是:A: 1/2, B: 1, C: 1。A继续向前飞行。

(上图)当A飞行至另外半圈的1/4位置时,三架飞机剩余油量分别是:A: 1/4, B: 3/4, C: 3/4。此时,C给B加满油。此时三架飞机油量分别是:A: 1/4, B: 1, C: 1/2。C返回机场,B和A继续向前飞行。

当A飞行至另外半圈的1/2位置时,C已经返回机场,A和B相遇,此时三架飞机剩余油量分别是:A: 0, B: 3/4, C: 0。B给A加1/4的油,三架飞机剩余油量:A: 1/4, B: 1/2, C: 1。C加满油从机场逆时针飞出,B返回机场,A继续向前飞行。

(上图)当A飞行至另外半圈的3/4位置时,A和C相遇。此时三架飞机的油量分别是:A: 0, B: 1/4, C: 3/4。C给A加1/4的油,此时三架飞机的油量分别是:A: 1/4, B: 1/4, C: 1/2。C掉头返回机场,A和B继续向前飞行。

(上图)三架飞机顺利回到机场!

2. 3飞机5架次

(1)3 架飞机同时从机场出发,飞行八分之一周(A点),各耗油四分之一。此时某架飞机给其余两架补满油,自己返回基地;

(2)另一架飞机和目标机结伴,飞至四分之一周(B点),给目标机补满油,自己返回;

(3)目标机独自飞行半周(C点);

(4)与从基地反向出发的一架飞机相遇,2 机将油平分,飞至最后八分之一处(D点);

(5)与从基地反向出发的另一机相遇,各分四分之一油,返回。

75道程序员面试逻辑题和答案

https://blog.csdn.net/qq_38361726/article/details/79824632

7. 如何看待程序员面试让上机做编程题,这样的公司多吗

从事软件开发多年,上机写代码这种考查模式在国外用的比较多,很多国内的公司也在学习这种方式,这种方式能直接看出写代码的能力,但对上机做编程题目这种事情很多成熟的程序员觉得是一种侮辱,有一些程序员看到有笔试直接就选择走人了,这些东西在面试之前应该有沟通,事情不会变得这么被动,因为对于很多有能力的程序员,能够请到面试已经非常不容易了,能力越强脾气越大。

直接上机做编程测试能力的公司不是很多,从事软件开发十几年主要经历了四家公司,面试的时候主要靠面谈为主,因为编程行业能力的高低通过交谈就能了解差不多,只需要根据简历上写的项目进行细节沟通,如果真的做过几句话就能看出大概的水平,所以很多公司压根不搞什么笔试或者上机写代码的事情,编程这个职业主要靠时间的积累,并且在积累中不断完善自己的知识体系,慢慢提高自己的认知。

一个程序员如何提升自己的能力水平,对于初学者来讲首先是学习好一门编程语言,开始学习阶段觉得编程语言就是天了,好像是学会了编程语言就能做任何的东西了,随着编程语法的学习完毕就开始尝试做一些题目,结果发现距离语法真的非常遥远,所以有很多的初学者有一种感概明明在课堂什么都明白了,结果到真正自己实践的时候什么都想不起来,这是初学者必然的经历,编程本身就是一种不断磨练编程思想的过程,编程语言属于在辅助类基础技能,没有辅助就不会写代码,编程设计思想再牛也不可能实现,两者是相辅相成的作用,编程思想里面包含着仙姑经验的积累。

很多人觉得很奇怪有些公司也不进行面试也不让上机写代码,就是通过不到一个小时的闲聊就能把一个人的水平能力和工资水平给定位下来,通过面试就能检测出编程思想以及编程基础,编程基础类的考察只需要问几个简单的语法问题就能做个大概的检测,编程思想就是完全的编程意识以及编程经验的积累,所以一些企业在招聘的时候明确写着就相关开发经验的人优先,企业招聘的目的就是希望要的人在短时间内能够上岗直接切入到项目开发中去,整体来看是不是需要上机写代码测试完全看每个公司的技术文化了。

有些技术类的公司对于程序员的基本功要求特别严格,有个同事在第一家技术公司的时候,部门技术经理特别关注程序员的基本语法,只要是简单的代码语法错误,就能到部门的黑板通报,开始实施阶段很多人上了黑板,后来随着时间的推移上去的人越来越少了,同事说到自己上了两次黑板都是因为在使用指针的时候没有初始化导致,到今天还是记忆尤新,如果在技术生涯的初期能够经历过这种企业是一个技术人的幸运了,越是严格要求的领导或者公司越是有利于技术人员 的成长,至于在面试的时候要不要上机这个就看每个公司的技术文化了,一般注重代码基础的领导会引领这个事情,希望能帮到你。

这是一个正常的流程,我觉得有时候还是有必要的考验一下面试者的。

以前这种面试实际上是很平常的,但是发展到现在越来越多的人对这样的面试很反感,大概率的原因是因为很多人更多的是在搬代码,并且搬的很成功,而真正注意写代码的人反而越来越少。
笔试和上机编程好不好?
我觉得挺好的,这样可以刷下去很多划水的人,有的人,写代码的能力并不强,但是搬代码的技术一流,随着技术越来越晚上,一些解决各种bug的网站越来越流行,现在更多的毕业生为了高工资,变成了搬代码的人,他们能解决问题吗?能,但是是他们自己的解决的吗?不是,更多的是他们通过搜索的手段,问度娘,问谷歌,渐渐的形成了一个可以解决问题的方案,虽然问题解决了,但是等遇到一个需要创新开发的时候,他们就完了,基本上没有了自我的思维。

笔试和上机可以有效的防止这类人进入公司,实际上也是一种不错的手段。

这样的公司多不多?
据我所致,目前来讲上机编程的公司不是很多,毕竟,每个公司所使用的编程软件不同,有的公司制作的软件也比较具有保密性,没办法直接考程序员的实际能力,只能通过一些算法测试,或者是什么测试,来简单的排除掉那些搬运的人。

所以上机测试的效果并不是特别好,一般的公司都会选择用笔试的方式。

我遇到过不少笔试的,上机的从来没有遇到过。

我一个同事之前换工作的时候倒是遇到过,按他所说,这样的测试并没有什么效果,毕竟测试题出得很浅,太难的问题,基本上短时间内很难解决,也不会有那么长的面试时间。

其实,在我看来,这个上机面试并没有那么大的用途,毕竟测试不到太多的东西,还不如看他自己写过的代码来的更快。至于这样的公司多不多,真没办法说,毕竟没有统计过,根据我的经验,我觉得不会太多。

笔试的我见过,但是上机的没有过。

1.笔试可以有
这么说嘛,其实简单的笔试的话肯定是可以的。因为笔试的话可以让招聘者知道你大概的能力定位在什么位置?一些逻辑编程可以测试你的逻辑能力。尤其是在it这个行业,逻辑能力是非常重要的。

如果说你是一个已经有工作经验的人。其实笔试就没有那么重要了。这时候看中的一般差不多就是你曾经的项目经历。

如果说让你做一些项目上的,比如说项目架构了这种的,你可以拒绝回答。因为我之前就有听到过说招聘产品经理,让他去设计一个产品的。结果这个公司就是通过一直招聘产品经理。然后让产品经理去设计产品相关的功能,最后再把这些所有求职者的产品相关的思维组合到一起。

虽然说这总公司是很少的,但是也不排除是有只通过这种方式来满足产品需要的。

所以解释的时候可以大概的写一个思路代码的流程,但是可以不用全部都写。

2.上机测试
我觉得这个确切的来说是有一点过分的。像这种上机考试的话,肯定他是需要一个比较完整的项目。但是这种项目谁都不知道是他们公司需要,还是让他仅仅是为了做测试。所以像这种事情完全可以直接拒绝。

在这里大概说明一下。 找工作是一个双向的过程 ,如果说是你无法接受这个公司相关的制度,或者说是相关的流程。其实你可以趁早放弃这种公司的,不然的话即使是你笔试面试都过啦,你到公司之后也会因为你自己的价值观跟企业的文化匹配不到一起。迟早还是要辞职的,所以你要慎重考虑。

其实面试的时候笔试和机试都是it的正常流程,但是在国内被玩烂了,面试和机试过程中,会有公司内遇到的问题做为面试内容的,也许是个人也许是公司,让你解决这样那样的问题,这样子的都是垃圾

作为一个老程序员,关于程序员面试的话题,非常有意思,特别有的聊。其实在 IT 界面,有两个不算公开的秘密,也就是两个不成文的习惯或者规定吧,关于面试的。

让老程序员做笔试题是一种侮辱
很多程序员,尤其是有经验的程序员,去面试的时候,尤其是去小公司面试的时候,如果对方给你出了一套笔试题,很多程序员会说: 我转头就走,这是对我经验水平的侮辱 。

你们是不是感觉很吃惊,还有这种道理?确实是,我有一次去一个创业公司面试,对方给我出了一套笔试题,我做完了,面试完回去跟一些同事聊笔试题的事,他们会惊讶的说:你竟然把笔试题做了?你是有经验的程序员,不应该经过笔试的,直接面试就行,笔试是一种侮辱。那是我才发现,好多程序员都这么认为的。

但是,我感觉这是一种病态思维,你既然去面试,其实笔试也是面试的一种,你去大公司比如 BAT 这样的公司的时候,也会有笔试,而且层层面试好几轮,你都能忍,一些小公司给你出笔试题,你竟然受不了?公司用什么方式来面试你,是公司的选择和考量,当然了,面试是一种双向选择,如果你感觉是侮辱,当然可以选择不面了,这是双方面试的权利。

但是,我感觉笔试是一种正常的流程,跟有没有经验没有关系。有经验了,你笔试你确定能过么?

很多程序员都不会选择上机测试
还有一种就是面对上机做题的面试,很多程序员都不喜欢,其实我也不喜欢的,大部分程序员好像遇到上机面试的情况,也是选择扭头就走。

其实,我感觉上机测试是可以接受的,但是是有条件的,那就是上机做题,可以做算法题,这种方式我能接受。

有一次我去面试,他让我上机做题,竟然跟我说用 Android 写个什么功能,什么模块,简直了,这种题怎么做?直接去实现功能模块,写其中的一个点,我都不熟悉需求,也不熟悉功能模块,上来就写,怎么做?没法弄。我直接就走了。

算法题属于比较明确的东西,上机做两道应该是可以接受的。

你问上机做题的这样面试的公司多吗?可以明确地告诉你,不多,我工作这么多年,面试了很多公司,只遇到过两家。

我是负责我们公司技术面试的,机试环节必不可少。题目不会很难主要是考核程序员的感觉,只有有感觉的程序员才能写好大程序,这很关键。

这主要看做什么了,我最头疼的是拿一个构架来靠你函数命令。我都是自己写数学模型和函数。我哪知道这个构架的函数名?

务实啊,说明人要的是能实干的程序猿,没什么奇怪。面试需求很明确,要会干的。找领导才找会说的。刚毕业面试的时候遇见过这种机试,程序猿这行算是工科,靠技术吃饭,面试动手实战是正常的。

支持,不然很多水逼,划水货太多了

这样的公司会存在

基于以下4个原因:

1 面试的人很多,不想花过多的时间去筛选。这样做题,可以快速过滤一些滥竽充数的人

2 通过合理的上机操作,有针对性地找合适的人,匹配的人也能快速完成上机操作

3 标准,对面试者统一对待,以免主观原因造成误判

4 面试者的配合度,一般看到机试,有人就会直接退出。(我遇到这种情况,就会直接走)

以上4个原因,都是较为正式的原因,还有一个主要原因就是能力不行,面试官无法正确筛选简历,面试官无法从面试中获取想要的信息并加以判断。

基于最后一个原因就是我会选择直接走的原因,面试官能力不行,表示公司对此招聘的用功不足,该公司没有能力或没有意愿重视此次招聘。即使入职,收到的待遇不会重视,没有必要把自己的前景压在一个不会重视你成果的公司上。

阅读全文

与程序员面试编程题开根号相关的资料

热点内容
c启动进程Linux 浏览:115
突破前期高点源码 浏览:596
c语言农历算法 浏览:325
32位单片机语言 浏览:979
安卓全服是什么意思 浏览:147
程序员那么可爱陆漓和姜逸城吻戏 浏览:802
android获取窗口大小 浏览:182
程序员为世界带来的贡献 浏览:216
程序员招聘自荐信 浏览:693
魔兽键位设置命令宏 浏览:647
程序员没有目标了 浏览:830
抢答器c程序编程 浏览:705
什么app可以自己玩 浏览:76
刨客app是什么 浏览:965
cad输入命令栏不见了 浏览:834
做故事集可以用什么app 浏览:692
qq邮箱发送压缩包 浏览:672
程序员桌面机器人 浏览:589
xjr快速开发平台源码 浏览:159
java接口runnable 浏览:31