Приведенная ниже процедура необходима для поиска и замены определенных символов во входной символьной строке, представленной в массиве 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) все четыре
Ответ: (Б)
Пояснение: тестовые случаи 3 и 4 являются единственными случаями, которые фиксируют недостаток. Код не работает должным образом, когда старый символ заменяется новым, а новый символ снова заменяется другим новым символом. Это не происходит в тестовых случаях (1) и (2), это происходит только в случаях (3) и (4).
Тест на этот вопрос
Рекомендуемые посты:
- Алгоритмы | Разное | Вопрос 15
- Алгоритмы | Разное | Вопрос 13
- Алгоритмы | Разное | Вопрос 11
- Алгоритмы | Разное | Вопрос 11
- Алгоритмы | Разное | Вопрос 16
- Алгоритмы | Разное | Вопрос 11
- Алгоритмы | Разное | Вопрос 14
- Алгоритмы | Разное | Вопрос 3
- Алгоритмы | Разное | Вопрос 13
- Алгоритмы | Разное | Вопрос 9
- Алгоритмы | Разное | Вопрос 8
- Алгоритмы | Разное | Вопрос 7
- Алгоритмы | Разное | Вопрос 6
- Алгоритмы | Разное | Вопрос 5
- Алгоритмы | Разное | Вопрос 12
0.00 (0%) 0 votes