バブルソートでは、N=5の配列のとき比較する回数(ここでは評価される回数と書いてある)はN(N-1)/2なので、10回です。

フラグを使用する場合は、配列が整列済みのときは、そこでプログラムを終了します。

1回目ループで、4回比較を行います。このときの整列した結果は

5,12,20,23,34

となります。

ここで既に配列は整列済みですが、2回目ループで比較だけ行います。ここで3回比較を行います。
比較した結果、配列の入れ替えが一度も実行されないので、flgは0のままです。

繰り返しの条件に一致しないので、ループを終了してしまいます。

ループ1回目とループ2回目の比較回数を足すと7回になります。

したがって、dは7です。