当前位置:文档之家› PHP笔试题+答案

PHP笔试题+答案

PHP程序员考题考试说明:1、试卷总分为100分。

2、本次考试时间为120分钟。

一、逻辑推理题(9分,每题3分)1. Jack夫妇请了Tom夫妇和Henrry夫妇来他们家玩扑克。

这种扑克游戏有一种规则,夫妇两个不能一组。

Jack跟Lily一组,Tom的队友是Henrry的妻子,Linda的丈夫和Sara一组。

那么这三对夫妇分别为:(B)A. Jack—Sara,Tom—linda,Henrry—LilyB. Jack—Sara,Tom—Lily,Henrry—lindaC. Jack—linda,Tom—Lily,Henrry—SaraD. Jack—Lily,Tom—Sara,Henrry—linda2. 有17根11.1米长的钢管,要截成1.0米和0.7米的甲、乙两种长度的管子,要求截成的甲、乙两种管子的数量一样多。

问:最多能截出甲、乙两种管子各多少根?(C)A. 99B.105C. 111D. 1213. 一个水库在年降水量不变的情况下,能够维持全市12万人20年得用水量。

在该市新迁入3万人之后,该水库只够维持15年得用水量。

市政府号召节约用水,希望能将水库的使用寿命提高到30年。

那么该市市民平均需要节约多少比例的水才能实现政府制定的目标?(A)A.2/5B.2/7C.1/3D.1/4二、PHP语言题(36分,每题3分)1.语句for($k=0;$k=1;$k++);和语句for($k=0;$k==1;$k++);执行的次数分别是(3分):A 无限和0B 0和无限C 都是无限D 都是0参考答案:A2.读取post方法传递的表单元素值的方法是(3分):A $_post["名称"]B $_POST["名称"]C $post["名称"]D $POST["名称"]参考答案:B3.下面哪个函数可以打开一个文件,以对文件进行读和写操作?(3分)A fget()B file_open()C fopen()D open_file()参考答案:C4.下面哪个选项没有将 john 添加到users 数组中? (3分)(a) $users[] = ‘john’;(b) array_add($users,’john’);(c) array_push($user s,‘john’);(d) $users ||= ‘john’;参考答案:B5.PHP是一种______脚本语言,基于______引擎。

PHP最常被用来开发动态的______内容,此外,它同样还可被用来生成______(以及其他)文档。

(3分)A.动态,PHP,数据库,HTMLB.嵌入式,Zend,HTML,XMLC.基于Perl的,PHP,Web,静态D.嵌入式,Zend,Docbook文档,MySQLE.基于Zend的,PHP,图像,HTML参考答案:B6.函数的形参与实参之间的数值传递方式有哪些?如何传递?(5分)答:(1)按值传递方式,将实参的值复制到对应的形参中,在函数内部的操作针对形参进行,操作的结果不会影响到实参,即函数返回值,实参的值不会改变。

(2)按引用传递方式,按引用传递方式就是引用将实参的内存地址传递到形参中,这时在函数内部的所有的操作都会影响到实参的值,返回后实参的值会发生变化,引用传递方式就是传递时在原基础上加&号即可。

(3)默认函数(可选参数)。

可选参数指定某个参数为可选参数,将可选参数放在参数引表末尾,并且指定其默认值为空。

7.定义:$str=”a1b2c3”,请写出下面两种匹配的结果以及解释一下两者的区别。

(5分)preg_match(‘/[\w]*[\d]+/i’),$str,$ary); echo $ary[0];preg_match(‘/[\w]*?[\d]+/i’,$str,$ary); echo $ary[0];参考答案:第一个输出为a1b2c3,第二个输出为a1。

区别主要是[\w]*,后面有没有跟问号,PHP的正则匹配模式默认为贪婪模式,即第一个模式,表示*取尽量多的匹配字符,第二个加了个限定符?,为非贪婪(或懒惰模式),表示*取尽量少的匹配字符。

(能写出贪婪和懒惰的区别,正则表达式已经没大问题了。

)8.session和cookies 有什么区别?如果浏览器禁用了cookies,session还可以使用吗?为什么?(5分)参考答案:cookies存储在客户端,session存储在服务端。

浏览器禁用了cookies,session也不可以使用,因为sesession是需要客户端发送一个sessionid到服务端,禁用了cookies,客户端就不能保存此sessionid,session也失效了。

(session是常用的,考察使用的熟悉程度)9.PHP二进制数据流是处理是用什么函数的?(4分)参考答案:pack和unpack。

(与服务端通信用到的解析方法)10.求两个日期的差数,例如2009-3-1 ~ 2009-4-4 的日期差数?(4分)答:(strtotime(‘2009-4-4’)-strtotime(‘2009-3-1’))/3600*24三、Linux操作题(20分,每题5分)1.请尽量写出你熟悉的linux文件操作命令及其作用。

参考答案:自由发挥.基本的文件操作命令rm(移除),mv(移动),cp(复制),chmod(改权限),pwd(查看当前路径),mkdir(创建目录)ls(列举当前目录)2.linux怎么添加定时任务?参考答案:crontab –e3.Linux文本编辑器vim(vi)命令行模式下有:q,:w, /word ,?word表示什么?参考答案::q退出,:w保存,/word往下查找,?word往上查找.(熟悉linux编辑)4.简述linux下,rsync同步命令怎么实现无需输入密码数据同步?(5分)参考答案:在机器1上生成公钥私钥对,将生成的公钥复制至机器2,加入到~/.ssh/id_dsa.pub。

即可实现无密码同步。

(同步没问题了)四、综合问答题(35分,每题5分)MP,LNMP分别指什么?参考答案:LAMP:linux,apache,mysql,phpLNMP:linux,nginx,mysql,php2.11.请使用伪语言结合数据结构冒泡排序法对以下一组数据进行排序 10 2 36 14 10 25 23 85 99 45。

答:$str=’10 2 36 14 10 25 23 85 99 45′;$arr=explode(‘ ‘,$str);$count=count($arr);for($i=0;$i<$count;$i++){for($j=$i+1;$j<$count;$j++){if($arr[$j]<$arr[$i]){$temp=$arr[$i];$arr[$i]=$arr[$j];$arr[$j]=$temp;}}}$str1=implode(‘ ‘,$arr);echo$str1;3.简述mysql中union all,left join的用法。

参考答案:Union all将两次或多次查询的结果合并。

Left join从左表那里返回所有的行,即使在右表中没有匹配的行。

(这两个能记住,mysql也比较熟了)4.Mysql 优化有什么方法?参考答案:简单点的就是程序员写高质量的sql语句,数据库设计优秀,按需要建立索引(重点)。

深入点的,优化mysql配置。

5.一个表中的Id有多个记录,把所有这个id的记录查出来,并显示共有多少条记录数,用SQL语句及视图、存储过程分别实现。

create procedure proc_countNum(in columnId int,out rowsNo int)beginselect count(*) into rowsNo from member where member_id=columnId;endcall proc_countNum(1,@no);select @no;方法:视图:create view v_countNum as select member_id,count(*) as countNum from member group by member_idselect countNum from v_countNum where member_id=16.请举例说明在你的开发过程中用什么方法来加快页面的加载速度参考答案:自由发挥题,言之有理即可(如:要用到服务器资源时才打开,及时关闭服务器资源,数据库添加索引,页面可生成静态,图片等大文件单独服务器。

使用代码优化工具)。

7.对于大流量的网站,您采用什么样的方法来解决访问量问题?参考答案:确认服务器硬件是否足够支持当前的流量,数据库读写分离,优化数据表,控制大文件的下载,使用不同主机分流主要流量确认服务器硬件是否足够支持当前的流量,数据库读写分离,优化数据表,程序功能规则,禁止外部的盗链,控制大文件的下载,使用不同主机分流主要流量。

相关主题