经典PHP笔试题.docx
- 文档编号:3233656
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:15
- 大小:18.35KB
经典PHP笔试题.docx
《经典PHP笔试题.docx》由会员分享,可在线阅读,更多相关《经典PHP笔试题.docx(15页珍藏版)》请在冰点文库上搜索。
经典PHP笔试题
经典PHP笔试题
PHP(外文名:
PHP:
HypertextPreprocessor,中文名:
超文本预处理器)是一种通用开源脚本语言。
语法吸收了C语言、Java和Perl的特点,利于,使用广泛,主要适用于Web开发领域。
下面是yjbys整理的关于经典PHP题,欢迎阅读!
1.考虑如下脚本。
标记处应该添加什么代码才能让脚本输出字符串php?
$alpha=abcdefghijklmnopqrstuvwxyz
$letters=array(15,7,15);
foreach($lettersas$val)
{/*这里应该加入什么*/
}?
A.echochr($val);
B.echoasc($val);
C.echosubstr($alpha,$val,2);
D.echo$alpha{$val};
E.echo$alpha{$val+1}
答案解析:
substr函数能够胜任,但考虑到输出三个字母就需要三次调用该函数,所以排除此方法。
那么$alpha{$val}和$alpha{$val+1}是仅有的两个可能输出题目要求的字符串的选项。
因为0是数
组的第一个索引,所以答案是D。
2.以下哪一项不能把字符串$s1和$s2组成一个字符串?
A.$s1+$s2
B.{$s1}{$s2}
C.$s1.$s2
D.implode(,array($s1,$s2))
E.以上都可以
答案解析:
除A以外的选项都能输出题目要求的字符串。
PHP中,加号+不能把两个字符串合并成一个。
3.变量$email的值是字符串user@,以下哪项能把字符串转化成?
A.substr($email,strpos($email,@));
B.strstr($email,@);
C.strchr($email,@);
D.substr($email,strpos($email,@)+1);
E.strrpos($email,@);
答案解析:
substr函数返回字符串的一部分,而strpos函数擅长从一个字符串中找出某个指定的子串。
同时使用这两个函数将满足题目要求。
注意,前一个函数从0开始索引,而后者不是,因此需
要+1。
答案是D。
4.给定一个用逗号分隔一组值的字符串,以下哪个函数能在仅调用一次的情况下就把每个独立的值放入一个新创建的数组?
A.strstr()
B.不可能只调用一次就完成
C.extract()
D.explode()
E.strtok()
答案解析:
答案是D。
explode函数使用一个字符串分隔另一个字符串,并把结果放入一个新建的数组。
strtok函数也可以做同样的事,但需要多次调用。
5.要比较两个字符串,以下那种方法最万能?
A.用strpos函数
B.用==操作符
C.用strcasecmp()
D.用strcmp()
答案解析:
答案是D。
strcmp()提供了安全的字符串比较机制。
注意,选项C是错的,strcasecmp()不是一个万能函数,因为它不区分大小写。
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}
答案解析:
选项中没有一个正则表达式能真正代表题目所给字符串的匹配方式,但是选项A和E仍然能勉强匹配。
选项A太普通了,它能够匹配任何字符串,因此答案是E。
7.以下哪些函数能用来验证字符串的完整性?
(三选)
A.md5()
B.sha1()
C.str_rot13()
D.crypt()
E.crc32()
答案解析:
正确答案是A,B和E。
用crypt()和str_rot13()来验证一个字符串是否被改变,效率很低。
crc32()比前面两个函数好些,如果能容忍一些小错误的话,它是个不错的选择。
8.哪个PHP函数与以下脚本在UNIX系统下执行的效果近似?
functionmy_funct($filename)
{
$f=file_get_contents($filename);
returnexplode(\n,$f);
}
?
A.fopen()
B.fread()
C.flock()
D.split_string()
E.file()
答案解析:
正确答案是A,B和E。
用crypt()和str_rot13()来验证一个字符串是否被改变,效率很低。
crc32()比前面两个函数好些,如果能容忍一些小错误的话,它是个不错的选择。
9.基于指定的式样(pattern)把一个字符串分隔开并放入数组,以下哪些函数能做到?
(双
选)
A.preg_split()
B.ereg()
C.str_split()
D.explode()
E.chop()
答案解析:
尽管条件不同,但preg_split和explode函数都能满足题目要求。
ereg()拿一个正则表达式匹配一个字符串;str_split()按固定长度分隔字符串;而chop()则是rtrim()别名,用来移除
字符串末尾处的空格。
10.以下脚本输出什么?
echoTesting.1+2.45
?
A.Testing1245
B.Testing345
C.Testing1+245
D.245
E.什么都没有
答案解析:
本题考察你对字符串操作及操作符优先级的认识。
连接运算符(.)的优先级比加号(+)高。
因此PHP解释器实际执行的运算可以表示为(Testing.1)+(2.45)。
由于字符串
test1不是数字,所以加号前面的运算等于0。
加号后面的运算等于245,PHP输出的结果是0+245,等于245,所以答案是D。
11.以下脚本输出什么?
$s=12345
$s[$s[1]]=2
echo$s;
?
A.12345
B.12245
C.22345
D.11345
E.Array
答案解析:
可以用访问数组元素的方式访问字符串中的字符,因此脚本只是把字符串中的第二个字符($s[1])替换成了字符2,最终将输出12245。
答案是B。
12.方框中的正则表达式能与以下哪些选项匹配?
(双选)
/.*\*123\d/
A.******123
B.*****_1234
C.******1234
D._*1234
E._*123
答案解析:
本题的要点是理解这个正则表达式的含义从左往右,首先是零个或多个任意字符(.*),跟着是一个星号(\*),然后是123,最后是一个数字。
因此答案是C和D。
13.以下哪个比较将返回true?
(双选)
A.1top==1
B.top==0
C.top===0
D.a==a
E.123==123
答案解析:
B和E正确。
选项B中,在比较时,字符串top等同于数字0。
==操作符不比对数据类型,所以将返回true。
答案E中,字符串123等同于数字123,比较将返回true。
14.如果用+操作符把一个字符串和一个整型数字相加,结果将怎样?
A.解释器输出一个类型错误
B.字符串将被转换成数字,再与整型数字相加
C.字符串将被丢弃,只保留整型数字
D.字符串和整型数字将连接成一个新字符串
E.整形数字将被丢弃,而保留字符串
答案解析:
字符串将被转换成数字(如果无法发生转换就是0),然后与整型数字相加。
答案是B。
15.考虑如下脚本。
假设能被访问,脚本将输出什么?
$s=file_get_contents(
strip_tags($s,array(p
echocount($s);
?
A的主页的字符数
B.剔除标签后的主页的字符数
C.1
D.0
E.剔除以外的标签后的主页的字符数
答案解析:
代码的本意是剔除主页上除了p以外的的所有HTML标签。
可实际上,在代码的最后一行使用了count函数,它统计变量中的元素数量,而不是字符串中的字符数。
由于字符
串是标量,对字符串使用count函数将永远返回1。
答案是C。
16.哪个函数能不区分大小写得对两个字符串进行二进制比对?
A.strcmp()
B.stricmp()
C.strcasecmp()
D.stristr()
E.以上都不能
答案解析:
题目其实就是在描述strcasecmp函数的作用,因此答案是C。
17.以下哪些函数能把字符串里存储的二进制数据转化成十六进制?
(双选)
A.encode_hex()
B.pack()
C.hex2bin()
D.bin2hex()
E.printf()
答案解析:
正确答案是B和D。
pack函数能对二进制数据进行复杂的格式化,包括将字符串中的字符转化成十六进制表示。
bin2hex函数也有同样的转化功能。
注意,printf()能将整数转化成十六进
制数,但无法转化字符串。
18.哪个函数能用来确保一个字符串的字符数总是大于一个指定值?
答案解析:
这是在说str_pad函数,它可以把字符串填充到指定长度。
19.以下脚本输出什么?
echowordwrap($a,1,c,false);
?
答案解析:
脚本将输出ablecostscindy。
wordwrap函数通常用来把字符串切割成指定长度。
然而在本题中,长度被设置为1,因此函数将从空格处切割(第四个参数被设置为false,因此函数不会从
单词的中间进行切割)。
填充字符串是c,等于把每个空格都换成了c。
20.以下脚本输出什么?
echosubstr_replace($x,x,1,2);
?
A.x
B.axle
C.axxle
D.applex
E.xapple
答案解析:
脚本将输出ablecostscindy。
wordwrap函数通常用来把字符串切割成指定长度。
然而在本题中,长度被设置为1,因此函数将从空格处切割(第四个参数被设置为false,因此函数不会从
单词的中间进行切割)。
填充字符串是c,等于把每个空格都换成了c。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 经典 PHP 笔试