选择题
有以下程序
#include <stdio.h>
main()
{ int i,s=0,t[]={1,2,3,4,5,6,7,8,9};
for(i=0;i<9;i+=2) s+=*(t+i);
printf('%d\n',s);
}
程序执行后的输出结果是______。
A、
25
B、
20
C、
45
D、
36
【正确答案】
A
【答案解析】
本题考查的是数组名的概念。当数组名出现在表达式中时,它类似于一个指针常量,该指针始终指向该数组第1个元素的位置,它的指向不能被改变。但它又与普通的指针常量有所区别:对数组名使用sizeof运算符时,得到整个数组所占内存的大小;而对于指针常量,返回的始终是2(一个指针占2个字节的内存)。所以,要获得数组t的第i个元素的内容,既可以使用常规的t[i]表达式,也可以将数组名t看作一个指针常量,使用表达式*(t+i)来获取数组t的第i个元素的内容。在本题中,for循环会循环5次,循环变量i从0开始每次增加2,所以s=t[0]+t[2]+t[4]+t[6]+t[8]=25。
提交答案
关闭