民國110年 第3梯次 網路架設乙級 學科

第59題

對於下列C/C++程式,何者敘述正確?

題目

對於下列C/C++程式,何者敘述正確?

  1. (1) 若a 及b 均為2x2 矩陣,最內層for 迴圈執行8 次
  2. (2) 將 a 及b 兩矩陣相加後,儲存至c 矩陣
  3. (3) 若a[2][2]={{1, 2}, {3, 4}}及b[2][2]= {{1,0},{2,-3}},執行結束後c[2][2]= {{5,6}, {11,12}}
  4. (4) 若a 及b 均為2x2 矩陣,最外層for 迴圈執行4 次

官方答案

(1) 若a 及b 均為2x2 矩陣,最內層for 迴圈執行8 次

解析

典型的矩陣相乘程式使用三層迴圈:外層 i 控制列、中層 j 控制行、最內層 k 累加乘積,計算式為 c[i][j] = Σ a[i][k] × b[k][j]。當 a、b 均為2×2時,i 跑2次、j 跑2次、k 每輪跑2次,最內層迴圈主體共執行 2×2×2=8次,故選項1正確。程式的動作是相乘而非相加,選項2錯誤;代入 a={{1,2},{3,4}}、b={{1,0},{2,-3}} 可得 c[0][0]=1×1+2×2=5、c[0][1]=1×0+2×(-3)=-6、c[1][0]=3×1+4×2=11、c[1][1]=3×0+4×(-3)=-12,與選項3的數值正負號不符;最外層迴圈只執行2次,不是4次。

AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。

官方資料