您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > PHP初级软件工程师能力测试题目
PHP初级程序员测试-1-PHP初级软件工程师能力测试[闭卷]注:①本测试满分100+4分,60分及格,形式为闭卷,不得翻阅任何手册和参考书籍。本试卷使用的PHP版本为5.2.6+,WEB服务器使用APACHE2+,开发平台为WINDOWSxp+②本测试时间为3小时,若题后标明不限语言平台,则你可以使用PHP,C/C++,JAVA等任意一门语言完成。③出题人:陈小白。1.已知三点A,B,C的坐标为A(20,20),B(15,40),C(50,30),三点构成一个三角形,求判断点D(30,18)是否在此三角形内。【本题主要考察基本算法,解答不限语言平台5分】2.求1~50万以内的素数。【本题主要考察基本算法,解答不限语言平台5分】附加题:用PHP求出1亿以内的素数并保存在文件中;求出100亿以内的素数的大概个数。【+4分】PHP初级程序员测试-2-3.请问$_GET,$_POST,$_REQUEST变量的作用是什么?区别是什么?【考察点:php的变量机制本小步骤:3分】已知现在有一个表单定义如下:formaction=?na.me=chenmethod=postinputtype=textname=namevalue=chen_rs/inputtype=submitvalue=submit//form那么$_GET['na.me']和$_POST['na.me']的值是什么?为什么?【本小步骤:2分】然而某衰哥在某次测试中总是打印不出POST过来的值,问题可能出在什么地方?【本小步骤:1分】为了解决上面涉及的部分问题,我们需要了解PHP的变量机制。在每个请求到来以后,apache处理到response阶段的时候,会将控制权交给PHP模块,PHP模块会在处理请求之前首先间接调用php_request_startup(具体调用序列是send_php-apache_php_module_main-php_request_startup).通过这位衰哥的分析,在php_request_startup中,找到了初始化请求相关的变量的函数。其部分代码如下:PHPAPIvoidphp_register_variable_ex(char*var,zval*val,zval*track_vars_arrayTSRMLS_DC){char*p=NULL;char*ip;/*indexpointer*/char*index,*escaped_index=NULL;intvar_len,index_len;zval*gpc_element,**gpc_element_p;zend_boolis_array=0;HashTable*symtable1=NULL;assert(var!=NULL);if(track_vars_array){symtable1=Z_ARRVAL_P(track_vars_array);}elseif(PG(register_globals)){symtable1=EG(active_symbol_table);}if(!symtable1){/*Nothingtodo*/zval_dtor(val);return;}while(*var&&*var==''){var++;}PHP初级程序员测试-3-for(p=var;*p;p++){if(*p==''||*p=='.'){*p='_';}elseif(*p=='['){is_array=1;ip=p;*p=0;break;}....以下省略好了,请详细阅读上面的代码,回答这段代码主要是干什么的?为什么要这么处理?【本小步骤:3分】4.定义一个类,使对象可以像数组一样进行foreach循环,要求属性必须是私有。【考察点:PHP5中类的定义和OO高级特性5分】5.PHP语言细节【考察点:PHP基础语法知识和杂类】(1)有下面一段不够优雅的代码,也许还存在BUG:?php$fruit[apple]='苹果';$fruit[banana]='香蕉';$fruit[pear]='梨';for($i=0;$icount($fruit);$i++){print水果名字.$fruit[i];}for($i=1;$i8;$i++){array_push($week,$i);}?试优化本代码。【2分】PHP初级程序员测试-4-(2)我们都知道PHP4的面向对象是不完善的,比如说PHP4的类没有析构函数,那如果我要在PHP4中实现析构函数的功能,该如何实现?【2分】(3)include()和require()函数有什么区别?可以在一个文件里多次include同一个文件吗?【2分】(4)在C语言的循环判断条件中,为了实现计数器的累加,可以有三种形式,也就是:i++,++i,i+=1.试给这三种形式计数器的速度快慢排序并解释。【假设编译器不进行自动优化3分】(5)已知一个MYSQL数据库中有100万条用户资料数据,现在需要随机取出10条不重复的记录,应该如何做最快最简单?【4分】(6)试述COOKIE和SESSION的用法和区别,以及它们之间的联系。如果浏览器关闭了,SESSION还在吗?COOKIE还在吗?【3分】(7)定义一个抽象类student,然后由子类us继承并实现它的一个抽象方法do_homework()。【3分】PHP初级程序员测试-5-(8)怎样将一个数组对象存储到数据表中的一个字段内?怎样判断传入一个函数的参数是否完整?【2分】(9)不用任何函数获取文件的扩展名。【3分】(10)if(strpos($str,'a')==false){}这个语句有什么bug?【1分】(11)写出发贴数最多的十个人名字的SQL,利用下表:members(id,username,posts,pass,email)【2分】6.WEB页面相关技术。【考察点:HTML,CSS,JS的基础知识】(1)利用CSS技术实现横向菜单。【兼容性要求:IE6+,FIREFOX3+。3分】效果图如下:PHP初级程序员测试-6-(2).现在有一个表格,第一列是选择框,选中需要删除的行后(要求有全选/反选功能),点击页面底部的删除按钮,则将所在行首先进行客户端无刷新删除,返回一个字符串,包含要删除的所有行的字段名(形如&del=1,3,5..)来供AJAX调用。【不要求完成AJAX部分代码,仅需要完成DOM操作和参数组合代码。兼容性要求:IE6+,FIREFOX3+。6分】效果图如下(3)试说明class和id的区别。【2分】(4)请真实实现下面的表单。【3分】PHP初级程序员测试-7-(5)现有一个表格,每行记录了一些数据,最上端有一下拉框,值为单位,现在要求按下拉框中选择的单位进行数值的转换过程。【兼容性要求:IE6+6分】效果图如下:PHP初级程序员测试-8-7.算法。【本大题下所有小题不限制所用语言平台,主要考察算法技巧】(1)组合算法【8分】有一个数组a,有N个元素,现在要求从中找出含有m(mN)个元素的所有组合。(2)约瑟夫环(Josephus)问题。【6分】8.其他【考察点:E文和综合分析能力】。(1)翻译下面的英文。【2分】Notethemissingconcatenationoperatorbetweenthetwostringsleadstothewhitespaceerrorthatissonamedabove.TheconcatenationoperatorinstructsPHPtoignorethewhitespacebetweenthetwocodetokens(thesonamedencapseddata),ratherthanparseitasatokenitself.(2)翻译下面的中文。【2分】PHP初级程序员测试-9-大多数函数都带有自己的属性以便于明确说明或者修改他们的行为,smarty函数的属性很像HTML中的属性.静态数值不需要加引号,但是字符串建议使用引号.如果用变量作属性,它们也不能加引号.(3)名词解释。【每个1分】--Comet:--Curl:--Pdo:--Factory:--依赖注入:--Opcode--CURD:(4)农民养一头猪,需要花费半年时间,每天都耗费大量的精力,实际上算上劳动力的话,不赚反亏,可农民朋友们为什么还要坚持养猪?【4分】
本文标题:PHP初级软件工程师能力测试题目
链接地址:https://www.777doc.com/doc-2886788 .html