2024年4月2日发(作者:)

php试题及答案五篇范文

第一篇:php试题及答案

php试题及答案

问题

1. 考虑如下脚本。标记处应该添加什么代码才能让脚本输出字

符串 php? $alpha = 'abcdefghijklmnopqrstuvwxyz';$letters =

array(15, 7, 15);foreach($letters as $val){/* 这里应该加入什么 */ } ?>

A.echo chr($val);B.echo asc($val);C.echo substr($alpha, $val,

2);D.echo $alpha{$val};E.echo $alpha{$val+1} 2. 以下哪一项不

能把字符串$s1 和$s2 组成一个字符串? A.$s1 + $s2

B.”{$s1}{$s2}” C.$s1.$s2 D.implode(”,

array($s1,$s2))E.以上都可以

3. 变 量 $email 的 值 是 字 符 串****************,把 字

符 串 转 化 成 ?

A.substr($email, strpos($email, “@”));

下 哪 项 能 以 B.strstr($email, “@”);C.strchr($email,

“@”);

D.substr($email, strpos($email,

“@”)+1);E.strrpos($email, “@”);

4. 给定一个用逗号分隔一组值的字符串,以下哪个函数能在仅

调用一次的情况下就把每

个独立的值放入一个新创建的数组? A.strstr()B.不可能只调用

一次就完成 C.extract()D.explode()E.strtok()5. 要比较两个字

符串,以下那种方法最万能? A.用 strpos 函数 B.用==操作符

C.用 strcasecmp()D.用 strcmp()6. 以下哪个 PCRE 正则表达式能

匹配字符串 php|architect? A..* B.…|……… C.d{3}|d{8}

D.[az]{3}|[az]{9} E.[a-z][a-z][a-z]|w{9} 7. 以下哪些函数能用来验

证字符串的完整性?(三选)

A.md5()B.sha1()C.str_rot13()D.crypt()E.crc32()8. 哪个

PHP 函数与以下脚本在 UNIX 系统下执行的效果近似? function

my_funct($filename){ $f = file_get_contents($filename);return

explode(“n”, $f);} ?>

A.fopen()B.fread()C.flock()D.split_string()E.file()9. 基于指

定的式样(pattern)把一个字符串分隔开并放入数组,以下哪些函数

能做到?(双 选)

A.preg_split()B.ereg()C.str_split()D.explode()E.chop()

10.以下脚本输出什么?

echo 'Testing '.1 + 2.'45';?> A.Testing 1245 B.Testing 345

C.Testing 1+245 D.245 E.什么都没有

11.以下脚本输出什么? $s = '12345';$s[$s[1]] = '2';echo $s;?>

A.12345 B.12245 C.22345 D.11345 E.Array 12.方框中的

正则表达式能与以下哪些选项匹配?(双选)/.**123d/

A.******123 B.*****_1234 C.******1234

D._*1234 E._*123 13.以下哪个比较将返回 true?(双选)

A.’1top’ == ’1′ B.’top’ == 0 C.’top’ === 0 D.’a’

== a E.123 == ’123′

14.如果用+操作符把一个字符串和一个整型数字相加,结果将

怎样? A.解释器输出一个类型错误

B.字符串将被转换成数字,再与整型数字相加 C.字符串将被丢

弃,只保留整型数字 D.字符串和整型数字将连接成一个新字符串

E.整形数字将被丢弃,而保留字符串

个 PHP 脚本使用______。A.include_once, include B.require,

include C.require_once, include D.include, require E.以上皆可

16.什么情况下声明函数时不能给参数赋默认值? A.当参数是

布尔值时 B.当函数是类中的成员时 C.当参数是通过引用传递时

D.当函数只有一个参数时 E.永远不会

17.______操作符在两个操作数中有一个(不是全部)为 True 时

返回 True。答案:____________ 18.全等运算符===如何比较两个值?

A.把它们转换成相同的数据类型再比较转换后的值 B.只在两者

的数据类型和值都相同时才返回 True 8 C.如果两个值是字符串,则

进行词汇比较 D.基于 strcmp 函数进行比较 E.把两个值都转换成字

符串再比较

19.以下哪个选项是把整型变量$a 的值乘以 4?(双选)A.$a

*= pow(2, 2);B.$a >>= 2;C.$a <<= 2;D.$a += $a + $a;E.一

个都不对

20.一段脚本如何才算彻底终止? A.当调用 exit()时 B.当执行

到文件结尾时 C.当 PHP 崩溃时

D.当 Apache 由于系统故障而终止时

答案

1. 唯一有意义的答案是 B。PHP 是一种基于 Zend 引擎的脚本

语言,它通常被嵌入在 HTML 代码中。它主要被用来开发 HTML 文档,

但是也可以用它来开发其他类型的文档,比 如 XML。

2. PHP 编程中,人们不太使用<% %>和两个标签,但它们确实

是合法的 PHP 界定符。

标签是非法的,因此正确的答案是 D。记住,根据 文件中

的配置不同,这

当中的某些标签无法在特定的情况下使用。

3. PHP 变量以一个美元符号为开头,后面跟上任意数量的数字、

字母和下划线。${“MyVar”}

是一个合法的变量名,它使用的是较松散的命名约定。

&$something 是对$something 的

引用。然而,变量名不能以数字为开头,$10_somethings 是非

法的,因此答案是 D。

4. 注意,$myarray 的键值并没有打上引号。所以,正在访问的

键不是 myvalue 字符串,而是常量 myvalue 的值。最终访问的是

$myarray[10],值是 Dog,答案是 A。5. 尽管 print()和 echo()在

绝大多数情况下可以互换使用,但它们之间还是有一处不同。

print()是函数,有返回值;echo()实际上是一个语言结构,没有

返回值,并且不能在表

达式中使用。因此,答案是 A。

6. %运算符表示取模,它返回两个操作数相除的余数。<<是左

移运算符,相当于乘以 2 的 N 次方。最后的答案乘以了一个浮点数,

改变了它的数据类型。但是,由于小数点

后是零,因此输出的结果不包含小数部分。答案是 256(D)。

7. 根据条件式的逻辑,要想得到 Hello, World!字符串,必须要

在第一个 if 结构中满足 else 的条件。因此$a 必须为 False,然后$b

也必须为 False。最内层的条件语句的实现要求

先前的两个变量($a 和$b)是 False,而$c 必须是 True(答案

是 D)。8. 正确答案是 C。从 PHP4.2.0 开始,除非已经给定了一个

伪随机整数列,否则不再需要

用 srand()函数初始化随机数生成器。此外,即使随机数生成器没

有被事先播种,脚本

仍然会生成 49 个伪随机字符。尽管$array 变量是字符串,但可

以用访问数组的方式进

行访问——使用数字索引访问某个位置上的字符。最后,for 循环

将从 1 开始执行到 50,也就是执行了 49 次。

9. 用一系列的 if…else 语句来检查一个条件的代码块,最适合用

switch 语句来替代。switch($a){ case 'a':

somefunction();break;case 'b': 10 anotherfunction();break;case 'c':

dosomething();break;default: donothing();} ?> 因为 if 语句中有一

个捕捉所有其他条件的 else,对应的,switch 代码块需要一个

default。正确答案是 E。

10.通常情况下,foreach 语句是遍历数组的首选。但是,由于

foreach 语句是在数组的副

本上进行操作,而我们需要给数组中每个元素重新赋值,所以在

这里 foreach 就不适用

了。尽管也可以用 while 循环和 do…while 循环,但由于数组是

顺序索引的,最合适的

语句还是 for 语句。因此答案是 A。

$myarray = array(“My String”, “Another String”, “Hi,

Mom!”);for($i = 0;$i < count($myarray);$i++){ $myarray[$i].=

“($i)”;} ?> 11.由于题目只允许填写一行代码,唯一合适的是 for 循

环,因此答案只能是 C 或者 D。

要选出能生成正确结果的 for 循环,我们必须先复习一下 for 循环

的构成要素。PHP 中,for 循环是这样声明的:

for(<初始化>;<继续执行,直到>;<重复执行>)<初始化>在循环

开始时执行一次,然后 for 循环开始执行大括号内的代码,直到<继续

执行,直到>的值为 False。每完成一次循环,执行一次<重复执行>。

因此,正确的代 码块应该是:

for($idx = 1;$idx < STOP_AT;$idx *= 2)答案是 C。

12.5 个选项中,只有两个是合法的 PHP 函数声明(A 和 D)。

在这两个选项中,只有一

个设置了参数的默认值——答案是 A。

13.本题考察 PHP 中变量作用域的相关知识。你必须明确

global 关键字是如何将变量引入

本地域的,以及$_GET、$_POST、$_COOKIE、$_REQUEST 等

超级全局变量的作用 域。本题中,最终的数学表达式是 5+25-25-10,

等于-5,答案是 B。14.函数能被以一个包含着函数名的变量后面加

上括号(以及必要的参数)的形式动态

调用。对于Group A来说,合适的索引组合是0,4,9,9,9,

9,产生字符串myfunction。

另一方面,参数将使用${}结构的可变变量。对Group B来说,合

适的索引应该是7 和8,等于${‘a’}$和{‘b’}——即$a和$b。因

此答案是D。

15.在较新版本的 PHP 中,require(或 requier_once())和

include()(或 include_once())只有

一个区别——如果包含的文件不存在,前者将产生一个致命错误,

同时终止脚本的执

行;而后者只会产生一个警告。因此答案 E 正确。

16.当参数被声明为通过引用传递时,你不能给它赋默认值,此

时解释器期望获得一个能

在函数内部进行修改的变量。答案是 C。17.正确答案是逻辑异

或(xor)运算符。18.全等运算符比较两个操作数的数据类型和值,

两者中有一个不同,都会返回 False。因 此答案是 B。

19.答案是 A 和 C。A 选项中,pow 函数计算 2 的平方,答案是

4。C 选项中,左移运算

符将$a 的值左移两位,相当于乘以 4。

20.答案是 A。一段脚本并不会在执行到文件末尾时终止,所以

当前文件才能被其他脚本

包含。至于 PHP 和 Apache 崩溃,这两个说法就太恶搞了。

第二篇:PHP笔试题+答案

程序开发 卷1

PHP程序员考题

考试说明:

1、试卷总分为100分。

2、本次考试时间为120分钟。

一、逻辑推理题(9分,每题3分)

夫妇请了Tom夫妇和Henrry夫妇来他们家玩扑克。这种

扑克游戏有一种规则,夫妇两个不能一组。Jack跟Lily一组,Tom的

队友是Henrry的妻子,Linda的丈夫和Sara一组。那么这三对夫妇

分别为:(B)A. Jack—Sara,Tom—linda,Henrry—Lily

B. Jack—Sara,Tom—Lily,Henrry—linda C. Jack—linda,

Tom—Lily,Henrry—Sara D. Jack—Lily,Tom—Sara,Henrry—

linda

2.有17根11.1米长的钢管,要截成1.0米和0.7米的甲、乙两种

长度的管子,要求截成的甲、乙两种管子的数量一样多。问:最多能

截出甲、乙两种管子各多少根?(C)A.99 B.105 C.111 D.121

3.一个水库在年降水量不变的情况下,能够维持全市12万人20

年得用水量。在该市新迁入3万人之后,该水库只够维持15年得用水

量。市政府号召节约用水,希望能将水库的使用寿命提高到30年。那

么该市市民平均需要节约多少比例的水才能实现政府制定的目标?(A)

A.2/5 B.2/7 C.1/3 D.1/4

二、PHP语言题(36分,每题3分)

1.语句for($k=0;$k=1;$k++);和语句for($k=0;$k==1;$k++);执

行的次数分别是(3分): A 无限和0 B 0和无限 C 都是无限 D 都是0 参

考答案:A

2.读取post方法传递的表单元素值的方法是(3分): A $_post[“名

称”] B $_POST[“名称”] C $post[“名称”] D $POST[“名称”] 参

考答案:B

3.下面哪个函数可以打开一个文件,以对文件进行读和写操作?(3

分)A fget()

程序开发 卷1

B file_open()C fopen()D open_file()参考答案:C

4.下面哪个选项没有将 john 添加到users 数组中?(3

分)(a)$users[] =

‘john’;(b)array_add($users,’john’);(c)array_push($users,‘jo

hn’);(d)$users ||= ‘john’;参考答案:B

是一种______脚本语言,基于______引擎。PHP最常被用来

开发动态的______内容,此外,它同样还可被用来生成______(以及其

他)文档。(3分)A.动态,PHP,数据库,HTML B.嵌入式,Zend,

HTML,XML C.基于Perl的,PHP,Web,静态 D.嵌入式,Zend,

Docbook文档,MySQL E.基于Zend的,PHP,图像,HTML 参考

答案:B

6.函数的形参与实参之间的数值传递方式有哪些?如何传递?(5

分)

答:(1)按值传递方式,将实参的值复制到对应的形参中,在函

数内部的操作针对形参进行,操作的结果不会影响到实参,即函数返

回值,实参的值不会改变。

(2)按引用传递方式,按引用传递方式就是引用将实参的内存地

址传递到形参中,这时在函数内部的所有的操作都会影响到实参的值,

返回后实参的值会发生变化,引用传递方式就是传递时在原基础上加

&号即可。

(3)默认函数(可选参数)。可选参数指定某个参数为可选参数,

将可选参数放在参数引表末尾,并且指定其默认值为空。

7.定义:$str=”a1b2c3”,请写出下面两种匹配的结果以及解释

一下两者的区别。(5分)

preg_match(‘/[w]*[d]+/i’),$str,$ary);echo

$ary[0];preg_match(‘/[w]*?[d]+/i’,$str,$ary);echo $ary[0];参考

答案:第一个输出为a1b2c3,第二个输出为a1。

区别主要是[w]*,后面有没有跟问号,PHP的正则匹配模式默认为

贪婪模式,即第一个模式,表示*取尽量多的匹配字符,第二个加了个限

定符?,为非贪婪(或懒惰模式),表示*取尽量少的匹配字符。(能

写出贪婪和懒惰的区别,正则表达式已经没大问题了。)

n和cookies 有什么区别?如果浏览器禁用了cookies,

session还可以使用吗?为什么?(5分)

参考答案:cookies存储在客户端,session存储在服务端。浏览

器禁用了cookies,session也不可以使用,因为sesession是需要客

户端发送一个sessionid到服务端,禁用了cookies,客户端就不能保

存此sessionid,session也失效了。(session是常用的,考察使用的

熟悉程度)

程序开发 卷1

二进制数据流是处理是用什么函数的?(4分)参考答案:

pack和unpack。(与服务端通信用到的解析方法)

10.求两个日期的差数,例如2009-3-1 ~ 2009-4-4 的日期差数?

(4分)答:(strtotime(‘2009-4-4’)-strtotime(‘2009-3-

1’))/3600*24

三、Linux操作题(20分,每题5分)1.请尽量写出你熟悉的

linux文件操作命令及其作用。

参考答案:自由发挥.基本的文件操作命令rm(移除),mv(移

动),cp(复制),chmod(改权限),pwd(查看当前路径),mkdir(创建目

录)ls(列举当前目录)2.3.4.简述linux下,rsync同步命令怎么实现无需

输入密码数据同步?(5分)

参考答案:在机器1上生成公钥私钥对,将生成的公钥复制至机

器2,加入到~/.ssh/id_。即可实现无密码同步。(同步没问题

了)

四、综合问答题(35分,每题5分),LNMP分别指什么?

参考答案:LAMP:linux,apache,mysql,php

LNMP:linux,nginx,mysql,php Linux文本编辑器vim(vi)命令行模式下

有:q,:w, /word ,?word表示什么? 参考答案::q退出,:w保存,/word

往下查找,?word往上查找.(熟悉linux编辑)linux怎么添加定时任务?

参考答案:crontab –e

2.11.请使用伪语言结合数据结构冒泡排序法对以下一组数据进行

排序 10 2 36 14 10 25 23 85 99 45。

答:

$str=’10 2 36 14 10 25 23 85 99

45′;$arr=explode(‘ ‘,$str);$count=count($arr);for($i=0;$i<$co

unt;$i++){ for($j=$i+1;$j<$count;$j++){ if($arr[$j]<$arr[$i]){ $te

mp=$arr[$i];$arr[$i]=$arr[$j];$arr[$j]=$temp;}

$str1=implode(‘ ‘,$arr);echo$str1;

3.简述mysql中union all,left join的用法。

程序开发 卷1

参考答案:Union all将两次或多次查询的结果合并。

Left join从左表那里返回所有的行,即使在右表中没有匹配的行。

(这两个能记住,mysql也比较熟了)

优化有什么方法?

参考答案:简单点的就是程序员写高质量的sql语句,数据库设计

优秀,按需要建立索引(重点)。深入点的,优化mysql配置。

} }

5.一个表中的Id有多个记录,把所有这个id的记录查出来,并显

示共有多少条记录数,用SQL语句及视图、存储过程分别实现。

create procedure proc_countNum(in columnId int,out

rowsNo int)begin select count(*)into rowsNo from member

where member_id=columnId;end call

proc_countNum(1,@no);select @no;方法:视图:

create view v_countNum as select member_id,count(*)as

countNum from member group by member_id select countNum

from v_countNum where member_id=1

6.请举例说明在你的开发过程中用什么方法来加快页面的加载速

参考答案:自由发挥题,言之有理即可(如:要用到服务器资源

时才打开,及时关闭服务器资源,数据库添加索引,页面可生成静态,

图片等大文件单独服务器。使用代码优化工具)。

7.对于大流量的网站,您采用什么样的方法来解决访问量问题? 参

考答案:确认服务器硬件是否足够支持当前的流量,数据库读写分离,优

化数据表,控制大文件的下载,使用不同主机分流主要流量确认服务器硬

件是否足够支持当前的流量,数据库读写分离,优化数据表,程序功能规则,

禁止外部的盗链,控制大文件的下载,使用不同主机分流主要流量。

第三篇:php试题

1.mysql_connect()与@mysql_connect()的区别是(B)

A

@mysql_connect()不会忽略错误,将错误显示到客户端 B

mysql_connect()不会忽略错误,将错误显示到客户端 C 没有区别

D 功能不同的两个函数

2.语句for($k=0;$k=1;$k++);和语句for($k=0;$k==1;$k++);

执行的次数分别是: A

A

无限和0

B 0和无限

C 都是无限

D 都是0

3.读取post方法传递的表单元素值的方法是: B

A

$_post[“名称”]

B $_POST[“名称”]

C $post[“名称”]

D $POST[“名称”]

4.php运算符中,优先级从高到低分别是()B

A

关系运算符,逻辑运算符,算术运算符

B 算术运算符,关系运算符,逻辑运算符

C 逻辑运算符,算术运算符,关系运算符

D 关系运算符,算术运算符,逻辑运算符

5.cookie的值存储在()C

A

硬盘中

B 程序中

C 客户端

D 服务器端

6.要查看一个变量的数据类型,可使用函数()B

A

type()

B gettype()

C GetType()

D Type()

7.字符串的比较,是按()进行比较。B

A

拼音顺序

B ASCII码值

C 随机

D 先后顺序

8.复选框的type属性值是()A

A

checkbox

B radio

C select

D check

9.SESSION会话的值存储在()D

A

硬盘上

B 网页中

C 客户端

D 服务器端

10.如果想取得最近一条查询的信息,应该使用哪个函数()A

A

mysql_info

B mysql_stat

C mysql_insert_id()

D mysql_free_result

11.要查看一个结构类型变量的值,可以使用函数()

D

A

Print()

B print()

C Print_r()

D print_r()

12.在PHP中哪个变量数组总是包含所有总客户端发出的

cookies数据(A

$_COOKIE

B $_COOKIES

C $_GETCOOKIE

D $_GETCOOKIES

13.下列哪个说法是错误的()D

A

gettype()是查看数据类型的B 没有被赋值的变量是0

C unset()是被认为NULL

D 双引号字符串最重要的一点是其中的变量名会被变量值替代

14.HTML中,超链接用的是什么标签 A

A

〈a>

B 〈table>

C 〈b>

D 〈head>

15.strtolower()函数的功能是()

A

upper 转为大写

A

将给定的字符串全部转换为小写字母

B 将给定的字符串全部转换为大写字母

C 将给定的字符串首字母转换为小写字母

D 将给定的字符串首字母转换为大写字母)A

16.HTML中,表格单元格的“值”是存储在()标签里

B

A

〈body>

B 〈td>

C 〈tr>

D 〈table>

REFDVCD

17.将一个值或变量转换为字符类型的函数是()B

A

intval()

B strval()

C str

D valint()

18.php中字符串的连接运算符是()

D

A

B +

C &

D.19.php函数不支持的功能有:

C

A

可变的参数个数

B 通过引用传递参数

C 通过指针传递参数

D 实现递归函数

20.文件框的type属性值是()C

A

text

B hidden

C textarea

D checkbox

21.运算符“^”的作用是()D

A

无效

B 乘方

C 位非

D 位异或

22.自定义函数中,返回函数值的关键字是()

A

returns

B close

A

C return

D back

23.24.要检查一个常量是否定义,可以使用函数()

A

A

defined()

B isdefin()

C isdefined()

D 无

25.关于mysql_select_db的作用描述正确的是()

A

连接数据库

B 连接并选取数据库

C 连接并打开数据库

D 选取数据库

26.HTML中,title标签放在什么位置

B

A

body标签里

B head标签里

C script标签里

D table标签里

27.使用()函数可以求得数组的大小

A