liuxiaoyun111 发表于 2017-12-29 18:38:43

PHP 基础知识测试题 答案分析

  一:选择题(单项选择,每题2分):
  1. LAMP具体结构不包含下面哪种(A      )
  A:Windows系统            如果是这个就是WMP
  B:Apache服务器
  C:MySQL数据库
  D:PHP语言
  2. 以下哪个SQL语句是正确的(D    )
  A:insert into users 少了一个values (‘p001’,’张三’,’男’);
  B:create table (Code int primary key);   漏了一个表名
  C:update users 少了一个set Code=’p002’ where Code=’p001’;
  D:select Code as ‘代号’ from users;
  3. 以下哪种类型是B/S架构的正确描述(C)   B/S 浏览器
  A:需要客户安装客户端    在浏览器上打开,并不需要安装客户端
  B:不需要安装就可以使用      浏览器的一些程序也需要安装后在使用的   例如cms
  C:依托浏览器的网络系统
  D:不需要服务器的系统      每种程序都需要服务器
  4 .php中哪个语句可以输出变量类型(C)
  A:echo    输出字符串
  B:print    输出字符串
  C:var_dump()    输出类型变量的值
  D:print_r()   输出数组的 并没输出类型
  5 .php定义变量正确的是(B   )
  A:var a = 5;    JS定义方式
  B: $a = 10;
  C:int b = 6;    强类型语言定义方式
  D:var $a = 12;   前面不需要加var
  6 .php中单引号和双引号包含字符串的区别正确的是(D)
  A:单引号速度快,双引号速度慢
  B:双引号速度快,单引号速度慢       A和B定义方式没有速度差别
  C:单引号里面可以解析转义字符      单引号可以原样输出
  D:双引号里面可以解析变量
  7 .若x,y为整型数据,以下语句执行的$y结果为(   B)
  $x = 1;                        x定义等于1
  ++$x;                        x等于2了
  $y =$x++;                  先把x值附给y,在把x自加1所有等于2!!如果是++$x就是3
  A:1    B:2    C:3    D:0
  8 .php中关于字符串处理函数以下说法正确的是(   C   )
  A:implode( )方法可以将字符串拆解为数组         应该用explode   implode是合并 正好相反
  B:str_replace()可以替换指定位置的字符串          查找替换把满足的全部替换 可以用substr_replace 这种是用来替换指定位置
  C:substr( )可以截取字符串
  D:strlen( )不能取到字符串的长度               可以获取长度
  9 .以下代码运行结果为:(A       )
  <?php
  $first = "This course is very easy !";   定义了一个变量first=
  $second = explode(" ",$first);            由定义了一个变量second=拆分字符串   用空格拆分的
  $first = implode(",", $second);            将数字组合并了字符串
  echo $first;
  ?>
  AThis,course,is,very,easy,!            把原来的空格变成了 ,
  BThis course is very easy !
  CThis course is very easy !,
  D提示错误
  10 .以下程序横线处应该使用的函数为:( B )         作用:把@符号前面的字符全部截掉
  <?php
  $email = ‘langwan@thizlinux.com.cn’;
  $str = ____($email,‘@’);
  $info = ____(‘.’,$str);
  ____($info);
  ?>
  输出结果为:
  Array ( => @thizlinux =>com=>cn)    输出结果是一个数组
  A:strchr, split, var_dump      如果是这个的话就应该有类型,长度
  B:strstr, explode, print_r         strstr 也可以截取字符串,不常用
  C:strstr,explode, echo
  D:strchr, split, var,_dump
  11、下列说法正确的是:(B)    如果不放在php里面那么ACD都是正确的
  A.数组的下标必须为数字,且从“0”开始         放强类型语言是对的
  B.数组的下标可以是字符串
  C.数组中的元素类型必顺一致       可以存储任意类型
  D.数组的下标必须是连续的         可以不连续
  12、下面哪项描述是错误的?(A,C)
  A.父类的构造函数与析构函数不会自动被调用               都是自动调用的
  B.成员变量需要用public protected private修饰,在定义变量时不再需要var关键字
  C.父类中定义的静态成员,不可以在子类中直接调用      可以用
  D.包含抽象方法的类必须为抽象类,抽象类不能被实例化
  13、关于exit( )与die( )的说法正确的是( CD)
  A、当exit( )函数执行会停止执行下面的脚本,而die()无法做到                exit   die都是终止程序
  B、当die()函数执行会停止执行下面的脚本,而exit( )无法做到
  C、die()函数等价于exit()函数
  D、die()函数于exit()函数没有直接关系
  例:
  $a =10;
  exit ();或者die();
  echo $a;
  变量a没有输出,说明程序走到exit退出了或者走到 die也退出了
  它俩的区别:
  $a =10;
  echo"该程序出错了";
  exit;
  echo $a;
  它会输出一个错误信息并且把程序终止掉
  如果是
  $a =10;
  die("该程序出错了");   可以给它参数,当执行到这的时候给出一个错误并且终止程序
  echo $a;
  14、下面程序运行结果( B )
  <?php
  $nextWeek = time() + (7 * 24 * 60 * 60);               先输出当前日期在输出下周日期,   格式化了一下
  echo 'Now: '. date('Y-m-d') ."\n";
  echo 'Next Week: '. date('Y-m-d', $nextWeek) ."\n";
  ?>
  A、得到今天的日期(月-日)
  B、得到今天的日期(年-月-日)与下周的日期(年-月-日)
  C、得到现在的时间(小时-分-秒)
  D、得到现在到下周的时间间隔
  15、以下代码执行结果为:(D)
  <?php
  functionprint_A(){
  $A = "phpchina";
  echo "A值为:".$A."<p>";
  //return($A);         如果注释去掉的话就选择C
  }
  $B = print_A();   运行时会出错,因为没有返回值,是空的
  echo "B值为:".$B."<P>";
  ?>
  AA值为:
  B值为:
  BA值为:
  B值为: phpchina
  CA值为: phpchina
  B值为: phpchina
  DA值为: phpchina
  B值为:
  16、以下代码执行结果为:(C )
  <?php
  $A="Hello";
  functionprint_A()
  {
  $A = "phpmysql !!";
  global $A;                                             global    全局变量         函数是独立的模块                  $A外界定义的
  echo$A;
  }
  echo$A;
  print_A();
  ?>
  AHello
  Bphpmysql !!
  CHello Hello
  DHellophpmysql !!
  17、以下代码输出的结果是(B    )    可变变量
  $a = "aa";
  $aa = "bb";
  echo $$a;
  Aaa
  Bbb
  C$aa
  D$$a
  18、以下代码输出的结果是(A    )
  <?php
  $a = 10;
  $b =&$a;   取a
  echo $b;      b也指向10
  $b = 15;
  echo $a;
  ?>
  A1015
  B1010
  C1515
  D1510
  19、php输出拼接字符串正确的是(   C   )
  Aecho $a+”hello”         php里不是用+
  Becho $a+$b
  Cecho $a.”hello”
  Decho ‘{$a}hello’          错在用的是单引号,双引号就对了
  20、在用浏览器查看网页时出现404错误可能的原因是( B )         404代表网页不存在没有找到文件
  A页面源代码错误
  B文件不存在
  C与数据库连接错误
  D权限不足
  21、以下代码输出的结果为(D)
  <?php
  $attr=array("0"=>"aa","1"=>"bb","2"=>"cc");         加了索引是关联数组
  echo$attr;
  ?>
  A会报错!
  Baa
  C输出为空
  Dbb         弱类型语言,可以自动转换
  22、面向对象的三大特性中哪个不属于封装的做法(B       )
  A将成员变为私有的
  B将成员变为公有的
  C封装方法来操作成员
  D使用__get()和__set()方法来操作成员
  23、php的源码是(A   )   开源语言
  A.开放的    B.封闭的    C.需购买的   D.完全不可见的
  24、php如何输出反斜杠(D   )   转义字符
  A.\n代表换行B.\r代表换行    C.\t   代表制表符D.\\
  25、下列哪项不属于OOP的三大特性(B    )
  A:封装      B:重载      C:继承      D:多态
  26、以下关于字符串的说法正确的是(C   )
  A:echo “hello\nworld”;在页面可以实现换行             在源代码里可以,在页面里不可以
  B:echo ‘helloworld{$a}’;可以解析变量a的值         单引号不能解析
  C:$str=<<<AA            定义字符串的第三种方法
  Helloworld
  AA;标识
  该方式可以定义字符串
  D:print $a,”hello”;可以输出数据不报错             print只能输出一个字符串,不能连续输出
  27、下列说法不正确的是(D   )
  A:list()函数可以写在等号左侧            唯一可以写在等号左边的
  B:each()函数可以返回数组里面的下一个元素   如果each第一次调的时候返回的第一个,把第一个当做下一个没有问题,如果把第一个当做第一个就有问题
  C:foreach()遍历数组的时候可以同时遍历出key和value
  D:for循环能够遍历关联数组                           不能遍历关联数组
  28、关于面向对象的说法不正确的是(C   )
  A:OOP是面向对象的简称
  B:静态成员是属于类的
  C:普通成员是属于类的                属于对象的
  D:类里面的$this关键字代表该对象本身
  29、下列定义函数的方式是正确的(   B   )
  A:public void Show(){}               不是php里面的
  B:function Show($a=5,$b){}       给了个默认值
  C:function Show(a,b){}               变量前面加$符号
  D:functionShow(int $a){}            不需要加int
30、下面哪个选项没有将 john 添加到 users 数组中? ( B)
  A.$users[] = "john";
  B.array_add($users, "john");            php没有这种方法添加
  C.array_push($users, "john");
  D.$users [“aa”]= "john" ;
  31、php中以下能输出1到10之间的随机数的是(C    )
  A:echo rand();
  B:echorand()*10;
  C:echo rand(1,10);
  D:echorand(10);
  32、php中以下能输出当前时间格式像:2016-5-6 13:10:56 的是(A   )
  A:echodate(“Y-m-d H:i:s”);      date方法用来格式化输出时间括号里面写的是格式化字符串
  B:echo time();   直接输出时间戳了
  C:echodate();      方法会报错
  D:echotime(“Y-m-d H:i:s”);   time里面不能写双引号
  33、以下哪项不属于函数的四要素(   D   ) 返回类型,函数名,参数列表,函数体
  A:返回类型
  B:函数名
  C:参数列表
  D:访问修饰符
  34、以下说法正确的是(C   )
  A:@符号可以屏蔽所有错误
  B:exit;后面的语句可以继续执行
  C:10/4得出的结果是2.5    整数除以整数可以得出小数
  D:$$a;这种写法是错误的
  35、以下关于构造函数说法不正确的是(    B   )
  A:研究一个类,首先我们要研究的函数是构造函数
  B:构造函数写法和普通函数没有区别                           写法特殊有区别
  C:构造函数执行比较特殊
  D:如果父类中存在构造函数并且需要参数,子类在造对象的时候也应该传入相应的参数。
  36、以下关于多态的说法正确的是(   D   )
  A:多态在每个对象调用方法时都会发生
  B:多态是由于子类里面定义了不同的函数而产生的
  C:多态的产生不需要条件
  D:当父类引用指向子类实例的时候,由于子类对父类的方法进行了重写,在父类引用调用相应的函数的时候表现出的不同称为多态。
  37、以下代码在页面上会输出多少行数据(A   )
  $attr= array(1,2,3,4);       数组里面总共4个元素
  while(list($key,$value)= each($attr))          each方法会把指针往下调,如果最后了就停止了while循环是进不来的,所以只能输出4行
  {
  echo$key."=>".$value."<br>";
  }
  while(list($key,$value)= each($attr))
  {
  echo$key."=>".$value."<br>";
  }
  A:4B:6   C:8   D:12
  38、以下说法正确的是(C   )
  A:$attr代表数组,那么数组长度可以通过$attr.length取到
  B:unset()方法不能删除数组里面的某个元素          可以删除
  C:php的数组里面可以存储任意类型的数据
  D:php里面只有索引数组    还有关联数组
  39、以下说法不正确的是(B   )
  A:模糊查询使用的关键字是like
  B:排序查询asc是降序,desc是升序               反了
  C:分页查询使用的关键字是limit
  D:mysql如果只安装服务不安装界面也可以正常使用
  40、以下代码输出的结果为(D    )   三目运算符
  $a = "cc";
  $cc ="dd";
  echo$a=="cc"?"{$$a}":$a;
  A:cc
  B:$a
  C:$$a
  D:dd
  二、判断题(共10题,每题2分)
  
  1.php中布尔类型数据只有两个值:真和假。(对)逻辑的真和假
  2.php中连接两个字符串的符号是“+ ”。(错   )用的是   点.
  3.php可以使用“scanf”来打印输出结果。(   错)   echo   print
  4.每个语句结尾都要加“;”来表示语句结束。 ( 对    )
  5.php变量使用之前需要定义变量类型。(错   )    不需要会根据后边的值自动确定类型
  6.在php中“==”的意思是“等于”。(    对)一个等号代表赋值,双等号代表等于
  7.while和do-while语句都是先判断条件再执行循环体。(错   )while是先判断条件 do-while是先执行循环体再判断
  8.“break ”代表的意思是跳出循环。(对   )continue是跳出当前这一次循环
9.若定义数组时省略关键字key,则第三个数组元素的关键字为3。( 错)   应该是2   定义数组时省略关键字key,说明定义了一个索引数组,索引数组里第三元素是2
  10.mysql数据库中查询数据用select语句。( 对      )
页: [1]
查看完整版本: PHP 基础知识测试题 答案分析