一、基础题
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;
}
分享到:
相关推荐
这些笔试真题可能涵盖以下几个关键知识点: 1. **编程基础**:作为IT入门课程,ACCP5.0会教授基本的编程概念,如变量、数据类型、运算符、流程控制(if-else,循环)、函数等,通常以至少一种编程语言(如Java或C#...
5. PHP笔试与面试:在寻找PHP相关工作时,面试和笔试环节常常涉及基础语法测试、编程题、框架知识以及问题解决能力。准备面试时,你需要复习PHP的核心概念,了解最新版本特性,同时,对于常见的面试问题,如内存管理...
七、面试与笔试题 "php面试题_腾讯.doc"和"笔试面试题.doc"包含了真实的面试问题,涉及了PHP的基础知识、框架应用、项目经验、问题解决能力等多个方面。通过解答这些问题,开发者可以评估自己的技术水平,并了解业界...
关于java回归的笔试题算法简介 目的 本指南的主要目标是让开发人员开始使用算法。 本指南将作为未参加过介绍性算法课程或需要复习基本算法设计的开发人员的路线图。 承诺和要求 根据您对算法的了解,本指南最多可能...
ee笔试题 免费的编程中文书籍索引 免费的编程中文书籍索引 国外程序员在 推荐的程序员必读书籍,。 上的程序员应该阅读的非编程类书籍有哪些? 上的一个流行的编程书籍索引 目录 语言无关类 操作系统 WEB服务器 版本...
亚信java笔试题 Front-knowledge 前端知识汇总 前端知识汇总 1. 综合类 2. 入门类 3. 效果类 4. 工具类 1. 开发中心 2. 综合搜索 3. 综合API 1.API资料文献 2. jQuery 3. Ecmascript 4. Js template 5. 弹出层 6. ...
亚信java笔试题 项目简介 一个 Red Team 攻击的生命周期,整个生命周期包括: 信息收集、攻击尝试获得权限、持久性控制、权限提升、网络信息收集、横向移动、数据分析(在这个基础上再做持久化控制)、在所有攻击...
高级java笔试题 项目简介 项目用于收集和归纳Red Team的以下几个方面 Red Team攻击思维 Red Team攻击工具 Red Team攻击方法 精华内容 mitre科技机构对攻击技术的总结wiki MITRE | ATT&CK 中文站 康奈尔大学(Cornell...
ee笔试题 免费的编程中文书籍索引 免费的编程中文书籍索引 国外程序员在 推荐的程序员必读书籍,。 上的程序员应该阅读的非编程类书籍有哪些? 上的一个流行的编程书籍索引 目录 语言无关类 操作系统 WEB服务器 版本...
高级java笔试题 项目简介 一个 Red Team 攻击的生命周期,整个生命周期包括: 信息收集、攻击尝试获得权限、持久性控制、权限提升、网络信息收集、横向移动、数据分析(在这个基础上再做持久化控制)、在所有攻击...
各大公司的前端校招笔试面试题以及个人整理的面试题集可以帮助你了解行业标准和常见问题。 总之,前端工程师需要不断学习和适应快速变化的技术环境,从基础知识到高级框架,再到最佳实践,每一步都需要深入理解和...