PHP选择简答终极版.docx_第1页
PHP选择简答终极版.docx_第2页
PHP选择简答终极版.docx_第3页
PHP选择简答终极版.docx_第4页
PHP选择简答终极版.docx_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第6章 自测题一、单选题1PHP是哪种类型的语言( )。A编译型B解释型C两者都是D两者都不是2下面功能PHP无法实现的是( )。A服务器端脚本运行B命令行脚本运行C客户端图形界面(GUI)程序D浏览器端执行DOM操作3下面说法不正确的是:( )APHP有4种标量类型:布尔型(boolean)、整型(integer)、浮点型(float)、字符串(string)B浮点型(float)与双精度型(double)是同一种类型C复合类型包括:数组(array)、对象(object)、资源(resource) D伪类型:混合型(mixed)、数字型(number)、回调(callback)4若$y, $x为int型变量,则执行以下语句后,$y的值为( )。 A1B2C3D05下面代码的输出结果是( )。AhelloBworldCNULLDunset6下面哪个表达式不能将两个字符串$s1和$s2串联成一个单独的字符串( )。A$s1+$s2B“$s1$s2”C$s1.$s2Dimplode(,array($s1,$s2)7getDate()函数返回的值的数据类型是( )。A整型B浮点型C数组D字符串E布尔型8下面哪个选项不属于正确的PHP代码的开始和结束标记( )。ABCDE9PHP中,单引号和双引号所包围的字符串有什么区别?( )A单引号速度快,双引号速度慢B双引号速度快,单引号速度慢C两者没有速度差别D双引号解析其中以$开头的变量,而单引号不解析E单引号解析其中r t等转义字符,而双引号不解析10PHP中的错误控制操作符是( )。A%B$C#D11定义常量的函数是( )。Adefine( )Bconstant( )Cprint( )Decho( )12下面对于echo,print 的描述正确的是( )。Aecho,print 都可以打印多个参数Bprint可以打印多个参数,echo不可以Cecho可以打印多个参数,print不可以Decho,print都不可以打印多个参数13执行下面的代码的结果是什么?( ) Aboolean Bboolean 0Cboolean FALSEDboolean false14. 下面程序中$b的输出结果是( )。A 4B5C3Dfalse15. 下面代码的执行结果是( )。 A0B3C6 D33+4+5;16. 写出下面代码的结果( )。0; echo 21; echo 3A012 B106 C1112D12317下面的语句输出结果( )。?php $foo = test;$bar = A$foo bar; BEOT $foo bar EOT;Ctest bar;DEOT test bar EOT;18以下代码的执行后是,$result值为( )。AnullBtrueCfalseD1二、简答题1_FILE_表示什么意思?被称为PHP魔术常量,返回当前执行PHP脚本的完整路径和文件名,包含一个绝对路径2$b? $a-$b : $b*2;echo $c; ?该段代码输出是_8_3该段代码输出是_abcdeok_4写出下面代码执行的结果。 12 10 185isset()和empty()的区别是什么?对不同数据的判断结果,包括$a=0; $a=0; $a=; $a=false; $a=null。Isset判断变量是否存在,如果存在则返回真,empty判断变量是否为空,如果为空则返回真。Isset判断:true,true,true,true,false。Empty判断:true,true,true,true,true。6写出如下程序的输出结果:第7章 自测题一、单选题1以下程序运行结果为:( )。Anull Bhave valueC无法确定D什么也不显示,提示错误2以下程序运行结果为( )。 str1;break;case 1:echo str str1;break;case 0:echo str = str1;break;default:echo str str1;?Astr str1Bstr str1Cstr = str1Dstr str13以下代码返回的结果为( )。Atrue Bfalse C程序运行出错D根据版本来定4哪一个语言结构最能代表以下多路分支if语句的选择结构( )。A没有default的switch语句B一个递归的函数调用C一个while语句 D它是唯一的逻辑结构E使用default从句的switch语句5哪一个三元运算符相当于此脚本( )。?phpif ($a11)if($c=10 & $d !=$c) $x=0; else $x=1;?A$x = ($a 11 | $c = 1 & $d !=$c ) ? 0 : 1;B$x = ($a 11) | ($c = 1 & $d !=$c ) ) ? 0 : 1;C$x = ($a 11 & $c = 1 & $d !=$c ) ? 0 : 1;D以上都不是6以下代码的执行后是,$result值为( )。A1B2C3D4E57下面代码的执行结果是( )。 ?php for($i=0;iA0123456789 B012345678910 C无输出 D死循环二、练习题1下面的程序输出是什么?0; $int_i-) $int_a = $int_a * $int_i;factorial();echo $int_a;?52求$a,$b,$c三个数中的最大值和最小值?echo max($a,$b,$c);echo min($a,$b,$c);3for($k=0;$k=1;$k+); 和for($k=0;$k=1;$k+) 的结果是什么? for(k=0; k=1; k+); 执行次数为无限次。for(k=0; k=1; k+); 执行次数为0次4写出以下程序运行的结果。结果:_1,1_结果:_4,4_第8章 自测题一、单选题1以下代码执行结果为( )。 AHelloBphp mysql !CHello HelloDHello php mysql !2执行完以下代码后,变量$num的值为( )。A10 B20C30D显示错误3下列代码执行后,输出结果正确的是( )。A1 B2 C运行错误D都不对4以下代码执行结果为( )。AphperBhellophperChelloD错误5以下程序运行结果为( )。A5+3+1=9B1+5+3 =9C提示错误,并有显示:+3+1 = 4 D96下面代码加入下面那个函数后返回TRUE:( )。return ? = A;A.、ord(65)Bchr(65) C65+D+657PHP程序使用utf-8编码,以下程序输出结果是( )。A9B13C18D178下列那个选项是正确的引用文件的方法( )。Arequire和includeBrequire和functionCdefine和includeDfunction和include二、编程题1写一个函数实现字符串翻转。PHP函数strrev()或者function str($str) $len=strlen($a); $b=; for($i=$len-1;$i=0;$i-) $b.=$a$i; return $b;2写出下列代码的输出结果。 10myfunc(10)=3. 下面代码执行完成后的结果是什么? 124请写一个函数将1234567890转换成1,234,567,890,即每3位用逗号隔开的形式。$str = strrev($str);$arr = str_split($str,3); $str = strrev(implode($arr,);return $str;5语句include和require的区别是什么?为避免多次包含同一文件,可用什么语句代替?1、PHP程序执行到require()时,只会读取一次档案,故常放在程序开头,档案引入后PHP会将网页档重新编译,让引入档成为原先网页的一部分。2、PHP程序执行到include()时,每次皆会读取档案,故常用于流程控制的区段,如条件判断或循环中。3、require() :无条件包含,如果文件不存在,会报出一个fatal error.脚本停止执行4、include() : 有条件包含,如果文件不存在,会给出一个 warning,但脚本会继续执行5、推荐使用require_once()和include_once(),可以检测文件是否有重复包含。6请写出下列PHP代码的执行结果。?php$var1 = 5;$var2 = 10;function foo(&$my_var) global $var1; $var1 += 2; $var2 = 4; $my_var += 3; return $var2;$my_var = 5;echo foo($my_var) . ;echo $my_var . ;echo $var1 . ;echo $var2 . ;$bar = foo;$my_var = 10;echo $bar($my_var) . ; ?487104第9章 自测题一、单选题1下面的脚本运行以后,$array数组所包含的值是( )。 $v) $v = 2;?Aarray (2 , 2 )Barray (1 , 1 )Carray (2 , 2)Darray (Null , Null)2如果你想对一个数组进行排序,排序的方式是按照元素的值从小到大排序。同时,需要在排序后保持关键字与值的对应关系。下面哪个函数实现这个功能( )。Aksort()Basort()Ckrsort()Dsort()Eusort()3下面代码的输出是( )。 A12345B12245C22345D11345Earray4在PHP中哪个变量数组总是包含所有从客户端发出的cookies数据( )。A$_COOKIESB$_COOKIEC$_GETCOOKIED$_GETCOOKIES5以下关于key()和current()函数的叙述,请找出两个正确的答案( )。Akey()函数用来读取目前指针所指向资料的索引值Bkey()函数是取得目前指针位置的内容资料Ccurrent()函数用来读取目前指针所指向资料的索引值Dcurrent()函数是取得目前指针位置的内容资料6问$x的结果是( )。Aarray(0,1);Barray(0,1,2,3);Carray(3,4);D代码有错7要循环操作非顺序索引的数组时,可以使用下列哪个函数来读取数组当前元素的索引值( )。Akey()Bnext()Cprev()Dcurrent()8以下程序运行结果为( )。?php$A=array_fill(-5,3,Hello);for ($i=0; $iA$A0 = Hello $A1 = Hello $A2 = $A3 = $A4 = B$A0 = Hello $A1 = Hello $A2 = Hello $A3 = $A4 = C$A0 = $A1 = $A2 = $A3 = $A4 = D程序运行提示错误9以下代码的运行结果为( )。?php$A = 1;$A = 2;$A = 3$A2 = 4;for ($i=0;$iA2B3 C4D110下面哪个选项没有将john添加到users数组中( )。A$users = john;Barray_push($users, john);C$users |= john;Darray_unshift($users, john);11输出为Mozilla/4.0(compatible;MSIE5.01;Window NT 5.0)时,可能的输出语句是( )。A$_SERVERHTTP_USER_AGENT_TYPE;B$_SERVERHTTP_USER_AGENT;C$_SERVERUSER_AGENT;D$_SERVERAGENT;12下面代码的输出正确的是( )。 5,5=8,22,2=8,81); echo $a7; echo $a6; echo $a3; ?A空2281 B空8122 C8122空 D空空空13. 下面代码的输出结果是( )。 Ahello B空空 C报错 Dhellohello14. 对于正面的代码,能够正确得到结果yellow的代码是( )。 red, banana=yellow); ?Aecho A banana is $fruitsbanana;Becho A banana is $fruitsbanana;Cecho A banana is $fruitsbanana;Decho A banana is $fruitsbanana;15以下代码的执行后是,$result值为( )。AaBfalseCtrueDbEc16输出的是( )。A3BfalseCnullD1E0二、练习题1简单描述asort()、ksort()、rsort()的作用分别是什么。asort()按照键值对关联数组进行升序排序ksort() 函数对关联数组按照键名进行升序排序。rsort() 函数对数值数组进行降序排序。(该函数为array中的单元赋予新的键名。这将删除原有的键名而不仅是重新排序。)2用PHP写一段代码,实现不使用第3个变量,交换$a,$b的值,$a,$b的初始值自己定。$a = “abcd”;$b = “1234;echo “初始化时 a=$a,b=$b”;$a = $a . $b;$b = strlen( $b );$b = substr( $a, 0, (strlen($a) $b ) );$a = substr( $a, strlen($b) );echo “交换后 a=$a,b=$b”;3请将二维数组按照name的长度进行重新排序,按照顺序将id赋值(从1开始)。 0, name = 123),array(id = 0, name = 1234),array(id = 0, name = 1235),array(id = 0, name = 12356),array(id = 0, name = 123abc);foreach($tarray as $key=$val) $c=$valname;function aa($a,$b) if(strlen($a)=strlen($b) return 0; return strlen($a)strlen($b)?-1:1;usort($c,aa);$len=count($c);for($i=0;$i$len;$i+) $t$iid=$i+1; $t$iname=$c$i;echo ;print_r($t);echo ;4写一个函数,算出两个文件的相对路径。如 $a = /a/b/c/d/e.php;$b = /a/b/12/34/c.php;计算出$b 相对于 $a 的相对路径应该是././c/d。$ainfo=parse_url($a);$binfo=parse_url($b);$apath=ltrim($ainfopath,/);$bpath=ltrim($binfopath,/);$arr=explode(/,$apath);$brr=explode(/,$bpath);$count=count($arr);for($i=0;$i$count;$i+)if($arr$i=$brr$i)$brr$i=.;elsebreak;$cha=implode(/,$brr);print_r($cha);5请写出常见的排序算法,并用PHP实现冒泡排序,将数组按照从小到大的方式进行排序。冒泡排序法,快速排序法,插入排序法(一维数组)冒泡:$a=array(1,9,34,78,2,11,5);Functionmaopao($arr)$count=count($arr);For($i=0;$i=$i;$j)If($arr$j$arr$j+1)$tmp=$arr$j;$arr$j=$arr$j+1;$arr$j+1=$tmp;6输出用户的IP地址,并且判断用户的IP地址是否在0050范围内。Echo$ip=getenv(REMOTE_ADDR);$ip=Str_replace(.,”,$ip);If($ip1921681100)Echoip在0050之间;ElseEchoip不在0050之间;7请指出以下代码的错误之处(圈出来并加以改正)。?function baz($y $a) $x = new Array();$xsales = 60;$xprofit = 20;foreach($x as $key = $value) echo $key + + $value + ;?函数参数列表中少了逗号、“newArray()”是不正确的、行末用了冒号而不是分号、foreach中没有用“=”及用“+”来连接字符串8有下面一段程序:$val) $val = &$data$key;?问题1:程序执行时,每一次循环结束后变量$data的值是什么?请解释。问题2:程序执行完后,变量$data的值是什么?请解释。文中所述数组$data的完整表达形式如下:$data = array(0 = a, / 内存空间A1 = b, / 内存空间B2 = c, / 内存空间C);循环过程:$key = 0; $val = a; / $val复制了变量$data0的值。这个赋值导致变量$val创建并指向一个新的内存空间X;$val和$data0指向不同的内存空间。$val = &$data0; / $val成为一个引用,直接指向变量$data0(原始数组第一个单元)。$val和$data0指向相同的内存空间A。$key = 1; $val = b; / 赋值操作导致$val所指向的内存空间的值被改变了;$data0指向相同的内存空间,所以$data0的值也改变了。$val = &$data1; / $val还是一个引用,不过现在指向变量$data1(原始数组第二个单元)。$val和$data1指向相同的内存空间B。$key = 2; $val = c; / 赋值操作导致$val所指向的内存空间的值被改变了;$data1指向相同的内存空间,所以$data1的值也改变了。$val = &$data2; / $val还是一个引用,不过现在指向变量$data2(原始数组第三个单元)。$val和$data2指向相同的内存空间C。第10章 自测题一、单选题1如何声明一个PHP的用户自定义类?( )A?phpB ?C?phpD ?2下面哪一项不是PHP中面向对象的机制?( )A类B属性、方法C单一继承D多重继承3如何让一个对象实例调用自身的该对象的方法函数“mymethod”?( )A$self=mymethod();B$this-mymethod(); C$current-mymethod();D$this:mymethod();4下面哪项描述是错误的?( )A父类的构造函数与析构函数不会自动被调用B成员变量需要用public protected private修饰,在定义变量时不再需要var关键字C父类中定义的静态成员,不可以在子类中直接调用D包含抽象方法的类必须为抽象类,抽象类不能被实例化5如果成员没有声明限定字符,属性的默认值是( )。Aprivate BprotectedCpublicDfinal6PHP中调用类文件中的$this表示( )。A用本类生成的对象变量B本页面C本方法D本变量7在PHP的面象对象中,类中定义的析构函数是在( )调用的。A类创建时 B创建对象时 C删除对象时D不自动调用 8以下是一个类的声明,其中有两个成员属性,对成员属性正确的赋值方式是( )。one=$value;$demo=new Demo();?A$demo-one=abc; BDemo:$two=abc;CDemo:setOne(abc); D$demo-two=abc;9在PHP 5的类的定义中,无法使用3P修饰的内容是( )。A属性B静态方法C常量D方法10在PHP 5的类的定义中,如果方法M1能够调用方法M2,但M2不能调用M1,那么M1和M2应该符合( )。AM2是静态方法而M1不是BM1是静态方法而M2不是CM1和M2都是静态方法DM1和M2都不是静态方法11以下四条接口与抽象类的对比分析,哪条是错误的?( )A接口和抽象类都可以只声明方法而不实现它B抽象类可以定义类常量,而接口不能C抽象类可以实现具体的方法,而接口不能D抽象类可以声明属性,而接口不能12要实现PHP 5在面向对象编程方面最令人激动的自动加载功能,我们可以( )。A定义函数名为_autoload()的自动加载函数B通过php.ini或者ini_set()设置自动加载目录C在编译PHP 5时加上默认未激活的模块D使用spl_autoload_register()函数和相关函数来指定自动加载函数13针对PHP 5中特有的魔法方法(Magic Methods),下列四句中哪句是错误的?( )A_get和_set方法用于设置并不存在的类实例的属性成员B_call和_invoke方法用于调用并不存在的类的方法成员C_sleep和_wakeup方法用于在序列化类实例时处理其中的外部资源和冗余数据D通过_get方法,我们可以实现类的只读属性,而_set方法可以实现只写属性14如果你想要自动加载类,下面哪种函数声明是正确的?( )Afunction autoload($class_name)Bfunction _autoload($class_name, $file)Cfunction _autoload($class_name)Dfunction _autoload($class_name)Efunction autoload($class_name, $file) 15以下哪段代码可以正常执行?( )Aabstract class booBabstract class boo abstract function func(); function func();class coo extends boo class coo extends boo abstract function func() function func()$coo = new coo();$coo = new coo();Cclass booDabstract class boo abstract function func(); abstract function func();class coo extends booclass coo extends boo function func() function func()$coo = new coo();$coo = new coo();16下面哪些说法是错误的?( )A如果一个类的成员前面有访问修饰符private,那么这些成员不能被继承,并且在类的外部可见。但如果类的成员被指定为protect或public,则可以被继承,在类的外部也是可见的BPHP 5中,final关键字可以禁止继承和重载CPHP 5中,析构函数的名称是_destruct(),并且不能有任何参数D继承接口的类必须实现接口中声明的所有方法,在PHP中,如果继承接口的类没有实现接口中指定的方法,将会产生一个致命的错误17执行以下代码,输出结果是( )。AaB一个错误警告C一个致命性的报错D无输出18执行以下代码,输入结果是( )。Aecho class a something echo class b somethingBecho class b something echo class a somethingCecho class as somethingDecho class b something19哪种OOP设置模式能让类在整个脚本里只实例化一次?( )AMVCB代理模式C状态模式D抽象工厂模式E单件模式20借助继承,我们可以创建其他类的派生类。那么在PHP中,子类最多可以继承几个父类?( )A1个B2个C取决于系统资源D想要几个有几个二、简答题1你如何访问和设置一个类的属性?$object = new myclass();$newstr = $object-test;$object-test = info;2PHP 5中魔术方法有哪几个?并说明其用法。_construct() :实例化对象时被调用;_destuct():当删除一个对象或者对象操作终止是被执行;_call():调用对象不存在方法时被调用;_get():调用对象不存在的属性时被调用;_set():设置对象不存在的属性时被调用;_toString():打印一个对象时被调用,比如echo $obj,print($obj);_clone():克隆对象时被调用,比如$t = new Test();$tt = clone $t;_sleep():serialize之前被调用,若对象比较大,想做一些删除在序列化,可以考虑使用该方法;_wakeup():unserialize之前被调用,做些对象的初始化;_isset():检测对象是否存在属性的时候被调用,如 isset($c-name);_unset():unset一个对象属性时被调用,如:unset($c-name);_set_state():调用var_export时被调用,用_

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论