PHP实习生笔试题
“新少”通过精心收集,向本站投稿了8篇PHP实习生笔试题,下面就是小编给大家带来的PHP实习生笔试题,希望能帮助到大家!
篇1:PHP实习生笔试题
PHP实习生笔试题
笔试题:需要多少只小白鼠才能在24小时内找到毒药
有1000瓶水,其中有一瓶有毒,小白鼠只要尝一点带毒的水24小时后就会死亡,至少要多少只小白鼠才能在24小时时鉴别出那瓶水有毒?
分析:
最容易想到的就是用1000只小白鼠,每只喝一瓶,但显然这不是最好答案。
既然每只小白鼠喝一瓶不是最好答案,那就应该每只小白鼠喝多瓶。那每只应该喝多少瓶呢?
首先让我们换种问法,如果有x只小白鼠,那么24小时内可以从多少瓶水中找出那瓶有毒的?
由于每只小白鼠都只有死或者活这两种结果,所以x只小白鼠最大可以表示2^x种结果。如果让每种结果都对应到某瓶水有毒,那么也就可以从2^x瓶水中找到有毒的.那瓶水。那如何来实现这种对应关系呢?
第一只小白鼠喝第1到2^(x-1)瓶,第二只小白鼠喝第1到第2^(x-2)和第2^(x-1)+1到第2^(x-1) + 2^(x-2)瓶….以此类推,
回到此题,总过1000瓶水,所以需要最少10只小白鼠。
笔试题:根据上排的数填写下排的数,并满足要求。
根据上排给出十个数,在其下排填出对应的十个数, 要求下排每个数都是上排对应位置的数在下排出现的次数。上排的数:0,1,2,3,4,5,6,7,8,9。
笔试题:判断数字是否出现在40亿个数中?
给40亿个不重复的unsigned int的整数,没排过序的,然后再给几个数,如何快速判断这几个数是否在那40亿个数当中?
分析:
unsigned int 的取值范围是0到2^32-1。我们可以申请连续的2^32/8=512M的内存,用每一个bit对应一个unsigned int数字。首先将512M内存都初始化为0,然后每处理一个数字就将其对应的bit设置为1。当需要查询时,直接找到对应bit,看其值是0还是1即可。
篇2:php练习笔试题
简答题
1. 写出5个以上你所知道的常用的Linux命令和它的功能
cat,显示文件内容。
cd,改变目录路径。
cp,复制文件。
find,查找文件。
grep,搜索、过滤信息。
ls,列出目录信息。
more,分页显示。
rm,删除文件或目录。
vi,调用vi文本编辑器。
who,显示登录用户信息。
2. HTTP/1.0 中,状态码 200 301 304 403 404 500的含义
200 - 服务器成功返回网页
301(永久移动)请求的网页已永久移动到新位置。
304(未修改)自从上次请求后,请求的网页未修改过
403(禁止)服务器拒绝请求
404 - 请求的网页不存在
503 - 服务器超时
3. 请写出以下html标签的含义:input form script style table b img
4. 写出PHP(或其他语言)的public、protected、private三种访问控制模式的区别?
属于OOP面向对象语言中的类中访问控制模式
Public可以外部访问
Protected,private只可以内部访问
Public,protected可以被继承
Private不可以被继承
5. 请描述 PHP(或其他语言) Session 的运行机制,大型网站中Session方面应注意什么?
运行机制:客户端将session id传递到服务器,服务器根据session id找到对应的文件,读取的时候对文件内容进行反序列化就得到session的值,保存的时候先序列化再写入
注意:1,session在大访问量网站上确实影响系统性能,影响性能的原因之一由文件系统设计造成,在同一个目录下超过10000个文件时,文件的定位将非常耗时,可以通过修改php.ini中session.save_path设置两级子目录 ,session将存储在两级子目录中,每个目录有16个子目录[0~f],不过好像PHP session不支持创建目录,你需要事先把那么些目录创建好 。
2,还有一个问题就是小文件的效率问题,可以通过存储方式中的memcache来解决I/O效率低下的问题
3,session同步问题,session同步有很多种,如果你是存储在memcached或者MySQL中,那就很容易了,指定到同样的位置即可,还有一种方法就是在负载均衡那一层保持会话,把访问者绑定在某个服务器上,他的所有访问都在那个服务器上就不需要session同步了
6. 简单描述mysql中,索引,主键,唯一索引,联合索引的区别,对数据库的性能有什么影响(从读写两方面)
索引就相当于对指定的列进行排序,排序有利于对该列的查询,可以大大增加查询效率
建立索引也是要消耗系统资源,所以索引会降低写操作的效率
主键,唯一,联合都属于索引
主键属于唯一索引,且一个表只能有一个主键,主键列不允许空值
唯一索引可以一个表中可以有多个,而且允许为空,列中的值唯一
多个字段的多条件查询多使用联合索引
7. MySQL 数据库中 varchar和char的主要区别是什么,哪种查询效率更高,为什么?
varchar变长字符串,char定长字符串
Char效率更高,由于不需要对储存空间计算后在存储,所以效率更高
8. 解释MySQL外连接、内连接与自连接的区别
Mysql外连接分为左连接(left join....on)和右连接(right join.... on),左连接是以左表作为条件查询关联右表数据,无对应数据则补空,右连接则相反
Mysql内连接(inner join.....on)是做关联查询时,内连接的特性是只显示符合连接条件的记录
Mysql自连接:在FROM clause(子句)中我们可以给这个表取不同的别名, 然后在语句的其它需要使用到该别名的地方用dot(点)来连接该别名和字段名
9. 说说下面这些这些协议的全称和中文解释SMTP、POP3、HTTP、FTP、DNS
Smtp简单邮件协议
Pop3邮局协议
http超文本传输协议
ftp文件传送协议
Dns域名解析协议
10. javascript 包括那些基本数据类型?
数字,字符串,null,undefined,boolean
11. 用css、html编写一个两列布局的网页,右侧固定宽度200px,左侧自适应
右边固定200px宽度
左边自适应
项目设计
假设有一个包含Tag功能的博客系统,数据库存储采用mysql,用户数量为1000万,预计文章总数为10亿,每天有至少10万的更新量,每天访问量为5000万,对数据库的读写操作的比例超过10:1。
你如何设计该系统,以确保其系统高效,稳定的运行?
提示:可以从数据库设计,系统框架,及网络架构方面进行描述,可以写代码/伪代码辅助说明,可以自由发挥
读写分离,读写服务器比例10:1,使用分页查询减少数据库压力,静态化分页后使用memcache分布式缓存,减少i/o开销和数据压力,增删改时删除对应的静态化数据,通过查询分页,分开静态化对应的分页信息缓存,数据库分库分表分区,使用lvs负载均衡,活跃和不活跃的文章进行分表存储,提高数据库中文章查询
效率,建立联合索引,提高查询效率,使用中文分词技术提高文章内容的查询效率
编写程序(请任选两题)
1. 描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组
2. 假设有“123abc456def789”这么一个字符串,写一个函数,可以传入一个字符串,和一个要截取的长度。返回截取后的结果。
要求:
1 和标记不得计算在长度之内。
2 截取后的字符串,要保留原有标签,不过如果最后有一个标签没有闭合,则去掉其开始标签。
示例:
题中的字符串,要截取长度5,则返回的字符串应该为:123ab,要截取长度8,应返回123abc45。
function newsubstr($str,$num){
$strNeed = preg_replace(array('/<\/\w+>/','/<\w+>/'),array('',','),$str);
$arr = explode(',',$strNeed);
$arrCount = array_map('strlen',$arr);
$newstr = '';
if($num < $arrCount[0]+$arrCount[1] && $num >= 0){
$newstr .= ($num<=$arrCount[0]) ? substr($arr[0],0,$num) : substr($arr[0],0,$arrCount[0]).substr($arr[1],0,$num-$arrCount[0]);
}else{
foreach($arr as $key=>$val){
if( $key>1 && $num < array_sum(array_slice($arrCount,0,$key+1)) && $num >= array_sum(array_slice($arrCount,0,$key))){
//echo $key;
$newstr .= $arr[0].“{$arr[1]}”;
for($i = 2;$i <= $key; $i++ ){
$newstr .= $i<$key ? ''.$arr[$i].'' : substr($arr[$key],0,$num-array_sum(array_slice($arrCount,0,$key+1)));
}
}
}
if($num >= array_sum($arrCount)){
$newstr = $str;
}
}
echo $newstr;
}
$str = ‘123abc456def789’;
newsubstr($str,8);
3. 一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去…,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n, 输出最后那个大王的编号。用程序模拟该过程。
function monkeyKing($n, $m) { //$n为猴子总数,$m为剔除猴子步长
$s = 0; //$s为大王坐标,只有一只猴子时,大王坐标为0
for($i = 2; $i <= $n; $i++) { //依次向后递推,求到共有$n只猴子,剔除步长为$m时的大王坐标
$s = ($s + $m) % $i; //大王坐标递推公式
}
return $s;
}
echo monkeyKing(6, 2);
4. 翻转字符串中的单词,字符串仅包含大小写字母和空格,单词间使用空格分隔。
如:输入 “This is PHP”,输出 “PHP is This”
非必要请不要使用PHP自带函数
function myrev($str){
$arr = explode(' ',$str);
$num = count($arr);
for($i = 0; $i < $num/2; $i++){
$temp = $arr[$i];
$arr[$i] = $arr[$num-$i-1];
$arr[$num-$i-1] = $temp;
}
return implode(' ',$arr);
}
$str = 'This is PHP';
echo myrev($str);
篇3:新浪php工程师笔试题
新浪php工程师笔试题
1、COOKIE、SESSION的联系和区别,多台web服务器如何共享SESSION?
2、HTTP协议中的POST和GET有何区别?
3、一段php代码,写出输出结果,不难,但设了小小的陷阱,
4、reqiure的include都可包含文件,二者的区别何在?
(至此处我做的`还不错,往下就惨了)
5、php中WEB上传文件的原理是什么,如何限制上传文件的大小?
6、写一个函数,可以遍历文件夹下的所有文件和文件夹。
7、8、中间有几个unix shell的题目(好像是两个),因为不懂,不记得这些题目了
9、有mail.log的一个文档,内容为若干邮件地址,其中用’
‘将邮件地址分隔。要求从中挑选出sina.com的邮件地址(包括从文件读取、过滤到列印出来),
mail.log内容如下:
james@sina.com.cn
jack@163.com
zhansan@sohu.com
lisi@hotmail.com
wangwu@gmail.com
10、js中网页前进和后退的代码
11、window(A)中用window.open打开了window(B),如何从窗口B调用窗口A中的内容?A、B仅仅是窗口的代号,不是窗口名字
12、了解ajax吗?用过吗?……
13、什么是MVC?用过吗?使用时遇到了什么问题,怎么解决的?
数据库设计题目:
14、于用户注册和bbs留言的,挺简单,设计几个表,写几个SQL语句,但最后两小问我有点蒙:一个是跟web服务器有关的,另一个是要求最优化查询语句。
15、进行一个树状菜单的数据库设计,这个树状菜单可以有无限级的子菜单。不会做!
篇4:阿里巴巴实习生笔试题
阿里巴巴实习生笔试题
二进制来编码字符串”abcdabaa”,需要能够根据编码,解码回原来的字符串,最少需要______位的二进制字符串,
有两个N*N的矩阵A和B,想要在PC上按矩阵乘法基本算法编程实现计算A*B。假设N较大,本机内存也很大,可以存下A、B和结果矩阵。那么,为了计算速度,A和B在内存中应该如何存储(按行存指先存储第一行,再第二行,直到最后一行;按列存指先存储第一列,再第二列,直到最后一列)
数据结构分为逻辑结构和存储结构,下列数据结构中不属于存储结构的是______。
• 线性链表
• 二叉链表
• 栈与队列
• 循环队列
下列关于无向连通图特性的叙述中,正确的是______。
Ⅰ.所有顶点的度之和为偶数
Ⅱ.边数大于顶点个数
Ⅲ.至少有一个顶点的度为1
• 只有Ⅰ
• 只有Ⅱ
• Ⅰ和Ⅱ
• Ⅰ和Ⅲ
某计算机的指令流水线由四个功能段组成,指令流经各功能段的时间(忽略各功能段之间的 缓存时间)分别是90ns、80ns、70ns和60ns,则该计算机的CPU时钟周期至少是____。
• 90ns
• 80ns
• 70ns
• 60ns
主机甲和主机乙间已建立一个TCP连接,主机甲向主机乙发送了两个连续的TCP段,分别包含300字节和500字节的有效载荷,第一个段的序列号为200,主机乙正确接收到两个段后,发送给主机甲的确认序列号是 。
• 500
• 700
• 800
• 1000
IP数据报头采用______字节序,在此字节序下从低地址到高地址0×1234的表示形式为______。
• big_endian, 0×12 0×34 0 0
• little_endian,0×34 0×12 0 0
• big_endian, 0 0 0×12 0×34
• little_endian,0 0 0×34 0×12
假设栈S和队列Q的初始状态为空,元素a、b、c、d、e、f依次通过S和Q,即每一个元素必须先进栈,之后再出栈进入队列。若这6个元素出队的顺序是b、d、c、f、e、a,则栈S的'容量至少应该为______。
• 3
• 4
• 5
• 6
硬件设备的寿命通常符合指数分布,即无记忆性,也就是如果一个设备当前正常工作,那么剩余预期寿命和已经工作的时间无关。假定某种设备1000台,在一年之内坏掉500台(无维修),那么在有维修(设备坏掉立刻换新的)的情况下,一年之内需要换______台该设备。
• 400台
• 500台
• 753台
• 1000台
下述描述中,正确的是____。
• char const * pointer表示pointer指向的内存区域的内容不能修改
• const char *pointer表示pointer不能指向别的内存地址
• char * const pointer 表示pointer指向的内存区域的内容不能修改
• const char * const pointer在C++语言中不合法
在linux中,列举当前目录下文件的是哪个命令______,
• ps
• cd
• mv
• ls
某二叉树的先序遍历是12453,中序遍历是42513,那么其后续遍历是______。
• 45231
• 42351
• 12345
• 54321
需要频繁的插入删除操作使用什么结构比较合适______。
• 数组
• 队列
• 链表
• 栈
你有一个3X3X3的立方体。你现在在正面左上的顶点,需要移动到对角线的背面右下的顶点中。每次移动不限距离,但只能从前至后、从左至右、从上至下运动,即不允许斜向或后退。有______种方法。
• 9
• 90
• 180
• 1680
一个容器类数据结构,读写平均,使用锁机制保证线程安全。如果要综合提高该数据结构的访问性能,最好的办法是______。
• 只对写操作加锁,不对读操作加锁
• 读操作不加锁,采用copyOnWrite的方式实现写操作
• 分区段加锁
• 无法做到
下面序列中,哪一种序列 不可能是一个二叉搜索树的后序遍历结果?
• 1,2,3,4,5
• 1,2,5,4,3
• 5,4,3,2,1
• 3,5,1,4,2
小数值1.5625的二进制表示是____。
• 101.1001
• 0.001
• 101.111
• 1.1001
有两个N*N的矩阵A和B,想要在PC上按矩阵乘法基本算法编程实现计算A*B。假设N较大,本机内存也很大,可以存下A、B和结果矩阵。那么,为了计算速度,A和B在内存中应该采用的存储方法是______。(按行存指先存储第一行,再第二行,直到最后一行;按列存指先存储第一列,再第二列,直到最后一列)
• A按行存,B按行存
• A按行存,B按列存
• A按列存,B按行存
• A按列存,B按列存
有n条随机的二进制流(n非常大),有n个接收器收集数据,遇到1就停止,并把之前收到的二进制传存储起来,最后0的个数大约有_______个。
• n
• n/2
• 2n
• 3n/2
下列叙述中正确的是____。
• 循环队列有队头和队尾两个指针,因此,循环队列是非线性结构
篇5:ebay实习生笔试题
1.写出a*(b-c*d)+e-f/g*(h+i*j-k)的逆波兰表达式
2.面向对象语言中public,proteced,private的区别
3.SAX和DOM的区别以及各自优缺点
4.进程和线程区别
篇6:ebay实习生笔试题
1.假设现有一个功能,用户点击一个按钮后就会自动发送一封邮件到用户的邮箱。现在
用户反映没有受到邮件。你怎么去发现并解决问题
2.用Java写一个Singleton类
篇7:ebay实习生笔试题
.2个有序List,请用Java写一个合并函数合并他们,返回一个有序List
public List Merge(List a,List b){
}
=====================================
SAX与DOM之间的区别
当你需要处理XML文档时,你的首要选择是使用DOM(文档对象模型)还是使用SAX(用于XML的简单API),即当前使用的两个主要的XML API。你可
以使用任何一种(或者在同一时间使用两种)来处理XML文档,然而DOM将文档载入到内存中处理,而SAX则相反,它可以检测一个即将到来的 XML
流,由此并不需要所有的XML代码同时载入到内存中。
选择DOM与SAX,与在一个数据库中的表单与视图之前选择一样:选择适合于当前实际情况的方法。如果你只是想简单地查看XML文档而不处理它
,那么请选择使用SAX。
SAX与DOM之间的区别
SAX与DOM之间有一些显著区别,包括:
DOM是复杂对象处理的首选,比如当XML比较复杂的时候,或者当你需要随机处理文档中数据的时候。SAX从文档的开始通过每一节点移动,以定
位一个特定的节点。
DOM为载入到内存的文档节点建立类型描述。最终,这些描述呈现了可容易横向移动、潜在巨大、树型结构。如果XML很冗长,DOM就会显示出无
法控制的胀大。例如,一个300KB的XML文档可以导致RAM或者虚拟内存中的3,000,000KB的DOM树型结构。通过比较就会发现,一个SAX文档根
本就没有被解构,它也没有隐藏在内存空间中(当然当XML流被读入时,会有部分文档暂时隐藏在内存中)。SAX就是一种“更轻巧的”技术──
它可以给你的系统带来更轻的负担。SAX相当于观看一场马拉松比赛,而DOM就好比邀请所有的比赛选手到家里参加晚餐。
所以,你如何选择SAX和DOM?如果你处理复杂的东西,比如高级XSLT转换,或者Xpath过滤,请选择使用DOM。如果你建立或者更改XML文档,你
也可以选择DOM。
相反,你可以使用SAX来查询或者阅读XML文档。SAX可以快速扫描一个大型的XML文档,当它找到查询标准时就会立即停止,然后再处理之。
在某些情况下,在一个方案中,最佳的选择是使用DOM和SAX处理不同的部分。例如,你可以使用DOM将XML载入到内存并改变它,然后通过从DOM
树中发送一个SAX流而转移最后的结果。
篇8:腾讯实习生笔试题
腾讯实习生笔试题
一、单项选择题
1) 给定3个int类型的正整数x,y,z,对如下4组表达式判断正确的选项()
Int a1=x+y-z; int b1=x*y/z;
Int a2=x-z+y; int b2=x/z*y;
Int c1=xz; int d1=x&y|z;
Int c2=x>>z<
a1一定等于a2
b1一定定于b2
c1一定等于c2
d1一定等于d2
2) 程序的完整编译过程分为是:预处理,编译,汇编等,如下关于编译阶段的编译优化的说法中不正确的是()
A)死代码删除指的是编译过程直接抛弃掉被注释的代码;
B) 函数内联可以避免函数调用中压栈和退栈的开销
For循环的循环控制变量通常很适合调度到寄存器访问
D)强度削弱是指执行时间较短的指令等价的替代执行时间较长的指令
3) 如下关于进程的面熟不正确的是()
A)进程在退出时会自动关闭自己打开的'所有文件
B) 进程在退出时会自动关闭自己打开的网络链接
C) 进程在退出时会自动销毁自己创建的所有线程
D)进程在退出时会自动销毁自己打开的共享内存
4) 计算表达式x6+4×4+2×3+x+1最少需要做()次乘法
A)3
B)4
C)5
D)6
5) SQL语言中删除一个表的指令是()
DROP TABLE
DELETE TABLE
DESTROY TABLE
REMOVE TABLE
7)某产品团队由美术组、产品组、client程序组和server程序组4个小组构成,每次构建一套完整的版本时,需要各个组发布如下资源,美术组想客户端提供图像资源(需要10分钟)
,产品组向client组合server提供文字内容资源(同时进行,10分钟),server和client源代码放置在不同工作站上,其完整编译时间均为10分钟切编译过程不依赖于任何资源,client程序(不包含任何资源)在编译完毕后还需要完成对程序的统一加密过程(10分钟)。可以请问,从要完成一次版本构建(client与server的版本代码与资源齐备),至少需要多少时间()
A)60分钟
B)40分钟
C)30分钟
D)20分钟
8)如下关于编译链接的说法错误的是()
A)编译优化会使得编译速度变慢
B) 预编译头文件可以优化程序的性能
C) 静态链接会使得可执行文件偏大
D)动态链接库会使进程启动速度偏慢
9)如下关于链接的说法错误的是()
A)一个静态库中不能包含两个同名全局函数的定义
B)一个动态库中不能包含两个同名全局函数的定义
C)如果两个静态库都包含一个同名全局函数,他们不能同时被链接
D)如果两个动态库都包含一个同名全局函数,他们不能同时被链接
10)某火车站要通过一条栈道(先进后出)来调换进入车站的列车顺序,若进站的列车顺序为A、B、C,则下列哪个出站顺序不可能?()
A)ABC
B)ACB
C)CAB
D)CBA
11)栈是一种智能在某一端插入和删除的特殊线性表,它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,若6元素为A、B、C、D、E、F出栈顺序为B、D、C、F、E、A,则S栈的最小容量为()
A)3
B)4
C)5
D)6
12)找工作的季节马上就到了,很多同学去图书馆借阅《面试宝典》这本书,现在图书馆外有6名同学排队,其中3名同学要将手中的《面试宝典》还至图书馆,有3名同学希望从图书馆中可以借到《面试宝典》,若当前图书馆内已无库存《面试宝典》,要保证借书的3名同学可以借到书,请问这6位同学有多少种排队方式()
A)60
B)120
C)180
D)360
13)若完全二叉树的节点个数为2N-1,则叶节点个数为()
A)N-1
B)2×N
C)2N-1
D)2N
14)排序算法的稳定是指,关键码相同的记录排序前后相对位置不发生改变,下面哪种排序算法是不稳定的()
A)插入排序
B)冒泡排序
C)快速排序
D)归并排序
15)下列说法中错误的是:()
A)插入排序某些情况下复杂度为O(n)
B)排序二叉树元素查找的复杂度可能为O(n)
C)对于有序列表的排序最快的是快速排序
D)在有序列表中通过二分查找的复杂度一定是O(n log2n)
16)在程序设计中,要对两个16K×16K的多精度浮点数二维数组进行矩阵求和时,行优先读取和列优先读取的区别是()
A)没区别
B)行优先快
C)列优先快
D)2种读取方式速度为随机值,无法判断
【PHP实习生笔试题】相关文章:
3.笔试题
5.CPMP笔试题
6.笔试题继承
7.笔试题编译程序
8.HTC笔试题
10.雅虎笔试题






文档为doc格式