迅雷php的笔试题,上机题(郁闷回忆版)

去了迅雷走一朝,笔试过了上机挂了,但是去了不能白去,这里凭记忆把他们的php笔试题和上级题贴出来,其实他们的题也是网上的大路货,也是拿来主义。之前就见过这些题目,心想迅雷不会用网上的这些题目吧,结果还真是。笔试答得还可以,机试没有达到他们的完整需求,差一点都是不行的。是靠记忆的,有点不全。面试时候的笔试和平时考试差不多,也要提前准备一下,如果自己很厉害就算了。想去迅雷的phper们好好练练下面的题吧。偶就是没练就过去了,挂了。

笔试题

——————————————————-

一、基础题

1. 写出如下程序的输出结果

<?

$str1 = null;

$str2 = false;

echo $str1==$str2 ? ‘相等’ : ‘不相等’;

$str3 = ”;

$str4 = 0;

echo $str3==$str4 ? ‘相等’ : ‘不相等’;

$str5 = 0;

$str6 = ‘0’;

echo $str5===$str6 ? ‘相等’ : ‘不相等’;

?>

2. 写出如下程序的输出结果

<?

$a1 = null;

$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. 写出如下程序的输出结果

<?

$test = ‘aaaaaa’;

$abc = & $test;

unset($test);

echo $abc;

?>

4. 写出如下程序的输出结果

<?

$count = 5;

get_count()

{

static $count = 0;

return $count++;

}

echo $count;

++$count;

echo get_count();

echo get_count();

?>

5. 写出如下程序的输出结果

<?

$GLOBALS[‘var1’] = 5;

$var2 = 1;

get_()

{

global $var2;

$var1 = 0;

return $var2++;

}

get_();

echo $var1;

echo $var2;

?>

6. 写出如下程序的输出结果

<?

get_arr($arr)

{

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. 相等 相等 不相等

2. true true true true true false true false

3. aaaaaa

4. 5 0 1

5. 5 2

6. 1 2

7. 使用五种以上方式获取一个文件的扩展名

1)

get_ext1($file_name)

{

return strrchr($file_name, ‘.’);

}

2)

get_ext2($file_name)

{

return substr($file_name, strrpos($file_name, ‘.’));

}

3)

get_ext3($file_name)

{

return array_pop(explode(‘.’, $file_name));

}

4)

get_ext4($file_name)

{

$p = pathinfo($file_name);

return $p[‘extension’];

}

5)

get_ext5($file_name)

{

return strrev(substr(strrev($file_name), 0, strpos(strrev($file_name), ‘.’)));

}

二、算法题

1. 使用PHP描述冒泡排序和快速排序算法,对象可以是一个数组

//冒泡排序(数组排序)

bubble_sort($array)

{

$count = count($array);

if ($count <= 0)

return false;

for($i=0; $i<$count; $i++)

{

for($j=$count-1; $j>$i; $j–)

{

if ($array[$j] < $array[$j-1])

{

$tmp = $array[$j];

$array[$j] = $array[$j-1];

$array[$j-1] = $tmp;

}

}

}

return $array;

}

//快速排序(数组排序)

quick_sort($array)

{

if (count($array) <= 1)

return $array;

$key = $array[0];

$left_arr = array();

$right_arr = array();

for ($i=1; $i<count($array); $i++)

{

if ($array[$i] <= $key)

$left_arr[] = $array[$i];

else

$right_arr[] = $array[$i];

}

$left_arr = quick_sort($left_arr);

$right_arr = quick_sort($right_arr);

return array_merge($left_arr, array($key), $right_arr);

}

2. 使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组

//二分查找(数组里查找某个元素)

bin_sch($array, $low, $high, $k)

{

if ($low <= $high)

{

$mid = intval(($low+$high)/2);

if ($array[$mid] == $k)

{

return $mid;

}

elseif ($k < $array[$mid])

{

return bin_sch($array, $low, $mid-1, $k);

}

else

{

return bin_sch($array, $mid+1, $high, $k);

}

}

return -1;

}

//顺序查找(数组里查找某个元素)

seq_sch($array, $n, $k)

{

$array[$n] = $k;

for($i=0; $i<$n; $i++)

{

if($array[$i]==$k)

{

break;

}

}

if ($i<$n)

{

return $i;

}

else

{

return -1;

}

}

3. 写一个二维数组排序算法函数,能够具有通用性,可以调用php内置函数

//二维数组排序, $arr是数据,$keys是排序的健值,$order是排序规则,1是升序,0是降序

array_sort($arr, $keys, $order=0)

{

if (!is_array($arr))

{

return false;

}

$keys = array();

foreach($arr as $key => $val)

{

$keys[$key] = $val[$keys];

}

if($order == 0)

{

asort($keys);

}

else

{

arsort($keys);

}

reset($keys);

foreach($keys as $key => $vals)

{

$keysort[$key] = $key;

}

$new_array = array();

foreach($keysort as $key => $val)

{

$new_array[$key] = $arr[$val];

}

return $new_array;

}

———————————————-

上机题

——————————————

实现一个分页类,只需要传入结果总数 ,和每页结果数,

效果:上页 12…7 8 9 10 11…20下页,如果当前也为第一页,“上页”变灰不可用,当前页为最后一页的时候,“下页”变灰不可以用,而且要传递到url的具体参数,比如:http://localhost/index.php?page=1,不同的页对应不同的page=x.

—————————————————————————

Published by

3 thoughts on “迅雷php的笔试题,上机题(郁闷回忆版)”

  1. 兄弟。我明天去迅雷面试。。谢谢了哈。第三大题貌似很冗余诶。
    function array_sort($array){
    if(!is_array($array)) return false;
    $newArray = array();
    foreach($array as $k => $a){
    foreach($a as $v){
    $newArray[]=$v;
    }
    }
    sort($newArray);
    return $newArray;
    }

    这是我的解法

  2. 上机题居然还是分页,记得09年去面试的时候也是出的这个上机题。这题库是不是也太久没更新过了

Leave a Reply

Your email address will not be published. Required fields are marked *