c语言请有详细过程解答

以下程序的输出结果是
#include <stdio.h> main()
{ int arr[10],i,k=0;
for(i =0;i<10;i++) arr[i] = i; for(i =0;i<4;i++) k+=arr[i]+i; printf ("%d\n",k );

img

12
详细分析

#include <stdio.h> 
int main()
{ 
    int arr[10], i,k=0;
    for(i = 0;i<10;i++) 
        arr[i] = i; //此时arr 0-9存放0-9
     for(i =0;i<4;i++) 
         k+=arr[i]+i; //k = 0 + 2 + 4 + 6
     printf ("%d\n",k ); //所以k=12
}

上机验证

img

第一个for()为数组赋值,arr[0] = 0, arr[1] = 1, arr[2] = 2, ......arr[9] = 9.
第二个for()将数组 arr[0] - arr[3] 元素值 + i 累加到 k , i = 0:a[0] + 0 = 0; i = 1: a[1] + 1 = 1 + 1 = 2; i = 2: arr[2] + 2 = 2 + 2 = 4; i = 3:arr[3] + 3 = 6,循环结束。 k 的值相当于: k = 0 + 0 + 2 + 4 + 6 = 12

#include <stdio.h> 

int main()
{ 
    int arr[10],i,k=0; // 首先声明一个长度为 10 的 int 数组 arr,并且把 k 初始化为 0;
    for(i =0;i<10;i++) arr[i] = i; // 从 [0, 9] 遍历,初始化数组,即 arr = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } 
    for(i =0;i<4;i++) k += (arr[i]+i);  // 从 [0, 3] 遍历,k 加上 arr[i] + i,相当于 k = 0 + 0 + 1 + 1 + 2 + 2 + 3 + 3 = 12
    printf ("%d\n",k );  // 输出 12
    return 0;
}