平成18年 秋期 基本情報技術者 午後 問06
問06 C言語次の C プログラムの説明及びプログラムを読んで,設問に答えよ。
〔プログラムの説明〕 プログラムが生成した各けたの数字が異なる4けたの目標数を, なるべく少ない回数の推測で当てるゲーム GuessNumber である。 回答者は,各けたが異なる4けたの推測数を入力し,当たらなかった場合,次の情報を得ることができる。 @ 目標数に含まれていて,けたも一致している数字の個数(以下,Hit 数という) A 目標数に含まれているが,けたが一致していない数字の個数(以下,Blow 数という) (1) 目標数はプログラムが自動的に生成する。生成した数字列は char 型の配列 target に格納される。 推測数を文字列として標準入力から読み込み,char 型の配列 num に格納したうえで照合する。 目標数と完全に一致するまで繰り返す。 (2) 次の関数が用意されている。 void createRandomNumber(char[] target) 機能: 4けたの目標数を文字列として左のけたから順に配列 target に格納する。 各けたの数字はすべて異なっている。 int isValidNumber(char[] num) 機能:文字列 num 中の各文字がすべて異なる数字のとき TRUE を,それ以外のとき FALSE を返す。
〔プログラム〕
#include <stdio.h>
#define DIGITS 4 /* けた数 */
#define TRUE 1
#define FALSE 0
void createRandomNumber(char[]);
int isValidNumber(char[]);
void GuessNumber();
int isMatch(char[], char[]);
void GuessNumber(){
char target[DIGITS + 1]; /* 目標数の保存領域 */
char num[DIGITS + 1]; /* 推測数の保存領域 */
int count = 0; /* 推測回数 */
createRandomNumber(target); /* 目標数の生成 */
do{
printf("[%d回目] 各けたが異なる%dけたの数を入力してください:",
++count, DIGITS);
scanf("%4s", num);
while(
設問 プログラム中の
a,b に関する解答群 ア isMatch(target, num) == FALSE イ isMatch(target, num) == TRUE ウ isValidNumber(num) == FALSE エ isValidNumber(num) == TRUE c に関する解答群 ア num[i] == num[j] イ target[i] == num[i] ウ target[i] == num[j] エ target[i] == target[j] オ target[j] == num[j] d に関する解答群 ア i != j イ i < j ウ i <= j エ i == j オ i > j カ i >= j e に関する解答群 ア numHit != DIGITS イ numHit + numBlow == DIGITS ウ numHit + numBlow >= DIGITS エ numHit == DIGITS オ numHit == numBlow カ numHit > numBlow
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2025 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
|
