`
varsoft
  • 浏览: 2567904 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

[原创]我自己想的几道入门PHP笔试题

阅读更多

我自己想的几道入门PHP笔试题,没有什么意义,只是自己随便想想,算是好玩。


一、基础题

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;
}

分享到:
评论

相关推荐

    华信笔试题笔试题笔试题

    大连华信去年的笔试题,可以给各位即将工作的同学一些参考

    嵌入式软件笔试题合集.zip

    嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集嵌入式软件笔试题合集...

    java笔试题笔试题

    java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 ...

    中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题

    中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题 v中兴笔试题 中兴笔试题 ...中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题

    C++面试题笔试题C++ 数据结构算法笔试题资料合集.zip

    C++面试题笔试题C++ 数据结构算法笔试题资料合集: 50个C、C++面试题.pdf C++ 数据结构、算法笔试题.docx C++基础面试题.docx C++开发工程师面试题库.docx C++技能测试试卷一及答案.docx C++技能测试试卷二及答案....

    腾讯php工程师笔试题

    以下是对几道典型笔试题目的详细解析: 1. 设计程序缓存和查找算法以处理重复登录提醒 在面对每分钟60万次登录的高并发场景时,我们需要考虑如何有效地存储和识别5分钟内的重复登录用户。一种可能的解决方案是使用...

    129道经典.NET笔试题

    129道经典.NET笔试题,中小型企业常考.NET笔试题,欢迎广大朋友下载学习,是非常基础的一些知识常考点,希望大家可以把它们背的滚瓜烂熟,因为走到哪儿找工作,先做的都是一套笔试题,而这些笔试题基本都是来自这儿!

    C#笔试题大全C#笔试题大全C#笔试题大全.

    C#笔试题大全C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.C#笔试题大全.,让你...

    初级PHP程序员笔试题

    初级PHP程序员笔试题——结合算法的思想!

    Java笔试题汇总(125道企业常见java笔试题)

    本资料"Java笔试题汇总(125道企业常见java笔试题)"包含了125个企业在招聘过程中可能会遇到的Java相关问题及其答案,涵盖了Java基础、Javaweb等多个方面,旨在帮助求职者全面了解并准备Java面试。 Java基础部分...

    2017最新最全PHP面试题笔试题

    这个资料包包含的"2017最新最全【PHP面试题】【笔试题】.txt"文件将涵盖这些领域的题目,通过解答这些题目,开发者可以检验自己的PHP知识掌握程度,找出不足并进行针对性的学习和提升。对于PHP开发者来说,熟练掌握...

    2012-2015历年中国移动笔试真题资料移动招聘合集.zip

    2012-2015历年中国移动笔试真题资料移动招聘合集: 2010年中国移动北京分公司校园招聘网申测试题.doc 2010江苏移动招聘笔试完整试卷.doc 2011年中国移动广东公司招聘笔试试题及答案---.doc 2011年江苏移动招聘笔试...

    c++笔试题汇总c++笔试题汇总.rar

    c++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rar

    100道程序员笔试题

    这份"100道程序员笔试题"集合涵盖了多种编程语言、数据结构、算法、操作系统、网络、数据库等多个领域的核心知识点,是提升技术能力的好资料。下面我们将详细探讨这些题目所涉及的关键知识。 1. **编程语言基础**:...

    阿里巴巴校招前端笔试题

    阿里巴巴校招前端笔试题 校招前端笔试题.pages

    计算机专业笔试题

    计算机专业笔试题,方便找工作的同学学习下载

    2021紫光笔试题IC校招笔试题.zip

    《2021紫光笔试题IC校招笔试题》是一个针对集成电路(IC)行业的笔试题目集合,主要针对应届毕业生的招聘过程。紫光集团是中国知名的集成电路设计与制造企业,其笔试题目的涵盖范围广泛,旨在测试应聘者的专业知识、...

    荣耀笔试题总结.docx

    荣耀笔试题总结.docx

Global site tag (gtag.js) - Google Analytics