Considere el siguiente programa en C.
#include <stdio.h> int *A, stkTop; int stkFunc (int opcode, int val) { static int size=0, stkTop=0; switch (opcode) { case -1: size = val; break; case 0: if (stkTop < size ) A[stkTop++]=val; break; default: if (stkTop) return A[--stkTop]; } return -1; } int main() { int B[20]; A=B; stkTop = -1; stkFunc (-1, 10); stkFunc (0, 5); stkFunc (0, 10); printf ("%d\n", stkFunc(1, 0)+ stkFunc(1, 0)); }
El valor impreso por el programa anterior es ___________
(A) 9
(B) 10
(C) 15
(D) 17
Respuesta: (C)
Explicación: El código en main, básicamente inicializa una pila de tamaño 10, luego empuja 5, luego empuja 10.
Finalmente, la instrucción printf imprime la suma de dos operaciones emergentes, que es 10 + 5 = 15.
stkFunc (-1, 10); // Initialize size as 10 stkFunc (0, 5); // push 5 stkFunc (0, 10); // push 10 // print sum of two pop printf ("%d\n", stkFunc(1, 0) + stkFunc(1, 0));
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