一、選擇題
01. 輸出為Mozilla/4.0(compatible;MSIE5.01;Window NT 5.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. 執行下面的代碼后, 得到的輸出是:(說明: Echo print array eval list è語言結構)
<?php echo function_exists('print'); ?>
A. 空
B. true
C. false
D. FALSE
05. 執行下面的代碼的結果是什么?
<?php $bool = TRUE; echo gettype($bool); echo is_string($bool); ?>
A. boolean
B. boolean0
C. booleanFALSE
D. Booleanfalse
06. 寫出下面代碼執行的結果:
<?php $a = 12; $b = 012 $c = 0x12; echo $a,"\n",$b,"\n",$c; ?>
結果: 12 10 18 (二,十、八和十六進制之間轉換,核心點二進制)
07. 下面代碼的執行結果是什么?
<?php echo 1+2+"3+4+5"; ?>
A. 0 C. 6
B. 3 D. "33+4+5";
09. 下面代碼加入下面那個函數后返回TRUE:
return ? == 'A';
A. ord(65)
B. chr(65)
C. 65+''
D. ''+65
10. 下面代碼的輸出正確的是:
<?php $a = array(1=>5,5=>8,22,2=>'8',81); echo $a[7]; echo $a[6]; echo $a[3]; ?>
A. 空2281
B.空8122
C.8122空
D.空空空
11. 下面代碼的輸出結果:
<?php $a[bar]='hello'; echo $a[bar]; echo $a['bar']; ?>
A. hello
B. 空空
C.報錯
D.hellohello
12. 寫出下面代碼的結果:
<?php echo 1>>0; //001 ==>1 echo 2>>1; //010 ==> 001=>1 echo 3<<2; //011 <== 01100 =>12 ?>
A. 012
B. 106
C. 1112
D.123
13. 下面代碼的執行結果:
<?php for($i=0;i<10;$i++){ print $i; } ?>
A. 0123456789
B. 012345678910
C. 無輸出
D. 死循環
14. 下面對於echo, print 的描述正確的是:
A. echo, print 都可以打印多個參數
B. print 可以打印多個參數,echo 不可以
C. echo 可以打印多個參數,print不可以
D. echo, print 都不可以打印多個參數
15. 對於正面的代碼
<?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]";
16. 下面代碼執行完成后的結果是什么?
<?php function change(){ static $i = 0; $i++; return $i; } print change(); print change(); ?>
結果: 1 2
18. 下面的語句輸出結果 :
<?php $foo = 'test'; $bar = <<<EOT $foo bar EOT; echo $bar; ?>
a. $foo bar;
b. 'EOT' $foo bar EOT;
c. test bar;
d. 'EOT' test bar EOT;
19.$b的值是:
$a=3; $b=4;
if($a||$b=5){
echo 'tudo';
}
a. 4;
b. 5;
c. 3;
d. false
二、簡答題
1. 什么事面向對象?主要特征是什么?
1) 面向對象是程序的一種設計方式,它利於提高程序的重用性,使程序結構更加清晰。
2) 主要特征:封裝、繼承、多態
2. HTTP 狀態中302、403、 500代碼含義?
302重定向、
403服務器拒絕訪問
500服務器內部錯誤
4. Linux 下建立壓縮包,解壓縮包的命令。
壓縮 tar czf test.tar.gz test.php
解壓 tar xzf test.tar.gz
5. 請寫出數據類型(int char varchar datetime text)的意思;請問 varchar 和 char有什么區別?
1)類型介紹:
int是數字類型,
char固定長度字符串,
varchar長度變字符串,
datetime日期時間型,
text文本字符串
2)varchar 和 char的區別:
1. Char定義的為固定長度, 范圍是0~255, varchar定義的為變長長度, 范圍為0~65535
2.char在存儲時會自動補空格, varchar不會.
3.varchar在存儲時會多占用1~2個字節記錄長度, char不會.
6. MyISAM 和 InnoDB 的基本區別?
1. 查詢速度 myisam快一些
2. 事務 innodb支持, myisam不支持
3. 全文索引 myisam支持, innodb不支持
4. 鎖機制 myisam支持表所, innodb支持行鎖
5. 存儲文件 myisam產生三個文件(.frm .myd .myi), innodb產生兩個文件(.frm .ibd)
7. 不使用cookie向客戶端發送一個cookie.
header('set-cookie: abc=abc;max-Age=3600;path=/');
8. isset() 和 empty() 區別,對不同數據的判斷結果
1)isset()是判斷變量是否存在,是否定義
2)empty()是判斷變量的值是否為空.
9. 如何在頁面之間傳遞變量(至少兩種方式) ?
1)get
2)post
3)ajax
4)curl
5)cookie
6)session
三、PHP 代碼題
1. 寫出匹配URL的正則表達式.
http://www.baidu.com/index.php?id=1&name=user1
(http|ftp):\/\/(www.)?(\S*)(\?\S*\&\S*)?(.*)\/\/(.*)\?(.*)?
2. 請寫出常見的排序算法,並用PHP實現冒泡排序,將數組$a = array()按照從小到大的方式進行排序
快速排序
冒泡排序
插入排序
歸並排序
<?php Function mysort($arr){ For($i=0; $i<count($arr); $i++){ For($j=0; $j<count($arr)-1; $j++){ If($arr[$j] > $arr[$j+1]){ $tmp=$arr[$j]; $arr[$j]=$arr[$j+1]; $arr[$j+1]=$tmp; } } } Return $arr; } $arr=array(3,2,1); print_r(mysort($arr));
3. 在數據庫test中的一個表student,字段是name,class,score。分別代表姓名、所在班級,分數。
1) 算出每個班級中的學生,按照成績降序排序;
select name,class,score from student order by score desc;
2) 查出每個班的及格人數和不及格人數,格式為:class、及格人數、不及格人數
SELECT
sum(case when score >= 60 then 1 else 0 end) jige,
sum(case when score < 60 then 1 else 0 end) bujige,
class
FROM `score`
GROUP BY `class`
3) 用PHP寫入連接數據庫("localhost","msuser","mspass")、執行以上SQL、顯示結果、判斷錯誤、關閉數據庫的過程
$conn=mysql_connect(‘localhost’,'msuser’,’mspass′);
Mysql_select_db(‘test’);
$sql="SELECT
sum(case when score >= 60 then 1 else 0 end) jige,
sum(case when score < 60 then 1 else 0 end) bujige,
class
FROM `score`
GROUP BY `class`";
if($result=Mysql_query($sql)){
while($row=mysql_fetch_assoc($result)){
print_r($row);
}
}
Mysql_close($conn);