作者:琉忆 阅读 145 次

考虑如下代码片段:

考虑如下代码片段:

<?php
    define("STOP_AT", 1024);
    $result = array();
    /* 在此处填入代码 */
    {
        $result[] = $idx;
    }
    print_r($result);
?>

 

标记处填入什么代码才能产生如下数组输出?

Array
{
     [0] => 1
     [1] => 2
     [2] => 4
     [3] => 8
     [4] => 16
     [5] => 32
     [6] => 64
     [7] => 128
     [8] => 256
     [9] => 512
}

 

Aforeach($result as $key => $val)   Bwhile($idx *= 2)

Cfor($idx = 1; $idx < STOP_AT; $idx *= 2) Dfor($idx *= 2; STOP_AT >= $idx; $idx = 0)

参考答案:C

分析:由于题目只允许填写一行代码,唯一合适的for循环,因此,答案只能是选项C或者选项D。要选出能生成正确结果的for循环,必须了解for循环的构成要素。在PHP中,for 循环声明的方式如下:

for(<初始化>;<继续执行,直到>;<重复执行>)

<初始化>在循环开始时执行一次,然后 for 循环开始执行大括号内的代码,直到<继续执行,直到>的值为 False。每完成一次循环,执行一次<重复执行>。通过输出结果发现,数组中的值为2n次方,每一个值是前一个值的2倍。因此,正确的代码块应该是for ($idx = 1; $idx < STOP_AT; $idx *= 2),选项C正确。


关注我们,获取更多面试资料
公众号:琉忆编程库
小程序:琉忆编程库
微博:琉忆
QQ邮箱:330168885
QQ:330168885
琉忆寄语
你好,是我琉忆。很荣幸你能浏览我的文章,希望我的文章都能帮助到你。我的新书《PHP面试笔试宝典》已经上线,希望可以多多支持。另外想和我交朋友或交流开发技巧、编程学习都随时欢迎。具体联系方式有:公众号留言(琉忆编程库),邮箱:330168885@qq.com。
赞赏一番
琉忆微信收款
琉忆支付宝收款