PHP编程基础与实例教程第二版练习题参考答案资料
- 格式:doc
- 大小:139.50 KB
- 文档页数:23
思考与练习参考答案第1章PHP概述与开发环境搭建1.简述B/S模式软件的优缺点。
(1)客户端只浏览器即可运行,维护成本比较低。
(2)客户机只负贲数据结果的显示,数据处理事务都交给了服务器,客户端的负荷较小。
(3)系统维护时,不需考虑客户端的可移植性。
(4)所有的客户端Ul风格统一,培训成本低。
(5)系统的安全性要求相比于CS架构要低一些。
2.理解并简述PHP页面的运行原理。
当用户通过浏览器向服务器发出访问PHP页面的请求,服务器接收到该请求后,对页面文件中程序进行以下处理:标准的HTM1.编码会被直接送到客户机浏览器上,而内嵌PHP程序则先祓APaChe解释运行,涉及数据读写时,联系数据库(MySQ1.)完成;再把运行的结果以HTM1.编码的形式发送到客户机的浏览器上。
如果是标准输出的话,输出信息也将作为标准的HTM1.编码被送至浏览器。
第2章:变量与常量(一)选择题1-7:BBBBABC8、ACD9、ABCD10、ACD(二)填空题(1)64 6,123 (2)1 24 (3)523(4)<?php$C=$A;$A=$B;$B=$C:?>第3章:数据类型与运算表达式(一)单项选择题1-5:BBBBD6-10:CBBDB(二)判断题1-5:FFTFF(三)简答题1、$A++是先将变量A增加1,然后在将值赋值给原来的变量A;++$A是先返回变量A的当前值,然后再将变量A的当前值增加1。
2、(int)$A:(integer)$A;intvaI($A):settype($A,"int");3、(1) $n*($n+1)*($n+2)/$X/$Y或$n*($n+1)*($n+2)/(SX*SY)(2) $A+1/$X/$Y/$Y或$A+1/($X*$Y*$Y)第4章:程序控制结构(一)单选题1-5:DADDC(二)填空题υ_2_ 2、一成绩合格成绩中等一第5章:函数一、选择题1-5:DCBCB二、填空题1、x=3,y=8,z=6,r=482、x=4,y=8,z=6,r=33、x=4,y=8,z=6,r=54、 8、16、5、KOmOK第6章:字符串处理一、选择题1-5:CCCCC二、填空题1、student2、HelIoworId,-13、ThiSiSabk4、C5、0第7章:数组一、选择题1-5:CCABB6-1O I BBBDB二、填空题1、girl2、Array([12]=>2[13]=>3[αx w]=>4)第8章:面向对象程序设计一、选择题1-5:BACBB6-10:CCCBB二、填空题1、封装、继承、多态2、 class、extends3、 interface、implements4、 autoload()5、 final第9章:PHP与HTM1.数据交互一、选择题1-5:CAABC二、填空题(1) GETPOST(2) $_GET[1A4](3) GET(4) $_FI1.ES['pies'][*name,]第10章:SESSION与COOKIE一、选择题1-5:BAAAB第11章:图形图像处理1-5:CAACD第12章:文件系统一、选择题1-5:CCBCA二、基础知识(填空题)1,uniink() 2、rmdir() 3、fteIIO4、copy(u files∖∖ 1.txt,',,'backup∖∖ 2.txt")5、rename()第13章:PHP与MYSQ1.数据库(1) mysqlinumfieldsO(2) _10_(3) 56(4) mysqlinumr。
php习题及答案PHP习题及答案PHP是一种广泛应用于Web开发的脚本语言,具有简单易学、灵活高效等特点。
对于初学者来说,通过习题的形式来巩固所学的知识是非常有效的。
本文将为大家提供一些常见的PHP习题及其答案,希望能够对大家的学习有所帮助。
1. 编写一个PHP程序,输出"Hello, World!"。
<?phpecho "Hello, World!";>2. 编写一个PHP程序,计算两个数字的和并输出结果。
<?php$num1 = 10;$num2 = 5;$sum = $num1 + $num2;echo "The sum is: " . $sum;>3. 编写一个PHP程序,判断一个数字是否为偶数。
<?php$num = 6;if ($num % 2 == 0) {echo $num . " is an even number.";} else {echo $num . " is an odd number.";}>4. 编写一个PHP程序,计算一个数组中所有元素的和并输出结果。
<?php$numbers = array(1, 2, 3, 4, 5);$sum = 0;foreach ($numbers as $number) {$sum += $number;}echo "The sum is: " . $sum;>5. 编写一个PHP程序,判断一个字符串是否是回文字符串。
<?php$str = "madam";if ($str == strrev($str)) {echo $str . " is a palindrome.";} else {echo $str . " is not a palindrome.";}>6. 编写一个PHP程序,将一个字符串中的所有单词首字母大写。
python快速编程⼊门(第2版)课后答案1. Python概述填空题1. 对象2. 可移植性3. Python4. import5. from…import *判断题1. √2. ×3. ×4. √5. √选择题1. C2. D3. C简答题1. Python主要的特点有代码简洁、语法优美、简单易学、开源、可移植、类库丰富、中⽂⽀持等。
2. Python中可以使⽤关键字import导⼊⼀个或多个模块,也可以使⽤from 模块名 import * 导⼊模块中的全部内容。
3. 模块是最基础的代码组织⽅式,每个包含有组织的代码⽚段的.py⽂件都是⼀个模块;包以类似⽬录的机构组织模块⽂件或⼦包;库是⼀个抽象的概念,它是指具有相关功能模块的集合。
编程题省略,代码详见教材。
1. Python基础填空题1. 42. True False3. type4. 浮点5. 1判断题1. ×2. ×选择题1. A2. A3. D4. B5. C简答题1. 根据数据存储形式的不同,Python使⽤不同的数据类型存储不同类型的数据。
数字类型提供了数值的存储,Python中的数字类型⼜包含整型、浮点型、复数类型和布尔类型。
2. 常量名使⽤⼤写的单个单词或由下画线连接的多个单词(如ORDER_LIST_LIMIT);模块名、函数名使⽤⼩写的单个单词或由下画线连接的多个单词(如low_with_under);类名使⽤⼤写字母开头的单个或多个单词(如Cat、CapWorld)。
3. Python运算符是⼀种特殊的符号,主要⽤于实现数值之间的运算。
根据操作数数量的不同,运算符可分为单⽬运算符、双⽬运算符;根据功能的不同,运算符可分为算术运算符、赋值运算符、⽐较运算符、逻辑运算符和成员运算符。
编程题答案:radius = float(input("请输⼊园的半径:"))# 直径diameter = 2 * radius# ⾯积area = 3.14 * radius * radiusprint('园的直径为:', diameter)print('园的⾯积为:', area)答案:frequency = (29.5 - 4 * 3) / 2.5print("还需运送的次数为:",frequency)1. 流程控制填空题1. if2. for ,while3. True4. for5. continue判断题4. ×5. ×选择题1. C2. C3. C4. C5. B简答题1. break语句⽤于结束整个循环;continue的作⽤是⽤来结束本次循环,紧接着执⾏下⼀次的循环。
php习题及答案PHP习题及答案在学习PHP编程语言的过程中,练习习题是非常重要的。
通过解决习题,我们可以加深对语言特性和语法规则的理解,提高编程能力。
下面将介绍一些常见的PHP习题及其答案,希望对大家的学习有所帮助。
1. 输出Hello World题目:使用PHP编写一个简单的程序,输出“Hello World”。
答案:```php<?phpecho "Hello World";>```2. 变量和数据类型题目:定义一个字符串变量,并输出其值;定义一个整型变量,并输出其值。
答案:```php<?php// 字符串变量$name = "John";echo $name;// 整型变量$age = 25;echo $age;>```3. 条件语句题目:编写一个程序,判断一个数是奇数还是偶数,并输出结果。
答案:```php<?php$num = 10;if ($num % 2 == 0) {echo "偶数";} else {echo "奇数";}>```4. 循环题目:使用循环输出1到10的数字。
答案:```php<?phpfor ($i = 1; $i <= 10; $i++) {echo $i . " ";}>```5. 函数题目:编写一个函数,计算两个数的和并返回结果。
答案:```php<?phpfunction add($num1, $num2) {return $num1 + $num2;}$result = add(5, 3);echo $result;>```通过练习以上习题,我们可以加深对PHP语言的理解,掌握基本的编程技能。
希。
.选择题1.对于采用虚拟主机方式部署的多个站点,域名和IP地址是()的关系。
A.一对多B.一对一C.多对一D..多对多2.网页的本质是()文件A.图像B.纯文本C.可执行程序D..图像和文本的压缩3.以下哪种技术不是服务器端动态网页技术?()A.PHPB.JSPD.Ajax4.配置MySQL服务器时,需要设置一个管理员帐号,其名称是()A.adminB.rootC.saD.Administrator5.配置MySQL的网站主目录是E:\eshop,并没有建立任何虚拟目录,则在浏览器地址栏中输入将打开的文件是()A.E:\localhost\admin\admin.phpB.E:\eshop\admin\admin.phpC.E:\eshop\admin.phpD.E:\eshop\localhost\admin\admin.php6.HTML中最大的标题元素是(C)。
A.<head>B.<tital>C.<h1>D.<h6>7 用HTML标记语言编写一个简单的网页,网页最基本的结构是()。
A <html> <head>…</head> <frame>…</frame> </html>B <html> <title>…</title> <body>…</body> </html>C <html> <title>…</title> <frame>…</frame> </html>D <html> <head>…</head> <body>…</body> </html>7.下列哪种元素不能够相互嵌套使用?()A.表格 B表单form C.列表 D.div8.下列元素中()都是表格中的元素。
66 中使用。
4.3.3 终止PHP程序运行我们很难保证程序运行过程中不发生任何错误,当发生诸如被零除、打开一个不存在的文件或者数据库连接失败等情况时,程序将发生错误。
程序发生错误后,应该控制程序立即终止执行剩余的PHP代码,PHP提供的exit语言结构(或die语言结构)可以实现这个功能。
exit语言结构终止整个PHP程序的执行,这就意味着exit语句后的所有PHP代码都不会执行。
exit语言结构的语法格式:void exit ( [string message] )exit语言结构的功能:输出字符串信息message,然后终止PHP程序的运行。
例如,如下程序exit.php,该程序的运行结果如图4-14所示。
<?php@($a = 2/0) or exit("发生被零除错误!");echo "exit后面的语句将不会运行!";?>从程序exit.php的运行结果可以看出以下两点。
(1)使用逻辑或(or)表达式$a or $b,可以强制只有表达式$a的结果为FALSE时,表达式$b才会执行。
(2)当某个表达式运行失败时,该表达式的结果为FALSE。
读者可以从数据类型自动转换的角度分析下面程序的运行结果。
<?php@($a = 2*0) or exit("由于or运算符前面的表达式值为0,导致exit语句的运行!");echo "exit后面的语句将不会运行!";?>之所以exit不是函数而是一个语言结构,这是因为exit.php程序还可以修改为如下代码,此时的exit并不是一个函数。
<?php@($a = 2/0) or exit;echo "exit后面的语句将不会运行!";?>PHP还提供了die语言结构终止程序的运行,die可以看做是exit的别名。
例如,程序die.php 如下。
由于时间仓促,答案中难免存在错误,不妥之处恳请读者批评指正!第1章答案:1.答案见教材1.2.3,1.2.4,1.2.5,1.2.62.答案见教材1.2.4,1.2.53.PHP,JSP,.NET,ASP等4.答案如下:打印明天的时间使用下面的程序:<?phpdate_default_timezone_set('PRC'); //设置中国时区echo date("Y/m/d H:i:s", time()+24*3600); //打印明天的时间>date ()函数中:d: 几日,两位数字,若不足则补零;从"01"至"31"D: 星期几,3个英文字母,如:"Fri"F: 月份,英文全名,如:"January"h: 12小时制的小时,从"01"至"12"H: 24小时制的小时,从"00"至"23"m: 月份,两位数字,从"01"至"12"M: 月份,3个英文字母;如:"Jan"s: 秒;从"00"至"59"w: 数字型的星期几,从"0(星期天)"至"6(星期六)"Y: 年,四位数字y: 年,两位数字z: 一年中的第几天;从"1"至"366"time() 函数返回当前时间的Unix 时间戳,即:自从Unix 纪元(格林威治时间1970 年1 月1 日00:00:00)到当前时间的秒数。
5. Apache服务器的配置文件名是httpd.conf文件,默认放在C:\wamp\bin\apache\Apache\conf 目录下。
MySQL服务器的配置文件名是my.ini,默认放在C:\wamp\bin\mysql\mysql目录下,PHP预处理器配置文件名是php.ini,默认放在C:\wamp\bin\apache\Apache\bin目录下。
6. 答案见教材1.3.5第2章答案:1. 答案见教材2.1.12. 答案见教材2.1.23. 答案见教材2.2.2布尔型主要用于逻辑判断,整型和浮点型主要用于算术运算,字符串主要用于文字性描述,数组实际上是用于容纳若干变量的容器。
当使用面向对象编程思想时,需要使用对象描述事物(属性及方法)。
4.echo与print共同点:它们都不是真正的函数,是一种语法结构,因为语句没有返回值,函数可以有返回值(即便没有用)(也有说print是函数,echo不是)。
echo和print 后面都可不用加(), 如: echo 'ok'; print 'ok';运行速度echo稍快一些,因为echo并不返回值,print返回一个值int(1)。
echo与print区别:一般用echo,除非三元运算时。
$a=5; ($a==5) ? print '5': print 0;echo 后不要跟()。
print只能有一个参数,所以不能不能用",",而echo可以。
echo -- 输出一个或者多个字符串print_r是递归打印,主要用于打印复杂类型变量的值(如数组,对象)5. 答案见教材2.36. 答案见教材图2.37.<?phpclass Test{function get_test($num){$num=md5(md5($num));return $num;}}$test = new Test();$password = $test->get_test("123");echo $password;//输出字符串“123”两次md5加密结果:d9b1d7db4cd6e70935368a1efb10e377 >第3章答案:选择题:1:C2:B3:A4:D(说明:PHP变量以一个美元符号为开头,后面跟上任意数量的数字、字母和下划线。
${“MyVar”}是一个合法的变量名,它使用的是较松散的命名约定。
&$something是对$something的引用。
然而,变量名不能以数字为开头,$10_somethings是非法的,因此答案是D。
)5:D(说明:这又是一个考验debug能力的题。
注意到了吗,在脚本的末尾,echo语句中的?$output变量拼错了!脚本不会输出任何东西,答案是D),6:D(说明:%运算符表示取模,它返回两个操作数相除的余数。
<< 是左移运算符,相当于乘以2的N次方。
最后的答案乘以了一个浮点数,改变了它的数据类型。
但是,由于小数点后是零,因此输出的结果不包含小数部分。
答案是256)7:B(说明:全等运算符比较两个操作数的数据类型和值,两者中有一个不同,都会返回False。
因此答案是B)8:AC(说明:A选项中,pow函数计算2的平方,答案是4。
C选项中,左移运算符将$a 的值左移两位,相当于乘以4)9:D10:B填空题:逻辑异或(xor)运算符2程序阅读题相等相等不相等truetruetruetruetruefalsetruefalseaaaaaa41hotdogokis zero4问答题:1.isset($str)用于测试变量是否设置(或者存在),empty($str)用于测试变量是否为空。
检测变量是否为空使用is_null()和empty()函数。
is_null()和empty()函数的区别请参考下面的程序:<?php$a = 0;var_dump(empty($a)); //输出:bool(true)echo "<br/>";var_dump(is_null($a)); //输出:bool(false)>2. PHP垃圾回收机制是基于引用计数机制的垃圾回收,当一个变量的引用计数变为0时,PHP将在内存中销毁这个变量,此时启动垃圾回收机制。
当一个变量被初始化或者赋值给另一个变量时引用计数会加1,当变量或者被赋值的变量被销毁或者被侦测到无用时引用计数会减一,当垃圾收集的进程运行时会释放掉引用计数为0的那些变量会被从内存中释放(垃圾回收期间程序会被中断)。
当脚本执行完成时所有资源都会被释放。
3.按值传递:函数范围内对值的任何改变在函数外部都会被忽略按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改区别:按值传递时,php必须复制值。
特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。
按引用传递则不需要复制值,对于性能提高很有好处。
传值只是把某一个变量的值传给了另一个变量,而引用则说明两者指向了同一个地方。
4.<?phpif("0"==0){echo "==";//输出“==”}if("0"===0){echo "===";//没有任何输出}>5.<?php$var1 = 1;$var2 = 7;$var3 = 8;$max=$var1>$var2?$var1:$var2;$max=$max>$var3?$max:$var3;echo $max;>第4章答案:选择题:1. D(说明:根据条件式的逻辑,要想得到Hello, World!字符串,必须要在第一个if结构中满足else的条件。
因此$a必须为False,然后$b也必须为False。
最内层的条件语句的实现要求先前的两个变量($a和$b)是False,而$c必须是True)2.C3.A4.E编程题:<?phpswitch($a) {case 'a':somefunction();break;case 'b':anotherfunction();break;case 'c':dosomething();break;default:donothing();}>第5章答案:选择题:1.D2.B3.B4.A(说明:注意,$myarray的键值并没有打上引号。
所以,正在访问的键不是myvalue字符串,而是常量myvalue的值。
最终访问的是$myarray[10],值是Dog,答案是A。
)5.A(说明:5.通常情况下,foreach 语句是遍历数组的首选。
但是,由于foreach语句是在数组的副本上进行操作,而我们需要给数组中每个元素重新赋值,所以在这里foreach就不适用了。
尽管也可以用while循环和do…while循环,但由于数组是顺序索引的,最合适的语句还是for语句。
因此答案是A。
)6.C8.B(说明:foreach操作的是$array的副本,因此对原来的值没有影响)9.B(说明:只有asort函数能在保留原有索引关系的前提下进行排序。
答案是B)10.A11.B,D(说明:array_flip()只能把数组中每个元素的键和值进行交换。
rsort()和array_reverse()则能把题目中的数组逆向排序为需要的形式(’d’,’c’,’b’,’a’)。
答案是B和D。
)12.B13.D14.A15.A16.A问答题:1. sort(), asort()以及ksort()三个函数之间有什么区别?在什么情况下会使用他们?答案参见教材5.4.72.<?php$arr = array('james', 'tom', 'symfony');echo join(',',$arr);//方法1echo "<br/>";echo implode(',',$arr);//方法2>编程题:第一题:说明:当$ip是合法IP地址时,程序运行结果是1。
当$ip不是合法IP地址时,程序运行结果是空字符串。
<?php$ip = "210.184.168.111";$flag = false;//将标记flag初始化为false$ips = explode(".",$ip);//使用“.”分割字符串,将分割后的字符串放到数组中$count = count($ips);//获取数组的长度if($count!=4){//如果数组的长度不是4,说明是非法IP地址,退出程序exit($flag);}for($i =0 ; $i < $count ; $i++ ){//IP地址的每一位必须是数字、并且在0--255区间取值if(is_numeric($ips[$i]) && $ips[$i]>=0 && $ips[$i]<=255){$flag = true;}else{//如果某一位不是数字,或者没有在在0--255区间取值,说明是非法IP地址,退出for循环$flag =false;break;}}exit($flag);第二题:可用冒泡法进行排序。