01.輸出為Mozilla/4.0(compatible;MSIE5.01;WindowNT5.0)時,可能的輸出語句是:
A.$_SERVER['HTTP_USER_AGENT_TYPE'];
B.$_SERVER['HTTP_USER_AGENT'];
C.$_SERVER['USER_AGENT'];
D.$_SERVER['AGENT'];
02.下面功能PHP無法實現的是:
A.伺服器端指令碼運行
B.命令列指令碼運行
C.用戶端圖形介面(GUI)程式
D.瀏覽器端執行DOM操作
03.下面說法不正確的是:
A.PHP有四種標量類型:布爾型(boolean),整型(integer),浮點型(float),字串(string)
B.浮點型(float)與雙精確度型(double)是同一種類型
C.複合類型包括:數組(array),對象(object),資源(resource)
D.偽類型:混合型(mixed),數字型(number),回調(callback)
04.執行下面的代碼後,
<?php
Echo function_exists('print');
?>
1. Function_exists判斷函數是否存在,返回true或者false
2. Print本身不是函數,而是一種語言結構
3. Echofalse 什麼都沒有
得到的輸出是:
A.空
B.true
C.false
D.FALSE
05.下面不是PHP文法的組成部分的函數是:
A.array
B.eval
C.each
D.list
Echoprint
06.執行下面的代碼的結果是什麼。
<?php
$bool=TRUE;
Echo gettype($bool);
Echo is_string($bool);
?>
A.boolean
B.boolean0
C.booleanFALSE
D.booleanfalse
*07.寫出下面代碼執行的結果:
<?php
$a=12;
$b=012;
$c=0x12;
Echo $a,"\n",$b,"\n",$c;
?>
12\n10\n18
08.下面代碼的執行結果是什麼。
<?php
Echo 1+2+"3+4+5";
?>
A.0
B.3
C.6
D."33+4+5";
09.下面代碼加入下面那個函數後返回TRUE:
Return ?=='A';
A.ord(65) 根據字元,返回ascii碼值
B.chr(65)根據ascii碼值,返回對應的字元 A==65 a==97
C.65+''
D.''+65
10.下面代碼的輸出正確的是:
<?php
$a=array(1=>5,5=>8,22,2=>'8',81);
Echo $a[7];//81
Echo $a[6];//22
Echo $a[3];
?>
A.空2281 B.空8122 C.8122空 D.空空空
11.下面代碼的輸出結果:
<?php
$a[bar]='hello';
Echo $a[bar];//hello
echo $a['bar'];//hello
?>
A.hello B.空空 C.報錯 D.hellohello
*12.寫出下面代碼的結果:
<?php
Echo 1>>0; 0001
Echo 2>>1; 0010 -> 0001
Echo 3<<2; 0011 -> 1100
?>
A.012 B.106 C.1112D.123
13.下面對於echo,print的描述正確的是:
A.echo,print都可以列印多個參數
B.print可以列印多個參數,echo不可以
C.echo可以列印多個參數,print不可以
D.echo,print都不可以列印多個參數
14.對於下面的代碼
<?php
$fruits=array('strawberry'=>'red','banana'=>'yellow');
?>
能夠正確得到結果'yellow'的代碼是:
A.echo"A banana is {$fruits['banana']}";
B.echo"A banana is $fruits['banana']";
C.echo"A banana is {$fruits[banana]}";
D.echo"A banana is $fruits[banana]";
15.下面代碼執行完成後的結果是什麼。
<?php
Function change(){
Static$i=0;
$i++;
Return$i;
}
Printchange();
Printchange();
?>
12
16.以下代碼的執行後是,$result值為:
<?php
$srcArray=array(‘a’,’b’,’c’,’d’);
$randValue=array_rand($srcArray);
$result=is_string($randValue);
?>
1. array_rand返回什麼。
2. Is_string()傳回值
A、a
B、false
C、trueb
D、b
E、c
17.<?phpecho count(‘123’)?>輸出的是。
A、3
B、false
C、null
D、1
E、0
18.以下代碼的執行後是,$result值為:
<?php
$a=’01’;
$result=1;
If(in_array($a,array(‘1’))){
$result=2;
}elseif($a==’1’){
$result=3;
}elseif($a==’01’){
$result=4;
}else{
$result=5;
}
?>
A、1
B、2
C、3
D、4
E、5
19.php函數名是否區分大小寫?
A、不區分
B、區分
20.以下代碼的執行後是,$result值為:
<?php
$x=””;
$result=is_null($x);
?>
A、null
B、true
C、false
D、1
21.哪種OOP設定模式能讓類在整個指令碼裡只執行個體化一次。
A、MVC
B、代理模式
C、狀態模式
D、抽象原廠模式
E、單件模式
22.藉助繼承,我們可以建立其他類的衍生類別。那麼在PHP中,子類最多可以繼承幾個父類。
A、1個
B、2個
C、取決於系統資源
D、3個
E、想要幾個有幾個
23.以下哪種錯誤類型無法被自訂的錯誤處理器捕捉到?(雙選)set_error_handler
A、E_WARNING
B、E_USER_ERROR
C、E_PARSE
D、E_NOTICE
24.執行以下代碼,輸出結果是
<?php
Abstract class a{
Function __construct(){
Echo “a”;
}
}
$a=new a();
?>
A、a
B、一個錯誤警告
C、一個致命性的報錯
25.執行以下代碼,輸入結果是
<?php
Class a{
Function __construct(){
Echo “Echo Classa Something”;
}
}
Class b extends a{
Function __construct(){
Echo “Echo Classb Something”;
}
}
$a=new b();
?>
A、echoclassasomethingechoclassbsomething
B、echoclassbsomethingechoclassasomething
C、echoclassassomething
D、echo class b something
26.下面哪個選項沒有將john添加到users數組中。2分
(A) $users[] = 'john';
(B) array_push($users, 'john');
(C) $users||= 'john';
(D) array_unshift($users, 'john');
27.在PHP中,'+'操作符的功能不包括 2分
A.字串串連
B.數組資料合併 array(0=>1,1=>2)+array(2=>3,3=>4)
C.變數資料相加
28.下面哪個運算式不能將兩個字串$s1和$s2串聯成一個單獨的字串。( )
A.$s1+$s2 B.“{$s1}{$s2}” C.$s1.$s2
D. implode(‘’,array($s1,$s2)) E.以上所有的方法都能實現
29.下面的指令碼運行以後,$array數組所包含的值是什麼。( )
$array = array(‘1’,’1’);
foreach($array as $k=>$v){
$v = 2;
}
A.array(‘2’,’2’) B.array(‘1’,’1’) C.array(2,2) D.array(Null,Null)
30.array_shift()函數的作用是。
A 在數組中新增一個元素
B 移除數組中的一個元素
C 交換一個數組的key和value array_flip()
D 清除一個數組
填空
1、執行程式段<?php echo 8%(-2) ?>將輸出___0_。
*2、以Apache模組的方式安裝PHP,在檔案httpd.conf中首先要用語句__ LoadModule php5_module"F:/wamp/php-5.2.6-win32/php5apache2_2.dll"__動態裝載PHP模組,然後再用語句__ AddTypeapplication/x-httpd-php .php__使得Apache把所有副檔名為php的檔案都作為PHP指令碼處理。
3、類的屬性可以序列化後儲存到session中,從而以後可以恢複整個類,這要用到的函數是_serialize___。
4、__debug_backtrace___函數能返回指令碼裡的任意行中調用的函數的名稱。該函數同時還經常被用在調試中,用來判斷錯誤是如何發生的。
5、<?$str="cd";
$$str="abcde"; $cd=”abcde”
$$str.="ok"; $cd .= “ok”;
echo$cd; echo $cd;
?>
該段代碼輸出是___abcdeok____
讀程題
1、(5分)請指出以下代碼的錯誤之處(圈出來並加以改正)
function baz($y,$a) {
//$x =new Array();
$x[‘sales’] = 60;
$x[‘profit’] = 20;
foreach($xas $key =>$value) {
echo$key + “ ” + $value + “<BR>”;
}
}
2、寫出以下程式的輸出結果 (1分)
$b=201;
$c=40;
$a=$b>$c?4:5;
echo $a;
4
3、下面的程式會輸出什麼 1分)
$num = 10;
function multiply(){
$num = $num * 10;
}
multiply();
echo $num;
10
4、請寫出下列PHP代碼的執行結果 6分
$var1 = 5;
$var2 = 10;
functionfoo(&$my_var){
global$var1;
$var1 +=2;
$var2 = 4;
$my_var +=3;
return$var2;
}
$my_var = 5;
echofoo($my_var) ."\n";//4
echo $my_var."\n";//8
echo $var1."\n";//7
echo $var2."\n";//10
$bar = 'foo';
$my_var = 10;
echo$bar($my_var) ."\n";//4
5、寫出下列代碼的輸出結果:
function myfunc($argument){
echo $argunment + 10;
}
$variable =10;
echo “myfunc($variable)=”.myfunc($variable);
20myfunc(10)=
6、寫出如下程式的輸出結果(5分)
$test='aaaaaa';
$abc=&$test;
unset($test);
echo $abc;//aaaaaa
7、寫出程式啟動並執行結果
$a=0;
$b=0;
If($a=3||$b=3){
$a++; //true++
$b++; //0++
}
Echo$a.”,”.$b; //1,1
$a=0;
$b=0;
If($a=(3|$b=3)){
$a++;//3++
$b++;//3++
}
Echo$a.”,”.$b;//4,4
結果:1._______1,1__________,2._________4,4_____________
8、
<?php
$data = array(‘a’, ‘b’, ‘c’);
foreach($data as $key=>$val) {
$val = &$data[$key];
}
?>
問題1:程式執行時,每一次迴圈結束後變數$data的值是什麼。請解釋。
問題2:程式執行完後,變數$data的值是什麼。請解釋。
問答題
1、實現中文字串截取無亂碼的方法。(3分)
mb_substr()
2、輸出使用者的IP地址,並且判斷使用者的IP地址是否在192.168.1.100 --- 192.168.1.150之間(5分)。
Ip2long(“192.168.1.100”) ip2long(‘192.168.1.150’)
3、不斷在檔案hello.txt頭部寫入一行“Hello World”字串,要求代碼完整(10分)
$str = File_get_contents(“hello.txt”);
$str = “helloworld”.$str;
File_put_contents(“hello.txt”,$str);
4、請列出3種PHP數組迴圈操作的文法,並註明每種迴圈的優缺點 5分
For 只能迴圈下標連續的索引數組
Foreach 可以迴圈所有數組
While 與for相似
While(list($key,$val)=each($arr)) 可讀性較差,效率較低
5、求兩個日期的差數,例如2007-2-5~2007-3-6的日期差數(5分)
(Strtotime(‘2007-3-6’)-Strtotime(“2007-2-5”))/(3600*24)
6、請將2維數組按照name的長度進行重新排序,按照順序將id賦值(從1開始)。(15分)
$array = array(
array(‘id’ => 0,‘name’ => ‘123’),
array(‘id’ => 0,‘name’ => ‘12345’),
array(‘id’ => 0,‘name’ => ‘1234’),
array(‘id’ => 0,‘name’ => ‘123abcd’),
array(‘id’ => 0,‘name’ => ‘123456’),
);
)
for($j=0,$c=count($array);$j<$c;$j++){
for($i=0;$i<$c-1-$j;$i++){
if(strlen($array[$i]['name'])>strlen($array[$i+1]['name'])){
$tmp= $array[$i];
$array[$i]= $array[$i+1];
$array[$i+1]= $tmp;
}
}
$array[$c-1-$j]['id']= $c-$j;
}
$arr = array();
foreach($Tarray as $k=>$v)
{
$arr[$k] = strlen($v['name']);
}
natsort($arr);
$arr1 = array();
$i = 0;
foreach($arr as $k=>$v)
{
$arr1[$i]['id'] = $v;
$arr1[$i]['name'] =$Tarray[$k]['name'];
$i++;
}
8、在PHP中error_reporting這個函數有什麼作用? (1分)
改變錯誤層級
9、簡述如何得到當前執行指令碼路徑,包括所得到參數。(2分)
$_SERVER[‘REQUEST_URI’]
10、mysql_fetch_row()和mysql_fetch_array之間有什麼區別? (1分)
Mysql_fetch_row()