Se han hecho las siguientes preguntas en el examen GATE CS 2006.
1. Considere el siguiente fragmento de programa C en el que i, j y n son variables enteras.
for (i = n, j = 0; i >0; i /= 2, j += i);
Sea val(j) el valor almacenado en la variable j después de la terminación del bucle for. ¿Cuál de las siguientes es verdadera?
(A) val(j) = Θ(logn)
(B) vaI(j) = Θ(raíz cuadrada(n))
(C) val(j) = Θ(n)
(D) val(j) = Θ(nlogn )
Respuesta (C)
Tenga en cuenta el punto y coma después del bucle for, por lo que no hay nada en el cuerpo. La variable j es inicialmente 0 y el valor de j es la suma de los valores de i. i se inicializa como n y se reduce a la mitad en cada iteración.
j = n/2 + n/4 + n/8 + .. + 1 = Θ(n)
2. Considere la siguiente función C en la que a[n] y b[m] son dos arreglos de enteros ordenados y c[n + m] es otro arreglo de enteros.
void xyz(int a[], int b [], int c[]) { int i, j, k; i = j = k = O; while ((i<n) && (j<m)) if (a[i] < b[j]) c[k++] = a[i++]; else c[k++] = b[j++]; }
¿Cuál de las siguientes condiciones se cumple después de la terminación del ciclo while?
(i) j < m, k = n+j-1, y a[n-1] < b[j] si i = n (ii) i < n, k = m+i-1, y b[m -1] <= a[i] si j = m
(A) solo (i)
(B) solo (ii)
(C) ya sea (i) o (ii) pero no ambos
(D) ni (i) ni ( ii)
Respuesta (C)
La condición (i) es verdadera si el último elemento insertado en c[] es de a[] y la condición (ii) es verdadera si el último elemento insertado es de b[].
3. Considere este código C para intercambiar dos enteros y estas cinco declaraciones: el código
void swap(int *px, int *py) { *px = *px - *py; *py = *px + *py; *px = *py - *px; }
S1: generará un error de compilación
S2: puede generar una falla de segmentación en tiempo de ejecución dependiendo de los argumentos pasados
S3: implementa correctamente el procedimiento de intercambio para todos los punteros de entrada que se refieren a números enteros almacenados en ubicaciones de memoria accesibles para el proceso
S4: implementa correctamente el procedimiento de intercambio para algunos pero no todos los punteros de entrada válidos
S5: puede sumar o restar números enteros y punteros.
(A) S1
(B) S2 y S3
(C) S2 y S4
(D) S2 y S5
Respuesta (C)
S2: Puede generar una falla de segmentación si el valor en los punteros px o py es constante o px o py apunta a una ubicación de memoria que no es válida
S4: Puede que no funcione para todas las entradas, ya que puede ocurrir un desbordamiento aritmético.
Escriba comentarios si encuentra que alguna de las respuestas/explicaciones es incorrecta, o si desea compartir más información sobre los temas discutidos anteriormente.
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