黑马程序员技术交流社区

标题: 求高手解释一下,这两道道选什么?以及原因。谢谢 [打印本页]

作者: linguoqun    时间: 2016-8-3 23:54
标题: 求高手解释一下,这两道道选什么?以及原因。谢谢
下列程序运行结果正确的是(
int a[] = {1, 2, 3, 4, 5};
int *p = (int *)(&a + 1);
printf("%d, %d\n", *(a+1),*(p-1));
A. 2,1      B. 2,1      C. 1,5    D. 2,5
求高手解释一下,这道选什么?

第二题:多选题
打印几次,每次打印的结果是(  )
int main()
{
   int i = 0;
   while(i<10)
    {
       printf("%d\n",i);
       i++;
       if(i<1)
       {
           continue;
       }
       if(i==5)
       break;
       i++;
    }

}
A:3
B:5
C:0,2,4
D:0,1,2,3,4,


作者: 悄然林静    时间: 2016-8-4 00:22
D(&a是数组a的地址,也是中第一个元素的地址,+1就是第二个元素的地址,所以第一个值是2);AC(题中有两个i++,还要注意if(i==5)成立时执行的是break语句结束循环)
作者: linguoqun    时间: 2016-8-4 00:24
悄然林静 发表于 2016-8-4 00:22
D(&a是数组a的地址,也是中第一个元素的地址,+1就是第二个元素的地址,所以第一个值是2);AC(题中有两 ...

第一题有三个选项第一个值都是2哦,为什么选d不选a、b




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2