执行以下程序段,并回答下列问题。 int i, j, k = 0, m = 0; for(i = 0; i < 2; i++){ ; /* 第3行*/ for(j = 0; j < 3; j++){ k++; } m++; /* 第7行*/ } printf("%d#%d", k, m); (1)输出 (2)将第7行改为 m = m + k;后,输出 (3)将第3行改为 k = 0;,将第7行改为 m = m + k;后 ,输出
时间: 2024-03-29 07:41:37 浏览: 13
(1) 根据程序,k的初始值为0,然后在内层循环中执行3次k++,因此k的最终值为6;m的初始值为0,在外层循环中执行2次m++,因此m的最终值为2。因此输出为:6#2。
(2) 修改第7行为 m = m + k; 后,k的最终值不变,仍为6。在外层循环中,第一次执行m = m + k;,m的值变为6;第二次执行m = m + k;,m的值变为12。因此输出为:6#12。
(3) 修改第3行为 k = 0;,将第7行改为 m = m + k; 后,内层循环中k的值每次都被赋为0,因此内层循环执行后k的值仍为0;在外层循环中,第一次执行m = m + k;,m的值变为0;第二次执行m = m + k;,m的值仍为0。因此输出为:0#0。