黑夜路人出的几道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 相关文章推荐
PHP5在Apache下的两种模式的安装
Sep 05 PHP
PHPwind整合最土系统用户同步登录实现方法
Dec 08 PHP
有关phpmailer的详细介绍及使用方法
Jan 28 PHP
php出现web系统多域名登录失败的解决方法
Sep 30 PHP
php保存任意网络图片到服务器的方法
Apr 14 PHP
php简单smarty入门程序实例
Jun 11 PHP
PHP面向对象详解(三)
Dec 07 PHP
PHP+shell脚本操作Memcached和Apache Status的实例分享
Mar 11 PHP
Symfony2学习笔记之控制器用法详解
Mar 17 PHP
PHP精确计算功能示例
Nov 29 PHP
php中bind_param()函数用法分析
Mar 28 PHP
详解PHP序列化和反序列化原理
Jan 15 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
centos下file_put_contents()无法写入文件的原因及解决方法
2017/04/01 PHP
使用php自动备份数据库表的实现方法
2017/07/28 PHP
layui数据表格自定义每页条数limit设置
2019/10/26 PHP
Javascript中的数学函数
2007/04/04 Javascript
jquery 图片上传按比例预览插件集合
2011/05/28 Javascript
关于数据与后端进行交流匹配(点亮星星)
2016/08/03 Javascript
微信小程序 SocketIO 实例讲解
2016/10/13 Javascript
利用纯Vue.js构建Bootstrap组件
2016/11/03 Javascript
Angularjs实现搜索关键字高亮显示效果
2017/01/17 Javascript
jQuery滑动到底部加载下一页数据的实例代码
2017/05/22 jQuery
简单快速的实现js计算器功能
2017/08/17 Javascript
nodejs aes 加解密实例
2018/10/10 NodeJs
[01:41]DOTA2 2015国际邀请赛中国区预选赛第三日战报
2015/05/28 DOTA
Python常用模块介绍
2014/11/21 Python
python通过BF算法实现关键词匹配的方法
2015/03/13 Python
在Python中使用base64模块处理字符编码的教程
2015/04/28 Python
Python实现更改图片尺寸大小的方法(基于Pillow包)
2016/09/19 Python
python3通过selenium爬虫获取到dj商品的实例代码
2019/04/25 Python
详解Python图像处理库Pillow常用使用方法
2019/09/02 Python
在python中创建指定大小的多维数组方式
2019/11/28 Python
matplotlib subplot绘制多个子图的方法示例
2020/07/28 Python
class类在python中获取金融数据的实例方法
2020/12/10 Python
CSS3实现复选框动画特效示例代码
2016/09/27 HTML / CSS
中国京东和泰国中央集团合资的网站:JD CENTRAL
2020/08/22 全球购物
九州传奇上机题
2014/07/10 面试题
大学毕业感言100字
2014/02/03 职场文书
房地产开盘策划方案
2014/02/10 职场文书
护理专科自荐书范文
2014/02/18 职场文书
机关节能减排实施方案
2014/03/17 职场文书
机关会计岗位职责
2014/04/08 职场文书
师德演讲稿范文
2014/05/06 职场文书
面试通知邮件
2015/04/20 职场文书
追悼会悼词大全
2015/06/23 职场文书
2015暑假打工实践报告
2015/07/13 职场文书
用Python监控你的朋友都在浏览哪些网站?
2021/05/27 Python
Mysql中的触发器定义及语法介绍
2022/06/25 MySQL