PHP程序设计习题答案 下载本文

第1章 PHP开篇

习题

一、填空题

1. Apache的httpd服务程序使用的是【 80 】端口。

2. 在进行软件开发时有两种基本架构,B/S架构和【C/S 】架构。 3. URL的英文全称是【Uniform Resource Locator 】,中文名称为【统一资源定位符 】。 4. 【HTTP 】协议是计算机硬件与软件之间数据交换的格式。 5. 【HTTP 】表示传输数据所使用的协议,【 WWW 】表示要请求的服务器主机名。 二、判断题

1. 使用PHP写好的程序,在Linux和Windows平台上都可以运行。(√) 2. PHP可以支持MySQL数据库,但不支持其它的数据库。(×)

3. PHP有很多流行的MVC框架,这些框架可以使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应用程序平台,下列选项中

为该平台简称的是(B )。 A. WAMP B. LAMP C. LNMP D. WNMP

5. 在下列选项中,哪些不属于PHP的突出特点( B )。

A开源免费 B. 开发成本高 C. 跨平台性 D. 支持多种数据库

四、简答题

1. 请简要说明PHP的突出特点是什么? 1. 开源免费2跨平台性3.面向对象 4.支持多种数据库5.快捷性.

第2章 基本语法

习题

一、填空题

1. 任何一个程序文件的php代码的开始和结束都要使用【 ”进行标记。 2. PHP中,多行注释以【 /* 】开始,以【*/ 】结束。 3. PHP标识符允许包含字母、【数字 】、【下划线 】字符。 4. 在PHP中用于实现继承的关键字是【extends 】。

5. 如果我们想把错误隐藏起来,可以使用错误控制运算符【 @ 】。 二、判断题

1. 标准标记具有更好的兼容性、可移植性、可复用性。(√)

2. ASP式标记的使用与短标记类似,必须在配置文件中启用asp_tags选项。(√) 3. PHP的块注释需要使用 的形式。(×)单行注释#,// 4. 多行注释/* */

5. 这段PHP代码“”是不会运行的。(×) 6. 注释用于对程序中某些代码进行说明,不会被解释。(√) 三、选择题

1. php代码的开始标记以下哪个不可以( D )。

A.

A. 为了加快开发速度。

B. 如果在结束标记后边无意中设置回车信息,则该文件在被包含的时候回车信息会作为输出内容,对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!”;

echo 'Hello World!'; ?>

第3章 函数

习题

一、填空题

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中,定义函数时可以没有返回值。(√) 三、选择题

1. 下列选项中,函数返回的关键字是(C )。

A: back B: go C: return D: break 2. 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 )。

A: 可读性 B: 实用性 C: 复用性 D: 灵活性

四、简答题

1.请简述如何在函数内部使用函数外部的变量? 在函数内部使用global修饰变量

第4章 数组

一、填空题

1. 数组分为索引数组和【关联 】数组两种类型。

2. 索引数组是指下标为【整数 】的数组。关联数组是指下标为字符串的数组。 3. 通常情况下,关联数组元素的【键 】和值之间有一定的业务逻辑关系。。 4. 在数组中,【 键 】是数组元素的唯一标识。

5. 使用【 unset() 】函数可以删除数组中的元素。 二、判断题

1. 在数组操作符中,“+”表示将两个数组中的各元素进行加法运算。(×)

2. 使用联合运算符合并数组时,如果遇到相同下标的元素,后面的会覆盖前面的。(×) 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: 该函数的作用是移除数组中的重复元素 C: 该函数第二个参数是递归处理多维数组

D: 如果两个元素的值相等只保留第一个元素的键名 4. 关于array_search()函数,下面说法错误的是( D )。

A: 第一个参数表示在数组中要查找的值 B: 第二个参数表示被查询的数组

C: 如果要查找的值没有找到,就返回FALSE D: 如果要查找的值找到了,就返回TRUE

5. 关于array_keys() 函数,下面说法错误的是(B )。

A: 该函数用于获取数组中元素对应的键名

B: 当匹配结果有多个时,只返回第一个匹配的键名 C: 函数的第一个参数表示被查询的数组

D: 如果只传一个数组,则返回数组中所有的键

四、简答题

1. 什么是数组?

数组就是一组数据的集合,把一系列数据组织起来,形成一个可操作的整体。数组的每个实体都包含两项:键和值。

第5章 面向对象编程

习题

一、填空题

1. 继承的关键字为【 Extends 】,实现接口的关键字为implements。 2. PHP中有很多以两个下划线开头的方法,称之为【 魔术方法 】。

3. 在魔术方法中,__construct()是构造方法,__destruct()是【 析构 】方法。

4. 如果不想让一个类被实例化,只能被继承,那么可以将该类声明为【 抽象类 】类。 5. 声明问抽象类的关键字是【 Abstract 】 二、判断题

1. 在PHP5中,析构方法的名称是__destruct(),并且不能有任何参数。(×) 2. PHP中类常量使用define来定义的。(×)?

3. 当我们希望某些数据在内存中只有一份,并且可以被类的所有实例对象所共享,那么就将该

属性声明成静态属性。(√)

4. 当我们希望在不创建对象的情况下调用某个类的方法时,可以将这个方法声明成静态方法。

(√)

5. 在PHP中,使用$this可以访问静态成员。(×) 三、选择题

1. 在下列选项中,不属于面向对象三大特征的是(C )。

A: 封装性 B: 多态性 C: 抽象性 D: 继承性 2. 以下关于面向对象的说法错误的是( D )。

A: 是一种符合人类思维习惯的编程思想

B: 把解决的问题按照一定规则划分为多个独立对象,通过调用对象的方法来解决问题 C: 面向对象的三大特征为封装、继承和多态 D: 在代码维护上没有面向过程方便

3. 以下关于面向对象三大特征错误的是(D )。

A: 封装就是将对象的属性和行为封装起来,不让外界知道具体实现细节 B: 继承性主要描述的是类与类之间的关系,通过继承可以在无需重新编写原有类的情况下对原有类的功能进行扩展

C: 多态是指同一操作作用于不同的对象,会产生不同的执行结果 D: 多态性是面向对象的核心思想

4. 以下关于面向对象说法错误的是( C )。

A: 面向对象编程具有开发时间短、效率高、可靠性强等特点 B: 面向对象编程其代码更易于维护、更新和升级 C: 抽象性是面向对象的三大特征之一 D: 封装是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作

5. 以下关于面向对象的说法错误的是( D )。

A: 面向对象就是把要处理的问题抽象为对象,通过对象的属性和行为来解决对象的实际问题 B: 抽象就是忽略事物中与当前目标无关的非本质特征,更充分的注意与当前目标有关的本质特征,从而找出事物的共性

C: 封装的信息隐蔽作用反映了事物的相对独立性,可以只关心它对外所提供的接口 D: 面向对象编程要将所有属性都封装起来不允许外部直接存取

四、简答题

1. 构造方法和析构方法是在什么情况下调用的,作用是什么。

构造方法在类实例化对象时自动调用,用于对类中的成员进行初始化。析构方法在对象销毁之前被自动调用,用于完成清理工作。