以下程序运行后x的值为()
int a[9]={1,2,3,4,5,6,7,8,9};
int *p,*q;
int i,x;
p=&a[0];
q=&a[8];
for (i=0;i<3;i++)
if(*(p+i)==*(q-i))
x=*(p+i)*2;
A. 2 B. 4 C. 6 D.不确定
x未赋初值 且if找不到真,就跳出了循环,所以x值是随机值(不确定)
这段代码定义了一个包含9个整数的数组a,然后定义了两个指针p和q,分别指向数组a的第一个元素和最后一个元素。接着使用循环来比较数组中对应位置的元素,如果发现相同的元素,则将该元素的值乘以2赋给变量x。在这段代码中,当i等于0时,比较a[0]和a[8];当i等于1时,比较a[1]和a[7];当i等于2时,比较a[2]和a[6]。如果找到相同的元素,则将该元素的两倍赋给x。
什么杀狗答案
admin 回复 ZzwZzw: 可能有同学无法理解为什么答案选D,加上了详细解析,右上角点击题目解析即可查看
Masud 回复 ZzwZzw: 自己看着代码手算一遍啊,题目答案没问题,骂题目属实nt
zmh 回复 admin: 不运行,输出不是默认是0吗?我刚才运行也是0
19568276867 回复 zmh: x应该是随机值
LEK 回复 ZzwZzw: if不会为真因为找不到两个相同的数就直接跳出循环了
D
因为if语句不会为真,即...
用户登录可进行刷题及查看答案
因为if语句不会为真,即不会执行语句x=*(p+i)*2;
所以x的值不会改变,由于x未初始化赋值,所以x的值不确定。
登录后提交答案