PUERTA | PUERTA-CS-2003 | Pregunta 88

En el siguiente fragmento de programa C, j, kn y TwoLog_n son variables enteras y A es una array de enteros. La variable n se inicializa a un número entero ≥ 3, y TwoLog_n se inicializa al valor de 2*⌈log2(n)⌉

for (k = 3; k < = n; k++)
    A[k] = 0;
for (k = 2; k < = TwoLog_n; k++)
    for (j = k + 1; j < = n; j++)
        A[j] = A[j] || (j % k);
for (j = 3; j < = n; j++)
    if (!A[j]) printf("%d", j);

El conjunto de números impresos por este fragmento de programa es
(A) {m | m ≤ n, (∃ i) [m = i!]} ¡Aquí i! factorial medio de i
(B) {m | metro ≤ norte, (∃ yo) [m = yo 2 ]}
(C) {m | m ≤ n, m es primo}
(D) {}

Respuesta: (D)
Explicación: La opción (D) es correcta porque si toma n=4 entonces TwoLog_n valor 4.
primer ciclo inicialmente A[3]=A[4]= 0;
luego dos bucles k = 2 a 4 y j = 3 a 4

if k=2 
         j=3  A[3] = A[3] || (3%2) 
                          = 0 || 1
                  A[3] = 1 
       j=4  A[4] = A[4] || (4%2)
                         = 0 || 0
                A[4] = 0
K=3
         j=4  A[4] = A[4] || (4%3)

                        = 0 || 1
               A[4] = 1
K=4
     J=5 condition false means terminate
 A[3] = A[4] = 1

Significa que el último ciclo de impresión nunca se ejecuta.

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 *