PHP 基礎知識測試題 答案分析


一:選擇題(單項選擇,每題2分):

 

1. LAMP具體結構不包含下面哪種(A      )

A:Windows系統              如果是這個就是WMP

B:Apache服務器 

C:MySQL數據庫

D:PHP語言

2. 以下哪個SQL語句是正確的(D    )

A:insert into users 少了一個values (‘p001’,’張三’,’男’);

B:create table (Code int primary key);     漏了一個表名

C:update users 少了一個set Code=’p002’ where Code=’p001’;

D:select Code as ‘代號’ from users;

3. 以下哪種類型是B/S架構的正確描述(C)     B/S 瀏覽器

A:需要客戶安裝客戶端    在瀏覽器上打開,並不需要安裝客戶端

B:不需要安裝就可以使用        瀏覽器的一些程序也需要安裝后在使用的   例如cms

C:依托瀏覽器的網絡系統

D:不需要服務器的系統        每種程序都需要服務器

4 .php中哪個語句可以輸出變量類型(C)

A:echo    輸出字符串        

B:print    輸出字符串

C:var_dump()    輸出類型  變量的值

D:print_r()   輸出數組的 並沒輸出類型

 

 

5 .php定義變量正確的是(  B     )

A:var a = 5;    JS定義方式

B: $a = 10;     

C:int b = 6;    強類型語言定義方式

D:var $a = 12;     前面不需要加var

6 .php中單引號和雙引號包含字符串的區別正確的是(D)   

A:單引號速度快,雙引號速度慢        

B:雙引號速度快,單引號速度慢       A和B定義方式沒有速度差別

C:單引號里面可以解析轉義字符      單引號可以原樣輸出

D:雙引號里面可以解析變量

7 .若x,y為整型數據,以下語句執行的$y結果為(     B)

$x = 1;                        x定義等於1           

++$x;                          x等於2了

 $y =$x++;                  先把x值附給y,在把x自加1所有等於2!!如果是++$x就是3

    A:1    B:2    C:3    D:0

8 .php中關於字符串處理函數以下說法正確的是(     C     )

A:implode( )方法可以將字符串拆解為數組           應該用explode     implode是合並 正好相反

B:str_replace()可以替換指定位置的字符串          查找替換把滿足的全部替換 可以用substr_replace 這種是用來替換指定位置

C:substr( )可以截取字符串            

D:strlen( )不能取到字符串的長度               可以獲取長度

9 .以下代碼運行結果為:(A       )

       <?php

$first = "This course is very easy !";     定義了一個變量first=

$second = explode(" ",$first);              由定義了一個變量second=拆分字符串   用空格拆分的

$first = implode(",", $second);              將數字組合並了字符串

echo $first; 

?>

A  This,course,is,very,easy,!            把原來的空格變成了 ,

B  This course is very easy !

C  This course is very easy !,

D  提示錯誤

 

10 .以下程序橫線處應該使用的函數為:( B )         作用:把@符號前面的字符全部截掉

<?php

      $email = ‘langwan@thizlinux.com.cn’;    

      $str = ____($email,‘@’);

      $info = ____(‘.’,$str);

      ____($info);

   ?>

   輸出結果為:

Array ([0] => @thizlinux [1]=>com[2]=>cn)    輸出結果是一個數組

A:strchr, split, var_dump        如果是這個的話就應該有類型,長度

B:strstr, explode, print_r         strstr 也可以截取字符串,不常用

C:strstr,explode, echo

D:strchr, split, var,_dump

11、下列說法正確的是:(B)    如果不放在php里面那么ACD都是正確的

A. 數組的下標必須為數字,且從“0”開始           放強類型語言是對的

B. 數組的下標可以是字符串       

C. 數組中的元素類型必順一致       可以存儲任意類型

D. 數組的下標必須是連續的         可以不連續

12、下面哪項描述是錯誤的?(A,C)

A. 父類的構造函數與析構函數不會自動被調用               都是自動調用的

B. 成員變量需要用public protected private修飾,在定義變量時不再需要var關鍵字

C. 父類中定義的靜態成員,不可以在子類中直接調用        可以用

D. 包含抽象方法的類必須為抽象類,抽象類不能被實例化

13、關於exit( )與die( )的說法正確的是( C  D)

A、當exit( )函數執行會停止執行下面的腳本,而die()無法做到                exit   die都是終止程序

B、當die()函數執行會停止執行下面的腳本,而exit( )無法做到

C、die()函數等價於exit()函數

D、die()函數於exit()函數沒有直接關系     

例:

$a =10;

exit ();或者die();

echo $a;

變量a沒有輸出,說明程序走到exit退出了或者走到 die也退出了

它倆的區別:

 

$a =10;

echo"該程序出錯了";

 

exit;

 

echo $a;

它會輸出一個錯誤信息並且把程序終止掉

如果是

$a =10;

die("該程序出錯了");   可以給它參數,當執行到這的時候給出一個錯誤並且終止程序

echo $a;

 

 

14、下面程序運行結果( B )

<?php
$nextWeek = time() + (7 * 24 * 60 * 60);               先輸出當前日期在輸出下周日期,   格式化了一下
echo 'Now: '. date('Y-m-d') ."\n";
echo 'Next Week: '. date('Y-m-d', $nextWeek) ."\n";
?>

 

A、得到今天的日期(月-日)

B、得到今天的日期(年-月-日)與下周的日期(年-月-日)

C、得到現在的時間(小時-分-秒)

D、得到現在到下周的時間間隔

15、以下代碼執行結果為:(D  )

 

<?php

functionprint_A(){

      $A = "phpchina";

      echo "A值為: ".$A."<p>";

//return ($A);         如果注釋去掉的話就選擇C   

      }

      $B = print_A();   運行時會出錯,因為沒有返回值,是空的

      echo "B值為: ".$B."<P>";

    ?>

A  A值為:

   B值為:

B  A值為:

B值為: phpchina

C  A值為: phpchina

   B值為: phpchina

D  A值為: phpchina

   B值為: 

16、以下代碼執行結果為:( C )

 

<?php

$A="Hello ";                 

functionprint_A()              

{

 $A = "phpmysql !!";

global $A;                                               global    全局變量         函數是獨立的模塊                  $A外界定義的

echo $A;

}

 

echo $A;

print_A();

?>

 

A Hello

B phpmysql !!

C Hello Hello

D Hello  phpmysql !!

17、以下代碼輸出的結果是(B    )    可變變量

$a = "aa";

$aa = "bb";

echo $$a;

A aa

B bb

C $aa

D $$a

18、以下代碼輸出的結果是(A    )

<?php

$a = 10;

$b = &$a;   取a

echo $b;      b也指向10

$b = 15;      

echo $a;

?>

A 1015

B 1010

C 1515

D 1510

 

19、php輸出拼接字符串正確的是(   C     )

A echo $a+”hello”           php里不是用+

B echo $a+$b

C echo $a.”hello”

D echo ‘{$a}hello’          錯在用的是單引號,雙引號就對了

20、在用瀏覽器查看網頁時出現404錯誤可能的原因是 ( B )         404  代表網頁不存在沒有找到文件

A 頁面源代碼錯誤

B 文件不存在

C 與數據庫連接錯誤

D 權限不足

21、以下代碼輸出的結果為(D)

<?php

$attr = array("0"=>"aa","1"=>"bb","2"=>"cc");         加了索引是關聯數組

echo $attr[1];

?>

A 會報錯!

B aa

C 輸出為空

D bb         弱類型語言,可以自動轉換

22、面向對象的三大特性中哪個不屬於封裝的做法(B       )

A 將成員變為私有的

B 將成員變為公有的

C 封裝方法來操作成員

D 使用__get()和__set()方法來操作成員

23、php的源碼是(A   )   開源語言

A.開放的    B.封閉的    C.需購買的     D.完全不可見的

 

24、php如何輸出反斜杠(  D     )   轉義字符

A.\n  代表換行  B.\r  代表換行    C.\t   代表制表符  D.\\

25、下列哪項不屬於OOP的三大特性(B    )

A:封裝      B:重載        C:繼承        D:多態

26、以下關於字符串的說法正確的是(C     )

    A:echo “hello\nworld”;在頁面可以實現換行             在源代碼里可以,在頁面里不可以

    B:echo ‘helloworld{$a}’;可以解析變量a的值           單引號不能解析

    C:$str=<<<AA            定義字符串的第三種方法

        Hello world

AA;標識

該方式可以定義字符串

D:print $a,”hello”;可以輸出數據不報錯             print只能輸出一個字符串,不能連續輸出

27、下列說法不正確的是(  D     )

A:list()函數可以寫在等號左側            唯一可以寫在等號左邊的

B:each()函數可以返回數組里面的下一個元素     如果each第一次調的時候返回的第一個,把第一個當做下一個沒有問題,如果  把第一個當做第一個就有問題

C:foreach()遍歷數組的時候可以同時遍歷出key和value

D:for循環能夠遍歷關聯數組                           不能遍歷關聯數組

28、關於面向對象的說法不正確的是(C     )

    A:OOP是面向對象的簡稱

    B:靜態成員是屬於類的

    C:普通成員是屬於類的                屬於對象的

    D:類里面的$this關鍵字代表該對象本身

29、下列定義函數的方式是正確的(   B     )

    A:public void Show(){  }               不是php里面的

    B:function Show($a=5,$b){  }       給了個默認值

   C:function Show(a,b){  }               變量前面加$符號

   D:functionShow(int $a){  }            不需要加int

30、下面哪個選項沒有將 john 添加到 users 數組中? ( B )

A. $users[] = "john";

B. array_add($users, "john");              php沒有這種方法添加

C. array_push($users, "john");

D. $users [“aa”]= "john" ;

31、php中以下能輸出1到10之間的隨機數的是(C    )

    A:echo rand();

    B:echorand()*10;

    C:echo rand(1,10);

    D:echorand(10);

 

32、php中以下能輸出當前時間格式像:2016-5-6 13:10:56 的是(A   )

    A:echodate(“Y-m-d H:i:s”);      date方法用來  格式化輸出時間  括號里面寫的是格式化字符串

    B:echo time();     直接輸出時間戳了

    C:echodate();      方法會報錯

    D:echotime(“Y-m-d H:i:s”);   time里面不能寫雙引號

33、以下哪項不屬於函數的四要素(   D     ) 返回類型,函數名,參數列表,函數體

    A:返回類型

    B:函數名

    C:參數列表

    D:訪問修飾符

34、以下說法正確的是(C   )

    A:@符號可以屏蔽所有錯誤        
    B:exit;后面的語句可以繼續執行

    C:10/4得出的結果是2.5    整數除以整數可以得出小數

    D:$$a;這種寫法是錯誤的

 

35、以下關於構造函數說法不正確的是(    B     )

    A:研究一個類,首先我們要研究的函數是構造函數
    B:構造函數寫法和普通函數沒有區別                             寫法特殊有區別

    C:構造函數執行比較特殊

    D:如果父類中存在構造函數並且需要參數,子類在造對象的時候也應該傳入相應的參數。

36、以下關於多態的說法正確的是(   D     )

    A:多態在每個對象調用方法時都會發生
    B:多態是由於子類里面定義了不同的函數而產生的

    C:多態的產生不需要條件

    D:當父類引用指向子類實例的時候,由於子類對父類的方法進行了重寫,在父類引用調用相應的函數的時候表現出的不同稱為多態。

37、以下代碼在頁面上會輸出多少行數據(A     )

$attr = array(1,2,3,4);       數組里面總共4個元素 

while(list($key,$value) = each($attr))          each方法會把指針往下調,如果最后了就停止了while循環是進不來的,所以只能輸出4行

    {

        echo $key."=>".$value."<br>";

    }

while(list($key,$value) = each($attr))

    {

        echo $key."=>".$value."<br>";

    }

A:4  B:6  C:8   D:12

38、以下說法正確的是(C   )

    A:$attr代表數組,那么數組長度可以通過$attr.length取到      

    B:unset()方法不能刪除數組里面的某個元素          可以刪除

    C:php的數組里面可以存儲任意類型的數據

    D:php里面只有索引數組    還有關聯數組

39、以下說法不正確的是(  B     )

    A:模糊查詢使用的關鍵字是like
    B:排序查詢asc是降序,desc是升序               反了

    C:分頁查詢使用的關鍵字是limit

    D:mysql如果只安裝服務不安裝界面也可以正常使用

40、以下代碼輸出的結果為(D    )   三目運算符

$a = "cc";

$cc = "dd";

echo $a=="cc"?"{$$a}":$a;

    A:cc
    B:$a

    C:$$a

    D:dd

 

二、判斷題(共10題,每題2分)

 

1.php中布爾類型數據只有兩個值:真和假。(  對   邏輯的真和假

2.php中連接兩個字符串的符號是“+ ”。(  錯   )  用的是   點  .

3.php可以使用“scanf”來打印輸出結果。(   錯  )     echo   print

4.每個語句結尾都要加“;”來表示語句結束。 ( 對    ) 

5.php變量使用之前需要定義變量類型。(  錯   )    不需要  會根據后邊的值自動確定類型

6.在php中“==”的意思是“等於”。(    對  )  一個等號代表賦值,雙等號代表等於

7.while和do-while語句都是先判斷條件再執行循環體。(  錯   )  while是先判斷條件 do-while是先執行循環體再判斷

8.“break ”代表的意思是跳出循環。(  對   )  continue是跳出當前這一次循環

9.若定義數組時省略關鍵字key,則第三個數組元素的關鍵字為3。( 錯  )   應該是2   定義數組時省略關鍵字key,說明定義了一個索引數組,索引數組里第三元素是2

10.mysql數據庫中查詢數據用select語句。(       )

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM