oop测试题(含答案)

更新时间:2023-11-20 00:13:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

OOP阶段测试题

【时间:90分钟】

一.选择题(本答题中所有小题只有一个正确选项,每题2分,共60分)

1、以下是一个类的声明,其中有两个成员属性,对成员属性正确的

赋值方式是( B )

class Demo {

private $one;

public static $two;

function setOne($value) { $this->one=$value; } }

$demo=new Demo();

A.$demo->one=\ B.Demo::$two=\

C.Demo::setOne(\ D.$demo->two=\

2、以下说法错误的是( B )

A. final关键字标识的类不能被继承

B. final关键字既可以标识成员方法,也可以标识成员属性 C. 静态方法可以通过类名直接调用

D. 将类中的成员属性定义为常量使用const

3、以下说法错误的是( B )

A. 在外部访问静态成员属性时使用类名::静态成员属性名

B. 在外部访问静态成员属性时使用 $实例化对象->静态成员属性名 C. 在外部访问静态方法时使用$实例化对象 ->静态方法名 D. 在外部访问静态方法时使用类名::静态方法名

4、以下代码执行结果为( )

$a=”hello”; function print_A() {

$a=”php mysql”; global $a; echo $a; }

echo $a; print_A(); ?>

A hello B php mysql C hello hello D hello php mysql

5、PHP中调用类文件中的this表示( A )

A本类实例化的对象变量 B本页面 C本方法 D本变量

6、PDO通过执行SQL查询与数据库进行交互,可以分为多种不同的策略,使用哪一种方法取决于你要做什么操作。如果向数据库发送delete语句,下面哪种方式最合适也最安全( C )

A.使用PDO对象中的exec()方法 B.使用PDO对象中的query()方法

C.使用PDO对象中的prepare()和PDOStatement对象中的execute()两个方法结合

D.以上方式都可以

7、在PHP中哪个变量数组总是包含所有客户端发出的Cookies数据( B )

A.$_COOKIES B.$_COOKIE C.$_GETCOOKIE D.$_GETCOOKIES

8、阅读下面PHP程序代码,写出执行结果: class test{

C

private $name;

public function __construst($name) { $this->name=$name; echo “{$this->name}”被构造; }

public function __destruct($name) { $this->name=$name; echo “{$this->name}”被析构; }

}

$t1 = new test(“X”); $t2 = new test(“Y”);

A. X被构造 Y被构造 X被析构 Y被析构 B. X被构造 X被析构 Y被构造 Y被析构 C. X被构造 Y被构造 Y被析构 X被析构 D. X被构造 X被析构 Y被析构 Y被构造

9、下列那个选项是正确的引用文件的方法( A )

A.require和include B.require和function C.define和include D.function和include

10、写出如下程序的输出结果

$str1 = null; $str2 = false;

echo $str1= =$str2 ? '相等' : '不相等';

$str3 = ''; $str4 = 0;

echo $str3= =$str4 ? '相等' : '不相等';

$str5 = 0; $str6 = '0';

echo $str5 = = = $str6 ? '相等' : '不相等'; ?>

A 相等 相等 不相等 B 相等 相等 相等

C不相等 相等 不相等 D不相等 不相等 不相等

11、以下哪个错误级别会使程序崩溃,阻止并退出程序?( C )

A.E_WARNING B.E_NOTICE C.E_ERROR 都可以

12、下面程序运行结果为( B )。

$nextWeek = time() + (7 * 24 * 60 * 60); echo 'Now: '.date('Y-m-d').\

echo 'Next Week: '.date('Y-m-d', $nextWeek).\ ?>

A.得到今天的日期(月-日)

B.得到今天的日期(年-月-日)与下周的日期(年-月-日) C.得到现在的时间(小时-分-秒) D.得到现在到下周的时间间隔

13、下面那种说法是错误的: D

A.子类中的私有方法可以调用父类中的受保护的属性 B.子类中的公有方法可以调用父类中受保护的属性 C.父类中私有的方法可以调用子类中公有的属性 D.父类中受保护的方法可以调用子类中私有的方法

14、下面四个魔术方法哪一个是需要两个参数

B

A.__get B.__set C.__isset D.__unset

15、当PDO对象创建成功后,与数据库的连接已经建立,就可以使

用PDO对象了,下面哪个不是PDO对象中的成员方法( B )A errorInfo() B bindParam() C exec() D prepare() 16、

D.以上

16、

A. 图像相对于周围的文本左对齐 B. 图像相对于周围的文本右对齐 C. 图像相对于周围的文本底部对齐 D. 图像相对于周围的文本顶部对齐

17、 链接元素a有很多属性,其中用来指明链接所指向的URL的属性是( A )

A. href B. herf C. target D. Link

18、以下代码运行的结果为( C )

for($i=0;$i

A.2 B.3 C.4 D.1

19、下面给出正则表达式,请选择能正确匹配的字串。正则:\D

A. axxxxxb B. axxxb C. axaxaxaxb D. axxxxb

20、下面哪条命令可把 ./dir1目录 (包括它的所有子目录 )内容复制到 ./dir2中?( D )

A. cp -i ./dir1/* ./dir2 B. cp -P ./dir1/* ./dir2 C. cp -d ./dir1/* ./dir2 D. cp -r ./dir1/* ./dir2

21、哪种OOP设计模式能让类在整个脚本里只实例化一次?( C )

A.MVC B.代理模式 C.单态模式 D.抽象工厂模式

22、请看代码,数据库关闭指令将关闭哪个链接标识?

$link1=mysql_connect(“localhost”,”root”,””); $link2=mysql_connect(“localhost”,”root”,””); mysql_close(); ?>

A.$link1 B $link2 C 全部关闭 D 报错

B

23、下面语句执行的结果是:____B___

echo ++$i; echo $i++; $a=++$i; echo $a++; $i=$a; echo $i;

A:1 2 3 4 B:1 1 3 4 C:1 2 3 3 D:1 2 3 5 E:以上都不是

24、下面那些说法是错误的:__A__

A: 如果一个类的成员前面有访问修饰符private , 那么这些成员不能被继承,并且在类的外部不可见。但如果成员被指定为protect和public,则可以被继承,在类的外部也是可见的。

B:PHP5中,final 关键字可以禁止继承和重载。

C:PHP5中析构函数的名称是:__destruct().并且不能有任何参数。 D: 继承接口的类要实现接口中声明的方法,在php中,如果继承接口的类没有实现接口中的所有方法,则必须被声明为一个抽象类。

25、下面关于php与mysql数据库操作函数叙述错误的是: D

A. mysql_fetch_row() -- 从结果集中取得一行作为索引数组 B. mysql_fetch_assoc() -- 从结果集中取得一行作为关联数组

C. mysql_fetch_array() -- 从结果集中取得一行作为关联数组或索引数组或二者兼有

D. mysql_fetch_object() -- 从结果集中取得一行作为索引数组

26、如下表结构: C mysql> select * from student;

A. SELECT * FROM student

B. SELECT * FROM student WHERE sage=22 C. SELECT * FROM student LIMIT 1,1

D. SELECT * FROM student WHERE sname LIKE '%q%'

27、下面的脚本运行以后,$array数组所包含的值是什么?(B )

$array = array(?1?,?1?); foreach($array as $k=>$v){ $v = 2; }

A.array(?2?,?2?) B.array(?1?,?1?) C.array(2,2)

D.array(Null,Null)

28、下面哪个表达式不能将两个字符串$s1和$s2串联成一个单独的字符串?( A )

A.$s1+$s2

B.“{$s1}{$s2}”

C.$s1.$s2

29、mysql_insert_id()函数的作用是: B

A. 查看下一次插入记录时的ID号 B. 查看刚刚插入过的自动增长ID值 C. 查看一共做过多少次insert操作 D. 查看一共有多少条记录

30、借助继承,我们可以创建其他类的派生类。那么在PHP中,子类最多可以继承几个父类?(A )

A.1个 B.2个 C.取决于系统资源 D.想要几个有几个

二.简答题(根据题目回答问题,共20分)

1.完成一个正则表达式,验证用户输入是否Email地址,要求后缀域名最多只有三级。(4分)

答案:

$email_pattern = '/\\w{1,}@(\\w{1,}\\.){1,2}\\w{1,}/i';

2.PDO中开启、提交、回滚事务的三个方法是什么?(3分)

beginTransaction() commit() rollback()

3.如何在子类中调用被覆盖掉的父类方法?(3分)

答案:parent::方法名

4.三种访问控制修饰符在本类、子类和类外的访问权限分别是什么?以表格的形式呈现。(10分)

三P控制 public(公有) protected(受保护) private(私有) =========================================================== 在本类中 Y Y Y 在子类中 Y Y N 在类外边 Y N N

三.程序题(根据题目要求写程序,共20分)

1.使用PDO用别名参数绑定值的方式写一个删除Stu表中id为10的学生信息,id通过$_GET方式传入。(5分)

2.写一个具有单态设计模式的类。(5分)

3.声明一个Person类,其中受保护成员属性有:name、sex、age。在构造方法中传入默认值name=’赵四’,sex=’男’,age=29;在类的外部实例化一个对象,外部改变赵四的年龄为18,然后输出age的属性值。在类的内部声明一个say()方法介绍自己的姓名、年龄、性别,在类外部调用该方法。(10分)

本文来源:https://www.bwwdw.com/article/q7ov.html

Top