一维数组
1.
#include <stdio.h>
main()
{
int i, a[10];
for(i=9;i>=0;i--)
a[i]=10-i;
printf(“%d%d%d”,a[2],a[5],a[8]);
}
运行结果为:
852
首先定义整型变量i,整型数组a, a的长度为10,即a中包含10个整型元素(整型变量)
执行for循环语句
初值i=9, 使得循环条件i>=0成立,执行循环体
第1次循环
执行a[i]=10-i 等价于a[9]=10-9=1
计算表达式3,即i--,i为8,使得循环条件i>=0成立,继续执行循环体
第2次循环
执行a[i]=10-i 等价于a[8]=10-8=2
计算表达式3,即i--,i为7,使得循环条件i>=0成立,继续执行循环体
第3次循环
执行a[i]=10-i 等价于a[7]=10-7=3
计算表达式3,即i--,i为6,使得循环条件i>=0成立,继续执行循环体
第4次循环
执行a[i]=10-i 等价于a[6]=10-6=4
计算表达式3,即i--,i为5,使得循环条件i>=0成立,继续执行循环体
第5次循环
执行a[i]=10-i 等价于a[5]=10-5=5
计算表达式3,即i--,i为4,使得循环条件i>=0成立,继续执行循环体
第6次循环
执行a[i]=10-i 等价于a[4]=10-4=6
计算表达式3,即i--,i为3,使得循环条件i>=0成立,继续执行循环体
第7次循环
执行a[i]=10-i 等价于a[3]=10-3=7
计算表达式3,即i--,i为2,使得循环条件i>=0成立,继续执行循环体
第8次循环
执行a[i]=10-i 等价于a[2]=10-2=8
计算表达式3,即i--,i为1,使得循环条件i>=0成立,继续执行循环体
第9次循环
执行a[i]=10-i 等价于a[1]=10-1=9
计算表达式3,即i--,i为0,使得循环条件i>=0成立,继续执行循环体
第10次循环
执行a[i]=10-i 等价于a[0]=10-0=10
计算表达式3,即i--,i为-1,使得循环条件i>=0不成立,跳出循环体
2.
#include <stdio.h>
main()
{
int i,a[6];
for (i=0; i<6; i++)
a[i]=i;
for (i=5; i>=0 ; i--)
printf("%3d",a[i]);
}
运行结果为:
5 4 3 2 1 0
首先定义整型变量i,整型数组a, a的长度为6,即a中包含6个整型元素(整型变量)
执行第一个for循环语句
初值i=0, 使得循环条件i<6成立,执行循环体
第1次循环
执行a[i]= i 等价于a[0]=0
计算表达式3,即i++,i为1,使得循环条件i<6成立,继续执行循环体
第2次循环
执行a[i]= i 等价于a[1]=1
计算表达式3,即i++,i为2,使得循环条件i<6成立,继续执行循环体
第3次循环
执行a[i]= i 等价于a[2]=2
计算表达式3,即i++,i为3,使得循环条件i<6成立,继续执行循环体
第4次循环
执行a[i]= i 等价于a[3]=3
计算表达式3,即i++,i为4,使得循环条件i<6成立,继续执行循环体
第5次循环
执行a[i]= i 等价于a[4]=4
计算表达式3,即i++,i为5,使得循环条件i<6成立,继续执行循环体
第6次循环
执行a[i]= i 等价于a[5]=5
计算表达式3,即i++,i为6,使得循环条件i<6不成立,结束循环
执行第二个for循环语句
初值i=5, 使得循环条件i>=0成立,执行循环体
第1次循环
执行printf("%3d",a[i]); 即输出a[5]的值
计算表达式3,即i--,i为4,使得循环条件i>=0成立,继续执行循环体
第2次循环
执行printf("%3d",a[i]); 即输出a[4]的值
计算表达式3,即i--,i为3,使得循环条件i>=0成立,继续执行循环体
第3次循环
执行printf("%3d",a[i]); 即输出a[3]的值
计算表达式3,即i--,i为2,使得循环条件i>=0成立,继续执行循环体
第4次循环
执行printf("%3d",a[i]); 即输出a[2]的值
计算表达式3,即i--,i为1,使得循环条件i>=0成立,继续执行循环体
第5次循环
执行printf("%3d",a[i]); 即输出a[1]的值
计算表达式3,即i--,i为0,使得循环条件i>=0成立,继续执行循环体
第6次循环
执行printf("%3d",a[i]); 即输出a[0]的值
计算表达式3,即i--,i为6,使得循环条件i>=0不成立,结束循环
3.
#include <stdio.h>
main( )
{
int i,k=5,a[10],p[3];
for(i=0;i<10;i++)
a[i]=i;
for(i=0;i<3;i++)
p[i]=a[i*(i+1)];
for(i=0;i<3;i++)
k+=p[i]*2;
printf("%d\n",k);
}
运行结果为:21
首先定义整型变量i,k,整型数组a, a的长度为10,整型数组p, p的长度为3
k初值为5
第一个for循环语句为数组a进行初始化
执行完第一个for语句后,a[0]=0,a[1]=1,a[2]=2,a[3]=3,a[4]=4,a[5]=5,a[6]=6,a[7]=7,a[8]=8,a[9]=9 (循环过程略)
第二个for循环语句为数组p进行初始化
初值i=0, 使得循环条件i<3成立,执行循环体
第1次循环
执行p[i]=a[i*(i+1)]; 即p[0]=a[0*(0+1)]=a[0]=0
计算表达式3,即i++,i为1,使得循环条件i<3成立,继续执行循环体
第2次循环
执行p[i]=a[i*(i+1)]; 即p[1]=a[1*(1+1)]=a[2]=2
计算表达式3,即i++,i为2,使得循环条件i<3成立,继续执行循环体
第3次循环
执行p[i]=a[i*(i+1)]; 即p[2]=a[2*(2+1)]=a[6]=6
计算表达式3,即i++,i为3,使得循环条件i<3不成立,结束循环
第三个for循环语句
初值i=0, 使得循环条件i<3成立,执行循环体
第1次循环
执行k+=p[i]*2; 即k=5+p[0]*2=5+0=5
计算表达式3,即i++,i为1,使得循环条件i<3成立,继续执行循环体
第2次循环
执行k+=p[i]*2; 即k=5+p[1]*2=5+2*2=9
计算表达式3,即i++,i为2,使得循环条件i<3成立,继续执行循环体
第1次循环
执行k+=p[i]*2; 即k=9+p[2]*2=9+6*2=21
计算表达式3,即i++,i为3,使得循环条件i<3不成立,结束循环