试题与答案

有以下程序: main() int i,S=0,t[]=1,2,3,4,5,6,

题型:单项选择题

题目:

有以下程序:
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.45

B.20

C.25

D.36

答案:

参考答案:C

解析: 本题考查的是数组名的概念。当数组名出现在表达式中时,它类似于一个指针常量,该指针始终指向该数组第1个元素的位置,它的指向不能被改变。但它又与普通的指针常量有所区别:对数组名使用sizeof运算符时。得到整个数组所占内存的大小;而对于指针常量,在TC中返回的始终是2(TC中,一个指针占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。

试题推荐
题型:选择题

实验室里常用“碘锤”的玻璃仪器做碘的升华实验,该仪器为两头密封的玻璃窗,中间带有一根玻璃短柄。用此仪器进行有关实验时,具有装置简单、操作方便、现象明显、可反复使用等优点。用此仪器不能反复进行的实验是

A.NH4Cl受热分解的实验

B.无水CuSO4与胆矾的互变实验

C.白磷和红磷(已经抽出O2)在一定温度下相互转变的实验

D.KMnO4受热分解的实验

查看答案
微信公众账号搜索答案