问题
单项选择题
有以下程序:
#include <iostream>
using namespace std;
int main()
int y=18,i=0,j,a[8];
do
a[i]=y%2;
i++;
y=y/2;
while(y>=1);
for(j=i-1;i>=0;j--)
cout<<a[j];
cout<
该程序执行后的输出结果是( )。
A.1000
B.10010
C.00110
D.10100
答案
参考答案:B
解析: 本题考核一维数组元素的引用和一维数组的输出。程序中的do-while循环语句的执行过程如下:
第1次循环时,i=0、y=18,把“y%2”的值0存入a[0],执行i++后,i的值变为1,再执行y=y/2;,使y的值变为9。
同理,第2次循环后,a[1]的值为1,第3次循环后,a[2]的值变为0,第4次循环后,a[3]的值变为0,第5次循环后,a[4]的值为1,然后退出do-while循环体。
for循环是输出从a[4]到a[0]的值,结果为:10010。