Ejercicios De Seleccion
1. Rastree la ejecución de la llamada mystery(4) para la siguiente función recursiva con la técnica mostrada en la figura 7.2. ¿Qué hace esta función?.
int mystery(int n){
if(n = = 0)
return 0;
else
return n * n + mystery(n - 1);
}
mystery = 4
4 == 0 false
return 4 * 4 + mystery(3)
4
3
mystery = 33 == 0 false
return 3 * 3 + mystery(2)
mystery = 2
2 == 0 false
return 2 * 2 + mystery(1)
2
mystery = 1
1 == 0 falsereturn 1 * 1 + mystery(0)
1
0
mystery = 0
4 == 0 false
2. Resuelva el ejercicio 1 usando marcos de activación.
mystery(0)return la dirección de mystery (1) |mystery(1)return la dirección de mystery (2) |
mystery(2)return la dirección de mystery (3) |
mystery(3)return la dirección de mystery (4) |
mystery(4)return la dirección en el llamador |Marco para
mystery(“”)
Marco para
mystery(“”)
Marco para
mystery(“”)
Marco para
mystery(“”)
Marco para
mystery(“”)
3. Rastree la ejecución de print_chars(“tic”) por medio de marcosde avtivación.
print_chars: “tic”
“tic” == 0 es falso
return 1 + print_char(“ic”);
3
print_chars: “ic”
“ic” == 0 es falso
return 1 +print_char(“c”);
23
print_chars: “c”
“c” == 0 es falso
return 1 + print_char(“”);
1
print_chars: “”
“” == 0 es verdadero
return 0;
04. Rastree la ejecución de print_chars_reserve(“toc”) usando marcos de activación.
print_chars_reserve: “toc”
“toc” == 0 es falso
return 1 + print_chars_reserve(“oc”);
3print_chars_reserve: “oc”
“oc” == 0 es falso
return 1 + print_chars_reserve(“c”);
23
print_chars_reserve: “c”
“c” == 0 es falso
return 1 +...
Regístrate para leer el documento completo.