當前位置:首頁 » 編程語言 » php測試題

php測試題

發布時間: 2025-03-09 22:15:26

1. 用php+mysql做一個題庫系統,隨機抽取五百題左右生成考試卷,最有效率的做法是什麼

在PHP中使用array_rand函數,你可以逐一讀取題目,但如果你想一次性讀取所有題目,盡管array_rand函數可能有效,使用「where id in 數組」的查詢方式效率可能會低於直接在資料庫中隨機抽取記錄。

如何從數據表中隨機抽取記錄?一種方法是使用max_id*rand(),但這可能只適用於逐條抽取。如何批量隨機抽取?可以嘗試排序,然後選取前500題。排序可以利用一些函數,比如md5或sha1,這些函數執行效率較高。為了使結果更具隨機性,可以將欄位值與一個隨機數進行運算。

個人建議還是使用array_rand隨機抽取500個id存到數組,然後遍歷數組。這樣可以避免題目重復。如果在資料庫中一次隨機抽取一條記錄,需要考慮碰巧重復的問題。批量選取的話,可以試試上述方法。

2. 很基礎的PHP程序員題目,要求具體步驟,一步一步的,不要解說,PHP我不會。拜託各位~題目如下。

$dsn = "mysql:dbname=shop;host=127.0.0.1";
$root = 'root';
$pwd = '';
$pdo = new pdo($dsn,$root,$pwd,array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''));
$sql = "select count(id) from shop";
$stmt = $pdo->query($sql);
$rowcount = $stmt->fetch(PDO::FETCH_ASSOC);
$rowpage = 5;
$pages = ceil($rowcount/$rowpage);
$nowpage = !empty($_GET['p']) ? intval($_GET['p']) : 1 ;
$prov = $nowpage - 1 < 1 ? 1 : $nowpage-1;
$next = $nowpage +1 >$pages ? $pages : $nowpage+1;
$start = ($nowpage-1)*$rowpage;
$sql1 = "select id, name, price, num from shop order by id limit $start,$rowpage";
$stmt1 = $pdo->query($sql1);
$info = $stmt1->fetchAll(PDO::FETCH_ASSOC);
$nowrows = $start+$rowpage;
print_r($info);
echo "總記錄數:$rowcount總頁數:$pages當前頁數:$nowpage當前頁的開始:$start結束記錄數:$nowrows<a href='page.php?p=1'>首頁</a><a href='page.php?p=$pages'>尾頁</a><a href='page.php?p=$prov'>上一頁</a><a href='page.php?p=$next'>下一頁</a>"

3. 用php寫 猴子吃桃問題

1534
第一天吃768剩766
第二天吃384剩382
第三天吃192剩190
第四天吃96剩94
第五天吃48剩46
第六天吃24剩22
第七天吃12剩10
第八天吃6剩4
第九天吃3剩1第十天就剩下1

4. PHP應聘筆試題

題目一:

<?php

echo -10%3;

?>

答案:-1。

考查:優先順序。因為-的優先順序比%求余的優先順序低,也就是-(10%3)。

題目二:

print (int)pow(2,32);

答案:0

題目三:

//file1.php

<?php

$a = '123';

?>

//file2.php

<?php

echo include('file1.php');

?>

答案:1.

考查:返回值。因include()也是一個函數,有返回值。在成功時返回1,失敗時返回錯誤信息。如果被包含的文件有return,則inculde()成功時返回該文件的`返回值。

題目四:

<?php

$count = 5;

function get_count() {

static $count = 0;

return $count++;

}

++$count;

get_count();

echo get_count();

?>

答案:1.

考查:static和++。因static $count,所以只在第一次調用get_count的時候對$count賦值為0,第二次再進來這個函數,則不會第二次賦值。其次就是return $count++和return ++$count了,前者先返回,後者先++再返回。

題目五:

<?php

$arr= array(0 =>1,'aa' =>2,3,4);

foreach($arr as $key => $val){

print($key == 'aa' ? 5 : $val);

}

?>

答案:5534.

考查:類型轉換。因遍歷數組第一次的時候,$key和aa的比較實際就是0和aa的比較,一個是int一個是string,這個時候會轉換類型,將字元串轉換為數字再與數字比較。所以0=='aa'就是0==0,所以為true,也就是輸出5。雖然PHP是若類型語言,但是人家也有類型的好嗎。

題目六:

<?php

echo count (false);

$a = count ("567"亮襲) + count(null)

+ count(false);

echo $a;

?>

答案:2.

考查:count的用法。

因count()的官方解釋「If the parameter

is not an array or not an object

with implemented Countable

interface, 1 will be returned.」.意思是說,如果不是數組或者對象的其他類型,返回1.那麼這個值應該就是1+0+1了(boolen人家也是一個類型,雖然是討厭的false)。NULL的意思是沒有值,難道在計數函數中還能有1?

題目七:

<?php

$arr = array(1,2,3);

foreach($arr as &$val) {

$val += $val % 2 ? $val++ : $val--;

}

$val = 0;

print(join('',$arr));

?>

答案:330。

考查:++和&。

因foreach結束後的數組應該遲鍵凱是array(3,3,7);最後給第碼喚三個元素賦值為0,所以就是330了。其中注意的是&,如果有&則是對原變數操作,如果沒有,則是先生成一個新變數,然後給這個變數復制,最後操作的是這個新變數。

題目八:

<?php

echo intval((0.1+0.7)*10);

?>

答案:7。

考查:浮點數的概念。

因0.1+0.7=0.8 0.8*10=8 所以轉換成整數後還是8?錯!因為0.1+0.7=0.8是浮點數,0.8*10在數學計算中是正整數8,可是在計算機中它仍然是浮點數8,什麼叫浮點數8?每一個看起來像整數的浮點數,其實都不是整數,比如這個8,它其實只是

7.9999循環,無限接近於8,轉換成整數會舍棄小數部分,就是7嘍。

題目九:

<?php

ini_set('display_errors',0);

$arr = array(1=>1,3=>3);

$i = 2;

$a = 'test' . isset($arr[$i]) ?

$arr[$i] : $i;

請問$a的值是什麼?

A、test B、NULL C、2 D、test2

?>

答案:B。

考查:優先順序因「."的優先順序高於三元運算符"?:"。所以程序其實報錯了。會說$arr的索引2不存在。

題目十:

<?php

$a = 3;

$b = 5;

if($a = 5 || $b = 7) {

$a++;

$b++;

}

echo $a . " " . $b;

?>

A、6 8 B、6 6 C、2 6 D、1 6 E、4 6

答案:D。

考查:優先順序,基礎概念,++。因「="的優先順序低於「||」,所以先邏輯判斷再賦值。也就是($a = (5 || $b = 7))。所以,最後其實給a賦值了,$a等於1.

熱點內容
安卓夏日先祖在哪裡 發布:2025-03-10 05:35:21 瀏覽:775
android拍照保存 發布:2025-03-10 05:35:15 瀏覽:624
網路伺服器ip是什麼意思 發布:2025-03-10 05:20:51 瀏覽:191
android載入so失敗 發布:2025-03-10 05:17:02 瀏覽:11
存儲虛擬化原理 發布:2025-03-10 05:16:45 瀏覽:954
雲存儲的分類 發布:2025-03-10 04:51:54 瀏覽:487
迄今最小原子存儲單元面世 發布:2025-03-10 04:38:33 瀏覽:66
肺炎疫苗如何存儲 發布:2025-03-10 04:38:24 瀏覽:463
試用網站源碼 發布:2025-03-10 04:26:28 瀏覽:993
超市管理系統c語言 發布:2025-03-10 04:26:16 瀏覽:861