整理过的PHP初级程序员、开发工程师能力测试

PHP初级程序员、开发工程师能力测试。本测试来源于网络整理及自己的一些理解,加入了一些自己开发中遇到的问题。
以后将不大接触PHP了,故而整理一下贴出来,修改了部分题目,解答了部分题,本贴不附答案。。
-----------------------------------昏哥线------------------------------
PHP初级程序员能力测试[闭卷]
注:①本测试满分100+4分,60分及格,形式为闭卷,不得翻阅任何手册和参考书籍。本试卷使用的PHP版本为5.2.6+,WEB服务器使用APACHE2+,开发平台为WINDOWS xp+
 ②本测试时间为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分】

3.请问$_GET,$_POST,$_REQUEST变量的作用是什么?区别是什么?【考察点:php 的变量机制 本小步骤:3分】

已知现在有一个表单定义如下:
<form action="?na.me=chen" method="post">
<input type="text" name="name" value="chen_rs"/>
<input type="submit" value="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中,找到了初始化请求相关的变量的函数。其部分代码如下:
PHPAPI void php_register_variable_ex(char *var, zval *val, zval *track_vars_array TSRMLS_DC){
     char *p = NULL;
     char *ip; /* index pointer */
     char *index, *escaped_index = NULL;
     int var_len, index_len;
     zval *gpc_element, **gpc_element_p;
     zend_bool is_array = 0;
     HashTable *symtable1 = NULL;
     assert(var != NULL);
       if (track_vars_array) {
         symtable1 = Z_ARRVAL_P(track_vars_array);
     } else if (PG(register_globals)) {
         symtable1 = EG(active_symbol_table);
     }
     if (!symtable1) {
         /* Nothing to do */
         zval_dtor(val);
         return;
     }
     while (*var && *var==' ') {
         var++;
     }
     for (p = var; *p; p++) {
         if (*p == ' ' || *p == '.') {
             *p='_';
         } else if (*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;$i<count($fruit);$i++){
print "水果名字".$fruit[i];
}
for($i=1;$i<8;$i++){array_push($week,$i);}
?>
试优化本代码。【2分】

(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分】


(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+,FIREFOX 3+。3分】
效果图如下:
1.JPG
(2).现在有一个表格,第一列是选择框,选中需要删除的行后(要求有全选/反选功能),点击页面底部的删除按钮,则将所在行首先进行客户端无刷新删除,返回一个字符串,包含要删除的所有行的字段名(形如&del=1,3,5..)来供AJAX调用。【不要求完成AJAX部分代码,仅需要完成DOM操作和参数组合代码。兼容性要求:IE6+,FIREFOX 3+。  6分 】
效果图如下
2.JPG

(3)试说明class和id的区别。【2分】


(4)请真实实现下面的表单。【3分】
 3.JPG
(5)现有一个表格,每行记录了一些数据,最上端有一下拉框,值为单位,现在要求按下拉框中选择的单位进行数值的转换过程。【兼容性要求:IE6+  6分】
效果图如下:
 4.JPG

7.算法。【本大题下所有小题不限制所用语言平台,主要考察算法技巧】
(1)组合算法【8分】
有一个数组a,有N个元素,现在要求从中找出含有m(m<N)个元素的所有组合。

(2)约瑟夫环(Josephus)问题。【6分】

8.其他【考察点:E文和综合分析能力】。

(1)    翻译下面的英文。【2分】
Note the missing concatenation operator between the two strings leads to the whitespace error that is so named above. The concatenation operator instructs PHP to ignore the whitespace between the two code tokens (the so named "encapsed" data"), rather than parse it as a token itself.


(2)    翻译下面的中文。【2分】
大多数函数都带有自己的属性以便于明确说明或者修改他们的行为,smarty函数的属性很像HTML中的属性. 静态数值不需要加引号,但是字符串建议使用引号. 如果用变量作属性,它们也不能加引号.


(3)    名词解释。【每个 1分】
--Comet:

--Curl:

--Pdo:

--Factory:

--依赖注入:

--Opcode

--CURD:

(4)农民养一头猪,需要花费半年时间,每天都耗费大量的精力,实际上算上劳动力的话,不赚反亏,可农民朋友们为什么还要坚持养猪?【4分】


仅有一条评论 »

  1. nihao nihao

白菜的弟弟的同学的老师的儿子的妈妈养的小狗的表弟的主人的朋友说看帖不回会被鄙视de

添加新评论 »

【f(x,y)=(y^2-4y)(x^2-6x)的极值(请填入答案,答案见本表单title)】