2:我覺得第二題比較有意思,如果不緩存,用遞歸100就已經(jīng)夠大了
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比鲅魚圈網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式鲅魚圈網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋鲅魚圈地區(qū)。費用合理售后完善,十載實體公司更值得信賴。
?php
$cache_ary = array(0=1 , 1=1);
$num = 1200;
function fib_cache($i){
global $cache_ary;
if($i == 1 || $i == 0 ){
return $cache_ary[$i];
}else if(isset($cache_ary[$i])){
return $cache_ary[$i];
}else{
$cache_ary[$i] = fib_cache($i - 1) + fib_cache($i - 2);
return $cache_ary[$i];
}
}
function fib_2($i){
if($i == 0 || $i == 1){
return 1;
}else{
return fib_2($i - 1) + fib_2($i - 2);
}
}
?
題目一:
?php
echo -10%3;
?
答案:-1。
考查:優(yōu)先級。因為-的優(yōu)先級比%求余的優(yōu)先級低,也就是-(10%3)。
題目二:
print (int)pow(2,32);
答案:0
題目三:
//file1.php
?php
$a = '123';
?
//file2.php
?php
echo include('file1.php');
?
答案:1.
考查:返回值。因include()也是一個函數(shù),有返回值。在成功時返回1,失敗時返回錯誤信息。如果被包含的文件有return,則inculde()成功時返回該文件的`返回值。
題目四:
?php
$count = 5;
function get_count() {
static $count = 0;
return $count++;
}
++$count;
get_count();
echo get_count();
?
答案:1.
考查:static和++。因static $count,所以只在第一次調(diào)用get_count的時候?qū)?count賦值為0,第二次再進(jìn)來這個函數(shù),則不會第二次賦值。其次就是return $count++和return ++$count了,前者先返回,后者先++再返回。
題目五:
?php
$arr= array(0 =1,'aa' =2,3,4);
foreach($arr as $key = $val){
print($key == 'aa' ? 5 : $val);
}
?
答案:5534.
考查:類型轉(zhuǎn)換。因遍歷數(shù)組第一次的時候,$key和aa的比較實際就是0和aa的比較,一個是int一個是string,這個時候會轉(zhuǎn)換類型,將字符串轉(zhuǎn)換為數(shù)字再與數(shù)字比較。所以0=='aa'就是0==0,所以為true,也就是輸出5。雖然PHP是若類型語言,但是人家也有類型的好嗎。
題目六:
?php
echo count (false);
$a = count ("567") + count(null)
+ count(false);
echo $a;
?
答案:2.
考查:count的用法。
因count()的官方解釋“If the parameter
is not an array or not an object
with implemented Countable
interface, 1 will be returned.”.意思是說,如果不是數(shù)組或者對象的其他類型,返回1.那么這個值應(yīng)該就是1+0+1了(boolen人家也是一個類型,雖然是討厭的false)。NULL的意思是沒有值,難道在計數(shù)函數(shù)中還能有1?
題目七:
?php
$arr = array(1,2,3);
foreach($arr as $val) {
$val += $val % 2 ? $val++ : $val--;
}
$val = 0;
print(join('',$arr));
?
答案:330。
考查:++和。
因foreach結(jié)束后的數(shù)組應(yīng)該是array(3,3,7);最后給第三個元素賦值為0,所以就是330了。其中注意的是,如果有則是對原變量操作,如果沒有,則是先生成一個新變量,然后給這個變量復(fù)制,最后操作的是這個新變量。
題目八:
?php
echo intval((0.1+0.7)*10);
?
答案:7。
考查:浮點數(shù)的概念。
因0.1+0.7=0.8 0.8*10=8 所以轉(zhuǎn)換成整數(shù)后還是8?錯!因為0.1+0.7=0.8是浮點數(shù),0.8*10在數(shù)學(xué)計算中是正整數(shù)8,可是在計算機中它仍然是浮點數(shù)8,什么叫浮點數(shù)8?每一個看起來像整數(shù)的浮點數(shù),其實都不是整數(shù),比如這個8,它其實只是
7.9999循環(huán),無限接近于8,轉(zhuǎn)換成整數(shù)會舍棄小數(shù)部分,就是7嘍。
題目九:
?php
ini_set('display_errors',0);
$arr = array(1=1,3=3);
$i = 2;
$a = 'test' . isset($arr[$i]) ?
$arr[$i] : $i;
請問$a的值是什么?
A、test B、NULL C、2 D、test2
?
答案:B。
考查:優(yōu)先級 因“."的優(yōu)先級高于三元運算符"?:"。所以程序其實報錯了。會說$arr的索引2不存在。
題目十:
?php
$a = 3;
$b = 5;
if($a = 5 || $b = 7) {
$a++;
$b++;
}
echo $a . " " . $b;
?
A、6 8 B、6 6 C、2 6 D、1 6 E、4 6
答案:D。
考查:優(yōu)先級,基礎(chǔ)概念,++。因“="的優(yōu)先級低于“||”,所以先邏輯判斷再賦值。也就是($a = (5 || $b = 7))。所以,最后其實給a賦值了,$a等于1.
第一題:
function($n) {
$rs = 0;
for($i = 1; $i = $n; $i++) {
$tmp = ($i % 2 === 0) ? -1 / $i : 1 / $i;
$rs = $rs + $tmp;
}
return $rs;
}
第二題:
function($n) {
$m = ($n % 2 === 1) ? $n - 1 : $n;
$m = $m / 2;
$rs = 1;
for($i = 0; $i $m; $i++) {
$rs = $rs * 2;
}
return $rs;
}
第四題:
B和X C和Y A和Z
第五題:
function($n = 10) {
$rs = 1;
for($i = 1; $i $n; $i++) {
$rs = ($rs + 1) * 2 ;
}
return $rs;
}
第六題:
function($str) {
return end(explode('.', $str));
}
第七題
function($str) {
return str_replace(' ', '', ucwords(str_replace('_', ' ', $str)));
}