Рубрики

ВОРОТА | GATE CS 2013 | Вопрос 50

Приведенная ниже процедура необходима для поиска и замены определенных символов во входной символьной строке, представленной в массиве A. Символы, подлежащие замене, предоставляются в массиве oldc, в то время как их соответствующие символы замены предоставляются в массиве newc. Массив A имеет фиксированную длину в пять символов, а массивы oldc и newc содержат по три символа каждый. Тем не менее, процедура имеет недостатки

void find_and_replace(char *A, char *oldc, char *newc) {
    for (int i = 0; i < 5; i++)
       for (int j = 0; j < 3; j++)
           if (A[i] == oldc[j]) A[i] = newc[j];
}

Процедура тестируется с помощью следующих четырех тестовых случаев
(1) oldc = «abc», newc = «dab»
(2) oldc = «cde», newc = «bcd»
(3) oldc = «bca», newc = «cda»
(4) oldc = «abc», newc = «bac»
Теперь тестер проверяет программу на всех входных строках длины пять, состоящих из символов «a», «b», «c», «d» и «e», с разрешенными дубликатами. Если тестер выполняет это тестирование с четырьмя тестовыми примерами, приведенными выше, сколько тестовых примеров сможет выявить недостаток?

(А) только один
(Б) только два
(С) только три
(D) все четыре

Ответ: (Б)
Объяснение: см. Http://quiz.geeksforgeeks.org/algorithms-misc-question-10/.
Тест на этот вопрос

Рекомендуемые посты:

ВОРОТА | GATE CS 2013 | Вопрос 50

0.00 (0%) 0 votes