zoukankan      html  css  js  c++  java
  • 聚聚科技——php开发笔试题及答案

    聚聚科技是一个刚创立的公司,很小很小,人很少,老板感觉是个典型的北京小伙儿,戾气很重,很有个性。笔试题倒是简单:

    1. echo(), print(), print_r()的区别?

    echo是PHP语言结构, print和print_r是函数。语言结构没有返回值,函数可以有返回值(即便没有用)  。

    print()      只能打印出简单类型变量的值(如int,string)  

    print_r() 可以打印出复杂类型变量的值(如数组,对象)  

    echo        输出一个或者多个字符串

    2. 语句include和require的区别是什么?为避免多次包含同一个文件,可用(?)语句代替?

    require 生成一个致命错误(E_COMPILE_ERROR),在错误发生后脚本会停止执行。

    include 生成一个警告(E_WARNING),在错误发生后脚本会继续执行。

    可用require_once()和include_once()替换。

    3. 请说明php中传值与传引用的区别,什么时候传值,什么时候传引用?

    按值传递:  函数范围内对值的任何改变在函数外部都会被忽略;

    按引用传递: 函数范围内对值的任何改变在函数外部也能反映出这些修改。

    优缺点:按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。
    按引用传递则不需要复制值,对于性能提高很有好处。

    4. SQL查询语句如下:select * from table where (ID=10) or (ID=32) or (ID=22) or (ID=76) or (ID=13) or (ID=44),让结果按10,32,22,76,13,44的顺序检索出来,请问如些书写?

    select *
    from table 
    where id in(10,32,22,76,13,44)
    order by instr(',10,32,22,76,13,44,', ','+id+',')

    5. Javascript中如何检测一个变量是一个string类型?请写出函数实现String类型的两种方式。

    String类型有两种生成方式:
    (1)Var str = “hello world”;
    (2)Var str2 = new String(“hello world”);

    1 function IsString(str){
    2            return (typeof str == "string" || str.constructor == String);
    3 }
    4 var str = "";
    5 alert(IsString(1));
    6 alert(IsString(str));
    7 alert(IsString(new String(str)));

    6. document.write和innerHTML的区别?

    document.write是直接写入到页面的内容流,如果在写之前没有调用document.open, 浏览器会自动调用open。每次写完关闭之后重新调用该函数,会导致页面被重写。 innerHTML则是DOM页面元素的一个属性,代表该元素的html内容。你可以精确到某一个具体的元素来进行更改。如果想修改document的内容,则需要修改document.documentElement.innerElement。 innerHTML将内容写入某个DOM节点,不会导致页面全部重绘 innerHTML很多情况下都优于document.write,其原因在于其允许更精确的控制要刷新页面的那一个部分。

    7. 写一个排序算法,可以是冒泡排序或者是快速排序,假设待排序对象是一个一维数组。

     1 <?php
     2 /**
     3  * 排序类
     4  */
     5 class Sort {
     6     /*
     7      * 冒泡排序 小到大
     8      */
     9     public function bubble_sort( $array ) {
    10         $count = count( $array );
    11         if ( $count <= 0 )
    12             return false;
    13         for ( $i = 0; $i < $count; $i++ ) {
    14             for ( $j = 1; $j <= $count - $i - 1; $j++ ) {
    15                 if ( $array[$j] < $array[$j - 1] ) {
    16                     $tmp = $array[$j];
    17                     $array[$j] = $array[$j - 1];
    18                     $array[$j - 1] = $tmp;
    19                 }
    20             }
    21         }
    22         return $array;
    23     }
    24 
    25 
    26     /**
    27      * 快速排序
    28      */
    29     public function quick_sort( $arr ) {
    30         $len = count( $arr );
    31         if ( $len <= 1 )
    32             return $arr;
    33         $key = $arr[0];
    34         $left_arr = $right_arr = array();
    35         for ( $i = 1; $i < $len; $i++ ) {
    36             if ( $arr[$i] <= $key )
    37                 $left_arr[] = $arr[$i];
    38             else
    39                 $right_arr[] = $arr[$i];
    40         }
    41         $left_arr = $this->quick_sort( $left_arr );
    42         $right_arr = $this->quick_sort( $right_arr );
    43         return array_merge( $left_arr, array( $key ), $right_arr );
    44     }
    45 
    46 
    47     /**
    48      *  希尔排序
    49      */
    50     public function shell_sort( $datas ) {
    51         //分组  
    52         for ( $increment = count( $datas ) / 2; $increment > 0; $increment = $increment / 2 ) {
    53             //每个组内排序  
    54             for ( $i = $increment; $i < count( $datas ); $i++ ) {
    55                 $temp = $datas[$i];
    56                 $j = 0;
    57                 for ( $j = $i; $j >= $increment; $j = $j - $increment ) {
    58                     if ( $temp < $datas[$j - $increment] ) {
    59                         $datas[$j] = $datas[$j - $increment];
    60                     } else {
    61                         break;
    62                     }
    63                 }
    64                 $datas[$j] = $temp;
    65             }
    66         }
    67         return $datas;
    68     }
    69 }
    70 ?> 

    以上内容如有错误,请各位指教,谢谢!

  • 相关阅读:
    BZOJ 3506 机械排序臂 splay
    BZOJ 2843 LCT
    BZOJ 3669 魔法森林
    BZOJ 2049 LCT
    BZOJ 3223 文艺平衡树 splay
    BZOJ 1433 假期的宿舍 二分图匹配
    BZOJ 1051 受欢迎的牛 强连通块
    BZOJ 1503 郁闷的出纳员 treap
    BZOJ 1096 ZJOI2007 仓库设计 斜率优化dp
    BZOJ 1396: 识别子串( 后缀数组 + 线段树 )
  • 原文地址:https://www.cnblogs.com/realcare/p/6083984.html
Copyright © 2011-2022 走看看