METODOLOGÍA DE LA PROGRAMACIÓN
![]() |
![]() |
![]() |
Título del Test:![]() METODOLOGÍA DE LA PROGRAMACIÓN Descripción: Posibles preguntas |




Comentarios |
---|
NO HAY REGISTROS |
¿Qué tipo devuelve la función malloc()?. void **. NULL. void *. Depende de los argumentos de la función. Para utilizar una biblioteca en nuestro programa necesitamos. El código de la biblioteca (fichero .a). El código objeto de las funciones (ficheros .o). El código fuente de las funciones (ficheros .c). El código de la biblioteca (fichero .a) y el fichero con los prototipos de las funciones incluidas en la biblioteca (fichero .h). Una función recursiva que produzca llamadas recursivas infinitas desbordará. El código. El registro. El montón o el heap. La pila o stack. Dadas las siguientes declaraciones de variables y funciones Char v[50] Char * p=v; Char * q=v+49; Int a=0; Int * pa=&a; //Inicializamos vector (50 elementos) Int recorrerVector (char * p, char * q, char *pa, int * v); ¿Es correcta la siguiente llamada a función? recorrerVector(&v[0],p,q,pa);. Sí es correcta. No es correcta debido al último parámetro. No es correcta debido al primer parámetro. No es correcta debido al segundo y tercer parámetro. Cuando enlazamos o “linkamos” un programa principal con una librería y obtenemos un ejecutable, el enlace sólo se realiza con los módulos .o en los que se encuentran las funciones utilizadas. Verdadero. Falso. El enlace se realiza con todos los módulos de la librería. Depende de la librería. No es lo mismo, por ejemplo, la libreía matemática que la librería gráfica. El usuario es quien indica en la compilación con qué módulos se enlaza. ¿Cuál de las siguientes afirmaciones es cierta?. Las librerías se crean con el comando lib. El uso de las librerías favorece la reutilización de código. El uso de librerías perjudica el trabajo en equipo. El programa principal forma parte de la librería. Dada la siguiente definición de la función recursiva f(x) ¿Qué es lo que calcula? Si x=0 Devolver 1 Si no Devolver 2*f(x-1). 2^x. 2*x. No calcula nada ya que introduce una llamada recursiva infinita. El logaritmo en base 2 de x. ¿De qué zona de memoria toma malloc() el espacio que necesita?. El código. El montón o heap. Los datos. La pila o stack. ¿Qué problema puedes contemplar en el siguiente bloque de código? Char * s = (char *) malloc(sizeof(char)*5); Strcpy(s,”Adios”); Printf(“%s “,s);. La variable no se puede llamar s pues coincide con el modificador o formato de printf %s. No se ha reservado suficiente espacio para albergar la cadena de caracteres. No se ha invocado a la función strcpy correctamente. No se ha invocado a la función malloc correctamente. Dada la siguiente definición de la función recursiva f(x), siendo x un número mayor que 0, ¿qué calcula la función f(x)? Int f(int x) { If (x==1) return 1; else return 1 + f(x-1) }. No se calcula nada ya que se introduce una llamada recursiva infinita. X+1. X-1. x. Dada la siguiente definición de la función recursiva f(x), siendo x un número mayor que 0, ¿qué es lo que se calcula? Int f(int x) { return x *f(x-1) }. Se produce un error en tiempo de compilación. No calcula nada ya que introduce una llamada recursiva infinita. X*(x-1). x!. Si una llamada a la función realloc para ampliar la memoria falla, ¿qué ocurre con la zona antigua y los datos que hubiera almacenados en ella?. La memoria sigue reservada pero los datos se pierden. Los datos se mantienen, pero el puntero que los referencia toma el valor NULL. Ni el contenido ni la memoria se modifican. La memoria se libera por lo tanto los datos se pierden. El siguiente código main () { ….. char s[10]; ….. char * ps=s; ….. //Resto de instrucciones }. Es un ejemplo de creación de un vector de tipo dinámico. Es un ejemplo de declaración e inicialización de una cadena de caracteres. Es un ejemplo de declaración de un vector estático. a y b son ciertas. Dada la siguiente definición de forma recursiva f(x), siendo x un número mayor que 0, ¿qué se calcula? Int f(int x) { If (x==0) return 1; else return 1+f(x-1); }. x+1. x. No se calcula nada ya que introduce una llamada recursiva infinita. X-1. El siguiente código main () { ..... char s[10]; ..... char * ps=s; ..... //Resto de instrucciones }. Es un ejemplo de creación de un vector de tipo dinámico. Es un ejemplo de declaración e inicialización de una cadena de caracteres. Es un ejemplo de declaración de un vector estático. a y b son ciertas. Dada la declaración int cont=1; ¿Cuál es el contenido de la variable cont después de la llamada funcrecur(2,&cont);? void funcrecur (int n, int * cont) { aaa*cont=*cont+1; aaaif (n>0) { aaaaa funcrecur(n1,cont); aaaaaafuncrecur(n1,cont); aaa} }. 8. 6. 5. 7. Las bibliotecas se crean con el programa. gcc -c. gcc -a. lib. ar. ¿Es correcto el siguiente trozo de código? int main() { aaaint nEle=2; aaaint * pi; aaapi[0]=1; aaapi[1]=1; ... }. Sí, proque se ha definido un vector a través del puntero pi , y a continuación se ha utilizado sin salirse del rango de dicho vector. No, ya que falta reservar memoria para nEle elementos. No, porque sólo se puede acceder a pi[1] y pi[2] porque nEle=2. No, porque se intenta utilizar pi utilizando []. Seleccione una: El código de la biblioteca (fichero .a) y el fichero con los prototipos de las funciones incluidas en la biblioteca (fichero .h). El código de la biblioteca (fichero .a). El codigo fuente de las funciones (ficheros .c). El código objeto de las funciones (ficheros .o). Dada la siguiente definición de la función recursiva f(x), siendo x un número mayor que 0, ¿qué es lo que se calcula? int f(int x) { aaareturn x * f(x1) }. No calcula nada ya que introduce una llamada recursiva infinita. x*(x-1). Se produce un error en tiempo de compilación. x!. ¿Qué devuelve malloc() si no se puede reservar memoria?. NULL. 0. -1. void. ¿Cuál de las llamadas a la función frecursiva devuelve los resultados correctos? long frecursiva (int x, int y) { aaaif (x == 0) aaaaaareturn 0; aaaif(y==1) aaaaaareturn 1; aaareturn(x*frecursiva(x,y1)); }. frecursiva(2, 7) devuelve 512. frecursiva (1, 7) devuelve 7. frecursiva (2, 7) devuelve 64. frecursiva(2, 7) devuelve 128. ¿Cuál de las siguientes zonas de memoria tiene un tamaño conocido en tiempo de compilación?. stack. Datos estáticos. pila. heap. Si tenemos que reservar una nueva porción de memoria dinámica e inicializarla a 0, utilizaremos: realloc. malloc. free. calloc. En un programa desde el inicio hasta su finalización, debemos realizar tantas invocaciones a "free" como la suma de invocaciones de malloc y calloc. Verdadero. Falso. Cuál de las siguientes sentencias es falsa: El programa ar permite crear un biblioteca de cero. El programa ar permite actualizar los módulos de una biblioteca. El programa ar no permite añadir módulos nuevos a una biblioteca existente. El programa ar permite eliminar un modulo de una biblioteca. Lo que hace que en un lenguaje de programación puede funcionar la recursividad es: El poder repetir los identificadores de los métodos. La rapidez del sistema ya que si no la recursividad sería demasiado lenta. La pila de llamadas al sistema. El uso de bucles para controlar el caso base. Para saber en qué orden se ejecutan los modulos de un programa, el arbol de activiación hay que recorrerlo en. amplitud. postorden. inorden. profundidad. Dada la siguiente definición de la función recursiva f(x), siendo x un número mayor que 0, ¿qué calcula la función f(x)? int f(int x) { aaaif (x == 1) aaaaaareturn 1; aaaelse aaaaareturn 1 + f(x1) }. x-1. x+1. x. No calcula nada ya que introduce una llamada recursiva infinita. ¿Cuál de las llamadas a la función frecursiva devuelve los resultados correctos? long frecursiva (int x, int y) { aaaif (x == 0) aaaaaareturn 0; aaaif(y==1) aaaaaareturn 1; aaareturn(x*frecursiva(x,y-1)); }. frecursiva(2, 7) devuelve 128. frecursiva (1, 7) devuelve 7. frecursiva(2, 7) devuelve 512. frecursiva (2, 7) devuelve 64. Dada la siguiente definición de la función recursiva f(x), siendo x un número mayor que 0, ¿qué calcula la función f(x)? int f(int x) { aaaif (x == 1) aaaaaareturn 1; aaaelse aaaaareturn 1 + f(x-1) }. No calcula nada ya que introduce una llamada recursiva infinita. x+1. x-1. x. |