#include <stdio.h>
void main()
{
int i,a[10]={0,1,2,3,4,5,6,7,8,9};
for(i=1;i<9;i++)
a[i]=a[i-1]+a[i+1];
printf("%d%d",a[5],a[7]);
}
A.1014 B.2035 C.812 D.2744
这题的重点是在循环中理解数组的变化,即数组和循环的组合使用,这类问题很常见。
先看循环,起始i=1,条件i<9,即i的变化为1到8,所以数组a也是从a[1]到a[8]的变化,数组的下标是从0开始的,即a[0]=0、a[1]=1...a[9]=9,没有a[10]。
接着看循环体语句:a[i]=a[i-1]+a[i+1],这条语句就像一个公式,代入一个数字,例如i=1,那么有:a[1]=a[0]+a[2],即:
当前元素a[i]的值=上一个元素a[i-1]的值+下一个元素a[i+1]的值。
已知i是1到8,根据a[i]=a[i-1]+a[i+1],
数组原来的值:a[10]={0,1,2,3,4,5,6,7,8,9}
当i=1时,那么有:
a[1]=a[0]+a[2],即a[1]=0+2=2
此时a[10]={0,2,2,3,4,5,6,7,8,9}
原来a[10]={0,1,2,3,4,5,6,7,8,9}
当i=2时,有:
a[2]=a[1]+a[3],即a[2]=2+3=5
此时a[10]={0,2,5,3,4,5,6,7,8,9}
原来a[10]={0,1,2,3,4,5,6,7,8,9}
当i=3时,有:
a[3]=a[2]+a[4],即a[3]=5+4=9
此时a[10]={0,2,5,9,4,5,6,7,8,9}
原来a[10]={0,1,2,3,4,5,6,7,8,9}
当i=4时,有:
a[4]=a[3]+a[5],即a[4]=9+5=14
此时a[10]={0,2,5,9,14,5,6,7,8,9}
原来a[10]={0,1,2,3, 4,5,6,7,8,9}
当i=5时,有:
a[5]=a[4]+a[6],即a[5]=14+6=20
此时a[10]={0,2,5,9,14,20,6,7,8,9}
原来a[10]={0,1,2,3, 4, 5, 6,7,8,9}
当i=6时,有:
a[6]=a[5]+a[7],即a[6]=20+7=27
此时a[10]={0,2,5,9,14,20,27,7,8,9}
原来a[10]={0,1,2,3, 4, 5, 6, 7,8,9}
当i=7时,有:
a[7]=a[6]+a[8],即a[7]=27+8=35
此时a[10]={0,2,5,9,14,20,27,35,8,9}
原来a[10]={0,1,2,3, 4, 5, 6, 7, 8,9}
当i=8时,有:
a[8]=a[7]+a[9],即a[8]=35+9=44
此时a[10]={0,2,5,9,14,20,27,35,44,9}
原来a[10]={0,1,2,3, 4, 5, 6, 7, 8, 9}
循环结束,根据输出语句printf("%d%d",a[5],a[7]),那么a[5]=20,a[7]=35,即输出结果为“2035”,答案选B。