黑夜路人出的几道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开发GUI
Oct 09 PHP
无数据库的详细域名查询程序PHP版(2)
Oct 09 PHP
mysql5详细安装教程
Jan 15 PHP
用php实现的获取网页中的图片并保存到本地的代码
Jan 05 PHP
php inc文件使用的风险和注意事项
Nov 12 PHP
PHP OPP机制和模式简介(抽象类、接口和契约式编程)
Jun 09 PHP
图解找出PHP配置文件php.ini的路径的方法
Aug 20 PHP
浅析php设计模式之数据对象映射模式
Mar 03 PHP
php文件包含目录配置open_basedir的使用与性能详解
Apr 03 PHP
Yii框架创建cronjob定时任务的方法分析
May 23 PHP
php使用QueryList轻松采集js动态渲染页面方法
Sep 11 PHP
Thinkphp5 如何隐藏入口文件index.php(URL重写)
Oct 16 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
Zend Studio去除编辑器的语法警告设置方法
2012/10/24 PHP
php防止sql注入代码实例
2013/12/18 PHP
PHP数组和explode函数示例总结
2015/05/08 PHP
php实现评论回复删除功能
2017/05/23 PHP
PHP 数组黑名单/白名单实例代码详解
2019/06/04 PHP
[HTML/CSS/Javascript]WWTJS
2007/09/25 Javascript
jquery1.4 教程二 ajax方法的改进
2010/02/25 Javascript
弹出层之1:JQuery.Boxy (一) 使用介绍
2011/10/06 Javascript
JavaScript 用cloneNode方法克隆节点的代码
2012/10/15 Javascript
对于jQuery性能的一些优化建议
2015/08/13 Javascript
解决jquery插件:TypeError:$.browser is undefined报错的方法
2015/11/21 Javascript
JS创建事件的三种方法(实例代码)
2016/05/12 Javascript
require简单实现单页应用程序(SPA)
2016/07/12 Javascript
javascript类型系统——undefined和null全面了解
2016/07/13 Javascript
微信小程序 选项卡的简单实例
2017/05/24 Javascript
一次围绕setTimeout的前端面试经验分享
2017/06/15 Javascript
JavaScript中使用参数个数实现重载功能
2017/09/01 Javascript
React实践之Tree组件的使用方法
2017/09/30 Javascript
在React项目中使用Eslint代码检查工具及常见问题
2018/10/10 Javascript
微信小程序使用for循环动态渲染页面操作示例
2018/12/25 Javascript
百度小程序之间的页面通信过程详解
2019/07/18 Javascript
vue 在服务器端直接修改请求的接口地址
2020/12/19 Vue.js
Python中collections模块的基本使用教程
2018/12/07 Python
Python Matplotlib 基于networkx画关系网络图
2019/07/10 Python
Python实现一个数组除以一个数的例子
2019/07/20 Python
更新升级python和pip版本后不生效的问题解决
2020/04/17 Python
python seaborn heatmap可视化相关性矩阵实例
2020/06/03 Python
python list等分并从等分的子集中随机选取一个数
2020/11/16 Python
装潢设计实习自我鉴定
2013/09/19 职场文书
办公室助理岗位职责
2013/12/25 职场文书
个人能力自我鉴赏
2014/01/25 职场文书
优秀女职工事迹材料
2014/02/06 职场文书
法制宣传实施方案
2014/03/13 职场文书
教师自查自纠工作情况报告
2014/10/29 职场文书
超级实用!五步法则,教你写好年终工作总结
2019/12/05 职场文书
Python中的协程(Coroutine)操作模块(greenlet、gevent)
2022/05/30 Python