option
Cuestiones
ayuda
daypo
buscar.php

TEST BORRADO, QUIZÁS LE INTERESE: PROGRAMACION 2

COMENTARIOS ESTADÍSTICAS RÉCORDS
REALIZAR TEST
Título del Test:
PROGRAMACION 2

Descripción:
programacion 2

Autor:
AVATAR
jma
OTROS TESTS DEL AUTOR

Fecha de Creación: 05/02/2025

Categoría: Informática

Número Preguntas: 60
COMPARTE EL TEST
ComentarNuevo Comentario
No hay ningún comentario sobre este test.
Temario:
Cuál es la principal ventaja de utilizar la recursividad en C? Puede llevar a soluciones más elegantes y concisas para ciertos problemas Siempre es más eficiente que la iteración Reduce el consumo de memoria del programa Evita la necesidad de utilizar bucles.
Cuál de las siguientes opciones es una buena práctica al diseñar funciones en C? Evitar el uso de comentarios dentro de las funciones, ya que hacen que el código sea más difícil de leer Utilizar nombres de funciones cortos y crípticos para ahorrar espacio Utilizar variables globales siempre que sea posible para facilitar el acceso a los datos Dividir tareas complejas en funciones más pequeñas y especializadas.
Cuál es la principal ventaja de pasar una función como parámetro a otra función en C? Simplifica la lectura de datos desde archivos Reduce el consumo de memoria del programa Evita la necesidad de utilizar recursividad Permite aplicar diferentes operaciones o algoritmos a los datos sin tener que escribir múltiples funciones similares.
Qué significa pasar un argumento a una función "por valor"? Se pasa el nombre de la variable como argumento Se pasa el tipo de dato del argumento a la función Se pasa la dirección de memoria del argumento a la función Se pasa una copia del valor del argumento a la función.
¿Cuál de las siguientes opciones es una buena práctica para evitar el desbordamiento de pila al utilizar recursividad en C? Asegurarse de que cada llamada recursiva reduzca el tamaño del problema y se acerque al caso base. Utilizar la recursividad siempre que sea posible, incluso para problemas que se pueden resolver fácilmente con iteración. Evitar definir un caso base en la función recursiva Aumentar el tamaño de la pila de llamadas del programa.
¿Cuál es la forma correcta de declarar un puntero a una función en C que toma dos enteros como argumentos y devuelve un flotante? float puntero_funcion(int, int); (*puntero_funcion) float(int, int); float *puntero_funcion(int, int); float (*puntero_funcion)(int, int);.
Cuál de las siguientes opciones describe una situación en la que sería apropiado utilizar el paso por referencia en lugar del paso por valor? Cuando deseas proteger los datos originales de modificaciones accidentales Cuando el argumento es de un tipo de dato simple, como un entero o un flotante Cuando la función necesita modificar el valor de la variable original pasada como argumento Cuando la función solo necesita leer el valor del argumento, sin modificarlo.
¿Cuál es la salida del siguiente código? #include <stdio.h> int calcular_producto(int arr[], int longitud) { int producto = 1; for (int i = 0; i < longitud; i++) { producto *= arr[i]; } return producto; } int main() { int numeros[] = {2, 3, 4}; int longitud = sizeof(numeros) / sizeof(numeros[0]); int resultado = calcular_producto(numeros, longitud); printf("El producto de los elementos del array es: %d\n", resultado); return 0; } El código produce un error de compilación El producto de los elementos del array es: 24 El producto de los elementos del array es: 6 El producto de los elementos del array es: 9.
¿Cuál de las siguientes afirmaciones sobre el paso de parámetros por referencia en C es verdadera? Es más eficiente que el paso por valor para tipos de datos simples como enteros y flotantes Se crea una copia del valor del argumento y se pasa esa copia a la función No se utilizan punteros en el paso por referencia La función puede modificar directamente el valor de la variable original pasada como argumento.
¿Cuál es la salida del siguiente código?#include <stdio.h> #include <stdarg.h> int sumar_numeros(int cantidad, ...) { va_list argumentos; va_start(argumentos, cantidad); int suma = 0; for (int i = 0; i < cantidad; i++) { suma += va_arg(argumentos, int); } va_end(argumentos); return suma; } int main() { int resultado = sumar_numeros(4, 2, 5, 3, 1); printf("La suma es: %d El código produce un error de compilación La suma es: 10 La suma es: 11 La suma es: 4.
Cuál de las siguientes afirmaciones sobre la recursividad en C es FALSA? Es necesario definir un caso base para evitar recursiones infinitas Una función recursiva se llama a sí misma directa o indirectamente Cada llamada recursiva debe trabajar en un problema más pequeño que el original La recursividad siempre es más eficiente que la iteración.
Cuál de las siguientes opciones NO es un caso base válido para una función recursiva que calcula el factorial de un número? if (n > 10) return 0; if (n == 0) return 1; if (n < 0) return -1; if (n == 1) return 1.
Cuál es el propósito de la biblioteca stdarg.h en C? Permitir la definición de funciones con un número variable de argumentos Realizar operaciones de entrada/salida de archivos Proporcionar funciones para manejar cadenas de caracteres Implementar algoritmos de ordenación.
Cuál es la principal diferencia entre una función void y una función que devuelve un valor en C? Las funciones void no devuelven un valor explícito al código que las llama Las funciones void no pueden tener parámetros Las funciones void no pueden realizar ninguna acción, solo devuelven un valor nulo Las funciones void no utilizan la palabra clave return.
Cuál de las siguientes opciones NO es un ejemplo de un problema que se puede resolver con recursividad? Recorrido de un árbol binario Generación de la serie de Fibonacci Impresión de un mensaje en la consola Cálculo del factorial de un número.
Cuál es el propósito principal de utilizar el paso por valor en C? Proteger los datos originales de modificaciones accidentales dentro de la función Simplificar la implementación de funciones recursivas Permitir que una función modifique directamente el valor de una variable externa Evitar la copia de grandes estructuras de datos.
Cuál de las siguientes opciones describe una posible aplicación de las funciones variádicas en C? Crear un menú de opciones en un programa interactivo Todas las anteriores Calcular el promedio de un número arbitrario de valores Implementar una función de impresión que pueda aceptar diferentes tipos de datos y formatos.
Cuál de las siguientes opciones NO es una ventaja de utilizar funciones en C? Mejorar la legibilidad del código Facilitar el mantenimiento y la modificación del código Promover la reutilización del código Aumentar el tamaño del archivo ejecutable.
¿Cuál es la salida del siguiente código?int calcular_factorial(int n) { if (n == 0) { return 1; } else { return n * calcular_factorial(n - 1); } } int main() { int resultado = calcular_factorial(4); printf("%d\n", resultado); return 0; } 1 10 4 24.
Cuál de las siguientes opciones describe una situación en la que sería preferible utilizar la iteración en lugar de la recursividad en C? Cuando el rendimiento del programa es crítico y se desea evitar la sobrecarga de las llamadas a funciones recursivas Cuando el problema se descompone naturalmente en subproblemas más pequeños y similares Cuando la claridad y elegancia del código son prioritarias sobre el rendimiento Cuando el problema involucra la exploración de estructuras de datos complejas como árboles.
Cuál es la salida del siguiente código? int fibonacci(int n) { if (n <= 1) { return n; } else { return fibonacci(n - 1) + fibonacci(n - 2); } } int main() { int resultado = fibonacci(5); printf("%d\n", resultado); return 0; } 13 5 3 8.
Cuál es la salida del siguiente código?#include <stdio.h> void imprimir_mensaje() { static int contador = 0; contador++; printf("La funcion ha sido llamada %d veces.\n", contador); } int main() { imprimir_mensaje(); imprimir_mensaje(); imprimir_mensaje(); return 0; } La funcion ha sido llamada 1 veces.\nLa funcion ha sido llamada 2 veces.\nLa funcion ha sido llamada 3 veces.\n El código produce un error de compilación La funcion ha sido llamada 1 veces.\nLa funcion ha sido llamada 1 veces.\nLa funcion ha sido llamada 1 veces.\n La funcion ha sido llamada 0 veces.\nLa funcion ha sido llamada 0 veces.\nLa funcion ha sido llamada 0 veces.\n.
Cuál es la salida del siguiente código?#include <stdio.h> int calcular_maximo(int a, int b) { return (a > b) ? a : b; } int main() { int x = 15, y = 8; int maximo = calcular_maximo(x, y); printf("El maximo entre %d y %d es: %d\n", x, y, maximo); return 0; } El maximo entre 15 y 8 es: 23 El código produce un error de compilación El maximo entre 15 y 8 es: 15 El maximo entre 15 y 8 es: 8.
Cuál de las siguientes opciones describe una situación en la que sería apropiado utilizar una función recursiva en C? Cuando la solución a un problema se puede expresar en términos de soluciones a subproblemas más pequeños del mismo tipo Cuando deseas imprimir un mensaje en la consola Cuando necesitas leer datos desde un archivo Cuando necesitas realizar una tarea repetitiva un número fijo de veces.
Cuál es la principal desventaja de utilizar variables globales en C? Ocupan más memoria que las variables locales Pueden hacer que el código sea más difícil de entender y mantener, ya que su valor puede ser modificado desde cualquier parte del programa No se pueden pasar como argumentos a otras funciones Solo se pueden utilizar dentro de una función específica.
¿Cuál es la salida del siguiente código?void imprimir_numeros(int n) { if (n > 0) { imprimir_numeros(n - 1); printf("%d\n", n); } } int main() { imprimir_numeros(3); return 123 321 0123 3210.
Cuál de las siguientes opciones describe una posible consecuencia de un mal diseño de una función recursiva en C? Consumo excesivo de memoria si la función crea muchas variables locales en cada llamada recursiva Bucle infinito si no se define un caso base adecuado Desbordamiento de pila (stack overflow) debido a un número excesivo de llamadas recursivas anidadas Todas las anteriores.
Cuál de las siguientes afirmaciones sobre las funciones en C es FALSA? Las funciones pueden tener múltiples parámetros. Las funciones pueden llamarse a sí mismas (recursividad Las funciones deben ser definidas antes de ser declaradas Las funciones pueden devolver valores de diferentes tipos de datos.
¿Cuál es la salida del siguiente código? #include <stdio.h> int funcion_misteriosa(int n) { if (n <= 1) { return 1; } else { return n * funcion_misteriosa(n / 2); } } int main() { int resultado = funcion_misteriosa(10); printf("%d\n", resultado); return 0; } 3840 80 1 100.
se breve en tus respuestas Cuál es la salida del siguiente código?#include <stdio.h> int global = 10; int main() { int global = 5; printf("%d\n", global); return 0; } 10 5 La salida es indefinida El código produce un error de compilación.
Qué es un "caso base" en una función recursiva? El valor de retorno de la función recursiva La primera llamada a la función recursiva La última llamada a la función recursiva La condición que detiene la recursión y permite que la función comience a devolver valores.
Cuál de las siguientes opciones describe una situación en la que sería apropiado utilizar una variable global en C? Cuando deseas compartir un valor entre múltiples funciones del programa Cuando necesitas almacenar un valor temporal dentro de una función Cuando el rendimiento del programa es crítico y necesitas evitar la sobrecarga de pasar parámetros a las funciones. Cuando el valor de la variable solo necesita ser accedido dentro de un bucle específico.
Cuál de las siguientes opciones describe una buena práctica al nombrar funciones en C? Utilizar nombres genéricos como "funcion1" y "funcion2" para evitar conflictos de nombres Utilizar nombres cortos y crípticos para ahorrar espacio Utilizar nombres descriptivos que indiquen claramente el propósito de la función Utilizar el mismo nombre para todas las funciones del programa.
Cuál de las siguientes opciones describe una situación en la que el compilador de C podría realizar una optimización de "tail call optimization" en una función recursiva? Cuando la función recursiva tiene múltiples casos base Cuando la función recursiva se llama a sí misma con argumentos que aumentan en cada llamada Cuando la función recursiva utiliza variables globales Cuando la última instrucción en la función recursiva es una llamada a sí misma, y el resultado de esa llamada se devuelve directamente sin ninguna modificación adicional.
¿Cuál es la salida del siguiente código? #include <stdio.h> int funcion_recursiva(int n) { if (n == 0) { return 0; } else if (n == 1) { return 1; } else { return funcion_recursiva(n - 1) + funcion_recursiva(n - 2); } } int main() {​ 5 10 6 15.
Cuál es el propósito principal de las funciones en C? Evitar la necesidad de usar variables. Aumentar el tiempo de ejecución de un programa Hacer que el código sea más difícil de entender. Dividir un programa en partes más pequeñas y manejables.
¿Cuál es la salida del siguiente código?int funcion(int x) {return x * 2;}int main() {int resultado = funcion(3);printf("%d\n", resultado);return 0;} 5 6 2 3.
Qué palabra clave se utiliza en C para definir una función que no devuelve ningún valor? float return void int.
Cuál de las siguientes afirmaciones sobre las funciones void en C es verdadera? No pueden realizar ninguna acción, solo devuelven un valor nulo Pueden modificar variables globales No pueden tener parámetros. Siempre deben contener la palabra clave return.
Cuál es la salida del siguiente código? #include <stdio.h> int funcion(int x, int (*operacion)(int)) { return operacion(x); } int cuadrado(int n) { return n * n; } int cubo(int n) { return n * n * n; } int main() { int valor = 3; int resultado_cuadrado = funcion(valor, cuadrado); int resultado_cubo = funcion(valor, cubo); printf("El cuadrado de %d es %d\n", valor, resultado_cuadrado); printf("El cubo de %​⬤ El código produce un error de compilación El cuadrado de 3 es 9\nEl cubo de 3 es 27 El cuadrado de 3 es 6\nEl cubo de 3 es 9 El cuadrado de 3 es 3\nEl cubo de 3 es 3.
¿Cuál es la salida del siguiente código? #include <stdio.h> int funcion_recursiva(int n) { static int contador = 0; contador++; if (n > 0) { funcion_recursiva(n - 1); } return contador; } int main() { int resultado = funcion_recursiva(3); printf("%d\n", resultado); return 0; }​⬤ 0 3 4 1.
Cuál es la salida del siguiente código?int global = 10;void modificar_global() {global = 20;}int main() {printf("Valor inicial de global: %d\n", global);modificar_global();printf("Valor de global despues de la modificación: %d\n", global);return 0;} Valor inicial de global: 10\nValor de global despues de la modificación: 20 El código produce un error de compilación Valor inicial de global: 10\nValor de global despues de la modificación: 10 Valor inicial de global: 20\nValor de global despues de la modificación: 10.
Qué palabra clave se utiliza en C para devolver un valor desde una función? void continue break return.
Cuál es la diferencia entre la declaración y la definición de una función en C? La declaración contiene el código que se ejecutará, mientras que la definición especifica el nombre, tipo de retorno y parámetros de la función La declaración se utiliza para llamar a la función, mientras que la definición se utiliza para crearla No hay diferencia entre la declaración y la definición de una función La declaración especifica el nombre, tipo de retorno y parámetros de la función, mientras que la definición contiene el código que se ejecutará.
Cuál es la salida del siguiente código?#include <stdio.h> int funcion(int x) { static int contador = 0; contador += x; return contador; } int main() { printf("%d\n", funcion(3)); printf("%d\n", funcion(5)); return 0; }​⬤ 0 5 3 5 3 3 3 8.
¿Cuál es la salida del siguiente código?#include <stdio.h> void intercambiar(int *a, int *b) { int temp = *a; *a = *b; *b = temp; } int main() { int x = 10, y = 20; intercambiar(&x, &y); printf("x = %d, y = %d\n", x, y); return 0; } x = 0, y = 0 El código produce un error de compilación x = 20, y = 10 x = 10, y = 20.
Cuál es la diferencia entre una variable local y una variable global en C? Las variables locales tienen una duración más larga que las variables globales Las variables locales solo son visibles dentro de la función donde se declaran, mientras que las variables globales son visibles en todo el programa Las variables locales se almacenan en la pila, mientras que las variables globales se almacenan en el heap No hay diferencia entre variables locales y globales.
¿Cuál es la salida del siguiente código?#include <stdio.h> void imprimir_hola(int veces) { for (int i = 0; i < veces; i++) { printf("Hola\n"); } } int main() { imprimir_hola(3); return 0; } El código produce un error de compilación Hola\nHola\nHola\n Hola\n Hola\nHola\n.
Cuál es la principal razón por la que se recomienda evitar el uso excesivo de variables globales en C? Las variables globales no se pueden utilizar dentro de funciones recursivas Las variables globales consumen más memoria que las variables locales Las variables globales pueden dificultar la comprensión y el mantenimiento del código, ya que su valor puede ser modificado desde cualquier parte del programa El uso de variables globales ralentiza la ejecución del programa.
Cuál es la salida del siguiente código?void modificar_valor(int *ptr) { *ptr += 10; } int main() { int valor = 5; modificar_valor(&valor); printf("%d\n", valor); return 0; } 10 15 5 El código produce un error de compilación.
Cuál de las siguientes opciones NO es una característica de las variables locales en C? Su alcance se limita a la función donde se declaran Son accesibles desde cualquier parte del programa Se crean al entrar en la función y se destruyen al salir de ella Se declaran dentro del cuerpo de una función.
¿Cuál de las siguientes opciones describe una posible aplicación del paso de funciones como parámetros en C? Crear funciones de devolución de llamada (callbacks) que se ejecuten en respuesta a eventos o condiciones específicas Simplificar la implementación de interfaces de usuario que permiten al usuario elegir diferentes acciones Todas las anteriores Implementar algoritmos de ordenación genéricos que puedan trabajar con diferentes criterios de comparación.
¿Cuál es la salida del siguiente código?void funcion(int *ptr) {*ptr = *ptr * 2;}int main() {int valor = 5;funcion(&valor);printf("%d\n", valor);return 0;} 5 El código produce un error de compilación &valor (la dirección de memoria de la variable 'valor') 10.
¿Cuál de las siguientes opciones describe una posible causa de un desbordamiento de pila (stack overflow) en C? Llamadas a funciones con demasiados argumentos Utilizar el operador ternario en lugar de una estructura if-else Recursividad infinita Uso excesivo de variables globales.
Cuál de las siguientes opciones describe una posible mejora en el rendimiento de un programa que utiliza recursividad intensiva? Utilizar técnicas de memoización para almacenar resultados intermedios y evitar cálculos repetitivos Todas las anteriores Aumentar el tamaño de la pila de llamadas Reemplazar la recursividad con iteración siempre que sea posible.
¿Cuál de las siguientes opciones describe una buena práctica al trabajar con funciones recursivas en C? Ignorar el consumo de memoria y el tiempo de ejecución al diseñar funciones recursivas Asegurarse de que cada llamada recursiva haga que el problema sea más pequeño y se acerque al caso base. Evitar definir un caso base para que la recursión continúe indefinidamente Utilizar la recursividad incluso para problemas simples que se pueden resolver fácilmente con iteración.
¿Cuál es la salida del siguiente código?#include <stdio.h> int calcular_suma(int a, int b); int main() { int resultado = calcular_suma(5, 3); printf("%d\n", resultado); return 0; } int calcular_suma(int a, int b) { return a + b; }​⬤ 3 El código produce un error de compilación 8 5.
Cuál es la principal limitación del paso por valor en C? No se puede utilizar en funciones recursivas La función no puede modificar el valor de la variable original pasada como argumento Es menos eficiente que el paso por referencia para tipos de datos simples No se pueden pasar argumentos de tipo de dato compuesto, como estructuras o arrays.
¿Cuál es la salida del siguiente código? #include <stdio.h> int calcular_suma(int a, int b) { int suma = a + b; a = 0; return suma; } int main() { int x = 5, y = 3; int resultado = calcular_suma(x, y);​⬤ x = 5, y = 0, resultado = 8 x = 0, y = 0, resultado = 8 x = 0, y = 3, resultado = 8 x = 5, y = 3, resultado = 8.
Cuál es la principal ventaja de pasar funciones como parámetros a otras funciones en C? Reduce el consumo de memoria del programa Permite aplicar diferentes operaciones o algoritmos a los datos sin tener que escribir múltiples funciones similares Evita la necesidad de utilizar recursividad Simplifica la lectura de datos desde archivos.
Denunciar Test