[更新日]1998.05.15


次の問11から問14までの14問については,この中から1問を選択し,
答案用紙の選択欄のをマークして 解答してください。
 なお,2問以上選択した場合には,はじめの1問について採点します。

 

問11 次の C プログラムの説明及びプログラムを読んで,設問に答えよ。

〔プログラムの説明〕

ゲームの結果を格納した文字列から得点を計算し,返却値として返す プログラムである。

(1) ゲームは,複数のラウンドから成り,各ラウンドの結果は,次に示す 文字で表される。
     0 1 2 3 4 5 6 7 8 9 + -

(2) 文字の並び順には,次の規則がある。

(3) 文字列 mark には,第 1 ラウンドから最終ラウンドまでの結果が 順番に格納されている。mark に格納されている文字列は,(2)の規則に 従っているものとする。


〔プログラム〕
int CalcScore(char mark[])
{
    static char markCT[] = "0123456789+-";
    int i = 0, score = 0, s0, s1, s2;
 
    while(mark[i] != ’\0’) {
        for (s0 = 0; mark[i] != markCT[s0]; s0++);
        if (s0 <= 9) {
            score += s0;
        } else if (s0 == 10) {
            for (s1 = 0; mark[i + 1] != markCT[s1]; s1++);
            score += 10 + s1;
        } else {
            for (s2 = 0; mark[i - 1] != markCT[s2]; s2++);
            score += 10 + s2;
        }
        i++;
    }
    return score;
}

設問 ゲームの得点の計算方法に関する次の記述中の に入れる正しい答えを, 解答群の中から選べ。

 

(1) ゲームの得点は,各ラウンドの得点を合計したものである。

(2) 各ラウンドの得点は次のようにして求めている。

 文字が“0”,“1”,…,“9”のとき,得点は である。

 文字が“+”のとき, の規則に従って数値化し, 値が得点である。

 文字が“−”のとき, の規則に従って数値化し, 値が得点である。

(3) 文字列が“1+2−3 5”のとき,ゲームの得点は 41 である。

 

a に関する解答群

ア −10

イ −1

ウ 0

エ 1

オ 10

カ それぞれ −1 ,−2 ,…,−10

キ それぞれ 0 ,−1 ,…,−9

ク それぞれ 0 ,1 ,…,9

ケ それぞれ 1 ,2 ,…,10

 

b,d に関する解答群

ア 直前の 2 ラウンド     イ 直前の 2 ラウンドとそのラウンド
 
ウ 直前のラウンド     エ 直前のラウンドとそのラウンド
 
オ 直後のラウンド カ 直後のラウンドとそのラウンド
 
キ 直後の 2 ラウンド ク 直後の 2 ラウンドとそのラウンド

 

c に関する解答群

ア 10 を加えた    イ 10 を引いた
 
ウ 10 を掛けた エ 10 で割った
 
オ 10 から引いた カ 10 で割った

 

e に関する解答群

ア 0    イ 1    ウ 2    エ 3    オ 4

カ 5    キ 6    ク 7    ケ 8    コ 9

 

 


戻る 次頁:問12