当前位置:首页 » 编程语言 » 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.

热点内容
网络服务器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
安卓触摸键怎么用 发布:2025-03-10 04:24:37 浏览:956
郁美净脚本 发布:2025-03-10 04:23:04 浏览:570