TEST BORRADO, QUIZÁS LE INTERESE: METODOLOGÍA DE LA PROGRAMACIÓN
COMENTARIOS | ESTADÍSTICAS | RÉCORDS |
---|
REALIZAR TEST
Título del Test:
METODOLOGÍA DE LA PROGRAMACIÓN Descripción: Posibles preguntas Autor:
Fecha de Creación: 04/09/2024 Categoría: Informática Número Preguntas: 31 |
COMPARTE EL TEST
COMENTAR
No hay ningún comentario sobre este test.
Temario:
¿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. |
Denunciar Test