题目
以下程序求二维数组中每行的最大值和每行的和,[填空3] 应填()。 #include < stdio.h > int main(void) ( int a[5][5], b[5], c[5], i, j, k, s=0; for(i=0; i< 5; i++) for(j=0; j< 5; j++) a[i][j]=random(40)+20; for(i=0; i< 5; i++) { k=a[i][0]; [填空1]; for(j=0; j< 5; j++) { if(k< a[i][j])[填空2] ; s=s+a[i][j]; ) b[i]=k; [填空3]; } /*输出部分省略*/ return 0; } A. a[i]=sB. c[i]=sC. b[i]=sD. a[i][j]=s
以下程序求二维数组中每行的最大值和每行的和,[填空3] 应填()。
#include < stdio.h >
int main(void)
{
int a[5][5], b[5], c[5], i, j, k, s=0;
for(i=0; i< 5; i++)
for(j=0; j< 5; j++)
a[i][j]=random(40)+20;
for(i=0; i< 5; i++)
{
k=a[i][0];
[填空1];
for(j=0; j< 5; j++)
{
if(k< a[i][j])[填空2] ;
s=s+a[i][j];
}
b[i]=k;
[填空3];
}
/*输出部分省略*/
return 0;
}
- A. a[i]=s
- B. c[i]=s
- C. b[i]=s
- D. a[i][j]=s
题目解答
答案
本题考察二维数组的行最大值与行和的计算。
1. [填空1]需将 `s` 初始化为 0,即 `s = 0;`。
2. [填空2]需更新最大值,即 `k = a[i][j];`。
3. [填空3]需将当前行和 `s` 存入 `c[i]`,即 `c[i] = s;`。
选项分析:
- A 错误,`a[i] = s` 不符合逻辑。
- B 正确,`c[i] = s` 符合要求。
- C 错误,`b[i]` 已用于存储最大值。
- D 错误,`a[i][j] = s` 不合理。
答案:B. `c[i] = s;`