① (100分悬赏)几道php题,速度快,准确高的多加200分
填空选择题
1、在ASP页面中用以下语句声明<script language=VbScript _2___=server>脚本</script>,要求能在服务器端运行VbScript脚本
2、把数值型转换为字符串型的VbScript函数是_ CStr 3_;把字符串转换为整数 VbScript函数是¬¬¬5¬cint()
3、HTML标记,可单独使用或嵌入在各个ASP脚本单元中,以" __1____"为定界符; VBScript(或JScript)语句,可单独使用或嵌入在各个ASP脚本单元中,以___9______为定界符,通过对"__2______"属性的设置来决定是否在服务器端运行;
ASP脚本命令,可单独使用或包含在此和〈/html〉内,以"_____7____"为定界符
4、一段连接ACCESS数据库的代码
<% set conn=server.creatobject("adodb.connection")
Connstr= "DSN=____4___;UID=___6_____;PWD=;”
conn.open Connstr
%>
5、Session对象保存的用户信息是存储在___10_____;Cookie对象保存的用户信息是存储在____8_____
选项:
(1)< 和 〉 (2)runat (3)cstr (4)数据源的名称 (5)cint
(6)数据库的用户名 (7)<% 和 %> (8)客户端(9)<Script>和</Script> (10)服务器端
三、判断题
1、Vbscript只有一种数据类型,称为Variant ( 1 wrong)
2、数据库中的数据中最不可能为空值的是外键 ( 2 wrong)
3、Vbscript脚本语言不区分大小写,而JavaScript区分大小写 (right )
4、在特定的asp页面中指定主要的脚本语言,格式为<%@ language=Language of Script%>,这一行声明可以放在ASP页面的任何位置 ( wrong)
5、一个包含动态脚本的ASP页面直接双击,该页面的内容不能正常显示。( wrong)
6、删除student表中学号为‘200501012‘的学生信息的SQL语句为
delete * from student where StudentID=’ 200501012’ (right )
7、Vbscript声明变量的时候用var;JavaScript声明变量的时候用dim (wrong )
8、<%response.write Server.HTMLEncode(“<font color=’red’>颜色</font>”)%>将会以红色的字体显示“颜色”。( wrong)
9、ASP中request语句主要是用于用户接收服务器的数据 (wrong )
10、在用浏览器访问某个网站的页面时,可通过查看源文件的方式,修改网页的源代码( wrong)
四、问答题
1、ASP的工作原理 :用iis服务以网页的形式浏览asp文件,
2、<form name="form1" method="post" action="">
<form name="form1" method="get" action="">
简述Post和get方法的区别,并指出接收数据时用到的对象与方法
通过get方法提交数据,可能会带来安全性的问题。比如一个登陆页面。当通过get方法提交数据时,用户名和密码将出现在URL上。如果:
1、 登陆页面可以被浏览器缓存;
2、 其他人可以访问客户的这台机器。
那么,别人即可以从浏览器的历史记录中,读取到此客户的账号和密码。所以,在某些情况下,get方法会带来严重的安全性问题。
建议 :在Form中,建议使用post方法。
post请求无长度限制(至少是理论上的)
表单提交中get和post方式的区别归纳如下几点:
1. get是从服务器上获取数据,post是向服务器传送数据。
2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
3. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
4. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
5. get安全性非常低,post安全性较高。
get有长度限制,最长不超过2048字节(1024个汉字)
② PHP一道选择题
答案: C
解释:
在php语言里,对于数字式字符与数字如何参与运算,在具体情况下会视情来确定,请比较以下代码:
echo "3+4+5";结果:3+4+5
为什么会1+2+"3+4+5"结果会是6呢?
echo这个函数(或说是指令),其后跟的参数可以是字符串,也可以是需要运算的表达式,当出现:
echo "3+4+5";echo会认为这是个字符串
而echo 1+2+"3+4+5";echo会认为这是个表达式,所以会对这个表达式进行运算。
在这个运算过程中,1+2等于3,那么为什么"3+4+5"为什么会等于3呢?因为,在php中,对于运算式中,不同数据类型的数据在参与数据时,php会进行数据转换,以尽量确保使表达式成功运行,在"3+4+5"前面的运算符是 + ,那么,php会将"3+4+5"当作数值类型,此时会隐式地进行数据类型的转换,将这个字符串转换成数值,而"3+4+5"转换成数值的结果就是3,所以,整个表达式的结果是:1+2+3 = 6。
为更好的理解,作为对比,你可以参考以下代码:
echo 1+2 . "3+4+5";
结果:
33+4+5
③ 很基础的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>"
④ 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.