吴江人力資源网:大哥们帮帮忙~关于C++

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/29 04:20:47
#include <iostream.h>
int a[]={9,7,5,3,1};
void main()
{ int *p=&a[2],d(6),b(0);
for(int i=-2;i<=2;i++)
b+=(*(p+i)<d)?*(p+i):d;
}
a) 第2次执行语句b+=(*(p+i)<d)?*(p+i):d;后b=?
b) 程序结束前d=?

p初始指向a+2,即*p=5,d=6,b=0
第一次
i=-2
*(p+i)=*a=9,9>6,所以b+=d,即b=6;
第二次
i=-1
*(p+i)=*(a+1)=7,7>6,所以b+=d,即b=12
所以
a)答案为b=12
b)程序中没有语句改变d的值,d为初始时的6

a/ 12
b/ 6