PHP程序员面试题经典及答案
PHP程序员面试题经典及答案(精选12篇)
PHP程序员面试题经典及答案 第1篇
精选php面试题及答案
一、基础题
1. 写出如下程序的输出结果
$str2 = false;
echo $str1==$str2 ? 相等 : 不相等;
$str3 = ;
$str4 = 0;
echo $str3==$str4 ? 相等 : 不相等;
$str5 = 0;
$str6 = 0;
echo $str5===$str6 ? 相等 : 不相等;?>
2. 写出如下程序的输出结果
$a2 = false;
$a3 = 0;
$a4 = ;
$a5 = 0;
$a6 = null;
$a7 = array;
$a8 = array(array());
echo empty($a1) ? true : false;
echo empty($a2) ? true : false;
echo empty($a3) ? true : false;
echo empty($a4) ? true : false;
echo empty($a5) ? true : false;
echo empty($a6) ? true : false;
echo empty($a7) ? true : false;
echo empty($a8) ? true : false;?>
3. 写出如下程序的输出结果
$abc = & $test;
unset($test);
echo $abc;?>
4. 写出如下程序的输出结果
function get_count(){
static $count = 0;
return $count++;
}
echo $count;
++$count;
echo get_count();
echo get_count();?>
5. 写出如下程序的输出结果
$var2 = 1;
function get_value(){
global $var2;
$var1 = 0;
return $var2++;
}
get_value();
echo $var1;
echo $var2;?>
6. 写出如下程序的输出结果
unset($arr[0]);
}
$arr1 = array(1, 2);
$arr2 = array(1, 2);
get_arr(&$arr1);
get_arr($arr2);
echo count($arr1);
echo count($arr2);?>
7. 使用五种以上方式获取一个文件的扩展名
要求:dir/upload.image.jpg,找出 .jpg 或者 jpg ,
必须使用PHP自带的处理函数进行处理,方法不能明显重复,可以封装成函数,比如 get_ext1($file_name), get_ext2($file_name)
二、算法题
1. 使用PHP描述冒泡排序和快速排序算法,对象可以是一个数组
2. 使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组
3. 写一个二维数组排序算法函数,能够具有通用性,可以调用php内置函数【答案】
(以下答案不一定是最好的,只是一个简单的参考)
1.常用php面试题及答案
2.php常用面试题及答案
3.PHP面试题汇总
4.优秀php高级工程师面试题及答案
5.百度PHP面试题
6.百度php面试题目
7.腾讯php面试题
8.提问得最多的PHP面试题
9.基础php面试题
10.百度php面试题
PHP程序员面试题经典及答案 第2篇
PHP工程师面试题
1、请写一个实现中文字串截取无乱码的方法。(超出部分用’…..’替换)。
2、ThinkPHP框架中,下列定义有什么不同?
$userModel = M(“User”);
$userMode l= D(“User”);
3、如果让你模拟登陆微信公众平台并设置微信的开发模式中的URL和Token,你会如何去做?(思路或代码皆可)。
4、谈谈对你对PHP的认识或你擅长的技术。
5、假设有一个博客系统,数据库存储采用mysql,用户数量为1000万,预计文章总数为10亿,每天有至少10万的更新量,每天访问量为5000万,对数据库的读写操作的比例超过10:1,你如何设计该系统,以确保其系统高效,稳定的运行?
提示:可以从数据库设计,系统框架,及网络架构方面进行描述,可以自由发挥。
6、你经常去那些网站?有没有自己的博客或git 开源项目。
PHP程序员面试题 第3篇
一、选择题
1、下列不属于PHP的开始结束标记的是:()
A、
B、?>
C、<%%>
D、<>
2、下列程序的输出结果为()
function test($a){
$a=’456’;
}
$a=’123’;
test($a);
echo $a++;
?>
A、456
B、123
C、124
D、会报错
4、下列代码的输出结果为()
function test($i)
{
return++$i+5;
}
echo test(1);
?>
A、6
B、7
C、8
D、空
5、下列代码的输出结果为()
$a=’123’;
$b=&$a;
$a=’789’;
$b=’456’;
echo $a;
?>
A、123
B、456
C、789
D、空
二、简答题:
1、试写一个PHP脚本对数组进行排序,要求将数字数组中所有奇数放在左边,0放在中间,偶数放在右
边。如数组:array(23, 94, 0, 2, 56, 10, 77, 231, 75, 48)
2、表uesr,有如下几个字段:id,username,userpwd,regtime。
(1)、试写出查询该表所有记录的sql语句
(2)、要将id为5的记录中,username字段的值更新为“小王”,请写出sql语句
(3)、要删除id为10的记录,请写出sql语句
(4)、现在要新增一条记录。username的值为:小李;userpwd的值为:123456;regtime的值为:2012-09-01。请写出sql语句
3、试写一个PHP函数遍历一个文件夹【注:只需输出该目录的文件和子目录,无须对子目录再进行遍历】
4、请根据你的理解设计一个站内信系统的数据库,并简要说明字段意义和脚本实现细节
5、请使用PHP写一个文件上传脚本,要求只能上传gif/jpeg图像,并且图像大小不能超过1024KB。
三、附加题
趣果科技PHP程序员转正面试题 第4篇
1.echo count(“abc”);输出什么?
2.用PHP写出显示客户端IP与服务器IP的代码
3.error_reporting(2047)什么作用?
4.echo,print()和print_r()有什么区别?
5.打开php.ini中的Safe_mode,会影响哪些函数?
6.请写一个函数验证电子邮件的格式是否正确(要求使用正则)
7.MySQL数据库,一天一万条以上的增量,怎么优化?
8.写出一种排序算法(要写出代码),并说出优化它的方法。
假设我们需要做一个用户金币系统。用户每天第一次登录可以获得1个金币,用户下单购买东西后会获得20个金币。但是这两种金币有不同的性质。对于登录获得的金币(简记为类型A),用户获得之后就可以消费——例如可以用金币买东西。对于下单购买获得的金币(简记为类型B),有一个月的冻结期。在冻结期内类型B的金币不能被消费,如果冻结期内用户发生了退货,则这些类型B的金币会被回收,将来也不让给用户消费。
请设计一个系统(数据库结构和逻辑流程),满足以下要求:
1、用户可以正确的获得上述类型金币
2、用户随时可以知道自己有多少金币可以消费,有多少金币被冻结
3、被冻结的金币在冻结期后成为可以消费的金币
4、用户可以消费自己的可用的金币
PHP面试题与答案 第5篇
2. 抓取远程图片到本地,你会用什么函数?
4. 你觉得在pV10W的时候, 同等配置下,LUNIX 比WIN快多少?
5. 简述pOST 和GET传输的最大容量分别是多少?
6. 用最少的代码写一个求3值最大值的函数.
以下是部分答案(不保证是正确的解)
1. 不能
2 fsockopen
4 (不做优化的情况下一样)
5 2MB,1024B
6 function($a,$b,$c){
return $a>$b? ($a>$c? $a : $c) : ($b>$c? $b : $c );
}
―――――――――――――――――――――――――――C
大公司的pHp面试题
2. 求两个日期的差数,例如-2-5 ~ 2007-3-6 的日期差数
$begin=strtotime(2007-2-5′);
$end=strtotime(2007-3-6′);
echo ($end-$begin)/(24*3600);
3. 请写一个函数,实现以下功能:
字符串“open_door” 转换成 “OpenDoor”、”make_by_id” 转换成 ”MakeById”。
function str_change($str) {
$str = str_replace ( “_”, ” “, $str );
$str = ucwords ( $str );
$str = str_replace ( ” “, “”, $str );
return $str; }
4. 要求写一段程序,实现以下数组$arr1转换成数组$arr2:
$arr1 = array (
0′ => array (fid’ => 1, tid’ => 1, name’ =>’Name1′ ),
1′ => array (fid’ => 1, tid’ => 2 , name’ =>’Name2′ ),
2′ => array (fid’ => 1, tid’ => 5 , name’ =>’Name3′ ),
3′ => array (fid’ => 1, tid’ => 7 , name’ =>’Name4′ ),
4′ => array (fid’ => 3, tid’ => 9, name’ =>’Name5′ )
);
$arr2 = array (
0′ => array (
0′ => array ( tid’ => 1, name’ => Name1′),
1′ => array ( tid’ => 2, name’ => Name2′),
2′ => array ( tid’ => 5, name’ => Name3′),
java程序员面试题及答案 第6篇
表a和表b具有完全相同的结构,主键为indexid。写出一个sql语句把表b中不存在而表a中存在的数据插入到表b中。
2、javascript部分
页面中有一个名称都为unitprice的type=text对象。要求输入的数据不能为空,写一个函数实现该功能,如果为空时给出提示。
3、JSP部分
①session中存储一个String变量,变量名称为studentname,写出在jsp中如何得到这个session变量的值的语句。
②在jsp中引用使用来引用javabean.
Ⅰscope的值有哪些,这些值的区别是什么?
Ⅱ不同的jsp页面中引用javabean时,id能否相同,如果能相同,对scope的值有什么要求?
4、JAVA部分
①输入一个维数,输出以下形式的矩阵和数列,以维数n=4为例:
0000
0111
0122
0123
②写出下面这段程序的运行结果
int a=2,b=3,c=1
a+=Cb+c;
c-=b+a++;
System.out.println(“a=”+a+”,b=”+b+”,c=”+c);
5、有一个Vector对象,其中每一个元素都是一个String对象,请用for循环或while循环输出Vector中的元素,要求格式为:”第i个元素为:aaa”
6、有一个HashMap其中key为String对象,value为Integer对象,写一个方法打印出此Map中的所有键值 对形如 keyCvalue
7、有一个String str=”001,A001;002,A002;003,A003″的串,写一个方法,把此串存入列 一个HashMap或Hashtable中,说明:如001为key,A001则为value。
8、面向对象概念:
①面向对象基本特征
②什么叫多态和重载,它们有什么区别?
③用你自己的话描述你理解的j2ee的本质特征是什么?
第一题: 写一个方法,实现删除链表中某个节点的操作(其他条件自己假设,补充)
public void
{
if(front>=rear)
{
s[front] =0;
frontC;
System.out.println(“ successful”);
}
else
{
System.out.println(“the link is empty ,can’t ”);
}
}
第二题: 写一个方法,实现堆栈的入栈操作 (其他条件自己假设,补充)
public class stack{
private int[] s;
int top,bottom;
public stack(int size){
s = new int[size];
top = size-1;
bottom = size-1;
System.out.println(“Size of the stack is:”+size);
}
public boolean isEmpty()
{
if(top==s.length-1)
return true;
else
return false;
}
public void push(int n)
{
if(top<0)
{
System.out.println(“The stack is full now,you can’t push your data!”);
return;
}
else
{
s[top] = n;
topC;
return ;
}
}
public void pop()
{
if(top>=s.length-1)
{
System.out.println(“The stack is empty,Can’t pop now!”);
return;
}
else
{
top++;
}
}
public void print()
{
System.out.println(“State of the stack:”);
for(int i=s.length-1;i>top;iC)
{
System.out.print(s[i]+” ”);
}
}
public static void main(String[] a)
{
stack st = new stack(5);
System.out.println(“List of the action to the stack:”);
System.out.println(“push(3):”);
st.push(3);
st.print();
System.out.println(” ”);
System.out.println(“push(6)”);
st.push(6);
st.print();
System.out.println(” ”);
System.out.println(“push(10)”);
st.push(10);
st.print();
System.out.println(” ”);
System.out.println(“pop()”);
st.pop();
st.print();
System.out.println(” ”);
}
}
第三题: 使用任意排序算法,写一个排序示例程序
import java.io.*;
class SelectionSort{
public static void main(String[] args){
int[] a={4,54,8,7,6,98,42,};
sort(a);
for(int i=0;i
System.out.print(a[i]+” “);
}
System.out.println(“”);
}
static void sort(int[] data){
int next, indexOfNext=0,n;
for (next=0;next
{
indexOfNext=min(data,next,(data.length)-1);
swap(data,indexOfNext,next);
}
}
static int min(int[] data,int start,int end){
int indexOfMin=start;
for (int i=start+1;i<=end;i++)
if(data[i]
indexOfMin=i;
return indexOfMin;
}
static void swap(int[] data,int first,int second){
int temp;
temp=data[first];
data[first]=data[second];
data[second]=temp;
}
}
第四题:
编写一个servlet,把servlet源码和此servlet在服务器上的配置文件web.xml作为附件发送到指定的邮箱
servlet的功能要求:记录访问该servlet的客户端的ip和访问时间,把记录写入client_ip.log文件。 client_ip.log里的格式大致如下:
9:36 -4-8 192.168.0.1
9:36 2005-4-8 127.0.0.1
获取客户的IP地址
第五题
数据库中有两个表tableA和tableB,他们都有一个int型的字段id,请写出一个sql语句,实现查询id在tableA中有,而tableB中没有的记录
例如tableA中有如下记录
―――――――――-
tableA.id tableA.name
3 Mary
4 Jack
5 Lily
―――――――――-
tableB.id
3
5
查询的结果应该是
―――――――――-
tableA.id tableA.name
4 Jack
select *
from tableA
where not exists
(select *
from tableB
where tableA.id=tableB.id)
第六题 简述jsp和servlet的联系
Java Servlet是JSP技术的基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。现在许多Web服务器都支持Servlet,即使不直接支持Servlet的Web服务器,也可以通过附件的应用服务器和模块来支持Servlet,这得益于Java的跨平台特性。另外,由于Servlet内部以线程方式提供提供服务,不必对于每个请求都启动一个进程,并且利用多线程机制可以同时为多个请求服务,因此Servlet的效率非常高。
第七题 什么是sql注入漏洞,采用什么方法来堵住sql注入漏洞
随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入
第八题:简述你对xml的认识,举例说明xml能干什么,应该怎么做
XML是Extensible Markup Language的缩写,意思是可扩展置标语言没有于置标电子文档,使起数据具有结构化的置标语言。在我目前浅显的认识里:,
XML 是用来传递数据的 ,
XML 让这些数据有了结构 ― 一个树型结构 ,
xml 有全套的操作这种结构的方法
xml 规范(或者说的实际点,xml parser)帮你确定你创建的字符串是合法的
xml 规范(或者说的实际点,xml parser)中有办法验证这个合法性
对于XML能用来做什么,我觉得XML可以用来下面几个方面
1:有利于开发灵活的web应用软件
使用XML来描述数据,可以使数据具有同意的组织结构,其他应用软件,对象,中间层和服务器都可以对使用XML描述的数据做进一步的处理。并可以提交到浏览器中让读者阅读
2:可以轻松的实现数据在web上发布
因为XML本身是纯文本格式的,它可以不做任何修改就和HTML文档一样在网络中传输。
3:有利于信息的集成
因为使用XML,可以把不同来源的结构化数据很容易地组织到一起。应用软件可以在中间层的服务器上对来自于后段数据库和其他的数据进行集成。最后,数据以XML格式发送到客户端或者是在其他服务器做进一步处理。
4:可以使用丰富的样式来显示数据
XML采用结构化的方式来组织数据,描述的是数据本身,不涉及到数据的表现形式。通常来说,使用CSS和 XSL以及XSLT为数据的显示提供分布的机制,也就是说数据的显示方式可以根据客户的要求制定。
5:可大大增强服务器的可伸缩性
XML将数据本身和数据的显示完全分离,从而可以在结构化的数据中嵌套数据的显示方式描述。这样,能尽可能地减少客户端与服务器之间的数据交换,减少服务器的工作量才能大大提高服务器的性能。
6:采用统一的XML文档格式来描述多种应用的数据
7:支持本地数据处理
因为XML文档中的数据格式是统一的,当客户受到数据后,便可以使用客户自己的应用软件来解析数据,并对数据进行进一步的编辑和处理。
8:可以使搜索变得更加简单
面试技巧:经典面试题及答案分析 第7篇
死法一:学生气
叙述人:王梅,女,23岁
专业:会计
面试 岗位:外事
当我在 招聘会 上看见自己心仪已久的那家知名高薪企业时,心里既高兴又紧张,除了我,其他闯入 面试 的都是男生。考场是一个很小的会议室,中间是一张圆桌。考官坐在圆桌一边,我们坐在另外一边。服务员拿来六杯水,男生们直接拿起水杯就开始喝。我一转念,几个考官都还没有水喝呢,于是很有礼貌地把杯子递给离我最近的一个考官。
“根据你的性格特点,我们想把你安排在外事部门,不过户口方面可能还需要再争取。”我左思右想,轻轻咬着下唇说:“要不,我跟爸爸妈妈商量一下。”
主考官也突然愣了一下,“好吧。”他微笑着说:“不过要记得,以后你参加面试的时候,不要说和爸爸妈妈商量’,因为这样会显得你没有主见,明白吗?”
点评:凡事依靠父母的是学生,而非职场中人。
死法二:不自信
叙述人:郑迎,女,24岁
专业:法律
面试岗位:招商顾问
在招聘会上,我看上了一个日商投资的外贸公司。我特意重新打扮了一番来给自己增加自信。一排看似威严的人士簇拥着老板模样的人坐在会场上方,原来是日本老板亲自面试。一看这架势,我的心跳不由自主地加速起来。突然想起学长以前的经验,心里开始暗自念着:要谦逊、谦逊
主考官的第一个问题就把我呛住了。“我们招的是专科学历,你是本科,怎么会来应聘这个岗位?”我支支吾吾地回答:“我觉得你们公司挺好的,也比较适合我的专业。”“我们公司好在哪里?这里工作压力很大,平时要经常加班,你可以适应吗?试用期只有基本工资800元,其他什么福利也没有,能接受吗?”在等待是否进入复试的空档,我长长地嘘了一口气。终于等到了“宣判”的时刻,主考官面带微笑地告诉我:“小姑娘,你的条件不错,不过以后再去面试要自信点”
点评:缺乏自信的人会让人有学习能力差、推诿塞责的联想,肯定不受用人单位欢迎。
死法三:抢风头
叙述人:李魁,男,23岁
专业:国际贸易
应聘岗位:营销企划
参加学校里的招聘会时,我杀入了一家国内知名企业的面试现场,据说投 简历 的就有数百人,最后杀进面试的只有30多人。当时我们被分成三人一组回答面试官的问题,我觉得要脱颖而出必须表现得更积极,
所以在回答问题的时候,我总是抢在别人前面,比别人多说两句。
面试官问:“如果你的同事中有不好沟通的人,你怎么办?”别人还没有说话,我就抢着回答:“最重要的是工作,每个人都有自己的个性,不需要去勉强。”整个面试下来,有2/3的问题都是我回答的,而且越说越顺根本忘了要收敛。一个星期后我收到通知,被客气地告知不需要参加复试了。因为公司觉得我不注重团体合作精神,太急于表现自己,不是他们需要的人才。
点评:自信和骄傲有时就在一线之间,骄傲的人令人生厌,没有团队合作的概念,不合群,用人单位绝不会喜欢一个单打独斗的独行侠。
死法四:选地区
叙述人:康林,男,22岁
专业:文科
面试岗位:经理
“我的首选是出国,其次是留京,再不行就去广州。”中国人民大学新闻学院的康林说。目前班里45名学生都还没人打算到基层,身边的同学动过“去西部”念头的也不多,大多数人还是瞄准了北京、上海等大城市。虽然国家鼓励下基层的政策已为数不少。然而调查发现,优惠政策仍难以解除学生的重重疑虑。“下基层?就算不担心收入少,也会被嘲笑没本事’。尤其是对于一些来自农村的大学生,如果不能留在大城市就感到无颜面对家人。”
点评:这并不仅仅是“面子”问题,基层特别是西部地区发展相对落后,收入水平与发达地区相比差别较大,城乡转换成本过高,大学生担心“下去容易上来难”。这里面也有基层本身的观念问题,有对人才的排挤以及旧有体制问题。
死法五:不切实际
叙述人:夏磊,男,23岁
专业:工科
面试岗位:机械工程师
夏磊参加了很多的招聘会,大大小小加起来有十多场。在上海市举办的招聘会上,主考官对他非常满意,于是开始谈最后的薪资。夏磊觉得今年找工作的情况那么严峻,自己能找到一份就不错了,怎么还能讨价还价呢?于是他回答:“无所谓,都可以!”主考官马上阴沉着脸,请他回去等通知,就再也没有了消息。
点评:薪资是你对自己水平的一个衡量标准,也是对你工作满意程度的回报。一个连自己薪资都无所谓的人,还能期望他对以后的工作和公司有干劲吗?
经典java面试题及答案详解 第8篇
说说HashMap和Hashtable的差别
答案分析:
都属于Map接口的类,实现了将惟一键映射到特定的值上。
HashMap类没有分类或排序。他允许一个null键和多个null值。
Hashtable类似于HashMap,不过不允许null键和null值。他也比HashMap慢,因为他是同步的。
java面试题2、
Anonymous Inner Class (匿名内部类)是否能extends(继承)其他类,是否implements(实现)interface(接口)?
答案分析:
匿名的内部类是没有名字的内部类。不能extends(继承)其他类,但一个内部类能作为一个接口,由另一个内部类实现。
java面试题3、
STRING与STRINGBUFFER的区别是什么?
答案分析:
STRING的长度是不可变的,STRINGBUFFER的长度是可变的。如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString方法。
java面试题4、
什么时候用assert
答案分析:
断言是个包含布尔表达式的语句,在执行这个语句时假定该表达式为true。如果表达式计算为false,那么系统会报告一个AssertionError,他用于调试目的。
java面试题5、
Set里的元素是不能重复的,那么用什么方法来区分重复和否呢?是用==还是equals()?他们有何差别?
答案分析:
Set里的元素是不能重复的,那么用iterator()方法来区分重复和否。equals()是判读两个Set是否相等。
equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。
java面试题6、
List, Set, Map是否继承自Collection接口?
答案分析:
List,Set是
Map不是
PHP程序员面试题经典及答案 第9篇
1.烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢?
2.你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。抓取多少个就可以确定你肯定有两个同一颜色的果冻?
3.如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出4公升的水?
4.一个岔路口分别通向诚实国和说谎国。来了两个人,已知一个是诚实国的,另一个是说谎国的。诚实国永远说实话,说谎国永远说谎话。现在你要去说谎国,但不知道应该走哪条路,需要问这两个人。请问应该怎么问?
5.12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。13个呢?(注意此题并未说明那个球的重量是轻是重,所以需要仔细考虑)
6.在9个点上画10条直线,要求每条直线上至少有三个点?
7.在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?都分别是什么时间?你怎样算出来的?
8.怎么样种植4棵树木,使其中任意两棵树的距离相等?
第二组
1.为什么下水道的盖子是圆的?
2.中国有多少辆汽车?
3.将汽车钥匙插入车门,向哪个方向旋转就可以打开车锁?
4.如果你要去掉中国的34个省(含自治区、直辖市和港澳特区及台湾省)中的任何一个,你会去掉哪一个,为什么?
5.多少个加油站才能满足中国的所有汽车?
6.想象你站在镜子前,请问,为什么镜子中的影象可以颠倒左右,却不能颠倒上下?
7.为什么在任何旅馆里,你打开热水,热水都会瞬间倾泻而出?
8.你怎样将Excel的用法解释给你的奶奶听?
9.你怎样重新改进和设计一个ATM银行自动取款机?
10.如果你不得不重新学习一种新的计算机语言,你打算怎样着手来开始?
11.如果你的生涯规划中打算在5年内受到奖励,那获取该项奖励的动机是什么?观众是谁?
12.如果微软告诉你,我们打算投资五百万美元来启动你的投资计划,你将开始什么样商业计划?为什
13.如果你能够将全世界的电脑厂商集合在一个办公室里,然后告诉他们将被强迫做一件事,那件事将是什么?
第三组
1.你让工人为你工作7天,回报是一根金条,这个金条平分成相连的7段,你必须在每天结束的时候给他们一段金条。如果只允许你两次把金条弄断,你如何给你的工人付费?
2.有一辆火车以每小时15公里的速度离开北京直奔广州,同时另一辆火车每小时20公里的速度从广州开往北京。如果有一只鸟,以30公里每小时的速度和两辆火车同时启动,从北京出发,碰到另一辆车后就向相反的方向返回去飞,就这样依次在两辆火车之间来回地飞,直到两辆火车相遇。请问,这只鸟共飞行了多长的距离?
3.你有四个装药丸的罐子,每个药丸都有一定的重量,被污染的药丸是没被污染的药丸的重量+1。只称量一次,如何判断哪个罐子的药被污染了?
4.门外三个开关分别对应室内三盏灯,线路良好,在门外控制开关时候不能看到室内灯的情况,现在只允许进门一次,确定开关和灯的对应关系?
5.人民币为什么只有1、2、5、10的面值?
6.你有两个罐子以及50个红色弹球和50个蓝色弹球,随机选出一个罐子,随机选出一个弹球放入罐子,怎么给出红色弹球最大的选中机会?在你的计划里,得到红球的几率是多少?
7.给你两颗6面色子,可以在它们各个面上刻上0-9任意一个数字,要求能够用它们拼出任意一年中的日期数值
第四组
第一题.五个海盗抢到了100颗宝石,每一颗都一样大小和价值连城。他们决定这么分: 抽签决定自己的号码(1、2、3、4、5)
首先,由1号提出分配方案,然后大家表决,当且仅当超过半数的人同意时,按照他的方案 进行分配,否则将被扔进大海喂鲨鱼
如果1号死后,再由2号提出分配方案,然后剩下的4人进行表决,当且仅当超过半数的人同 意时,按照他的方案进行分配,否则将被扔入大海喂鲨鱼
依此类推
条件:每个海盗都是很聪明的人,都能很理智地做出判断,从而做出选择。
问题:第一个海盗提出怎样的分配方案才能使自己的收益最大化?
第二题.一道关于飞机加油的问题,已知:
每个飞机只有一个油箱,飞机之间可以相互加油(注意是相互,没有加油机)
一箱油可供一架飞机绕地球飞半圈,问题:
为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?(所有飞机从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间没有飞机场)
第三题.汽车加油问题
一辆载油500升的汽车从A开往1000公里外的B,已知汽车每公里耗油量为1升,A处有无穷多的油,其他任何地点都没有油,但该车可以在任何地点存放油以备中转,问从A到B最少需要多少油
第四题.掷杯问题
一种杯子,若在第N层被摔破,则在任何比N高的楼层均会破,若在第M层不破,则在任何比M低的楼层均会破,给你两个这样的杯子,让你在100层高的楼层中测试,要求用最少的测试次数找出恰巧会使杯子破碎的楼层。
第五题.推理游戏
教授选出两个从2到9的数,把它们的和告诉学生甲,把它们的积告诉学生乙,让他们轮流猜这两个数
甲说:“我猜不出”
乙说:“我猜不出”
甲说:“我猜到了”
乙说:“我也猜到了”
问这两个数是多少
第六题.病狗问题
一个住宅区内有100户人家,每户人家养一条狗,每天傍晚大家都在同一个地方遛狗。已知这些狗中有一部分病狗,由于某种原因,狗的主人无法判断自己的狗是否是病狗,却能够分辨其他的狗是否有病,现在,上级传来通知,要求住户处决这些病狗,并且不允许指认他人的狗是病狗(就是只能判断自己的),过了7天之后,所有的病狗都被处决了,问,一共有几只病狗?为什么?
第七题.U2合唱团在17分钟内得赶到演唱会场,途中必需跨过一座桥,四个人从桥的同一端出发,你得帮助他们到达另一端,天色很暗,而他们只有一只手电筒。一次同时最多可以有两人一起过桥,而过桥的时候必须持有手电筒,所以就得有人把手电筒带来带去,来回桥两端。手电筒是不能用丢的方式来传递的。四个人的步行速度各不同,若两人同行则以较慢者的速度为准。BONO需花1分钟过桥,EDGE需花2分钟过桥,ADAM需花5分钟过桥,LARRY需花10分钟过桥,他们要如何在17分钟内过桥呢?
PHP程序员面试题经典及答案 第10篇
但是如果data.inc中包含JSP CODE,我们可以使用:<%@include file=“data.inc”%>
2、如何执行一个线程安全的JSP?只需增加如下指令
<%@ page isThreadSafe=“false” %>
3、JSP如何处理HTML FORM中的数据?通过内置的request对象即可,如下:<%
String item = request.getParameter(“item”);int howMany = new
Integer(request.getParameter(“units”)).intValue();%>
4、在JSP如何包含一个静态文件?
静态包含如下:<%@ include file=“copyright.html” %>动态包含如下:
5、在JSP中如何使用注释?主要有四种方法:1。<%– 与 –%> 2。// 3。/**与**/ 4。
6、在JSP中如何执行浏览重定向?使用如下方式即可:
response.sendRedirect(“");
也能物理地改变HTTP HEADER属性,如下:<%
response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
String newLocn=”/newpath/index.html“;response.setHeader(”Location“,newLocn);%>
7、如何防止在JSP或SERVLET中的输出不被BROWSER保存在CACHE中?
把如下脚本加入到JSP文件的开始即可:<%
response.setHeader(”Cache-Control“,”no-store“);//HTTP 1.1response.setHeader(”Pragma“,”no-cache“);//HTTP 1.0response.setDateHeader(”Expires“, 0);//prevents caching at the proxy server%>
8、在JSP中如何设置COOKIE?
COOKIE是作为HTTP HEADER的一部分被发送的,如下方法即可设置:<%
Cookie mycookie = new Cookie(”aName“,”aValue“);response.addCookie(mycookie);
%>
9、在JSP中如何删除一个COOKIE?<%
Cookie killMyCookie = new Cookie(”mycookie“, null);killMyCookie.setMaxAge(0);killMyCookie.setPath(”/“);response.addCookie(killMyCookie);%>
10、在一个JSP的请求处理中如何停止JSP的执行如下例:<%
if(request.getParameter(”wen“)!= null){// do something} else {return;}%>
11、在JSP中如何定义方法
你可以定义方法,但是你不能直接访问JSP的内置对象,而是通过参数的方法传递。如下:<%!
public String howBadFrom(HttpServletRequest req){HttpSession ses = req.getSession();...return req.getRemoteHost();}%><%
out.print(”in general,lao lee is not baddie “);%>
<%= howBadFrom(request)%>
12、如果BROWSER已关闭了COOKIES,在JSP中我如何打开SESSION来跟踪
使用URL重写即可,如下:hello1.jsp
<%@ page session=”true“ %><%
Integer num = new Integer(100);session.putValue(”num“,num);
String url =response.encodeURL(”hello2.jsp“);%>
>hello2.jsphello2.jsp
<%@ page session=”true“ %><%
Integer i=(Integer)session.getValue(”num“);out.println(”Num value in session is “+i.intValue());%>
13、在JSP中能发送EMAIL吗
可以使用SUN的专用包:sun.net.smtp包。如下脚本使用
SmtpClient类发送EMAIL。
<%@ page import=”sun.net.smtp.SmtpClient, java.io.*“ %><%
String from=”ybwen@sina.com“;
String to=”hewenjun@yeah.net, lei@who.com.cn“;try{
SmtpClient client = new SmtpClient(”mail.xxxxx.xxx“);client.from(from);client.to(to);
PrintStream message = client.startMessage();message.println(”To: “ + to);
message.println(”Subject: Sending email from JSP!“);message.println(”This was sent from a JSP page!“);message.println();
message.println(”Cool!:-)“);message.println();
message.println(”Good Boy“);message.println(”Im in genius.com“);message.println();client.closeServer();}
catch(IOException e){
System.out.println(”ERROR SENDING EMAIL:“+e);}%>
14、在SERVLET中我能调用一个JSP错误页吗
当然没问题,如下展示了如何在一个SERVLET控制逻辑单元内调用一个JSP错误页面。
HttpServletResponse response, String errorPageURL,Throwable e)
throws ServletException, IOException {getServletConfig().getServletContext().getRequestDispatcher(errorPageURL).forward(request,response);}
public void doPost(HttpServletRequest request,HttpServletResponse response){try {
// do something
} catch(Exception ex){try {
sendErrorRedirect(request,response,”/jsp/MyErrorPage.jsp“,ex);
} catch(Exception e){e.printStackTrace();} } }
15、JSP和APPLET如何通讯
JSP如何与EJB SessionBean通讯下面的代码段作了很好的示范<%@ page import=”javax.naming.*, javax.rmi.PortableRemoteObject,foo.AccountHome, foo.Account“ %><%!
//定义一个对SessionBeanHome接口实例的全局引用AccountHome accHome=null;
public void jspInit(){//获得Home接口实例
InitialContext cntxt = new InitialContext();
Object ref= cntxt.lookup(”java:comp/env/ejb/AccountEJB“);accHome =
(AccountHome)PortableRemoteObject.narrow(ref,AccountHome.class);}%><%
//实例化SessionBean
Account acct = accHome.create();//调用远程方法acct.doWhatever(...);// 如此等等%>
16、当我使用一个结果集时,如何防止字段为”null“的字域显示在我的HTML输入文本域中?
可以定义一个简单的函数来达到目的,如下:String blanknull(String s){return(s == null)? ”“ : s;}
然后在JSP的FORM中,可以这样使用
“>
17、如何中SERVLET或JSP下载一个文件(如:binary,text,executable)?现提供两个解决方案:A:使用HTTP,B:在Servlet中,通过设置ContentType和使用java.io包的Stream等类可作到.例如:
response.setContentType(”application/x-msword“);然后想输出缓冲中写一些东东即可。
18、使用useBean标志初始化BEAN时如何接受初始化参数使用如下两标签即可:
protected void sendErrorRedirect(HttpServletRequest <%!
%>
19、使用JSP如何获得客户浏览器的信息?使用request.getHeader(String)即可20、能象调用子程序一样调用JSP吗?
当然可以,用
32、对一个JSP页,如果多个客户端同时请求它,同步可能吗?在jsp:useBean语法中使用beanName有何好处?beanName使用Beans.instantiate()初始化Bean33、当我使用
21、当我重编译我的JSP使用的一个类后,为什么JVM继续使用我的老CLASS?
<%@include file=”abc.jsp“%>与
前一个为静态包含,而后一个为动态包含
22、JSP的缺点?
1。对JAVA程序进行调试没有好东东
2。因大多数的servlet引擎不支持connection pooling3。Servlet引擎没有标准4。JSP与其它脚本语言的交互
23、JSP能进行递归调用吗?当然可以,如对form的提交给本页
34、如何实现JSP的国际化?
为各种版本提供resource bundles属性文件即可
25、在JSP中如何写文本文件?使用PrintWriter对象,如:<%@ page import=”java.io.*“ %><%
String str = ”print me“;
String nameOfTextFile = ”/usr/anil/imp.txt“;try {
PrintWriter pw = new PrintWriter(new FileOutputStream(nameOfTextFile));pw.println(str);pw.close();
} catch(IOException e){out.println(e.getMessage());}%>
26、如何在JSP中包括绝对路径文件?使用URLConnection即可。
27、在servlets和JSP之间能共享session对象吗?当然可以,HttpSession session = request.getSession(true);session.putValue(”variable“,”value");
28、JavaScript的变量能复制到JSP的SESSION中吗?
29、如何设置cookie在某一时间后过期?用Cookie.setMaxAge(int)30、如何获得当前的sessions数?
可以使用HttpSessionBindingListeners来跟踪
31、能设置一些代码在我所有的JSP文件之上运行?如果可以,能共享吗?
当然可以,可以为你的JSP文件定义一个别
34、如何转换JSP 0.9版本的文件到JSP1.1?可使用sed/awk即可
35、使用JSP能设置HTML FORM中输入域的焦点,不用JavaScript?没办法
PHP程序员面试题经典及答案 第11篇
如题,谁有比较全面的Java程序员面试题(附答案),请发到,谢谢!
[谁有比较全面的Java程序员面试题(附答案)?]
Java经典面试题-带答案 第12篇
一、单项选择题
1.Java是从()语言改进重新设计。
A.Ada
B.C++
C.Pasacal
D.BASIC
答案:B
2.下列语句哪一个正确()
A. Java程序经编译后会产生machine code
B.Java程序经编译后会产生byte code(字节码)
C.Java程序经编译后会产生DLL
D.以上都不正确
答案:B
3.下列说法正确的有()
A.class中的constructor不可省略
B. constructor必须与class同名,但方法不能与class同名
C.constructor在一个对象被new时执行(构造器)
D.一个class只能定义一个constructor
答案:C
4.提供Java存取数据库能力的包是()
A.Java.sql /sql/数据库 还有 Oracle 也是一种数据库
B.java.awt
C.java.lang
D.java.swing
答案:A
5.下列运算符合法的是()
A.
B.<>
C.if
D.:=
答案:A
6.执行如下程序代码
a=0;c=0;
do{
--c;
a=a-1;
}while(a>0);
后,C的值是()
A.0
B.1
C.-1
D.死循环
答案:C
7.下列哪一种叙述是正确的()
A.abstract修饰符可修饰字段、方法和类
B.抽象方法的body部分必须用一对大括号{}包住
C.声明抽象方法,大括号可有可无
D.声明抽象方法不可写出大括号
答案:D
8.下列语句正确的是()
A.形式参数可被视为localvariable
B.形式参数可被字段修饰符修饰
C.形式参数为方法被调用时,真正被传递的参数
D.形式参数不可以是对象
答案:A
9.下列哪种说法是正确的()
A.实例方法可直接调用超类的实例方法
B.实例方法可直接调用超类的类方法
C.实例方法可直接调用其他类的实例方法
D.实例方法可直接调用本类的类方法
答案:D
二、多项选择题
1.Java程序的种类有()
A.类(Class)
B.Applet
C.Application
D.Servlet
2.下列说法正确的有()
A.环境变量可在编译sourcecode时指定
B.在编译程序时,所能指定的环境变量不包括class path
C.javac一次可同时编译数个Java源文件
D.javac.exe能指定编译结果要置于哪个目录(directory)
答案:BCD
3.下列标识符不合法的有()
A.new
B.$Usdollars
C.1234
D.car.taxi
答案:ACD
4.下列说法错误的有()
A.数组是一种对象
B.数组属于一种原生类
C.intnumber=[]={31,23,33,43,35,63}
D.数组的大小可以任意改变
答案:BCD
5.不能用来修饰interface的有()
A.private
B.public
C.protected
D.static
答案:ACD
6.下列正确的有()
A. call byvalue不会改变实际参数的数值
B. call by reference能改变实际参数的参考地址
C. call byreference不能改变实际参数的参考地址
D. call byreference能改变实际参数的内容
答案:ACD
7.下列说法错误的有()
A.在类方法中可用this来调用本类的类方法
B.在类方法中调用本类的类方法时可直接调用
C.在类方法中只能调用本类中的类方法
D.在类方法中绝对不能调用实例方法
答案:ACD
8.下列说法错误的有()
A.Java面向对象语言容许单独的过程与函数存在 B. Java面向对象语言容许单独的方法存在
C.Java语言中的方法属于类中的成员(member)
D.Java语言中的方法必定隶属于某一类(对象),调用方法与过程或函数相同
答案:ABC
9.下列说法错误的有()
A.能被java.exe成功运行的javaclass文件必须有main()方法
B. J2SDK就是Java API
C.Appletviewer.exe可利用jar选项运行.jar文件
D.能被Appletviewer成功运行的javaclass文件必须有main()方法
答案:BCD
三、判断题
1.Java程序中的起始类名称必须与存放该类的文件名相同。()
答案:正确
2.Unicode是用16位来表示一个字的。()
答案:正确
3.原生类中的数据类型均可任意转换。()
答案:错误
1.分别写出BOOL,int,float,指针类型的变量a 与“零”的比较语句。
答案:
BOOL : if(!a)orif(a)
int : if(a == 0)
float : const EXPRESSION EXP = 0.000001
if(a < EXP a >-EXP)
pointer : if(a!=NULL)or if(a == NULL)
2.请说出const与#define 相比,有何优点?
答案:1)const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查。而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会产生意料不到的错误。
2)有些集成化的调试工具可以对const 常量进行调试,但是不能对宏常量进行调试。
3.简述数组与指针的区别?
数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。指针可以随时指向任意类型的内存块。
(1)修改内容上的差别
char a[]= “hello”;
a[0] = „X‟;
char *p = “world”;// 注意p 指向常量字符串
p[0] = „X‟;// 编译器不能发现该错误,运行时错误
(2)用运算符sizeof 可以计算出数组的容量(字节数)。sizeof(p),p为指针得到的是一个指针变量的字节数,而不是p 所指的内存容量。C++/C语言没有办法知道指针所指的内存容量,除非在申请内存时记住它。注意当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针。
char a[] =“hello world”;
char *p = a;
cout<< sizeof(a)<< endl;// 12字节
cout<< sizeof(p)<< endl;// 4 字节
计算数组和指针的内存容量
voidFunc(char a[100])
{
cout<< sizeof(a)<< endl;// 4 字节而不是100字节
}
4.类成员函数的重载、覆盖和隐藏区别?
答案:
a.成员函数被重载的特征:
(1)相同的范围(在同一个类中);
(2)函数名字相同;
(3)参数不同;
(4)virtual 关键字可有可无。
b.覆盖是指派生类函数覆盖基类函数,特征是:
(1)不同的范围(分别位于派生类与基类);
(2)函数名字相同;
(3)参数相同;
(4)基类函数必须有virtual 关键字。
c.“隐藏”是指派生类的函数屏蔽了与其同名的基类函数,规则如下:
(1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。
(2)如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual 关键字。此时,基类的函数被隐藏(注意别与覆盖混淆)
5.There are two int variables: a and b, don‟t use “if”, “? :”, “switch”orother judgement statements, find out the biggest one of the two numbers.答案:((a + b)+ abs(ai-1;j++){ if(data[j] > data[j+1]){ tag = true;int temp = data[j];data[j] = data[j+1];data[j+1] = temp;} } if(!tag)break;} } void main(void){ vectordata;ifstreamin(“c:data.txt”);if(!in){ cout<<“file error!”;exit(1);} int temp;while(!in.eof()){ in>>temp;data.push_back(temp);
}
in.close();//关闭输入文件流
Order(data);
ofstream out(“c:result.txt”);
if(!out)
{
cout<<“fileerror!”;
exit(1);
}
for(i = 0;i < data.size();i++)
out< 10.链表题:一个链表的结点结构 struct Node { int data; Node *next; }; typedef struct Node Node; (1)已知链表的头结点head,写一个函数把这个链表逆序(Intel) Node * ReverseList(Node*head)//链表逆序 { if(head == NULL || head->next == NULL) returnhead; Node *p1 = head; Node *p2 = p1->next; Node *p3 =p2->next; p1->next = NULL; while(p3!= NULL) { p2->next = p1; p1 = p2; p2 = p3; p3 = p3->next; } p2->next = p1; head = p2; return head; } 2)已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序。(保留所有结点,即便大小相同) Node *Merge(Node *head1 , Node *head2) { if(head1 == NULL) return head2; if(head2 == NULL) return head1; Node *head = NULL; Node*p1 = NULL; Node *p2 = NULL; if(head1->data < head2->data) { head = head1; p1 = head1->next; p2 = head2; } else { head = head2; p2 = head2->next; p1 = head1; } Node *pcurrent = head; while(p1!= NULL p2!= NULL) { if(p1->data <= p2->data) { pcurrent->next = p1; pcurrent = p1; p1 = p1->next; } else { pcurrent->next = p2; pcurrent = p2; p2 = p2->next; } } if(p1!= NULL) pcurrent->next = p1; if(p2!= NULL) pcurrent->next = p2; return head; } (3)已知两个链表head1 和head2各自有序,请把它们合并成一个链表依然有序,这次要求用递归方法进行。(Autodesk) 答案: Node *MergeRecursive(Node *head1 , Node *head2) { if(head1 == NULL)return head2;if(head2 == NULL)return head1;Node *head =NULL;if(head1->data < head2->data){ head = head1;head->next = MergeRecursive(head1->next,head2);} else { head = head2;head->next = MergeRecursive(head1,head2->next);} return head;} Substring charAt 大小写转换 熟练使用dbcp、c3p0 druid 解释get和post的区别? 1、安全性、如果使用get方式发送到服务器数据会拼接到url的后面,这样的话会完全暴露出发送到服务器的数据,因此不安全,而post会把发送到服务器的数据放到请求体中,相对来说比较安全 2、get方式发送到服务器的数据有限制,而post的方式发送到服务器原则上是没有限制 介绍tcp和upd的区别 Tcp:传输控制协议 Udp---user data protocol:用户数据报协议 共同点:都是用来在2台设备直接传递数据的协议 不同点: Tcp协议会在传递数据之前要3次握手,之后建立连接。这样的话就可以传递数据。是一种可靠的传输协议,就是说可以保证百分百把数据传递到对方设备,传输效率低 Udp:不可靠传输,不能保证把数据百分百把数据传输到对方设备上,传输效率高 表:销售表,客户表。两个表的关系,一个卖一个买共同的产物表:ID name 单子表
PHP程序员面试题经典及答案
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。


