一、單選題(共28題,每題5分)
1.Apache與Nginx大訪問下性能描述正確的是?
A、Apache所采用的epoll網絡I/O模型非常高效
B、Nginx使用了最新的kqueue和select網絡I/O模型
C、Apache進程執行PHP、輸出HTML都得干,占用的資源多
D、nginx不可以做反向代理服務器
參考答案:C
答案解析:1、Apache所采用的select網絡I/O模型非常低效 2、Nginx使用了最新的epoll(Linux 2.6內核)和kqueue(freebsd)網絡I/O模型 3、Apache進程干的事情多:執行PHP、輸出HTML都得干,占用的資源就多(CPU、內存)
2.下列哪種PHP運行模式在PHP5.3之后不再支持?
A、CGI
B、FASTCIG
C、ISIPA
D、CLI
參考答案:C
答案解析:在PHP5.3以后,PHP不再有ISAPI模式,安裝后也不再有php5isapi.dll這個文件。要在IIS6上使用高版本PHP,必須安裝FastCGI擴展,然后使IIS6支持FastCGI。
3.yii小部件描述錯誤的是?
A、小部件是面向對象方式來重用視圖代碼
B、創建小部件時仍需要遵循 MVC 模式,通常邏輯代碼在小部件類,展示內容在視圖中
C、小部件設計時應不是獨立的,也就是說使用一個小部件時候,不可以直接丟棄它而不需要額外的處理
D、當小部件需要外部資源如 CSS, JavaScript圖片等會比較棘手幸運的時候 Yii 提供資源包來解決這個問題。
參考答案:C
答案解析:小部件設計時應是獨立的,也就是說使用一個小部件時候,可以直接丟棄它而不需要額外的處理。
4.以下關於結構型模式說法錯誤的是?
A、結構型模式可以在不破壞類封裝性的基礎上,實現新的功能
B、結構型模式主要用於創建一組對象
C、結構型模式可以創建一組類的統一訪問接口
D、結構型模式可以在不破壞類封裝性的基礎上,使得類可以同不曾估計到的系統進行交互
參考答案:B
答案解析:結構型(structural):處理類或對象間的組合。
5是PHP魔術方法的是?
A、__function
B、__to
C、__line
D、__invoke
參考答案:D
答案解析:__construct __destruct __call __callStatic __get __set __isset __clone __unset __sleep __wakeup __toString __invoke __set_state
6.substr函數的作用是?
A、查找字符串
B、替換字符串
C、截取字串
D、截取長度
參考答案:C
答案解析:截取字符串的部分字符串。
7.以下的哪一個數據庫產品是采用了 pureXML技術的數據服務器:
A、SQL Server
B、DB2
C、MySQL
D、JSON
參考答案:B
答案解析:暫無
8.作為一個管理員,你希望在每一個新用戶的目錄下放一個文件.bashrc, 那么你應該在哪個目錄下放這個文件,以便於新用戶創建主目錄時自動將這個文件復制到自己的目錄下。
A、/etc/skel/
B、/etc/default/
C、/etc/defaults/
D、/etc/profile.d/
參考答案:A
答案解析:/etc/skel/目錄是用來存放新用戶配置文件的目錄,當我們添加新用戶的時候,這個目錄下的所有文件會自動被復制到新添加的用戶的家目錄下。 這個目錄下的所有文件都是隱藏文件(以.點開頭的文件)。
9.在MySQL中,可用於創建一個新數據庫的SQL語句為()
A、CREATE DATABASE
B、CREATE TABLE
C、CREATE DATABASES
D、CREATE DB
參考答案:A
答案解析:
A選項正確,創建庫語句為:CREATE DATABASE 數據庫名。
B選項CREATE TABLE,是創建表的語句。
C和D選項語法錯誤。
10.關於判斷文件類型,以下說法正確的是?
A、根據文件的擴展名可以正確判斷文件的類型
B、根據文件的特征值可以正確判斷文件類型
C、根據文件的大小及特征值可以正確判斷文件類型
D、通過任何方法也無法100%確定文件類型
參考答案:D
答案解析:任何方式都可以偽造,所以我們只能通過方法無限接近,而無法完全保證可以判斷正確。
很多人在剛接觸這個行業的時候或者是在遇到瓶頸期的時候,總會遇到一些問題,比如學了一段時間感覺沒有方向感,不知道該從那里入手去學習,對此我整理了一些資料,需要的可以免費分享給大家(11年架構師帶你解讀年薪50萬面試通關秘籍。)
如果喜歡我的文章,想與一群資深開發者一起交流學習的話,獲取更多相關大廠面試咨詢和指導,歡迎加入我的學習交流群點擊此處PHP高級交流
11.在mysql中用a,b,c三個字段建立一個復合索引a_b_c,請問以下哪個查詢效率最差?
A、select * from test where a=10 and b>50
B、select * from test where a=10 and b>10 order by c
C、select * from test where a=10 and b=10 order by a
D、select * from test where a=10 and b = 10 order by c
參考答案:B
答案解析:最左匹配原則:該復合索引包含a,a_b,a_b_c。 復合索引只有在前面的字段為精確查詢時,才會用上后面的復合索引,一旦出現不精確查詢,則不會使用復合索引。 A選項中,使用a_b索引。 B選項中,使用了a_b索引,且有order by c故效率最差。 C選項中,使用a_b索引。 D選項中,使用a_b_c索引。
12.關於PHP數組key和value的限制條件,說法正確的是?
A、key只能是int或string類型,value可以使任何類型
B、key可以是任何類型,value可以是任何類型
C、key可以是任何類型,value只能是int或string類型
D、key只能是int或string類型,value只能是int或string類型
參考答案:A
答案解析:key只能是int或string類型,value可以使任何類型.。
13.以下代碼有什么漏洞?
A、沒有漏洞
B、適當用規則可刪除服務器全部文件
C、適當用規則可獲取想要的任何文件內容
D、適當用規則可以更改管理員密碼
參考答案:C
答案解析:如果我們提交 demo.php?dir=| cat /etc/passwd 則可以獲取服務器上所有管理員的賬戶信息。
14.以下shell代碼描述正確的是?
read -p "please input ip:" IPping $IP -w &> /dev/null && echo $IP is up || echo $IP is down
A、查詢本機ip
B、查找訪問該服務器的ip
C、通過ip查找訪問文件
D、通過輸入IP判斷主機是否關機
參考答案:D
答案解析:read -p "please input ip:" IP 提示輸入要判斷主機的ip ping $IP -w &> /dev/null && echo $IP is up || echo $IP is down :ping 該ip判斷是否已關機。
15.以下哪個模式是利用一個對象,快速地生成一批對象?
A、抽象工廠(Abstract Factory)模式
B、合成(Composite)模式
C、原型(Prototype)模式
D、橋接(Bridge)模式
參考答案:C
答案解析:原型模式:利用原型實例來“克隆”創建新的對象。
16.一個漢字在計算機內部保存的編碼是?
A、區位碼
B、國標碼
C、機內碼
D、機器碼
參考答案:C
答案解析:機內碼是一個漢字在計算機內部保存的編碼。
17.一下哪個不是PHP的運行模式?
A、CGI
B、FastCGI
C、apache2handler
D、apache
參考答案:D。答案解析:前三個是常用的運行模式,apache是web服務器軟件。
18.關於PHP模式修飾符說法錯誤的是?
A、i 大小寫不敏感匹配
B、m ^將只匹配字符串的開頭
C、x 空白和#注釋將被忽略
D、將替換后的字符串作為php代碼評估執行
參考答案:B
答案解析:m為增強的行錨點模式,\\n的前后也會被認為結束和開始。
19.挑出來一個與眾不同的命令
A、vi
B、vim
C、ll
D、nano
參考答案:C
答案解析:vi,vim和 nano都是編輯器,用於編輯文檔,而ll是顯示目錄下的文件信息。
20.以下哪個函數不是PHP的文件指針操作?
A、ftell()
B、fseek()
C、file()
D、feof()
參考答案:C
答案解析:ftell() 返回文件指針位置 fseek() 在文件指針中定位 feof() 測試文件指針是否在結尾。
21.關於php配置選項錯誤的是
A、開啟 short_open_tag 允許使用PHP 代碼開始標志的縮寫形式(<? ?>)
B、如果啟用了 magic_quotes_runtime,大多數返回任何形式外部數據的函數,包括數據庫和文本段將會用反斜線轉義引號
C、因為可以在運行時使用ini_set對配置選項進行設置,所以display_errors可以一直開啟
D、PHP 的安全模式是為了試圖解決共享服務器(shared-server)安全問題而設立的
參考答案:C
答案解析:盡管 display\_errors 也可以在運行時設置 (使用 ini\_set()), 但是腳本出現致命錯誤時任何運行時的設置都是無效的。 因為在這種情況下預期運行的操作不會被執行。這樣將會暴露敏感信息。
22 題6.3個不同元素依次進棧,有()不同的出棧序列
A、A、4
B、B、5
C、C、6
D、D、7
參考答案:B
答案解析:對於n個不同的元素進棧,出棧序列的個數為6\*5\*4/4\*3\*2\*1為5,也就是卡特蘭數。
23.與 HTTP1.0 相比,HTTP1.1 的優點不包括( )
A、減少了 RTTs 數量
B、支持持久連接
C、減少了 TCP 慢啟動次數
D、提高了安全性
參考答案:D
答案解析:HTTP 1.1優化了HTTP1.0的缺點,從而可以支持久連接,在一個TCP連接上可以傳送多個HTTP請求和響應,減少了建立和關閉連接的消耗和延遲即減少了 TCP 慢啟動次數,同時允許客戶端不用等待上一次請求結果返回,就可以發出下一次請求,減少了 RTTs 數量以及下載過程所需要的時間,HTTP 1.1還提供了與身份認證、狀態管理和Cache緩存等機制相關的請求頭和響應頭。然而在安全性能並不是HTTP1.1的特點,不過使用HTTPS解決了HTTP的安全問題,即安全的超文本傳輸協議(SHTTP).
24.下面有關內核線程和用戶線程說法錯誤的是?
A、用戶線程因<br>I/O 而處於等待狀態時,整個進程就會被調度程序切換為等待狀態,其他線程得不到運行的機會
B、內核線程只運行在內核態,不受用戶態上下文的影響
C、用戶線程和內核線程的調度都需要經過內核態
D、內核線程有利於發揮多處理器的並發優勢,但卻占用了更多的系統開支
參考答案:C
答案解析:用戶線程不需要,不然golang就沒有存在的意義了。
25.以下關於引用說法錯誤的是?
A、引用不是C的指針
B、引用不允許用兩個變量來指向同一個內容
C、用引用可以傳遞變量
D、可以將一個變量通過引用傳遞給函數,這樣該函數就可以修改其參數的值。
參考答案:B
答案解析:引用是允許用兩個變量來指向同一個內容的。
26.以下代碼輸出的結果是?
A、1
B、2
C、3
D、4
參考答案:A
答案解析:考察運算符優先級, 題目$a=(2>2)?2:3?++$a:--$a; 相當於$a=(2>2)?2:(3?++$a:--$a); 先計算括號內的運算 得出結果1.
27.以下代碼執行結果是?

A、0
B、1
C、2
D、3
參考答案:B
答案解析:如果你回答 2 ,恭喜,你掉入陷阱了。 其實這道題主要考兩點,第一點是static靜態類型。這種的值永遠都是靜態的,第一次調用聲明等於0,並且自增等於1。第二次調用,1再自增就等於2。但其實這里還有一道陷阱,那就是++a與a++的區別,前++是先自增,后++是先返回值再自增,所以結果等於 1。
28.PHP執行的時候有如下執行過程:Scanning(Lexing) - Compilation - Execution - Parsing,其含義分別為:
A、將PHP代碼轉換為語言片段(Tokens)、將Tokens轉換成簡單而有意義的表達式、順次執行Opcodes、將表達式編譯成Opocdes
B、將PHP代碼轉換為語言片段(Tokens)、將表達式編譯成Opocdes、順次執行Opcodes、將Tokens轉換成簡單而有意義的表達式
C、將PHP代碼轉換為語言片段(Tokens)、將Tokens轉換成簡單而有意義的表達式、將表達式編譯成Opocdes、順次執行Opcodes
D、將PHP代碼轉換為語言片段(Tokens)、將表達式編譯成Opocdes、將Tokens轉換成簡單而有意義的表達式、順次執行Opcodes
參考答案:C
答案解析:
正確答案為C
1.Scanning(Lexing) ,將PHP代碼轉換為語言片段(Tokens)
2.Parsing, 將Tokens轉換成簡單而有意義的表達式
3.Compilation, 將表達式編譯成Opocdes
4.Execution, 順次執行Opcodes,每次一條,從而實現PHP腳本的功能。
二、多選題(共1題,每題5分)
1.在MYSQL中,關於HASH索引,下列描述正確的是?
A、如果將一個MYISAM表改為HASH索引的MEMORY表,不會影響查詢的執行效率
B、只用於使用=或者<=>操作符的等式比較
C、優化器不能使用HASH索引來加速Order By操作
D、只能使用整個關鍵字來搜索一行
參考答案:B,C,D
答案解析:
A 效率會降低。 簡單地說,哈希索引就是采用一定的哈希算法,把鍵值換算成新的哈希值,檢索時不需要類似B+樹那樣從根節點到葉子節點逐級查找,只需一次哈希算法即可立刻定位到相應的位置,速度非常快。 B+樹索引和哈希索引的明顯區別是: 如果是等值查詢,那么哈希索引明顯有絕對優勢,因為只需要經過一次算法即可找到相應的鍵值;當然了,這個前提是,鍵值都是唯一的。如果鍵值不是唯一的,就需要先找到該鍵所在位置,然后再根據鏈表往后掃描,直到找到相應的數據; 從示意圖中也能看到,如果是范圍查詢檢索,這時候哈希索引就毫無用武之地了,因為原先是有序的鍵值,經過哈希算法后,有可能變成不連續的了,就沒辦法再利用索引完成范圍查詢檢索; 同理,哈希索引也沒辦法利用索引完成排序,以及like ‘xxx%’ 這樣的部分模糊查詢(這種部分模糊查詢,其實本質上也是范圍查詢); 哈希索引也不支持多列聯合索引的最左匹配規則; B+樹索引的關鍵字檢索效率比較平均,不像B樹那樣波動幅度大,在有大量重復鍵值情況下,哈希索引的效率也是極低的,因為存在所謂的哈希碰撞問題。
