面试题---1

题目如下:(此题为php初级面试题之一)

$a=1;

$b=++$a;

$c=$b++;

$d = $c==$a?($b==$c?$a:$b):$c;

求:$a,$b,$c,$d的值?

1.首先我们应该弄明白$a++与++$a的区别;

2.然后要明白--?-:-  这串字符的意义;

解读:

    1.$a++的意思为先执行,后加1,举例:$a=1,则经过$a++操作后,$a=2,但是此时$a++=1,

       ++$a则是先相加,举例:$a=1,则经过++$a操作后,$a=2,  ++$a也为2;

验证:

int a=1;
int b=1;
int c=a++;
int d=++b;
printf("a=%d\n",a);
printf("b=%d\n",b);
printf("a++= %d\n",c);
printf("++b= %d\n",d);

    2.明白--?-:-的含义:?前面的是判断条件,后面的是判断完后要执行的语句,条件为true时,执行":"前面的语句,反之,执行后面的语句;举例:$a=1,$b=2,$c=$a>$b($a):$b,此时结果为2,此式的效果如:

if($a>$b)
{
     $c=$a;
}
else
{
     $c=$b;
}

了解完上述两点之后,可以毫不费力的得出答案:

$a=2;  $b=3;  $c=2;   $d=3;

解析:

    $d = $c==$a?($b==$c?$a:$b):$c;的计算过程:$c==$a  =true, 所以执行($b==$c?$a:$b), $b==$c =flase, 所以执行$b;


    经过多次面试,虽然说很多都被拒,但是感觉收获了很多,收获的最大一点就是:越正规的公司越注重基础,感觉在学校学的内容都很重要,尤其是c与数据结构,无论将来从事哪方面的语言编程,面试官问到的问题有一半多都是与之相关的;

个人观点,欢迎个位博友指出不足之处;

 

猜你喜欢

转载自blog.csdn.net/qq_40179546/article/details/80629649