Lenguaje C | conjunto 6

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

Deja una respuesta

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