面試題---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與數據結構,無論將來從事哪方面的語言編程,面試官問到的問題有一半多都是與之相關的;

個人觀點,歡迎個位博友指出不足之處;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章