Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Ejercicios de cadenas, Ejercicios de Introducción a la Informática

Es un ejercicio de cadenas del año 2026

Tipo: Ejercicios

2025/2026

Subido el 25/11/2025

walid-chentouf
walid-chentouf 🇪🇸

1 documento

1 / 4

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Introducción a la programación Cuaderno de trabajo 5 (última revisión: noviembre 2025) 1
Introducción a la Programación
Cuaderno de Trabajo 5
Ejercicios resueltos
1. Escribe un programa que solicite del usuario una cadena y determine si contiene, al
menos una vez, cada una de las cinco vocales.
SOLUCION PROPUESTA:
#include <stdio.h>
#include <string.h>
int main(void) {
char cadena[100];
short int a=0, e=0, i=0, o=0, u=0, tam;
printf("Introduzca una palabra... \n");
gets(cadena);
tam = strlen(cadena);
for(int cont = 0 ; cont<tam; cont++)
switch(cadena[cont]){
case 'a': a++; break;
case 'e': e++; break;
case 'i': i++; break;
case 'o': o++; break;
case 'u': u++;
}
if (a*e*i*o*u) printf("La palabra %s tiene todas las vocales\n",cadena);
else printf("La palabra %s NO tiene todas las vocales\n",cadena);
return 0;
}
2. Escribe un programa que lea una frase y la muestre invertida por pantalla.
SOLUCION PROPUESTA:
#include <stdio.h>
#include <string.h>
#define MAX_SIZE 100
int main(){
char cadena_original[MAX_SIZE], cadena_invertida[MAX_SIZE];
int pos_original, pos_invertida;
printf("Introduzca una frase o palabra: ");
gets(cadena_original);
pos_original = strlen(cadena_original) - 1;
pos_invertida=0
while(pos_original >= 0) {
cadena_invertida[pos_invertida] = cadena_original[pos_original];
pos_original--;
pos_invertida++;
}
cadena_invertida[pos_invertida] = '\0';
printf("\nOriginal: %s\n", cadena_original);
printf("Invertida: %s", cadena_invertida);
return 0;
}
pf3
pf4

Vista previa parcial del texto

¡Descarga Ejercicios de cadenas y más Ejercicios en PDF de Introducción a la Informática solo en Docsity!

Cuaderno de Trabajo 5

Ejercicios resueltos

1. Escribe un programa que solicite del usuario una cadena y determine si contiene, al menos una vez, cada una de las cinco vocales. SOLUCION PROPUESTA: #include <stdio.h> #include <string.h> int main(void) { char cadena[100]; short int a=0, e=0, i=0, o=0, u=0, tam; printf("Introduzca una palabra... \n"); gets(cadena); tam = strlen(cadena); for(int cont = 0 ; cont<tam; cont++) switch(cadena[cont]){ case 'a': a++; break; case 'e': e++; break; case 'i': i++; break; case 'o': o++; break; case 'u': u++; } if (aeiou) printf("La palabra %s tiene todas las vocales\n",cadena); else printf("La palabra %s NO tiene todas las vocales\n",cadena); return 0; }

  1. Escribe un programa que lea una frase y la muestre invertida por pantalla. SOLUCION PROPUESTA: #include <stdio.h> #include <string.h> #define MAX_SIZE 100 int main(){ char cadena_original[MAX_SIZE], cadena_invertida[MAX_SIZE]; int pos_original, pos_invertida; printf("Introduzca una frase o palabra: "); gets(cadena_original); pos_original = strlen(cadena_original) - 1; pos_invertida= while(pos_original >= 0) { cadena_invertida[pos_invertida] = cadena_original[pos_original]; pos_original--; pos_invertida++; } cadena_invertida[pos_invertida] = '\0'; printf("\nOriginal: %s\n", cadena_original); printf("Invertida: %s", cadena_invertida); return 0; }

Cuaderno de Trabajo 5

Ejercicios nivel básico

  1. Programa un código que, sin usar la función strlen(), lea una cadena de caracteres y calcule su longitud.
  2. Crea un programa en C que permita leer por separado el nombre, apellidos y DNI de 10 personas y a partir de ahí genere, por persona, una cadena de caracteres con las 4 cadenas leídas y las almacene en un array de 10 posiciones.
  3. Haz un programa que lea una frase y elimine los espacios al principio y al final de la misma, si los hubiera. Por ejemplo, la frase: " Hoy no me puedo levantar " se debe transformar en "Hoy no me puedo levantar".
  4. Escribe un programa que codifique una cadena de caracteres leída por teclado, cambiando sus vocales así: a/A→4, e/E→3, i/I→1, o/O→0, u/U→#
  5. Elabora un código que determine si una palabra leída por teclado es un palíndromo o no. Palíndromo son palabras que se leen igual de izquierda a derecha que de derecha a izquierda, por ejemplo ANA.
  6. Dada una expresión comprobar si el balanceo de los paréntesis es correcto. Es decir, (xx(xx)x(xxx(x))) está balanceada, pero )xx(x)xx(xx(x))( no lo está, a pesar de tener el mismo número de paréntesis abiertos que cerrados.
  7. Escribe un programa en C que gestione una lista de nombres de usuarios y realice las siguientes operaciones: a. Solicitar al usuario que introduzca una lista de nombres de usuarios, separados por comas. b. Contar el número de usuarios en la lista. c. Buscar un nombre de usuario específico en la lista.

Ejercicios nivel intermedio

  1. Haz un programa en C que muestre la letra de mayor frecuencia de una cadena.
  2. Escribe un programa que traduzca los nombres de personajes Disney del inglés al español. Utiliza para ello dos arrays paralelos: EN [“Mickey mouse", “Donald duck", “Huey", “Dewey", “Louie"] y ES [“Ratón Mickey", “Pato donald", “Juanito", “Jaimito", “Jorgito"]. Una vez configurados los arrays, utilízalos para leer personajes por teclado (pueden ser estos y otros) y responder con un texto que diga bien “el personaje no tiene traducción al español” o que si está en los arrays muestre la frase “el personaje XXX en español se llama YYY”. Este proceso seguirá hasta que el usuario introduzca el texto “FIN”.
  3. Escribe un programa que lea del teclado dos palabras y calcule el mayor prefijo común de las mismas. Ejemplo: Dadas las palabras "Alternativo" y "Altercado", el mayor prefijo común seria "Alter".

Cuaderno de Trabajo 5

Ejercicio de nivel avanzado

Desarrolla un programa en C que lea una lista de hasta 25 palabras y las almacene en un vector, para posteriormente simular un juego en el que el ordenador elige aleatoriamente una palabra de la lista y el usuario intentará adivinarla. Cada vez que se ejecute el programa, se elegirá una palabra seleccionada y se ofrecerá al usuario adivinarla, lo cual hará letra por letra, con un máximo de 10 errores. En cada intento el usuario puede ganar entre 1. 000 y 10.000 puntos, cantidad que se sortea cada vez. Tras cada intento se mostrará al usuario el estado actual del juego: letras y posiciones adivinadas, total de puntos acumulados y número de errores cometidos. Si la letra ingresada por el usuario está presente en la palabra, el total de puntos se incrementará en el valor sorteado multiplicado por la cantidad de veces que aparece dicha letra. Un ejemplo del progreso del juego sería el siguiente: Palabras en la lista: [“programa”, “ordenador”, “juego”, “vector”, “puntos”] Palabra seleccionada: “juego” [se mantiene en secreto y no se muestra] Mensaje inicial: Intenta adivinar la palabra secreta… “j _ _ _ o” Intentos del usuario:

  1. Letra ingresada: “e” Resultado: La letra “e” está en la palabra. Puntos sorteados: 5000 Estado del juego: j _ e _ o Total de puntos: 5000 Errores: 0
  2. Letra ingresada: “a” Resultado: La letra “a” no está en la palabra. Puntos sorteados: 3000 Estado del juego: j _ e _ o Total de puntos: 5000 Errores: 1
  3. Letra ingresada: “u” Resultado: La letra “u” está en la palabra. Puntos sorteados: 7000 Estado del juego: j u e _ o Total de puntos: 12000 Errores: 1
  4. Letra ingresada: “g” Resultado: La letra “g” está en la palabra. Puntos sorteados: 6000 Estado del juego: j u e g o Total de puntos: 18000 Errores: 1 Resultado final: ¡Palabra adivinada con éxito! Total de puntos: 18000, Errores: 1