《PHP程序设计习题复习资料.docx》由会员分享,可在线阅读,更多相关《PHP程序设计习题复习资料.docx(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第1章 PHP开篇 习题一、 填空题1. Apache的 d效劳程序使用的是【80 】端口。2. 在进展软件开发时有两种根本架构,B/S架构和【C/S 】架构。3. URL的英文全称是【Uniform Resource Locator】,中文名称为【统一资源定位符】。4. 【 】协议是计算机硬件及软件之间数据交换的格式。 5. 【 】表示传输数据所使用的协议,【 WWW 】表示要请求的效劳器主机名。二、 判断题1. 使用PHP写好的程序,在Linux和Windows平台上都可以运行。()2. PHP可以支持MySQL数据库,但不支持其它的数据库。()3. PHP有很多流行的MVC框架,这些框架
2、可以使PHP的开发更加快捷。()4. Zend Studio是PHP中常用的IDE集成开发环境。()5. 进展PHP程序开发时,可以借助软件和工具来提高效率。()三、 选择题1. 以下选项中,不是URL地址中所包含的信息是 D 。 A. 主机名 B. 端口号C. 网络协议 D. 软件版本2. PHP是一种 A的编程语言。A. 解释型B. 编译型C. 两者都是 D. 两者都不是3. PHP是个网站开发中非常流行的脚本语言,其流行的原因不包含 C 。A. 易学 B. 易用C. 易调试 D. 易扩展4. PHP及Linux、Apache和MySQL一起共同组成了一个强大的Web应用程序平台,以下选项
3、中为该平台简称的是B 。A. WAMPB. LAMPC. LNMPD. WNMP5. 在以下选项中,哪些不属于PHP的突出特点 B 。A开源免费B. 开发本钱高C. 跨平台性D. 支持多种数据库四、 简答题1. 请简要说明PHP的突出特点是什么?4.支持多种数据库5.快捷性.第2章 根本语法 习题一、 填空题1. 任何一个程序文件的php代码的开场和完毕都要使用【 进展标记。2. PHP中,多行注释以【 /* 】开场,以【*/ 】完毕。3. PHP标识符允许包含字母、【数字 】、【下划线 】字符。4. 在PHP中用于实现继承的关键字是【extends 】。5. 如果我们想把错误隐藏起来,可以使
4、用错误控制运算符【 】。二、 判断题1. 标准标记具有更好的兼容性、可移植性、可复用性。()2. ASP式标记的使用及短标记类似,必须在配置文件中启用asp_tags选项。()3. PHP的块注释需要使用 的形式。单行注释#,/多行注释/* */4. 这段PHP代码“!- -是不会运行的。5. 注释用于对程序中某些代码进展说明,不会被解释。()三、 选择题1. php代码的开场标记以下哪个不可以 D 。A. ?php B. %C. ? D. eof2. 一般在成熟的工程里边,纯php代码文件“完毕标记最好不要设置,为什么? B 。A. 为了加快开发速度。B. 如果在完毕标记后边无意中设置回车信
5、息,那么该文件在被包含的时候回车信息会作为输出内容,对header头设置或打印图片效果有影响。C. html标记里边规定,没有完毕标记也可以。D. apache规定的标准。3. PHP支持多种风格的标记,以下不是PHP标记的是C 。A. B. C. D. 4. 以下PHP标记中,哪些标记对任何配置都有效? A 。A.标准标记B. 短标记C. ASP标记D. SCRIPT标记5. 以下选项中,哪个不是PHP的注释符A。A. B. #C. /*/ D. /四、 简答题1. 请编写符合PHP语法的程序,输出“Hello World!;?phpecho Hello World!;第3章 函数 习题一、
6、 填空题1. 能将字符串转换为数组的函数是【explode()】。2. 在PHP中,【implode】函数能将数组转化为字符串。3. 使用【strcmp】函数比拟两个字符串的大小,结果一样返回true,不同返回false。4. strcmp()函数是根据【ASCII码值】比拟两个字符串的大小。5. str_replace()函数的返回值类型是【Bool布尔】类型。二、 判断题1. 在PHP中,函数名称区分大小写。2. 函数的参数不可以设定默认值。3. 在一个PHP文件中同时定义函数f1()和F1()时,程序不会报错。4. 在同一个文件中,可以先调用后定义函数。5. 在PHP中,定义函数时可以没
7、有返回值。三、 选择题1. 以下选项中,函数返回的关键字是C 。A: back B: goC: returnD: break2. PHP中存在多种变量,其中在函数内部定义的变量称之为 B 。A: 变量 B: 局部变量 C: 全局变量D: 内部变量3. PHP中存在多种变量,其中在函数外定义的变量称之为D 。A: 局部变量 B: 变量 C: 超全局变量 D: 全局变量4. 假设想要在函数内部使用函数外定义的变量,可以使用的方式是 A 。A: GLOBAL关键字 B: 预定义变量$GLOBAL C: PUBLIC关键字 D: GLOBALS关键字5. 在实际编程中,使用可变函数可以增加程序的 D
8、。A: 可读性 B: 实用性 C: 复用性D: 灵活性四、 简答题1请简述如何在函数内部使用函数外部的变量?在函数内部使用global修饰变量第4章 数组 一、 填空题1. 数组分为索引数组和【关联 】数组两种类型。2. 索引数组是指下标为【整数 】的数组。关联数组是指下标为字符串的数组。3. 通常情况下,关联数组元素的【键 】和值之间有一定的业务逻辑关系。4. 在数组中,【 键 】是数组元素的唯一标识。5. 使用【 unset 】函数可以删除数组中的元素。二、 判断题1. 在数组操作符中,“+表示将两个数组中的各元素进展加法运算。()2. 使用联合运算符合并数组时,如果遇到一样下标的元素,后
9、面的会覆盖前面的。()3. 在数组操作运算符中,联合运算符“+用于合并数组。()4. 一个数组只能有一个数组指针。()5. 数组指针默认情况下指向数组的最后一个元素。()三、 选择题1. 以下选项中,哪些不是数组指针操作函数 C 。A: current()B: next()C: count()D: each()2. 以下选项中,可以将数组的指针指向第一个元素的是 B 。A: restart () B: reset ()C: prev () D: current ()3. 关于array_unique()函数,以下说法错误的选项是 C。A: 该函数将会返回新的数组对象B: 该函数的作用是移除数组
10、中的重复元素C: 该函数第二个参数是递归处理多维数组D: 如果两个元素的值相等只保存第一个元素的键名4. 关于array_search()函数,下面说法错误的选项是 D 。A: 第一个参数表示在数组中要查找的值B: 第二个参数表示被查询的数组C: 如果要查找的值没有找到,就返回FALSED: 如果要查找的值找到了,就返回TRUE5. 关于array_keys() 函数,下面说法错误的选项是B 。A: 该函数用于获取数组中元素对应的键名B: 当匹配结果有多个时,只返回第一个匹配的键名C: 函数的第一个参数表示被查询的数组D: 如果只传一个数组,那么返回数组中所有的键四、 简答题1. 什么是数组?
11、数组就是一组数据的集合,把一系列数据组织起来,形成一个可操作的整体。数组的每个实体都包含两项:键和值。第5章 面向对象编程 习题一、 填空题1. 继承的关键字为【Extends 】,实现接口的关键字为implements。2. PHP中有很多以两个下划线开头的方法,称之为【 魔术方法 】。3. 在魔术方法中,_construct()是构造方法,_destruct()是【 析构 】方法。4. 如果不想让一个类被实例化,只能被继承,那么可以将该类声明为【 抽象类 】类。5. 声明问抽象类的关键字是【 Abstract 】二、 判断题1. 在PHP5中,析构方法的名称是_destruct(),并且不
12、能有任何参数。2. PHP中类常量使用define来定义的。?3. 当我们希望某些数据在内存中只有一份,并且可以被类的所有实例对象所共享,那么就将该属性声明成静态属性。4. 当我们希望在不创立对象的情况下调用某个类的方法时,可以将这个方法声明成静态方法。5. 在PHP中,使用$this可以访问静态成员。三、 选择题1. 在以下选项中,不属于面向对象三大特征的是C 。A: 封装性B: 多态性C: 抽象性D: 继承性2. 以下关于面向对象的说法错误的选项是 D 。A: 是一种符合人类思维习惯的编程思想B: 把解决的问题按照一定规那么划分为多个独立对象,通过调用对象的方法来解决问题C: 面向对象的三
13、大特征为封装、继承和多态D: 在代码维护上没有面向过程方便3. 以下关于面向对象三大特征错误的选项是D 。A: 封装就是将对象的属性和行为封装起来,不让外界知道具体实现细节B: 继承性主要描述的是类及类之间的关系,通过继承可以在无需重新编写原有类的情况下对原有类的功能进展扩展C: 多态是指同一操作作用于不同的对象,会产生不同的执行结果D: 多态性是面向对象的核心思想4. 以下关于面向对象说法错误的选项是 C 。A: 面向对象编程具有开发时间短、效率高、可靠性强等特点B: 面向对象编程其代码更易于维护、更新和升级C: 抽象性是面向对象的三大特征之一D: 封装是把客观事物封装成抽象的类,并且类可以
14、把自己的数据和方法只让可信的类或者对象操作5. 以下关于面向对象的说法错误的选项是 D 。A: 面向对象就是把要处理的问题抽象为对象,通过对象的属性和行为来解决对象的实际问题B: 抽象就是忽略事物中及当前目标无关的非本质特征,更充分的注意及当前目标有关的本质特征,从而找出事物的共性C: 封装的信息隐蔽作用反映了事物的相对独立性,可以只关心它对外所提供的接口D: 面向对象编程要将所有属性都封装起来不允许外部直接存取四、 简答题1. 构造方法和析构方法是在什么情况下调用的,作用是什么。构造方法在类实例化对象时自动调用,用于对类中的成员进展初始化。析构方法在对象销毁之前被自动调用,用于完成清理工作。
15、第6章 错误处理及调试 习题一、 填空题1. 在运行PHP文件时,如果遗漏了一个分号,这属于【语法】错误。2. 在PHP中一般有两种方法处理错误,分别为标准PHP错误报告和【异常处理】。3. E_ALL表示除【E_STRICT】以外的所有错误和警告。4.在脚本运行时,遇见可能出现错误的地方,会触发的级别常量是【E_NOTICE】。5.在程序开发中,可以使用【tigger-error】函数手动触发错误。二、 判断题1. 异常的处理不属于错误的处理方式。2. 在PHP中,错误级别表示当前错误的等级。()3. PHP采用常量的形式来表示错误级别。()4. 在PHP中,每个错误级别都采用字符串形式表示
16、。5. E_ALL表示除E_STRICT以外的所有错误和警告。()三、 选择题1. 在脚本运行时,遇见可能出现错误的地方,会触发的级别常量是 D 。A: E_ERRORB: E_WARNNINGC: E_PARSED: E_NOTICE2. 在程序开发中,可以使用 A 函数触发错误。A: trigger_error()B: error_reporting()C: error_trigger()D: reporting_error()3. Trigger_error函数有 个参数是必需的,有个参数是可选的 D 。A: 2, 1 B: 2, 2 C: 1, 2 D: 1, 1 4. 在使用trig
17、ger_error()函数之前,一定要使用 A 函数让错误显示。A: ini_set()B: set_ini()C: reporting_error()D: error_reporting()5. 在PHP中,显示错误报告的方式有A 。A: 修改配置文件。B: error_reporting()和echo ()函数。C: error_reporting()和die()函数。D: ini_set()和die()函数。四、 简答题1. 在php.ini文件中,和错误有关的设置都有那些?(1)error_reporting,设定错误级别(2)display_errors,是否显示错误报告,设置为ON
18、那么翻开,设置为OFF那么关闭所有错误提示(3)log_errors,默认设置为OFF,是否记录错误日志;(4)track_errors,默认设置为OFF,该选项可以帮助解决代码中的错误,而不是让PHP提供其默认的功能。第7章 协议 习题一、 填空题1. 是Hyper Text Transfer Protocol的缩写,其中文是【 超文本传输协议 】。2. 【 】协议是一种请求/响应式的协议。3. 在浏览器及效劳器的交互过程中,也得遵循一定的规那么,这个规那么就是【 】。1. 允许传输任意类型的数据,但是该数据的类型需要由【 Content-Type协议】加以标记。4. 【4】个步骤。二、 判
19、断题1. 1.0协议每次只能处理一个 请求。2. 1.1协议在一个TCP连接上可以传送多个 请求和相应。3. 请求的是域名为的Web效劳器根目录下的默认资源。4. 如果网页上的form表单不设置method属性,那么默认以post方式发送请求。5. POST方式提交表单是将表单元素及数据作为实体内容发送给效劳器。三、 选择题1. 响应行位于请求消息的第一行,它不包含哪几个局部? D 。A: 状态码B: 状态描述信息C: 协议版本 D: 响应返回的目标地址2. 关于以下在开发中比拟常见的状态码描述错误的选项是 C 。A: 状态码200表示效劳器成功处理了客户端的请求。B: 状态码302表示请求的
20、资源从不同的URI响应请求,但请求者应继续使用原有位置来进展以后的请求。C: 状态码404表示效劳器拒绝处理客户端的请求。D: 状态码500表示效劳器发生错误,无法处理客户端的请求。3. 该地址访问效劳端口号是多少? C 。A: 3306B: 23C: 80D: 214. 请求行位于请求消息的第一行,它不包含哪几个局部?(C)A: 请求方式 B: 资源路径 C: 请求来源 D: 使用的 协议版本5. 请求消息中,最常使用的请求方式是 D 。A: POST和HEAD方式B: GET和HEAD方式C: HEAD和OPTIONS方式D: POST和GET方式四、 简答题1. 请简单概括 协议的主要特
21、点。1、支持客户/效劳器模式。2、 简单快速:客户向效劳器请求效劳时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户及效劳器联系的类型不同。由于 协议简单,使得 效劳器的程序规模小,因而通信速度很快。3、灵活: 允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。4、无连接:无连接的含义是限制每次连接只处理一个请求。效劳器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。5、无状态: 协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,那么它必须重传,
22、这样可能导致每次连接传送的数据量增大。第8章 PHP及Web页面交互 习题一、 填空题1. 【 strip_tags() 】函数用于去除字符串中的HTML和PHP标记。1. 【 htmlentities() 】函数可以将HTML和PHP标记转换成字符,以文本的形式输出。2. 【 isset() 】函数用于检测变量是否具有值,包括0、FALSE或者一个空字串,但不能是NULL。3. 【 empty() 】函数用于检测变量是否具有空值,包括空字串、0、null或false。2. 【 is_numeric() 】函数用于检测变量是否是数字或数字字符串。二、 判断题1. PHP是一种运行在效劳器端的语
23、言,为了方便进展用户交互,通常和HTML结合使用。()2. 效劳器将获取到的静态资源通过 请求发送到浏览器端。3. 请求PHP文件,Apache会将请求交给PHP模块处理,结果以HTML形式返回给Apache。()4. 表单由表单标签和表单元素两局部组成。()5. 用户通过表单提交的数据,PHP后台程序可以直接访问并使用。三、 选择题1. 以下数据使用isset()函数检测,返回false的是D 。A: 0B: falseC: D: NULL2. 以下关于浏览器请求效劳器过程说法错误的选项是 C 。A: 浏览器是通过URL地址来访问效劳器的。B: 数组在传输过程中需要遵循 协议。C: 当数据传
24、输到Web效劳器时,Web效劳器自己会对数据进展处理。D: 处理好的数据以HTML形式返回给浏览器。3. Form标签中“name属性、“method属性、“action属性和“enctype属性的作用分别是 A 。A: 设置表单名称;设置表单提交方式;设置接收数据路径;设置提交数据的编码格式。B: 设置表单提交方式;设置提交数据的编码格式;设置表单名称;设置接收数据路径。C: 设置表单名称;设置接收数据路径;设置表单提交方式;设置提交数据的编码格式。D: 设置表单名称;设置提交数据的编码格式;设置接收数据路径;设置表单提交方式。4. 标记type属性有多种值,其中text、checkbox、
25、password、radio分别代表C 。A: 文本框、密码框、复选框、单项选择按钮B: 密码框、文本框、单项选择按钮、复选框C: 文本框、复选框、密码框、单项选择按钮D: 密码框、复选框、文本框、单项选择按钮5. 以下关于GET方式提交和POST方式提交数据说法错误的选项是 C 。A: get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。B: post是通过 post机制,将表单内各个字段及其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。C: get平安性非常低,post平安性
26、较高。而且post的执行效率也比get好。D: 在FORM提交的时候,如果不指定Method,那么默认为GET请求,Form中提交的数据将会附加在url之后,以?分开及url分开。四、 简答题1. 请简要介绍GET及POST的区别?1. get是从效劳器上获取数据,post是向效劳器传送数据。2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过 post机制,将表单内各个字段及其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。3. 对于get方式,效劳器端用Re
27、quest.QueryString获取变量的值,对于post方式,效劳器端用Request.Form获取提交的数据。4. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。5. get平安性非常低,post平安性较高。但是GET执行效率却比Post方法好。第9章 PHP会话技术 习题一、 填空题1. 在实际开发中,注销功能是通过删除【 session 】和cookie实现的。2. 在实际开发中,可以通过设置【cookie 】的有效期来实现用户7天免登录的功能。1. 执行【 session_des
28、troy() 】函数可以同时删除session数据和文件。3. PHP中session的设置和读取都是由超全局数组【$_SESSION】来完成。4. 从session中获取数据,需要使用【session_start()】函数开启session。二、 判断题1. 假设要存储从session中获取的数据只能是数组或根本数据类型。2. PHP中session支持任意类型的数据。3. 由于$_SESSION是超全局数组,所以数组内每个元素可以对应多个session数据。4. 在PHP中,必须使用超全局数组$_SESSION向session添加数据。5. 在调用session_start()前不能有任何
29、输出,包括空格和空行,否那么会报错。三、 选择题1. PHP可以利用 D配置项实现自动开启session的机制。A: session_autoB: session_startC: session_auto_startD: 2. 以下选项中不可以保存到session里的数据类型是 C 。A: 字符串B: 数组C: 对象D: 布尔类型3. 以下选项中A是将数据存储在浏览器端的会话技术,并以此来跟踪和识别用户。A: CookieB: SessionC: RequestD: A和B4. 用户第一次访问效劳器时,效劳器会在响应消息中增加 C头字段,并将信息发送给浏览器。 A: SetCookieB: C
30、ookieC: Set-CookieD: 以上答案都不对5. 在PHP程序开发中,通过A 函数创立Cookie。A: setcookie() B: set_cookie() C: cookie() D: 以上答案都不对 四、 简答题1. 在工程开发中,经常使用isset()函数和empty()函数来判断变量,请简述他们的区别。isset()判断一个变量是否已经被设置并且不为null,如果是那么返回true,否那么返回false。empty()判断一个变量, 非空非零返回 false。否那么返回true。、0、0、null、false、array()、以及没有任何属性的对象都被认为是空的。第10
31、章 正那么表达式 习题一、 填空题1. 正那么表达式的英文简称为【 RegExp 】。1. 【 PCRE 】是兼容Perl正那么表达式的一套正那么引擎。2. 在正那么表达式中,选择字符“|可以理解为【 或 】。3. 反义字符类,应该在字符类内部添加【 “ 】前缀。2. 在PHP中,使用正那么表达式对数组中的元素进展匹配可以用【 preg_grep() 】函数。二、 判断题1. 正那么表达式是一种描述字符串构造的语法规那么。()2. PHP的正那么表达式支持POSIX规那么,但不支持PCRE规那么。 3. 在正那么表达式中,定位符“和“$用于描述单词的边界。 4. 在正那么表达式中,“B用于匹配
32、单词边界,“b用于匹配非单词边界。 5. 在正那么表达式中,一个方括号“可以匹配一个单词。 三、 选择题1. 以下正那么表达式选项中,可以匹配字符串“itcast的选项是 B 。A: itcastB: itcastC: it?c?astD: it*c*ast2. 在正那么表达式中,以下选项哪些不是反斜线“的作用D 。A: 作为转义符使用B: 定义一些限定符C: 指定预定义字符集 D: 改变限定符的作用范围3. 以下正那么表达式选项中,可以匹配字符串“itcast的选项有 D 。A: w- B: W+ C: s+ D: S+4. 以下选项中,可以被正那么表达式“(go)+gle匹配的字符串有 B
33、 。A: googleB: gogleC: goglogleD: gle5. 在正那么表达式中,以下选项哪些是括号字符“()的作用B 。A: 定义限定符B: 分组 C: 固定限定符的作用范围D: 表示字符范围四、 简答题1. 请简述什么是XSS攻击。xss攻击全称是:Cross Site Script 跨站脚本攻击恶意攻击者往Web页面里插入恶意HTML和JavaScript代码,当用户浏览该页面之时,嵌入其中的HTML和JavaScript代码会被执行,从而到达恶意攻击用户的特殊目的。第11章 文件操作 习题一、 填空题1. 【 r 】模式是以只读方式翻开文件,将文件指针指向文件头。2. 【
34、 r+ 】模式是以读写方式翻开文件,将文件指针指向文件头。3. 【 a 】写入方式翻开,将文件指针指向文件末尾。如果文件不存在那么尝试创立之。4. 【 () 】函数不需要使用fopen()函数翻开文件就可以对文件进展写入操作。5. s()函数要实现追加写入,需要设置可选参数值为【 】。二、 判断题1. 文件在程序中是以流的形式来操作的。()2. 流是指数据在数据源文件和程序内存之间经历的路径。()3. 输出流是指数据从数据源文件到程序内存的路径。4. 文件流中的输入输出都是相对于文件而言的。 5. 在Linux系统中路径分隔符使用的是正斜线“/。() 三、 选择题1. PHP中获取文件类型的函
35、数是 C。A: () B: () C: () D: () 2. PHP中用于判断文件是否存在的函数是B 。A: ()B: ()C: () D: ()3. ()函数能够获取文件的哪个属性? B 。A: 文件的修改时间B: 文件的上次访问时间 C: 文件的创立时间 D: 文件大小4. 要获取文件的统计信息,可以使用下面的哪个函数? B 。A: ()B: stat()C: ()D: ()5. 以下关于文件的ctime属性说法正确的选项是 D 。 A: 在windows下修改文件名会改变ctime属性值 B: 在linux下修改文件权限不会改变ctime属性值 C: 在linux下修改文件内容不会改变ctime属性值D: 在linux下修改文件路径会改变ctime属性值 四、 简答题1. 文件在程序中是以流的形式来操作的。流是指数据在数据源和程序之间的经历的路径。请阐述文件流在 协议传输中扮演什么角色?所谓文件流,是指在通过 协议POST或GET数据的过程中,传输一方直接以二进制流的方式传送某个文件的内容,这样就形成了一条文件流,接收方只要将承受的流内容直接写进文件即可。流根据数据的传输方向可分为输入流和输出流。输入流是指数据从数据源到程序的路径,输出流是指数据从程序到数据源的路径。第 12 页