Algoritmos | Varios | Pregunta 10

El procedimiento que se proporciona a continuación es necesario para buscar y reemplazar ciertos caracteres dentro de una string de caracteres de entrada proporcionada en la array A. Los caracteres que se reemplazarán se proporcionan en la array oldc, mientras que sus respectivos caracteres de reemplazo se proporcionan en la array newc. La array A tiene una longitud fija de cinco caracteres, mientras que las arrays oldc y newc contienen tres caracteres cada una. Sin embargo, el procedimiento es defectuoso.

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];
}

El procedimiento se prueba con los siguientes cuatro casos de prueba
(1) oldc = “abc”, newc = “dab”
(2) oldc = “cde”, newc = “bcd”
(3) oldc = “bca”, newc = “ cda”
(4) oldc = “abc”, newc = “bac”
El probador ahora prueba el programa en todas las strings de entrada de longitud cinco que constan de los caracteres ‘a’, ‘b’, ‘c’, ‘d’ y ‘e ‘ con duplicados permitidos. Si el probador lleva a cabo esta prueba con los cuatro casos de prueba dados anteriormente, ¿cuántos casos de prueba podrán capturar la falla?

(A) Solo uno
(B) Solo dos
(C) Solo tres
(D) Los cuatro

Respuesta: (B)
Explicación: Los casos de prueba 3 y 4 son los únicos casos que capturan la falla. El código no funciona correctamente cuando un carácter antiguo se reemplaza por un carácter nuevo y el carácter nuevo se reemplaza nuevamente por otro carácter nuevo. Esto no sucede en los casos de prueba (1) y (2), sucede solo en los casos (3) y (4).
Cuestionario de esta pregunta

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *