php 面试题

Posted 画个圈圈爱上你

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 面试题相关的知识,希望对你有一定的参考价值。

一:

<?php
    header("content-type:text/html;charset=utf-8");
    echo "<pre>";
    // 1.写一个函数getMax($a, $b, $c),要求传入三个数字,在该函数中用最少的代码来返回最大值;
    function getMax($a,$b,$c)
        return max($a,$b,$c);
    
    // echo getMax(9,5,3);






    // 2.写一个函数cutString($str, $len),要求传入字符串和要截取多少个字
    // (一个汉字算一个字,两个英文字符或者数字算一个字),默认从字符串第一个字符开始截取;
    function cutString($str,$len)
        $reg = "/^[A-za-z0-9]+$/";
        if(preg_match($reg,$str))
            // return 1;
            return substr($str,$len*2);
        else
            // return 2;
            return substr($str,$len);
        
    
    // echo cutString('12313asddasd',3);




    // 3.自己写一个函数sortArray($arr),实现数组从小到大排序,不允许使用sort函数;
    function sortArray($arr)
        for($i=1;$i<count($arr);$i++)
            for($j=0;$j<count($arr)-$i;$j++)
                if($arr[$j]>$arr[$j+1])
                    $arr1 = $arr[$j];
                    $arr[$j] = $arr[$j+1];
                    $arr[$j+1] = $arr1;
               
           
       
        return $arr;
    

    // print_r(sortArray(array(4,5,3)));






    // 4.写一个函数createArray()创建一个长度为10的数组,数组中的元素满足斐波拉契数列的规律.
    // (斐波那契数列,又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……特别指出:
    // 第0项是0,第1项是第一个1。)
    function createArray($length)
        $arr = array(1,1);
        for($i=2;$i<$length;$i++)
            $arr[$i] = $arr[$i-1]+$arr[$i-2];
        
        return $arr;
    

    print_r(createArray(10));





?>


二“:

     // 表内容:
     //        2005-05-09 胜
     //        2005-05-09 胜
     //        2005-05-09 负
     //        2005-05-09 负
     //        2005-05-10 胜
     //        2005-05-10 负
     //        2005-05-10 负  
     //    如果要生成下列结果, 该如何写sql语句?  
     //                   胜 负
     //        2005-05-09  2 2
     //        2005-05-10  1 2
    $sql1 = "select time,sum( case 1 when con='胜' then 1 else 0 end ) as sheng,
                         sum( case 1 when con='负' then 1 else 0 end ) as fu
                         from shengli GROUP BY time";
    


     // 表中有A B C三列,用SQL语句实现:
     //    当A列大于B列时选择A列否则选择B列
     //    当B列大于C列时选择B列否则选择C列
    $sql2 = "select if(a>b,a,b) as 'a>b',if(b>c,b,c) as 'b>c' from abc";
    


      // 有一张表,里面有3个字段:语文,数学,英语。其中有3条记录分别表示语文70分,数学80分,英语58分,请用一条sql语句查询出这三条记 录并按以下条件显示出来(并写出您的思路):  大于或等于80表示优秀,大于或等于60表示及格,小于60分表示不及格。
      //   显示格式:           
      //       语文                  数学                英语          
      //       及格              优秀                不及格
    $sql3 = "select if(语文>=80,'优秀',if(语文>=60,'及格','不及格')) as 语文,
                     if(数学>=80,'优秀',if(数学>=60,'及格','不及格')) as 数学,
                     if(英语>=80,'优秀',if(英语>=60,'及格','不及格')) as 英语
                     from sql3";



     // 用一条SQL 语句 查询出每门课都大于80 分的学生姓名
     //    name   kecheng   fenshu
     //    张三     语文       81
     //    张三     数学       75
     //    李四     语文       76
     //    李四     数学       90
     //    王五     语文       81
     //    王五     数学       100
     //    王五     英语       90
    $sql4 = "select DISTINCT name from sql4 where name not in(select name from sql4 where fenshu<=80)";


    // 课程编号2的成绩比课程编号1的成绩低的所有同学的名字和学号
    $sql5 = "select * from Student where `S#` in(
                                        select `S#` from SC where `C#` = 2 and Score <
                                        (select min(Score) from Sc where `C#` = 1 ))";
    // echo $sql1;die;

    // 查询没有学全所有课程的同学的学号,姓名
    $sql6 = "select * from Student where `S#` not in(select `S#` from sc)";

以上是关于php 面试题的主要内容,如果未能解决你的问题,请参考以下文章

关于面试总结6-SQL经典面试题

sql 语句编写 查询参加全部科目考试的学生及其成绩 201601 张三 语文 82

Sql 常用面试题

转:sql面试题

excel问题:有一张表 姓名 学号 科目 成绩 想变成 姓名 学号 语文 英语 数学 张三 001

挑战SQL经典题(一)