PHP笔试试题.docx
- 文档编号:12373421
- 上传时间:2023-04-18
- 格式:DOCX
- 页数:18
- 大小:22.03KB
PHP笔试试题.docx
《PHP笔试试题.docx》由会员分享,可在线阅读,更多相关《PHP笔试试题.docx(18页珍藏版)》请在冰豆网上搜索。
PHP笔试试题
一、单项选择(40分)
1、PHP是一种______脚本语言,基于______引擎。
PHP最常被用来开发动态的______内
容,此外,它同样还可被用来生成______(以及其他)文档。
A.动态,PHP,数据库,HTML
B.嵌入式,Zend,HTML,XML
C.基于Perl的,PHP,Web,静态
D.基于Zend的,PHP,图像,HTML
2、以下代码哪个不符合PHP语法?
A.$_10
B.${“MyVar”}
C.&$something
D.$10_somethingsE.$aVaR
3、以下哪种标签不是PHP起始/结束符?
A.<%%>
B.//
C.
php?
>
D./**/
4、要比较两个字符串,以下那种方法最万能?
A.用strpos函数
B.用==操作符
C.用strcasecmp()
D.用strcmp()
运行时(run-time)包含一个PHP脚本使用______,而编译时(compile-time)包含一
个PHP脚本使用______。
A.include_once,include
B.require,include
C.require_once,include
D.以上皆可
5、print()和echo()有什么区别?
A
A.print()能作为表达式的一部分,echo()不能
B.echo()能作为表达式的一部分,print()不能
C.echo()能在CLI(命令行)版本的PHP中使用,print()不能
D.print()能在CLI(命令行)版本的PHP中使用,echo()不能
6、如果用+操作符把一个字符串和一个整型数字相加,结果将怎样?
A.解释器输出一个类型错误
B.字符串将被转换成数字,再与整型数字相加
C.字符串将被丢弃,只保留整型数字
D.字符串和整型数字将连接成一个新字符串
7、运行以下代码将显示什么?
define(myvalue,"10");
$myarray[10]="Dog";
$myarray[]="Human";
$myarray['myvalue']="Cat";
$myarray["Dog"]="Cat";
(window.cproArray=window.cproArray||[]).push({id:
"u2280119"});
print"Thevalueis:
";
print$myarray[myvalue]."\n";
?
>
2
A.TheValueis:
Dog
B.TheValueis:
Cat
C.TheValueis:
Human
D.TheValueis:
10
8、以下脚本输出什么?
d
$a=10;$b=20;$c=4;$d=8;$e=1.0;
$f=$c+$d*2;$g=$f%20;
$h=$b-$a+$c+2;$i=$h<<$c;$j=$i*$e;
print$j;?
>
A.128
B.42
C.242.0
D.256
什么情况下声明函数时不能给参数赋默认值?
A.当参数是布尔值时
B.当函数是类中的成员时
C.当参数是通过引用传递时
D.当函数只有一个参数时
9、以下哪种方法能保证锁在任何竞争情况下都安全?
A.用flock()锁住指定文件
B.用fopen()在系统的临时文件夹里打开文件
C.用tempnam()创建一个临时文件
D.用mkdir()创建一个文件夹来当
10、stat()和fstat()有什么区别?
A.stat()基于文件指针工作,fstat()基于路径工作
B.fstat()基于文件指针工作,stat()基于路径工作
C.fstat()不能处理文件
D.stat()不能处理文件
11、考虑如下脚本。
运行时,尽管文件test.txt已经被用unlink()函数删除,脚本仍然输出1,1。
在脚本的最后添加什么函数才能解决这个问题?
$f=fopen("test.txt","w");
fwrite($f,"test");
fclose($f);
echo(int)file_exists("test.txt").',';
unlink("c:
\\test.txt");
echo(int)file_exists("test.txt");
?
>
A.clearstatcache()
B.fflush()
C.ob_flush()
D.touch()
12、如何给变量$a,$b和$c赋值才能使以下脚本显示字符串“Hello,World!
”?
$string="Hello,World!
";
$a=?
;
3
$b=?
;
$c=?
;
if($a){
if($b&&!
$c){
echo"GoodbyeCruelWorld!
";
}elseif(!
$b&&!
$c){
echo"Nothinghere";
}
}
else{
if(!
$b){
if(!
$a&&(!
$b&&$c)){
echo"Hello,World!
";
}else{
echo"GoodbyeWorld!
";
}
}else{
echo"Notquite.";
}
}
?
>
A.False,True,False
B.True,True,False
C.False,True,True
D.False,False,True
13、什么情况下声明函数时不能给参数赋默认值?
A.当参数是布尔值时
B.当函数是类中的成员时
C.当参数是通过引用传递时
D.当函数只有一个参数时
14、运行以下代码将显示什么值?
假设代码运行时的URL是:
testscript.php?
c=25
functionprocess($c,$d=25)
{
global$e;
$retval=$c+$d-$_GET['c']-$e;
return$retval;
}
$e=10;
echoprocess(5);
?
>
A.25
B.-5
C.10
D.5
15、一段脚本如何才算彻底终止?
A.当调用exit()时
B.当执行到文件结尾时
C.当PHP崩溃时
D.当Apache由于系统故障而终止时
16、以下脚本输出什么?
$array='0123456789ABCDEFG';$s='';
for($i=1;$i<50;$i++){
$s.=$array[rand(0,strlen($array)-1)];
}echo$s;
?
>
A.50个随机字符组成的字符串
B.49个相同字符组成的字符串,因为没有初始化随机数生成器
C.49个随机字符组成的字符串
D.什么都没有,因为$array不是数组
17、要修改每个元素的值,如何遍历$myarray数组最合适?
$myarray=array("MyString","AnotherString","Hi,Mom!
");?
>
A.用for循环
B.用foreach循环
C.用while循环
D.用do„while循环
18、考虑如下代码片段:
define("STOP_AT",1024);$result=array();
/*在此处填入代码*/
{
5
$result[]=$idx;
}
print_r($result);
?
>
标记处填入什么代码才能产生如下数组输出?
Array{[0]=>1
[1]=>2
[2]=>4
[3]=>8
[4]=>16
[5]=>32
[6]=>64
[7]=>128
[8]=>256
[9]=>512}
A.foreach($resultas$key=>$val)
B.while($idx*=2)
C.for($idx=1;$idx D.for($idx*=2;STOP_AT>=$idx;$idx=0) 18、函数delete是做什么的? A.删除文件 B.删除文件夹 C.释放变量 D.没有这个函数! 19、以下哪个选项准确的描述出了方框中的脚本的作用? echonumber_format(disk_free_space('c: \\')/ disk_total_space('c: \\')*100,2).'%'; ? > A.计算Windows系统C盘的剩余磁盘空间大小 B.输出一个表示C盘剩余空间所占比例的两位小数 C.输出C盘剩余容量的byte数 D.计算C盘总容量与剩余空间的比率 20、stat()和fstat()有什么区别? A.stat()基于文件指针工作,fstat()基于路径工作 B.fstat()基于文件指针工作,stat()基于路径工作 C.fstat()不能处理文件 D.stat()不能处理文件 21、要修改每个元素的值,如何遍历$myarray数组最合适? $myarray=array("MyString","AnotherString","Hi,Mom! "); ? > A.用for循环 B.用foreach循环 C.用while循环 D.用do…while循环 22、.以下代码哪个不符合PHP语法? A.$_10 B.${“MyVar”} C.&$something D.$10_somethings 23、PHP的位运算符不包括()。 A.&B.|C.~D.! 24、要配置Apache的PHP环境,只需修改()。 A.php.ini B.http.conf C.php.sys D.php.exe 25、PHP中定义常量的方法是()。 A.VAR B.dim C.define() D.undefined() 26、运行以下代码将显示什么? php define(myvalue,"10"); $myarray[10]="Dog"; $myarray[]="Human"; $myarray['myvalue']="Cat"; $myarray["Dog"]="Cat"; print"Thevalueis: "; print$myarray[myvalue]."\n"; ? > A.TheValueis: Dog B.TheValueis: Cat C.TheValueis: Human D.TheValueis: 10 27、以下脚本输出什么? php $array='0123456789ABCDEFG'; $s=''; for($i=1;$i<50;$i++){ $s.=$array[rand(0,strlen($array)-1)]; } echo$s; ? > A.50个随机字符组成的字符串 B.49个相同字符组成的字符串,因为没有初始化随机数生成器 C.49个随机字符组成的字符串 D.49个字母‘G’组成的字符串 28、考虑如下代码片段: php define("STOP_AT",1024); $result=array(); /*在此处填入代码*/ { $result[]=$idx; } print_r($result); ? > 标记处填入什么代码才能产生如下数组输出? Array { [0]=>1 [1]=>2 [2]=>4 [3]=>8 [4]=>16 [5]=>32 [6]=>64 [7]=>128 [8]=>256 [9]=>512 } A.foreach($resultas$key=>$val) B.while($idx*=2) C.for($idx=1;$idx D.for($idx*=2;STOP_AT>=$idx;$idx=0) 29、考虑如下一段代码,执行时,$eight_tenths->to_string方法返回的字符串是8/10而不 是希望的4/5,为什么? php classfraction{ var$numerator;`2322222221`q`` var$denominator; functionfraction($n,$d){ $this->set_numerator($n); $this->set_denominator($d); } functionset_numerator($num){ $this->numerator=(int)$num; } functionset_denominator($num){ $this->denominator=(int)$num; } functionto_string(){ return"{$this->numerator}/{$this->denominator}"; } } functiongcd($a,$b){ return($b>0)? gcd($b,$a%$b): $a; } functionreduce_fraction($fraction){ $gcd=gcd($fraction->numerator, $fraction->denominator); $fraction->numerator/=$gcd; $fraction->denominator/=$gcd; } $eight_tenths=newfraction(8,10); /*Reducethefraction*/ reduce_fraction($eight_tenths); var_dump($eight_tenths->to_string()); ? > A.reduce_fraction函数必须返回一个值 B.reduce_fraction函数必须接受一个整型值 C.gcd函数有问题 D.必须通过引用的方式传递$eight_tenths对象 30、在str_replace(1,2,3)函数中123所代表的名称是()。 A."取代字符串","被取代字符串","来源字符串" B."被取代字符串","取代字符串","来源字符串" C."来源字符串","取代字符串","被取代字符串" D."来源字符串","被取代字符串","取代字符串" 31、下面程序运行的结果为()。 $a=array("a","b","c","d"); $index=array_search("a",$a); if($index==false) echo"在数组a中未发现字符'a'"; elseecho"index=".$index; A.在数组a中未发现字符’a’ B.0 C.1 D.2 31、以下代码能正确在浏览器中显示图片的是: () A. php $img=imagecreatefromjpeg(“images/scce.jpg”) imagejpeg($img); imagedestroy($img); ? > B. php header(“content-type: image/jpeg”); $img=imagecreatefromjpeg(“images/scce.jpg”) imagejpeg($img); imagedestroy($img); ? > C. php header(“content-type: image/jpeg”); $img=imagecreatefromfile(“images/scce.jpg”) imageout($img); imagedestroy($img); ? > D. php header(“content-type: image/jpeg”); $img=imageopen(“images/scce.jpg”) imagejpeg($img); imagedestroy($img); ? > 32、哪种方法用来计算数组所有元素的总和最简便? A.用for循环遍历数组 B.用foreach循环遍历数组 C.用array_intersect函数 D.用array_sum函数 33、在不考虑实际用途的前提下,把数组直接传给一个只读函数比通过引用传递的复杂度 低? A.是的,因为在把它传递给函数时,解释器需要复制这个数组 B.是的,如果函数修改数组的内容的话 C.是的,如果这个数组很大的话 D.是的,因为PHP需要监视函数的输出,已确定数组是否被改变 34、给定一个用逗号分隔一组值的字符串,以下哪个函数能在仅调用一次的情况下就把每 个独立的值放入一个新创建的数组? A.strstr() B.不可能只调用一次就完成 C.extract() D.explode() 35、如果用+操作符把一个字符串和一个整型数字相加,结果将怎样? A.解释器输出一个类型错误 B.字符串将被转换成数字,再与整型数字相加 C.字符串将被丢弃,只保留整型数字 D.字符串和整型数字将连接成一个新字符串 36、以下哪种方法能保证锁在任何竞争情况下都安全? A.用flock()锁住指定文件 B.用fopen()在系统的临时文件夹里打开文件 C.用tempnam()创建一个临时文件 D.用mkdir()创建一个文件夹来当 37、GMT时区下的时间戳与你所在时区下的时间戳的秒数差距有多大? A.取决于你所在时区与GMT时区的时间差 B.没有差别 C.只当你也在GMT时区时才会相同 D.永远不会相同 38、如何将一个数组作为附件发送,并要能在接收后重新组合? A.用serialize()把它转换成字符串,再用htmlentities()处理一下 B.把它存在文件中,并用base64_encode()进行编码 C.用serialize()把它转换成数组 D.用serialize()把它转换成数组,再用base64_encode()进行编码 39、返回上一个MYSQL操作中的错误信息的数字编码使用的函数是()。 A.mysql_error(); B.Mysql_close(); C.Mysql_errno(); D.Mysql_connect(); 40、在PHP函数中,属于选择数据库函数的是()。 A.mysql_fetch_row B.mysql_fetch_object C.mysql_result D.mysql_select_db 多选 1、以下哪个选项是把整型变量$a的值乘以4? A.$a*=pow(2,2); B.$a>>=2; C.$a<<=2; D.$a+=$a+$a; E.一个都不对 2、以下脚本将如何影响$s字符串? php $s=' Hello $ss=htmlentities($s); echo$s; ? > A.尖括号<>会被转换成HTML标记,因此字符串将变长 B.没有变化 C.在浏览器上打印该字符串时,尖括号是可见的 D.在浏览器上打印该字符串时,尖括号及其内容将被识别为HTML标签,因此不可 见 E.由于调用了htmlentities(),字符串会被销毁 3、基于指定的式样(pattern)把一个字符串分隔开并放入数组,以下哪些函数能做到? A.preg_split() B.ereg() C.str_split() D.explode() E.chop() 4、以下哪些函数能读取文件的全部内容? A.fgets() B.file_get_contents() C.fread() D.readfile() E.file() 5、处理数据库中读取的日期数据时,以下那种方法有助于避免bug? A.确保日期数据与服务器使用相同的时区 B.如果日期需要被转换成UNIX时间戳进行操作,要确保结果不会溢出 C.用数据库功能测试日期的合法性 D.如果可能,用数据库功能计算日期的值 E.用代码控制日期只能在PHP中进行处理 6、考虑如下SQL语句。 哪个选项能对返回记录的条数进行限制? SELECT*FROMMY_TABLE A.如果可能,用把查询转换成存储例程 B.如果程序允许,给查询指定返回记录的范围 C.如果可能,添加where条件 D.如果DBMS允许,把查询转换成视图 E.如果DBMS允许,使用事先准备好的语句 7、考虑如下脚本。 假设mysql_query函数将一个未过滤的查询语句送入一个已经打开的 数据库连接,以下哪个选项是对的? php $r=mysql_query('DELETEFROMMYTABLEWHEREID='.$_GET['ID']); ? > 72 A.MYTABLE表中的记录超过1条 B.用户输入的数据需要经过适当的转义和过滤 C.调用该函数将产生一个包含了其他记录条数的记录 D.给URL传递ID=0+OR+1将导致MYTABLE中的所有表被删除 E.查询语句中应该包含数据库名 8、有一个脚本由于要从远程获取数据,因而运行速度很慢,以下那种方法能对其进行优 化? A.安装操作码缓存(opcodecache) B.优化或者升级你的网络连接 C.添置更多的硬件 D.增加服务器的可用RAM E.使用连接缓存 9、改变输出MYSQL中文乱码的SQL语句是()。 A.SETNAMESGB2312 B.SETNAMESUTF8 C.SETNAMESUTF-8 D.SETNAMES"GB2312" 10、你在向某台特定的电脑中写入带有效期的cookie时总是会失败,而这在其他电脑上都 正常。 在检查了客户端操作系统传回的时间后,你发现这台电脑上的时间和web服务 器上的时间基本相同。 而且这台电脑在访问大部分其他网站时都没有问题。 请问这会 是什么原因导致的? (双选) A.浏览器的程序出问题了 B.客户端的时区设置不正确 C.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PHP 笔试 试题