一、基础题
1. 写出如下程序的输出结果
<BR><? <BR>$str1 = null; <BR>$str2 = false; <BR>echo $str1==$str2 ? '相等' : '不相等'; <BR>$str3 = ''; <BR>$str4 = 0; <BR>echo $str3==$str4 ? '相等' : '不相等'; <BR>$str5 = 0; <BR>$str6 = '0'; <BR>echo $str5===$str6 ? '相等' : '不相等'; <BR>?> <BR>
2. 写出如下程序的输出结果
<BR><? <BR>$a1 = null; <BR>$a2 = false; <BR>$a3 = 0; <BR>$a4 = ''; <BR>$a5 = '0'; <BR>$a6 = 'null'; <BR>$a7 = array(); <BR>$a8 = array(array()); <BR>echo empty($a1) ? 'true' : 'false'; <BR>echo empty($a2) ? 'true' : 'false'; <BR>echo empty($a3) ? 'true' : 'false'; <BR>echo empty($a4) ? 'true' : 'false'; <BR>echo empty($a5) ? 'true' : 'false'; <BR>echo empty($a6) ? 'true' : 'false'; <BR>echo empty($a7) ? 'true' : 'false'; <BR>echo empty($a8) ? 'true' : 'false'; <BR>?> <BR>
3. 写出如下程序的输出结果
<BR><? <BR>$test = 'aaaaaa'; <BR>$abc = & $test; <BR>unset($test); <BR>echo $abc; <BR>?> <BR>
4. 写出如下程序的输出结果
<BR><?$count = 5; <BR>function get_count(){ <BR>static $count = 0; <BR>return $count++; <BR>} <BR>echo $count; <BR>++$count; <BR>echo get_count(); <BR>echo get_count(); <BR>?> <BR>
5. 写出如下程序的输出结果
<BR><? <BR>$GLOBALS['var1'] = 5; <BR>$var2 = 1; <BR>function get_value(){ <BR>global $var2; <BR>$var1 = 0; <BR>return $var2++; <BR>} <BR>get_value(); <BR>echo $var1; <BR>echo $var2; <BR>?> <BR>
6. 写出如下程序的输出结果
<BR><? <BR>function get_arr($arr){ <BR>unset($arr[0]); <BR>} <BR>$arr1 = array(1, 2); <BR>$arr2 = array(1, 2); <BR>get_arr(&$arr1); <BR>get_arr($arr2); <BR>echo count($arr1); <BR>echo count($arr2); <BR>?> <BR>
7. 使用五种以上方式获取一个文件的扩展名
要求:dir/upload.image.jpg,找出 .jpg 或者 jpg ,
必须使用PHP自带的处理函数进行处理,方法不能明显重复,可以封装成函数,比如 get_ext1($file_name), get_ext2($file_name)
二、算法题
1. 使用PHP描述冒泡排序和快速排序算法,对象可以是一个数组
2. 使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组
3. 写一个二维数组排序算法函数,能够具有通用性,可以调用php内置函数
【附答案】(以下答、本文来源gao($daima.com搞@代@#码$网搞gaodaima代码案不一定是最好的,只是一个简单的参考)
一、基础题
1. 相等 相等 不相等
2. true true true true true false true false
3. aaaaaa
4. 5 0 1
5. 5 2
6. 1 2
7. 使用五种以上方式获取一个文件的扩展名
<BR>function get_ext1($file_name){ <BR>return strrchr($file_name, '.'); <BR>} <BR>function get_ext2($file_name){ <BR>return substr($file_name, strrpos($file_name, '.')); <BR>} <BR>function get_ext3($file_name){ <BR>return array_pop(explode('.', $file_name)); <BR>} <BR>function get_ext4($file_name){ <BR>$p = pathinfo($file_name); <BR>return $p['extension']; <BR>} <BR>function get_ext5($file_name){ <BR>return strrev(substr(strrev($file_name), 0, strpos(strrev($file_name), '.'))); <BR>} <BR>
二、算法题
1. 使用PHP描述冒泡排序和快速排序算法,对象可以是一个数组
<BR>//冒泡排序(数组排序) <BR>function bubble_sort($array) <BR>{ <BR>$count = count($array); <BR>if ($count <= 0) return false; <BR>for($i=0; $i<$count; $i++){ <BR>for($j=$count-1; $j>$i; $j--){ <BR>if ($array[$j] < $array[$j-1]){ <BR>$tmp = $array[$j]; <BR>$array[$j] = $array[$j-1]; <BR>$array[$j-1] = $tmp; <BR>} <BR>} <BR>} <BR>return $array; <BR>} <BR>//快速排序(数组排序) <BR>function quick_sort($array) { <BR>if (count($array) <= 1) return $array; <BR>$key = $array[0]; <BR>$left_arr = array(); <BR>$right_arr = array(); <BR>for ($i=1; $i<count($array); $i++){ <BR>if ($array[$i] <= $key) <BR>$left_arr[] = $array[$i]; <BR>else <BR>$right_arr[] = $array[$i]; <BR>} <BR>$left_arr = quick_sort($left_arr); <BR>$right_arr = quick_sort($right_arr); <BR>return array_merge($left_arr, array($key), $right_arr); <BR>} <BR>
2. 使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组
<BR>//二分查找(数组里查找某个元素) <BR>function bin_sch($array, $low, $high, $k){ <BR>if ($low <= $high){ <BR>$mid = intval(($low+$high)/2); <BR>if ($array[$mid] == $k){ <BR>return $mid; <BR>}elseif ($k < $array[$mid]){ <BR>return bin_sch($array, $low, $mid-1, $k); <BR>}else{ <BR>return bin_sch($array, $mid+1, $high, $k); <BR>} <BR>} <BR>return -1; <BR>} <BR>//顺序查找(数组里查找某个元素) <BR>function seq_sch($array, $n, $k){ <BR>$array[$n] = $k; <BR>for($i=0; $i<$n; $i++){ <BR>if($array[$i]==$k){ <BR>break; <BR>} <BR>} <BR>if ($i<$n){ <BR>return $i; <BR>}else{ <BR>return -1; <BR>} <BR>} <BR>
3. 写一个二维数组排序算法函数,能够具有通用性,可以调用php内置函数
<BR>//二维数组排序, $arr是数据,$keys是排序的健值,$order是排序规则,1是升序,0是降序 <BR>function array_sort($arr, $keys, $order=0) { <BR>if (!is_array($arr)) { <BR>return false; <BR>} <BR>$keysvalue = array(); <BR>foreach($arr as $key => $val) { <BR>$keysvalue[$key] = $val[$keys]; <BR>} <BR>if($order == 0){ <BR>asort($keysvalue); <BR>}else { <BR>arsort($keysvalue); <BR>} <BR>reset($keysvalue); <BR>foreach($keysvalue as $key => $vals) { <BR>$keysort[$key] = $key; <BR>} <BR>$new_array = array(); <BR>foreach($keysort as $key => $val) { <BR>$new_array[$key] = $arr[$val]; <BR>} <BR>return $new_array; <BR>} <BR>