經(jīng)典PHP筆試題

    時(shí)間:2020-12-15 16:25:47 筆試題目 我要投稿

    經(jīng)典PHP筆試題

      PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本預(yù)處理器”)是一種通用開(kāi)源腳本語(yǔ)言。語(yǔ)法吸收了C語(yǔ)言、Java和Perl的特點(diǎn),利于學(xué)習(xí),使用廣泛,主要適用于Web開(kāi)發(fā)領(lǐng)域。下面是yjbys整理的關(guān)于經(jīng)典PHP筆試題,歡迎閱讀!

    經(jīng)典PHP筆試題

      1.考慮如下腳本。標(biāo)記處應(yīng)該添加什么代碼才能讓腳本輸出字符串php?

      $alpha = 'abcdefghijklmnopqrstuvwxyz';

      $letters = array(15, 7, 15);

      foreach($letters as $val)

      {/* 這里應(yīng)該加入什么 */

      }?>

      A.echo chr($val);

      B.echo asc($val);

      C.echo substr($alpha, $val, 2);

      D.echo $alpha{$val};

      E.echo $alpha{$val+1}

      答案解析:substr 函數(shù)能夠勝任,但考慮到輸出三個(gè)字母就需要三次調(diào)用該函數(shù),所以排除此方法。那么$alpha{$val}和$alpha{$val+1}是僅有的兩個(gè)可能輸出題目要求的字符串的選項(xiàng)。因?yàn)?0 是數(shù)

      組的第一個(gè)索引,所以答案是 D。

      2. 以下哪一項(xiàng)不能把字符串$s1 和$s2 組成一個(gè)字符串?

      A.$s1 + $s2

      B.”{$s1}{$s2}”

      C.$s1.$s2

      D.implode(”, array($s1,$s2))

      E.以上都可以

      答案解析:除 A 以外的選項(xiàng)都能輸出題目要求的字符串。PHP中,加號(hào)+不能把兩個(gè)字符串合并成一個(gè)。

      3. 變 量 $email 的 值 是 字 符 串 user@example.com , 以 下 哪 項(xiàng) 能 把 字 符 串 轉(zhuǎn) 化 成example.com?

      A.substr($email, strpos($email, “@”));

      B.strstr($email, “@”);

      C.strchr($email, “@”);

      D.substr($email, strpos($email, “@”)+1);

      E.strrpos($email, “@”);

      答案解析:substr 函數(shù)返回字符串的一部分,而 strpos 函數(shù)擅長(zhǎng)從一個(gè)字符串中找出某個(gè)指定的子串。同時(shí)使用這兩個(gè)函數(shù)將滿足題目要求。注意,前一個(gè)函數(shù)從 0 開(kāi)始索引,而后者不是,因此需

      要+1。答案是 D。

      4. 給定一個(gè)用逗號(hào)分隔一組值的字符串,以下哪個(gè)函數(shù)能在僅調(diào)用一次的情況下就把每個(gè)獨(dú)立的值放入一個(gè)新創(chuàng)建的數(shù)組?

      A.strstr()

      B.不可能只調(diào)用一次就完成

      C.extract()

      D.explode()

      E.strtok()

      答案解析:答案是 D。explode 函數(shù)使用一個(gè)字符串分隔另一個(gè)字符串,并把結(jié)果放入一個(gè)新建的數(shù)組。strtok 函數(shù)也可以做同樣的事,但需要多次調(diào)用。

      5. 要比較兩個(gè)字符串,以下那種方法最萬(wàn)能?

      A.用 strpos 函數(shù)

      B.用==操作符

      C.用 strcasecmp()

      D.用 strcmp()

      答案解析:答案是 D。strcmp()提供了安全的字符串比較機(jī)制。注意,選項(xiàng) C 是錯(cuò)的,strcasecmp()不是一個(gè)“萬(wàn)能”函數(shù),因?yàn)樗粎^(qū)分大小寫(xiě)。

      6. 以下哪個(gè) PCRE 正則表達(dá)式能匹配字符串 php|architect?

      A..*

      B.…|………

      C.\d{3}\|\d{8}

      D.[az]{3}\|[az]{9}

      E.[a-z][a-z][a-z]\|\w{9}

      答案解析:選項(xiàng)中沒(méi)有一個(gè)正則表達(dá)式能真正代表題目所給字符串的匹配方式,但是選項(xiàng) A 和 E仍然能勉強(qiáng)匹配。選項(xiàng) A 太普通了,它能夠匹配任何字符串,因此答案是 E。

      7. 以下哪些函數(shù)能用來(lái)驗(yàn)證字符串的完整性?(三選)

      A.md5()

      B.sha1()

      C.str_rot13()

      D.crypt()

      E.crc32()

      答案解析:正確答案是 A,B 和 E。用 crypt()和 str_rot13()來(lái)驗(yàn)證一個(gè)字符串是否被改變,效率很低。crc32()比前面兩個(gè)函數(shù)好些,如果能容忍一些小錯(cuò)誤的話,它是個(gè)不錯(cuò)的選擇。

      8. 哪個(gè) PHP 函數(shù)與以下腳本在 UNIX 系統(tǒng)下執(zhí)行的效果近似?

      function my_funct ($filename)

      {

      $f = file_get_contents ($filename);

      return explode ("\n", $f);

      }

      ?>

      A.fopen()

      B.fread()

      C.flock()

      D.split_string()

      E.file()

      答案解析:正確答案是 A,B 和 E。用 crypt()和 str_rot13()來(lái)驗(yàn)證一個(gè)字符串是否被改變,效率很低。crc32()比前面兩個(gè)函數(shù)好些,如果能容忍一些小錯(cuò)誤的話,它是個(gè)不錯(cuò)的選擇。

      9. 基于指定的式樣(pattern)把一個(gè)字符串分隔開(kāi)并放入數(shù)組,以下哪些函數(shù)能做到?(雙

      選)

      A.preg_split()

      B.ereg()

      C.str_split()

      D.explode()

      E.chop()

      答案解析:盡管條件不同,但 preg_split 和 explode 函數(shù)都能滿足題目要求。ereg()拿一個(gè)正則表達(dá)式匹配一個(gè)字符串;str_split()按固定長(zhǎng)度分隔字符串;而 chop()則是 rtrim()別名,用來(lái)移除

      字符串末尾處的空格。

      10.以下腳本輸出什么?

      echo 'Testing ' . 1 + 2 . '45';

      ?>

      A.Testing 1245

      B.Testing 345

      C.Testing 1+245

      D.245

      E.什么都沒(méi)有

      答案解析:本題考察你對(duì)字符串操作及操作符優(yōu)先級(jí)的認(rèn)識(shí)。連接運(yùn)算符(.)的優(yōu)先級(jí)比加號(hào)(+)高。因此 PHP 解釋器實(shí)際執(zhí)行的運(yùn)算可以表示為(‘Testing’ . 1) + (2 . ‘45’)。由于字符串

      test 1 不是數(shù)字,所以加號(hào)前面的運(yùn)算等于 0。加號(hào)后面的運(yùn)算等于 245,PHP 輸出的'結(jié)果是 0+245,等于 245,所以答案是 D。

      11.以下腳本輸出什么?

      $s = '12345';

      $s[$s[1]] = '2';

      echo $s;

      ?>

      A.12345

      B.12245

      C.22345

      D.11345

      E.Array

      答案解析:可以用訪問(wèn)數(shù)組元素的方式訪問(wèn)字符串中的字符,因此腳本只是把字符串中的第二個(gè)字符($s[1])替換成了字符 2,最終將輸出 12245。答案是 B。

      12.方框中的正則表達(dá)式能與以下哪些選項(xiàng)匹配?(雙選)

      /.*\*123\d/

      A.******123

      B.*****_1234

      C.******1234

      D._*1234

      E._*123

      答案解析:本題的要點(diǎn)是理解這個(gè)正則表達(dá)式的含義——從左往右,首先是零個(gè)或多個(gè)任意字符(.*),跟著是一個(gè)星號(hào)(\*),然后是 123,最后是一個(gè)數(shù)字。因此答案是 C 和 D。

      13.以下哪個(gè)比較將返回 true?(雙選)

      A.‘1top’ == ‘1’

      B.‘top’ == 0

      C.‘top’ === 0

      D.‘a’ == a

      E.123 == ‘123’

      答案解析:B 和 E 正確。選項(xiàng) B 中,在比較時(shí),字符串 top 等同于數(shù)字 0。==操作符不比對(duì)數(shù)據(jù)類型,所以將返回 true。答案 E 中,字符串 123 等同于數(shù)字 123,比較將返回 true。

      14.如果用+操作符把一個(gè)字符串和一個(gè)整型數(shù)字相加,結(jié)果將怎樣?

      A.解釋器輸出一個(gè)類型錯(cuò)誤

      B.字符串將被轉(zhuǎn)換成數(shù)字,再與整型數(shù)字相加

      C.字符串將被丟棄,只保留整型數(shù)字

      D.字符串和整型數(shù)字將連接成一個(gè)新字符串

      E.整形數(shù)字將被丟棄,而保留字符串

      答案解析:字符串將被轉(zhuǎn)換成數(shù)字(如果無(wú)法發(fā)生轉(zhuǎn)換就是 0),然后與整型數(shù)字相加。答案是 B。

      15.考慮如下腳本。假設(shè) http://www.php.net 能被訪問(wèn),腳本將輸出什么?

      

      $s = file_get_contents ("http://www.php.net");

      strip_tags ($s, array ('p'));

      echo count ($s);

      ?>

      A.www.php.net 的主頁(yè)的字符數(shù)

      B.剔除標(biāo)簽后的 www.php.net 主頁(yè)的字符數(shù)

      C.1

      D.0

      E.剔除以外的標(biāo)簽后的 www.php.net 主頁(yè)的字符數(shù)

      答案解析:代碼的本意是剔除 www.php.net 主頁(yè)上除了 p 以外的的所有 HTML 標(biāo)簽。可實(shí)際上,在代碼的最后一行使用了 count 函數(shù),它統(tǒng)計(jì)變量中的元素?cái)?shù)量,而不是字符串中的字符數(shù)。由于字符

      串是標(biāo)量,對(duì)字符串使用 count 函數(shù)將永遠(yuǎn)返回 1。答案是 C。

      16.哪個(gè)函數(shù)能不區(qū)分大小寫(xiě)得對(duì)兩個(gè)字符串進(jìn)行二進(jìn)制比對(duì)?

      A.strcmp()

      B.stricmp()

      C.strcasecmp()

      D.stristr()

      E.以上都不能

      答案解析:題目其實(shí)就是在描述 strcasecmp 函數(shù)的作用,因此答案是 C。

      17.以下哪些函數(shù)能把字符串里存儲(chǔ)的二進(jìn)制數(shù)據(jù)轉(zhuǎn)化成十六進(jìn)制?(雙選)

      A.encode_hex()

      B.pack()

      C.hex2bin()

      D.bin2hex()

      E.printf()

      答案解析:正確答案是 B 和 D。pack 函數(shù)能對(duì)二進(jìn)制數(shù)據(jù)進(jìn)行復(fù)雜的格式化,包括將字符串中的字符轉(zhuǎn)化成十六進(jìn)制表示。bin2hex 函數(shù)也有同樣的轉(zhuǎn)化功能。注意,printf()能將整數(shù)轉(zhuǎn)化成十六進(jìn)

      制數(shù),但無(wú)法轉(zhuǎn)化字符串。

      18.哪個(gè)函數(shù)能用來(lái)確保一個(gè)字符串的字符數(shù)總是大于一個(gè)指定值?

      答案解析:這是在說(shuō) str_pad 函數(shù),它可以把字符串填充到指定長(zhǎng)度。

      19.以下腳本輸出什么?

      

      echo wordwrap ($a, 1, "c", false);

      ?>

      答案解析:腳本將輸出 ablecostscindy。wordwrap 函數(shù)通常用來(lái)把字符串切割成指定長(zhǎng)度。然而在本題中,長(zhǎng)度被設(shè)置為 1,因此函數(shù)將從空格處切割(第四個(gè)參數(shù)被設(shè)置為 false,因此函數(shù)不會(huì)從

      單詞的中間進(jìn)行切割)。填充字符串是 c,等于把每個(gè)空格都換成了 c。

      20.以下腳本輸出什么?

      

      echo substr_replace ($x, 'x', 1, 2);

      ?>

      A.x

      B.axle

      C.axxle

      D.applex

      E.xapple

      答案解析:腳本將輸出 ablecostscindy。wordwrap 函數(shù)通常用來(lái)把字符串切割成指定長(zhǎng)度。然而在本題中,長(zhǎng)度被設(shè)置為 1,因此函數(shù)將從空格處切割(第四個(gè)參數(shù)被設(shè)置為 false,因此函數(shù)不會(huì)從

      單詞的中間進(jìn)行切割)。填充字符串是 c,等于把每個(gè)空格都換成了 c。

    【經(jīng)典PHP筆試題】相關(guān)文章:

    PHP經(jīng)典筆試題01-01

    PHP筆試題01-02

    幾道PHP筆試題01-03

    php練習(xí)筆試題07-24

    PHP面試題集01-03

    PHP筆試題含答案01-01

    PHP筆試題及答案01-01

    Yahoo-PHP筆試題01-01

    360筆試題目07-11

    91久久大香伊蕉在人线_国产综合色产在线观看_欧美亚洲人成网站在线观看_亚洲第一无码精品立川理惠

      亚洲2020一区二区中文字幕 | 精品国产偷窥丝袜在线拍国 | 亚洲怡红院久久精品综合 | 亚洲免费天堂网站 | 在线观看欧美亚洲 | 精品亚洲欧美在线看 |