您好,欢迎访问三七文档
转载-php试题1.写出下列代码的结果:?php$a=HelloWorld!;$b=$a;print(\$b=$bbr);print('$a=$abr');?$b=HelloWorld!br$a=$abr//'\'是逃逸符,屏蔽紧跟在后面的单个特殊字符的特殊用法//''单引号对,屏蔽包含在内的几乎所有的特殊字符的特殊含义,除了本身//另外,在命令行下调试这些代码,BR是不会作为换行输出的~如果在browser,另当别论2.写出下列代码输出结果:?php$a=First;$b=&$a;$c=$a;$a=Second;print($a,$b,$cbr);?Second,Second,Firstbr//$b是$a的引用赋值,所以$a的变化就是$b的变化//$c可以看作$a复制一次以后的副本,所以是不相干的两个变量,因此,$a的改变不影响$c3.写出下列代码输出结果:?php$a=2;$b=1.2SBC3;$c=EFG;$result1=$a.$b;$result2=$a*$b;$result3=$a*$c;print($result1,$result2,$result3br);?21.2SBC3,2.4,0br//$result1是字符串的连接,btw,如果这题是2.$b,那系统会报error//$result2是数字的乘法,php中会自动舍弃第一个不是数字的字符开始后面的字符//$result3是数字的乘法,与2不同的是,$c中没有任何数字型字符,因此整体被强行转换为数值型,也就是0,然后再和$a=2相乘,最后结果就是04.下列不正确的变量名是:A.$_testB.$2abcC.$VarD.$%Varb5.语句for($k=0;$k=1;$k++);和语句for($k=0;$k==1;$k++);执行的次数分别是:A.无限和0B.0和无限C.都是无限D.都是0A/***这里要重点讲一下这题,这里选择A应该是没问题,人所皆知*问题在于,如果第一句话改一下,变成for($k=0;$k=0;$k++);,那么循环体会被执行的次数呢?**答案是0**原因是for(exprA;exprB;exprC)在判断是否要执行循环体时,我们关心的是表达式exprB的真值。*注意!$k=0这个表达式的值是0!而不是可能的复制成功返回的1!*所以,for循环的循环判断条件为永假,自然就不会执行循环体了~~~**:)**/6.php函数不支持的功能有:A.可变的函数名称B.可变的参数个数C.通过引用传递参数D.通过指针传递参数E.实现递归函数d7.下列对php中类的描述,不正确的是:A.支持单一继承B.支持多继承C.不支持构造函数D.不支持析构函数E.必须使用$this指针来引用成员变量b多继承好像是要用到接口8.找出下列代码中的错误并修正:?php$a[0]=Ryan;$b[value]=785.9;$c[blue][0]=Ada;print($a[0],$b[value],$c[blue][0]br);??php$a[0]=Ryan;$b[value]=785.9;$c[blue][0]=Ada;print($a[0].$b[value].{$c[blue][0]}.br);?//引号没什么好说的//还有关键是最后一行的$c[blue][0],如果不用花括号括起来,那么系统会自动先变量替换$c[blue],问题是这个值不存在,所以,替换完毕后的xxxx[0]也就没有了,所以会报错。这就是所谓的变量数组9.请按照由高到低的顺序写出下列操作符的优先级:and,=,,+,~~+=and我猜的10.试述isset()和empty()的区别isset()测试变量是否存在empty()测试变量是否为空在php这样的对变量定义不严格的语言中如果一个变量从没有声明过,那么isset==false|empty==true如果一个变量已声明,但赋值为NULL,那么和前一种情况一样如果一个变量已声明,但赋值为'',那么isset==true|empty==true如果一个变量已声明,且正常赋值,那么isset==true|empty==falseexampleasfollow:?$b=NULL;$c='';$d='str';echoisset($a).a\n;echoempty($a).b\n;echoisset($b).c\n;echoempty($b).d\n;echoisset($c).e\n;echoempty($c).f\n;echoisset($d).g\n;echoempty($d).h\n;?11.请用尽可能少的语句实现对输入Email地址进行验证的功能.eregi('^[_a-z0-9]+(\.[_a-z0-9-]+)*@[a-z0-9]+(\.[a-z0-9-]+)*$',$emailaddress)12.写一算法,将下列数组按升序排序,并写出排序算法名称:$arrVar=array(64,29,1,43,30,9,39,75,4,11)冒泡排序,过程略13.写一段程序,将文本文件中的每一个单词的首写字母转换成大写,并保存回原文件.提示:将串中的单词首字母转换成大写的函数:stringucwords(stringstr)14.请写出php访问MYSQL数据库的几种方式,并做简要介绍.15.请写出PHPSession的实现方法;介绍你认为最好的实现方法,并说明理由.提示:SessionID的传递方式,Session变量的存储方法等.16.PHP程序会有什么漏洞?我就是最大的漏洞……不知道对不对~~呵呵~~发现概念性的东西还是挺纠缠不清的~~字多的慢慢再写~~~:)00for(i=0;i6;i++&&k++)printf(%2d%2d,i,k);短这里涉及到c的一个语法:段路径求值(应该是叫这个)。表达式&&的计算顺序是从左到右,所以当第一次进行&&运算的时候i++的值为0,则此时整个表达式的值则为假,c语言不会再继续进行k++的运算。第二次运行&&的时候,i++的返回值是真,则c++继续运行k++。一、基础题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());echoempty($a1)?'true':'false';echoempty($a2)?'true':'false';echoempty($a3)?'true':'false';echoempty($a4)?'true':'false';echoempty($a5)?'true':'false';echoempty($a6)?'true':'false';echoempty($a7)?'true':'false';echoempty($a8)?'true':'false';?3.写出如下程序的输出结果?$test='aaaaaa';$abc=&$test;unset($test);echo$abc;?4.写出如下程序的输出结果?$count=5;functionget_count(){static$count=0;return$count++;}echo$count;++$count;echoget_count();echoget_count();?5.写出如下程序的输出结果?$GLOBALS['var1']=5;$var2=1;functionget_value(){global$var2;$var1=0;return$var2++;}get_value();echo$var1;echo$var2;?6.写出如下程序的输出结果?functionget_arr($arr){unset($arr[0]);}$arr1=array(1,2);$arr2=array(1,2);get_arr(&$arr1);get_arr($arr2);echocount($arr1);echocount($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.truetruetruetruetruefalsetruefalse3.aaaaaa4.5015.526.127.使用五种以上方式获取一个文件的扩展名functionget_ext1($file_name){returnstrrchr($file_name,'.');}functionget_ext2($file_name){returnsubstr($file_name,strrpos($file_name,'.'));}functionget_ext3($file_name){returnarray_pop(explode('.',$file_name));}functionget_ext4($file_name){$p=pathinfo($file_name);return$p['extension'];}functionget_ext5($file_name){returnstrrev(substr(strrev($file_name),0,strpos(strrev($file_name),'.')));}二、算法题1.使用PHP描述冒泡排序和快速排序算法,对象可以是一个数组//冒泡排序(数组排序)functionbubble_sort($array){$count=count($array);if($count=0)returnfalse;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;}//快速排序(数组排序)functionquick_sort($array){if(count($array)=1)return$array;$key=$array[0];$left_arr=array();$right_arr=array();for($i=1;$icount($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);returnarray_merge($left_arr,array($key),$right_arr);}2.使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组//二分查
本文标题:php考试题
链接地址:https://www.777doc.com/doc-2913560 .html