社团技术面试面试题准备

社团技术面试面试题准备

最近加入了我们学校的创维维生素俱乐部,担任后端组的代理组长。马上就要开始招新了,老大让我准备一下面试要的技术方面的题目。

因为过来面试的都是大二大三的学生,专业、基础都不太一样,所以要准备多种类型不同难度的题目,但是都只涉及基础,而且因为这些题目会提前发给他们,在面试前他们是可以在网上搜索答案的。主要还是看面试者的态度,毕竟不管基础怎么样招进来也是一起学习的。

目前准备的主要有一下几个方面的题目:

1. 算法(讲解算法的思想以及流程)

在n个数中获取最大的那个数

private static int maxNum(int[] n){
	int max = Integer.MIN_VALUE;
	for(int m : n){
		if(max < m) max = m;
	}
	return max;
}

写一个程序计算1到n的阶乘

pirvate static int factorial(int n){
	if(n == 0) return 1;
    else if(n < 3) return n;
	return n * factorial(n-1);
}

跳台阶问题:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

private static int JumpFloor(int target) {
    if(target == 1) {
        return 1;
    }else if(target == 2) {
        return 2;
    }else {
        return JumpFloor(target-1)+JumpFloor(target-2);
    }
}

2. 对编程语言的理解

你认为编程语言对开发者来说是什么?

编程语言对于开发者来说就是一个工具,不同的编程语言适用于不同的环境以及不同的需求。

面对对象和面对过程有什么区别?

面向过程是分析解决问题的思路,一步一步的解决具体的问题。面对对象是对事物的抽象,为具体对象赋予行为,抽象、封装、继承和多态…。

好的代码应该有什么样的特征?

易于阅读(变量和函数的命名)、结构清晰、简洁、可拓展性、健壮性、有良好的注释

3. 对开发的基本了解

release和debug的区别?

release是“发行”的意思,Release 版本就是最终交给用户的程序,编译器对它进行优化,以提高执行效率,虽然最终的运行结果仍然是我们期望的,但底层的执行流程可能已经改变了。

编译器还会尽量降低 Release 版本的体积,把没用的数据一律剔除,包括调试信息。

最终,Release 版本是一个非常纯粹、为用户而生的程序。

Debug 是“调试”的意思,Debug 版本就是为调试而生的,编译器在生成 Debug 版本的程序时会加入调试辅助信息,并且很少会进行优化。(答案来自https://www.cnblogs.com/taiyonghai/p/6126074.html)

你知道版本控制工具吗?版本控制工具在开发中起什么样的作用?

git、svn、hg、cvs…

  1. 记录和跟踪项目中各文件内容的修改变化。
  2. 多人协作中方便项目的管理和协同开发。

4. 开放性的问题

你有参加过什么项目吗,比如C++实训或其他的实训以及其他参加比赛的项目,讲一讲你的收获或你遇到的问题。

你有搭建过服务器吗,和我们分享一下你的过程和收获。

5. 面试问题

加入创维维生素俱乐部,你对自己有什么要求吗?

跟着学习、积累项目经验、…


目前想到的就是这么多了,各位大佬有什么意见的可以和我提。
往后应该还会有更多的题目。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值