黑夜路人出的几道php笔试题


Posted in PHP onAugust 04, 2009

一、基础题
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; 
function get_count(){ 
static $count = 0; 
return $count++; 
} 
echo $count; 
++$count; 
echo get_count(); 
echo get_count(); 
?>

5. 写出如下程序的输出结果
<? 
$GLOBALS['var1'] = 5; 
$var2 = 1; 
function get_value(){ 
global $var2; 
$var1 = 0; 
return $var2++; 
} 
get_value(); 
echo $var1; 
echo $var2; 
?>

6. 写出如下程序的输出结果
<? 
function 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. 使用五种以上方式获取一个文件的扩展名
function get_ext1($file_name){ 
return strrchr($file_name, '.'); 
} 
function get_ext2($file_name){ 
return substr($file_name, strrpos($file_name, '.')); 
} 
function get_ext3($file_name){ 
return array_pop(explode('.', $file_name)); 
} 
function get_ext4($file_name){ 
$p = pathinfo($file_name); 
return $p['extension']; 
} 
function get_ext5($file_name){ 
return strrev(substr(strrev($file_name), 0, strpos(strrev($file_name), '.'))); 
}

二、算法题
1. 使用PHP描述冒泡排序和快速排序算法,对象可以是一个数组
//冒泡排序(数组排序) 
function 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; 
} 
//快速排序(数组排序) 
function 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描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组
//二分查找(数组里查找某个元素) 
function 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; 
} 
//顺序查找(数组里查找某个元素) 
function 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是降序 
function array_sort($arr, $keys, $order=0) { 
if (!is_array($arr)) { 
return false; 
} 
$keysvalue = array(); 
foreach($arr as $key => $val) { 
$keysvalue[$key] = $val[$keys]; 
} 
if($order == 0){ 
asort($keysvalue); 
}else { 
arsort($keysvalue); 
} 
reset($keysvalue); 
foreach($keysvalue as $key => $vals) { 
$keysort[$key] = $key; 
} 
$new_array = array(); 
foreach($keysort as $key => $val) { 
$new_array[$key] = $arr[$val]; 
} 
return $new_array; 
}
PHP 相关文章推荐
PHP伪静态页面函数附使用方法
Jun 20 PHP
关于PHP递归算法和应用方法介绍
Apr 15 PHP
深入apache配置文件httpd.conf的部分参数说明
Jun 28 PHP
浅析Mysql 数据回滚错误的解决方法
Aug 05 PHP
php数据库备份还原类分享
Mar 20 PHP
php生成shtml类用法实例
Dec 09 PHP
Yii的Srbac插件用法详解
Jul 14 PHP
浅谈php和js中json的编码和解码
Oct 24 PHP
Redis使用Eval多个键值自增的操作实例
Nov 04 PHP
PHP读取XML格式文件的方法总结
Feb 27 PHP
PHP判断是否是微信打开,浏览器打开的方法
Mar 14 PHP
php使用scandir()函数扫描指定目录下所有文件示例
Jun 08 PHP
谈谈新手如何学习PHP 默默经典版本
Aug 04 #PHP
用PHP的ob_start() 控制您的浏览器cache
Aug 03 #PHP
一贴学会PHP 新手入门教程
Aug 03 #PHP
php 获得汉字拼音首字母的函数
Aug 01 #PHP
PHP 上传文件的方法(类)
Jul 30 #PHP
PHP 文章中的远程图片采集到本地的代码
Jul 30 #PHP
PHP 中文乱码解决办法总结分析
Jul 30 #PHP
You might like
php 购物车实例(申精)
2009/05/11 PHP
PHP pear安装配置教程
2016/05/14 PHP
linux下php上传文件注意事项
2016/06/11 PHP
php set_include_path函数设置 include_path 配置选项
2016/10/30 PHP
[原创]php实现 data url的图片生成与保存
2016/12/04 PHP
利用PHP实现一个简单的用户登记表示例
2017/04/25 PHP
JQuery从头学起第二讲
2010/07/04 Javascript
javascript用户注册提示效果的简单实例
2013/08/17 Javascript
javascript自定义startWith()和endWith()的两种方法
2013/11/11 Javascript
JavaScript中实现最高效的数组乱序方法
2014/10/11 Javascript
Javascript中使用A标签获取当前目录的绝对路径方法
2015/03/02 Javascript
javascript实现百度地图鼠标滑动事件显示、隐藏
2015/04/02 Javascript
jQuery密码强度检测插件passwordStrength用法实例分析
2015/10/30 Javascript
JavaScript学习笔记整理之引用类型
2016/01/22 Javascript
基于BootstrapValidator的Form表单验证(24)
2016/12/12 Javascript
BootStrap学习笔记之nav导航栏和面包屑导航
2017/01/03 Javascript
Bootstrap + AngularJS 实现简单的数据过滤字符查找功能
2017/07/27 Javascript
详解为Bootstrap Modal添加拖拽的方法
2018/01/05 Javascript
vue2 mint-ui loadmore实现下拉刷新,上拉更多功能
2018/03/21 Javascript
vue-cli监听组件加载完成的方法
2018/09/07 Javascript
小程序实现五星点评效果
2018/11/03 Javascript
vuejs移动端实现div拖拽移动
2019/07/25 Javascript
Jquery $.map使用方法实例详解
2020/09/01 jQuery
原生js实现自定义滚动条
2021/01/20 Javascript
[02:52]2014DOTA2西雅图国际邀请赛 CIS战队巡礼
2014/07/07 DOTA
python中pygame模块用法实例
2014/10/09 Python
Python中subprocess的简单使用示例
2015/07/28 Python
使用XML库的方式,实现RPC通信的方法(推荐)
2017/06/14 Python
Python 中Pickle库的使用详解
2018/02/24 Python
pandas 使用apply同时处理两列数据的方法
2018/04/20 Python
Python实现字符串匹配的KMP算法
2019/04/04 Python
详解python运行三种方式
2019/05/13 Python
css3与html5实现响应式导航菜单(导航栏)效果分享
2014/02/12 HTML / CSS
AURALog面试题软件测试方面
2013/10/22 面试题
留学推荐信怎么写
2015/03/26 职场文书
尼克胡哲观后感
2015/06/08 职场文书