Вы находитесь на странице: 1из 20

Ejercicios de programación en C

Índice

1. Declaración e inicialización de variables....................................................................................... 2


2. Operadores aritméticos ................................................................................................................ 4
3. Introducción de datos por teclado ............................................................................................... 6
4. Sentencias if y switch .................................................................................................................... 7
5. Bucles ............................................................................................................................................ 9
6. Arrays .......................................................................................................................................... 10
7. Más ejercicios ............................................................................................................................. 12

Fuentes:
 Apartados 1 a 6:
Ejercicios de la asignatura “Programación” del primer curso del grado en Ingeniería
Informática de la Universidad Carlos III de Madrid
 Apartado 7:
“Fundamentos de programación en C, por Nacho Cabanes”.
http://www.nachocabanes.com/c/curso

Ejercicios de C 1
Nota: Cree un programa nuevo cuando se pida en el ejercicio y déle el nombre que se indica.
Algunos ejercicios están diseñados para que aparezcan errores de compilación. En esos
casos, no borre la sentencia que contiene el error, coméntela poniendo // al inicio de esa
línea.

Ejercicio 0
Salida por pantalla
Cree un programa denominado Programa00 que muestre por pantalla los nombres de dos
personas en líneas sucesivas. Ejemplo:

1. Declaración e inicialización de variables


Ejercicio 1
Declaración de variables y asignación de valores
Cree un programa denominado Programa01. Dentro de él cree una función main y dentro
de ella en sucesivas líneas declare una variable distinta para cada uno de los 4 tipos básicos
de C (int, float, double y char). A continuación en líneas sucesivas asigne valores adecuados a
cada una de estas variables. Muestre el valor de las variables por pantalla. Ejemplo para el
caso de una variable de tipo int:

int varEntera;
varEntera = 3456;
printf(“varEntera es: %i\n”, varEntera);

Ejercicio 2
Uso de variables no inicializadas
Declare una variable de cualquier tipo sin inicializarla. Imprima esta variable por pantalla,
¿qué ocurre? ¿Por qué?

Ejercicio 3
Cambio del valor de una variable
Cree una variable y asígnele un valor en la declaración. A continuación, en una nueva
instrucción, asigne un nuevo valor a esa variable. ¿Es posible cambiar el valor de una
variable? ¿Importa el tipo de la variable? Muestre el nuevo valor de la variable por pantalla.

Ejercicios de C 2
Ejercicio 4
Constantes
Cree una constante de cualquier tipo y asígnele un valor en la declaración. A continuación,
en otra línea cambie el valor de la constante, ¿es posible? ¿Por qué? Cree otra constante
pero ahora no le asigne valor en la declaración sino en la línea siguiente ¿es posible? ¿Por
qué?

Ejercicio 5
Rangos de los tipos básicos numéricos
Declare una variable para cada tipo numérico y pruebe a dar nuevos valores que sobrepasen
los rangos de cada uno de los tipos, ¿qué ocurre?

Ejercicio 6
Declaraciones simultáneas
Cree un programa denominado Programa02. Declare de una sola vez (en una sola sentencia)
3 variables del mismo tipo básico (cualquiera de ellos). En líneas posteriores inicialice cada
una de ellas.
Declare también, de una sola vez, tres variables de cualquier tipo numérico, inicializando la
primera y la última en la misma declaración. A continuación en otra línea inicialice la
segunda variable.

Ejercicio 7
Declaraciones de variables repetidas
Declare una variable de cualquier tipo y a continuación vuelva a declarar otra vez la misma
variable con el mismo tipo. ¿Es posible? ¿Y si declaramos la variable con un tipo distinto?

Ejercicio 8
Caracteres tipo char
¿Es posible crear un char con más de un carácter (ejemplo char b = 'hola')?

Ejercicio 9
Copia de variables
Cree un programa denominado Programa03. Cree dos variables de cualquiera de los tipos
numéricos básicos, dé valor a la primera y a continuación iguale la segunda a la primera.
Imprima por pantalla la segunda. En una línea posterior cambie el valor de la primera y
vuelva a imprimir la segunda, ¿cambia la segunda de valor? ¿Por qué? Haga lo mismo para
dos variables del tipo char.

Ejercicios de C 3
2. Operadores aritméticos
Ejercicio 10
Operaciones aritméticas con enteros (I)
Cree un programa denominado Programa04 y dentro de él teclee lo siguiente:
int a,b;
int c,d; a = 2;
b = 3 * 3; c = 7 / 3;
d = a + b * c;
printf(“%i \n”, d);

¿Cuál es el resultado del código anterior? ¿Es correcto? ¿Por qué?

Ejercicio 11
Operaciones aritméticas con enteros (II)
Cree un programa denominado Programa05. Declare tres variables de tipo int. Inicialice las
dos primeras variables con un valor cualquiera y a la tercera dele consecutivamente en
líneas distintas el valor de operar las dos anteriores con todos los operadores aritméticos de
C (suma, resta, multiplicación, división y resto). Imprima los resultados por pantalla.
¿Se produce algún fallo en los resultados? ¿Por qué? (Nota: una vez descubiertos los fallos,
para que el programa pueda compilar, en lugar de borrar las líneas en las que hay fallos,
conviértalas en comentarios usando //)

Ejercicio 12
Operaciones aritméticas con enteros (III)
Declare tres variables de tipo int. Dé valor 5 a la primera y valor 0 a la segunda. Haga que la
tercera sea igual a la primera dividida por la segunda. Imprima el resultado por pantalla. ¿Se
produce algún fallo? ¿Por qué?

Ejercicio 13
Operaciones fuera de rango
Cree una variable de tipo int y asígnele un valor, usando operadores aritméticos, que esté
fuera del rango de ese tipo de variables ¿Es posible? En caso afirmativo, imprima la variable
por pantalla, ¿qué ocurre? Haga lo mismo para una variable float o double.

Ejercicios de C 4
Ejercicio 14
Suma de números
Crear un programa (Programa06) que cree un int y un double. A continuación debe
sumarlos, guardar el resultado en una variable de tipo float e imprimir la variable.

Ejercicio 15
Temperatura
Crear un programa (Programa07) que convierta una temperatura en grados centígrados a
temperatura en grados Fahrenheit e imprima el resultado de la siguiente forma: X grados
centígrados son Y grados Fahrenheit (recordar que (F-32)/9 = C/5)

Ejercicio 16
Horas
Crear un programa (Programa08) que transforme segundos en su equivalente en horas (por
ejemplo 3680 segundos son 1 hora, 1 minuto y 20 segundos)

Ejercicios de C 5
3. Introducción de datos por teclado
Ejercicio 17
Suma de números
Crear un programa (Programa09) que le pida al usuario que introduzca por teclado dos int.
A continuación debe sumarlos, guardar el resultado en una variable de tipo int e imprimir la
variable.

Ejercicio 18
Temperatura
Crear un programa (Programa10) que pida por teclado una temperatura en grados
centígrados e imprima su correspondiente temperatura en grados Fahrenheit de la siguiente
forma: X grados centígrados son Y grados Fahrenheit (recordar que (F-32)/9 = C/5)

Ejercicio 19
Horas
Crear un programa (Programa11) que reciba por teclado un valor entero que represente
segundos y lo convierta en su equivalente en horas (por ejemplo 3680 segundos son 1 hora,
1 minuto y 20 segundos)

Ejercicios de C 6
4. Sentencias if y switch
Ejercicio 20
Programa12: Hacer un programa que imprima si un número introducido por teclado es par o
impar.

Ejercicio 21
Programa13: Hacer un programa que imprima cuál de los dos números introducidos por el
teclado es mayor o si son iguales.

Ejercicio 22
Programa14: Hacer un programa que pida dos números por teclado e imprima si el primero
es divisible por el segundo.

Ejercicio 23
Programa15: Hacer un programa que pida al usuario dos números enteros y muestre el
resultado de dividir el primero por el segundo. Si el segundo es cero, en lugar de dividir
deberá imprimir “No se puede dividir por cero usando enteros”.

Ejercicio 24
Programa16: Hacer un programa que le pida al usuario por el teclado dos nombres y dos
edades e imprima que fulanito es mayor que menganito. Ej. Si introducimos Pepe 23 y Luisa
18, debe imprimir Pepe es mayor que Luisa. Si tienen la misma edad, debe imprimir Pepe y
Luisa tienen la misma edad.

Ejercicio 25
Programa17: Hacer un programa que pida por teclado una edad e imprima el precio de una
entrada de cine según la edad. El precio normal son 9 euros, para menores de 5 años hay un
60% de descuento, para menores de 26 un 20% y para mayores de 65 un 40%.

Ejercicio 26
Programa18: Escribir un programa que lea tres números por teclado y los imprima de menor
a mayor.

Ejercicios de C 7
Ejercicio 27
Programa19: Cree un programa que pida al usuario introducir un número. Una vez recibido
el número, utilizando la sentencia if, se deberá imprimir por pantalla lo siguiente:
● En caso de que el número sea igual a “1”, se deberá imprimir “11111”.
● En caso de que el número sea igual a “2”, se deberá imprimir “22222”.
● En cualquier otro caso, se deberá imprimir “otro”.

Ejercicio 28
Programa20: Escribir un programa que pida ingresar la coordenada de un punto en el plano,
es decir dos valores enteros x e y (distintos a cero). Posteriormente imprimir en pantalla en
qué cuadrante se ubica dicho punto. (1º Cuadrante si x > 0 Y y > 0 , 2º Cuadrante: si x < 0 Y y
> 0, etc.)

Ejercicio 29
Programa21: De un operario se conoce su sueldo y los años de antigüedad. Se pide
confeccionar un programa que lea los datos de entrada y visualice:
● Si el sueldo es inferior a 500 y su antigüedad es igual o superior a 10 años, otorgarle
un aumento del 20 %, mostrar el sueldo a pagar.
● Si el sueldo es inferior a 500 pero su antigüedad es menor a 10 años, otorgarle un
aumento de 5 %.
● Si el sueldo es mayor o igual a 500 mostrar el sueldo en pantalla sin cambios.

Ejercicio 30
Programa22: Un año es bisiesto si es múltiplo de 4, exceptuando los múltiplos de 100, que
sólo son bisiestos cuando son múltiplos además de 400, por ejemplo el año 1900 no fue
bisiesto, pero el año 2000 si lo será. Hacer un programa que pida al usuario un año, y diga si
es o no bisiesto.

Ejercicio 31
Programa23: Realizar un programa que recibe como dato un número positivo
correspondiente a una cantidad de dinero y calcula e imprime el mejor desglose de moneda
(mínimo número de unidades monetarias) Las unidades monetarias existentes son:
● Billetes de: 500, 200, 100, 50, 20, 10 y 5 €
● Monedas de 2 €, 1 €, 50, 20, 10, 5, 2, 1 céntimos
El programa NO debe imprimir nada para aquellas unidades monetarias cuya cantidad sea
cero.

Ejercicios de C 8
5. Bucles
Ejercicio 32
Programa24: Escribir un programa que presente en pantalla, en líneas sucesivas, todos los
múltiplos de 3 hasta el 30.

Ejercicio 33
Programa25: Escribir un programa que lea números enteros por teclado hasta que el
usuario introduzca el 0. El programa debe imprimir por pantalla la suma de todos los
números y la media (con decimales).

Ejercicio 34
Programa26: Hacer un programa que imprima por pantalla todos los números flotantes del
1 al 100, separados por comas, sumando de 1.5 en 1.5. Ejemplo: 1.0, 2.5, 4.0, 5.5,…

Ejercicio 35
Programa27: Hacer un programa que reciba por teclado un número entero y cuántos
múltiplos hay que escribir de ese número por pantalla. Ejemplo, si recibe un 3 y un 5, deberá
imprimir 3, 6, 9, 12, 15.

Ejercicio 36
Programa28: Escribir un programa para jugar al juego de acertar un número. El programa
generará automáticamente un número entre 1 y 100 y le pedirá al usuario que intente
adivinarlo. Cada vez que el usuario lo intente, le dirá si su número es mayor o menor que el
buscado. Al final debe imprimir qué número era y cuántos intentos ha necesitado.

Ejercicios de C 9
6. Arrays
Ejercicio 37
Igualando elementos de arrays
Cree un array de cualquier tipo dando valor a sus elementos en la misma declaración. Iguale
dos de sus elementos (ejemplo a[5]=a[3]), imprima ambos elementos. A continuación en
otra línea cambie el valor del segundo elemento (a[5]), imprima los dos otra vez ¿cambia
también el primero? ¿Por qué? ¿Y si cambiamos el primero en lugar del segundo?

Ejercicio 38
Programa29: Crear un array que guarde los resultados de la quiniela para una sola jornada
(15 resultados que pueden ser 1, X o 2). Rellenarlo al azar usando un bucle e imprimirlo.

Ejercicio 39
Programa30: Escribir un programa que realice lo siguiente:
a) Pedir al usuario que introduzca el tamaño del array de datos int que hay que crear.
b) Crearlo y rellenarlo aleatoriamente con números del 1 al 49.
c) Crear una variable de tipo entero llamada total.
d) Introducir en la variable total la suma de los elementos del array
e) Imprimir el valor de la variable total

Ejercicio 40
Programa31: Escribir un programa que cree un array de 20 posiciones de números enteros y
lo rellene aleatoriamente con números del 1 al 9. Pedir al usuario un número entre 1 y 9 y
decirle si el número está en el array y en qué posición.

Ejercicio 41
Programa32: Crear un programa que lea un número entero del teclado, cree una matriz
cuadrada de char rellena de ‘*’ de ese tamaño y lo imprima por pantalla. Por ejemplo, si se
recibe un 4, debe imprimir:

****
****
****
****

Ejercicios de C 10
Ejercicio 42
Programa33: Crear un programa similar al anterior, pero que solamente imprima el ‘marco’
de la matriz cuadrada. Ejemplo: si se recibe un 4:
****
* *
* *
****

Ejercicios de C 11
7. Más ejercicios
printf: texto
(1.1.1) Crea un programa en C que te salude por tu nombre (ej: "Hola, Nacho").

printf: enteros
(1.2.1) Crea un programa que diga el resultado de sumar 118 y 56.

operaciones aritméticas básicas


(1.3.0.1) Hacer un programa que calcule el producto de los números 12 y 13.
(1.3.0.2) Un programa que calcule la diferencia entre 12345 y 998.
(1.3.0.3) Un programa que calcule y muestre el resultado de dividir 3765 entre 18 y el resto
de esa división.

Orden de prioridad de los operadores


(1.3.1.1) Calcular (a mano y después comprobar desde C el resultado de estas operaciones:
 -2 + 3 * 5
 (20+5) % 6
 15 + -5*6 / 10
 2 + 10 / 5 * 2 - 7 % 1

Variables: enteros
(1.4.3.1) Hacer un programa que calcule el producto de los números 121 y 132, usando
variables.

scanf
(1.7.1) Multiplicar dos números tecleados por usuario
(1.7.2) El usuario tecleará dos números (x e y), y el programa deberá calcular cuál es el
resultado de su división y el resto de esa división.
(1.7.3) El usuario tecleará dos números (a y b), y el programa mostrará el resultado de la
operación (a + b) * (a − b) y el resultado de la operación a2 − b2.

Modificadores de enteros
(2.1.1.1) Multiplicar dos números de 4 cifras que teclee el usuario, usando el modificador
"long".

Ejercicios de C 12
Unidades de medida
(2.1.3.1) Crea un programa que te diga cuántos bytes son 3 megabytes.
(2.1.3.2) ¿Cuántas letras se podrían almacenar en una agenda electrónica que tenga 32 KB
de capacidad? (primero calcúlalo en papel y luego crea un programa en C que te dé la
respuesta).
(2.1.3.3) Si suponemos que una canción típica en formato MP3 ocupa cerca de 3.500 KB,
¿cuántas se podrían guardar en un reproductor MP3 que tenga 256 MB de capacidad?
(2.1.3.4) ¿Cuántos diskettes de 1,44 MB harían falta para hacer una copia de seguridad de un
ordenador que tiene un disco duro de 6,4 GB? ¿Y si usamos compact disc de 700 MB,
cuántos necesitaríamos?
(2.1.3.5) ¿A cuántos CD de 700 MB equivale la capacidad de almacenamiento de un DVD de
4,7 GB? ¿Y la de uno de 8,5 GB?

Sistemas de numeración: binario


(2.1.5.1) Expresar en sistema binario los números decimales 17, 101, 83, 45.
(2.1.5.2) Expresar en sistema decimal los números binarios de 8 bits: 01100110, 10110010,
11111111, 00101101
(2.1.5.3) Sumar los números 01100110+10110010, 11111111+00101101. Comprobar el
resultado sumando los números decimales obtenidos en el ejercicio anterior.
(2.1.5.4) Multiplicar los números binarios de 4 bits 0100·1011, 1001·0011. Comprobar el
resultado convirtiéndolos a decimal.

Sistemas de numeración: octal


(2.1.6.1) Expresar en sistema octal los números decimales 17, 101, 83, 45.
(2.1.6.2) Expresar en sistema octal los números binarios de 8 bits: 01100110, 10110010,
11111111, 00101101
(2.1.6.3) Expresar en el sistema binario los números octales 171, 243, 105, 45.
(2.1.6.4) Expresar en el sistema decimal los números octales 162, 76, 241, 102.

Sistemas de numeración: hexadecimal


(2.1.7.1) Expresar en sistema hexadecimal los números decimales 18, 131, 83, 245.
(2.1.7.2) Expresar en sistema hexadecimal los números binarios de 8 bits: 01100110,
10110010, 11111111, 00101101
(2.1.7.3) Expresar en el sistema binario los números hexadecimales 2F, 37, A0, 1A2.
(2.1.7.4) Expresar en el sistema decimal los números hexadecimales 1B2, 76, E1, 2A.

Ejercicios de C 13
Ejercicio 43Formato de constantes enteras: oct, hex
(2.1.8.1) Crea un programa en C que exprese en el sistema decimal los números octales 162,
76, 241, 102.
(2.1.8.2) Crea un programa en C que exprese en el sistema decimal los números
hexadecimales 1B2, 76, E1, 2A.

Ejercicio 44Representación interna de los enteros


(2.1.9.1) convertir los números decimales 13, 34, -13, -34 a sistema binario, usando
complemento a uno para expresar los números negativos. Calcular (en binario) el resultado
de las operaciones 13+34, (-13)+(-34), 13+(-34) y comprobar que los resultados que se
obtienen son los correctos.
(2.1.9.2) convertir los números decimales 13, 34, -13, -34 a sistema binario, usando
complemento a dos para expresar los números negativos. Calcular (en binario) el resultado
de las operaciones 13+34, (-13)+(-34), 13+(-34) y comprobar que los resultados que se
obtienen son los correctos.

Ejercicio 45Incremento y decremento


(2.1.10.1) Crear un programa que use tres variables x, y, z. Sus valores iniciales serán 15, -10,
2.147.483.647. Se deberá incrementar el valor de estas variables. ¿Qué valores esperas que
se obtengan? Contrástalo con el resultado obtenido por el programa.
(2.1.10.2) ¿Cuál sería el resultado de las siguientes operaciones? a=5; b=++a; c=a++; b=b*5;
a=a*2;

Ejercicio 46Operaciones abreviadas: +=


(2.1.11.1) Crear un programa que use tres variables x, y, z. Sus valores iniciales serán 15, -10,
214. Se deberá incrementar el valor de estas variables en 12, usando el formato abreviado.
¿Qué valores esperas que se obtengan? Contrástalo con el resultado obtenido por el
programa.
(2.1.11.2) ¿Cuál sería el resultado de las siguientes operaciones? a=5; b=a+2; b-=3; c=-3;
c*=2; ++c; a*=b;

Ejercicio 47Mostrar en pantalla números reales


(2.2.1) El usuario de nuestro programa podrá teclear dos números de hasta 8 cifras
significativas. El programa deberá mostrar el resultado de dividir el primer número entre el
segundo, utilizando tres cifras decimales.
(2.2.2) Crear un programa que use tres variables x,y,z. Las tres serán números reales, y nos
bastará con dos cifras decimales. Deberá pedir al usuario los valores para las tres variables y
mostrar en pantalla cual es el mayor de los tres números tecleados.

Ejercicios de C 14
Operador de tamaño: sizeof
(2.3.1) Descubrir cuál es el espacio ocupado por un "int" en el sistema operativo y
compilador que utilizas.

Secuencias de escape: \n y otras


(2.5.1.1) Crear un programa que pida al usuario que teclee cuatro letras y las muestre en
pantalla juntas, pero en orden inverso, y entre comillas dobles. Por ejemplo si las letras que
se teclean son a, l, o, h, escribiría "hola".

if
(3.1.1.1) Crear un programa que pida al usuario un número entero y diga si es par (pista:
habrá que comprobar si el resto que se obtiene al dividir entre dos es cero: if (x % 2 == 0) …).
(3.1.1.2) Crear un programa que pida al usuario dos números enteros y diga cuál es el mayor
de ellos.
(3.1.1.3) Crear un programa que pida al usuario dos números enteros y diga si el primero es
múltiplo del segundo (pista: igual que antes, habrá que ver si el resto de la división es cero: a
% b == 0).

Operadores relacionales: <, <=, >, >=, ==, !=


(3.1.3.1) Crear un programa que multiplique dos números enteros de la siguiente forma:
pedirá al usuario un primer número entero. Si el número que se que teclee es 0, escribirá en
pantalla "El producto de 0 por cualquier número es 0". Si se ha tecleado un número distinto
de cero, se pedirá al usuario un segundo número y se mostrará el producto de ambos.
(3.1.3.2) Crear un programa que pida al usuario dos números reales. Si el segundo no es
cero, mostrará el resultado de dividir entre el primero y el segundo. Por el contrario, si el
segundo número es cero, escribirá "Error: No se puede dividir entre cero".

if - else
(3.1.4.1) Mejorar la solución a los dos ejercicios del apartado anterior, usando "else".

Operadores lógicos: &&, ||, !


(3.1.5.1) Crear un programa que pida una letra al usuario y diga si se trata de una vocal.
(3.1.5.2) Crear un programa que pida al usuario dos números enteros y diga "Uno de los
números es positivo", "Los dos números son positivos" o bien "Ninguno de los números es
positivo", según corresponda.
(3.1.5.3) Crear un programa que pida al usuario tres números reales y muestre cuál es el
mayor de los tres.
(3.1.5.4) Crear un programa que pida al usuario dos números enteros cortos y diga si son
iguales o, en caso contrario, cuál es el mayor de ellos.

Ejercicios de C 15
Diagramas de flujo
(3.1.8.1) Crear el diagrama de flujo y la versión en C de un programa que dé al usuario tres
oportunidades para adivinar un número del 1 al 10.
(3.1.8.2) Crear el diagrama de flujo para el programa que pide al usuario dos números y dice
si uno de ellos es positivo, si lo son los dos o si no lo es ninguno.
(3.1.8.3) Crear el diagrama de flujo para el programa que pide tres números al usuario y dice
cuál es el mayor de los tres.

Operador condicional: ?
(3.1.9.1) Crear un programa que use el operador condicional para mostrar un el valor
absoluto de un número de la siguiente forma: si el número es positivo, se mostrará tal cual;
si es negativo, se mostrará cambiado de signo.
(3.1.9.2) Crear un programa que use el operador condicional para dar a una variable llamada
"iguales" (entera) el valor 1 si los dos números que ha tecleado el usuario son iguales, o el
valor 0 si son distintos.
(3.1.9.3) Usar el operador condicional para calcular el mayor de dos números.

switch
(3.1.10.1) Crear un programa que lea una letra tecleada por el usuario y diga si se trata de
una vocal, una cifra numérica o una consonante.
(3.1.10.2) Crear un programa que lea una letra tecleada por el usuario y diga si se trata de un
signo de puntuación, una cifra numérica o algún otro carácter.
(3.1.10.3) Repetir los dos programas anteriores, empleando "if" en lugar de "switch".

while
(3.2.1.1) Crear un programa que pida al usuario su contraseña (numérica). Deberá terminar
cuando introduzca como contraseña el número 4567, pero volvérsela a pedir tantas veces
como sea necesario.
(3.2.1.2) Crea un programa que escriba en pantalla los números del 1 al 10, usando "while".
(3.2.1.3) Crea un programa que escriba en pantalla los números pares del 26 al 10
(descendiendo), usando "while".
(3.2.1.4) Crear un programa que calcule cuántas cifras tiene un número entero positivo
(pista: se puede hacer dividiendo varias veces entre 10).

do…while
(3.2.2.1) Crear un programa que pida números positivos al usuario, y vaya calculando la
suma de todos ellos (terminará cuando se teclea un número negativo o cero).
(3.2.2.2) Crea un programa que escriba en pantalla los números del 1 al 10, usando
"do..while".

Ejercicios de C 16
(3.2.2.3) Crea un programa que escriba en pantalla los números pares del 26 al 10
(descendiendo), usando "do..while".
(3.2.2.4) Crea un programa que pida al usuario su código de usuario (un número entero) y su
contraseña numérica (otro número entero), y no le permita seguir hasta que introduzca
como código 1024 y como contraseña 4567.

for
(3.2.3.1) Crear un programa que muestre los números del 15 al 5, descendiendo (pista: en
cada pasada habrá que descontar 1, por ejemplo haciendo i--).
(3.2.3.2) Crear un programa que muestre los primeros ocho números pares (pista: en cada
pasada habrá que aumentar de 2 en 2, o bien mostrar el doble del valor que hace de
contador).
(3.2.3.3) Crear un programa que muestre las letras de la Z (mayúscula) a la A (mayúscula,
descendiendo).
(3.2.3.4) Crear un programa que escriba en pantalla la tabla de multiplicar del 6.
(3.2.3.5) Crear un programa que escriba en pantalla los números del 1 al 50 que sean
múltiplos de 3 (pista: habrá que recorrer todos esos números y ver si el resto de la división
entre 3 resulta 0).

break
(3.3.1) Crear un programa que pida un número al usuario (entre 1 y 100) y muestre tantas
letras A como indique ese número, usando "break" para terminar.

continue
(3.4.1) Crear un programa que pida un número al usuario (entre 1 y 20) y muestre los
números el 1 al 20, excepto el indicado por el usuario, usando "continue" para evitar ese
valor.

bucles
(3.7.1) Crear un programa que dé al usuario la oportunidad de adivinar un número del 1 al
100 (prefijado en el programa) en un máximo de 6 intentos. En cada pasada deberá avisar de
si se ha pasado o se ha quedado corto.
(3.7.2) Crear un programa que descomponga un número (que teclee el usuario) como
producto de sus factores primos. Por ejemplo, 60 = 2 · 2 · 3 · 5

printf: especificadores de formato


(4.1.1) Un programa que pida al usuario un número entero y muestre sus equivalentes en
formato hexadecimal y en octal. Deberá seguir pidiendo (y convirtiendo) números hasta que
se introduzca 0.

Ejercicios de C 17
(4.1.2) Un programa que pida al usuario 2 números reales y muestre su división con 2
decimales (excepto si el segundo es 0; en ese caso, deberá decir "no se puede dividir").

scanf: especificadores de formato


(4.2.1) Un programa que pida al usuario un número hexadecimal y muestre su equivalente
en base 10.
(4.2.2) Un programa que pida al usuario un número octal y muestre su equivalente en base
10.
(4.2.3) Un programa que pida al usuario una letra, después le pida una segunda letra, y las
muestre en el orden contrario al que se introdujeron.

putchar
(4.3.1) Un programa que escriba las letras de la A (a mayúscula) a la Z (z mayúscula), usando
"for" y "putchar".

getchar
(4.4.1) Un programa que pida al usuario 4 letras (usando "getchar") y las muestre en orden
inverso (por ejemplo, si las letras son "h o l a", escribiría "aloh").

arrays
(5.1.1.1) Un programa que pida al usuario 4 números, los memorice (utilizando un array),
calcule su media aritmética y después muestre en pantalla la media y los datos tecleados.
(5.1.1.2) Un programa que pida al usuario 5 números reales y luego los muestre en el orden
contrario al que se introdujeron.

arrays: inicialización
(5.1.2.1) Un programa que almacene en una tabla el número de días que tiene cada mes
(supondremos que es un año no bisiesto), pida al usuario que le indique un mes (1=enero,
12=diciembre) y muestre en pantalla el número de días que tiene ese mes.
(5.1.2.2) Un programa que almacene en una tabla el número de días que tiene cada mes
(año no bisiesto), pida al usuario que le indique un mes (ej. 2 para febrero) y un día (ej. el día
15) y diga qué número de día es dentro del año (por ejemplo, el 15 de febrero sería el día
número 46, el 31 de diciembre sería el día 365).

arrays: recorrer los elementos


(5.1.3.1) A partir del programa propuesto en 5.1.2, que almacenaba en una tabla el número
de días que tiene cada mes, crear otro que pida al usuario que le indique la fecha, detallando
el día (1 al 31) y el mes (1=enero, 12=diciembre), como respuesta muestre en pantalla el
número de días que quedan hasta final de año.

Ejercicios de C 18
(5.1.3.2) Crear un programa que pida al usuario 10 números y luego los muestre en orden
inverso (del último al primero).
(5.1.3.3) Crear un programa que pida al usuario 10 números, calcule su media y luego
muestre los que están por encima de la media.
(5.1.3.4) Un programa que pida al usuario 10 números enteros y calcule (y muestre) cuál es
el mayor de ellos.

cadenas de caracteres (strings): scanf


(5.2.1.1) Un programa que te pida tu nombre y una cifra numérica, y escriba tu nombre
tantas veces como indique esa cifra numérica.
(5.2.1.2) Un programa similar al anterior, pero que pida en primer lugar la cifra numérica y
después tu nombre, y luego escriba el nombre tantas veces como indique esa cifra numérica.

strings: acceso
(5.2.2.1) Un programa que pida al usuario que introduzca una palabra, cambie su primera
letra por una "A" y muestre la palabra resultante.

strlen
(5.2.3.1) Un programa que te pida tu nombre y lo muestre en pantalla separando cada letra
de la siguiente con un espacio. Por ejemplo, si tu nombre es "Juan", debería aparecer en
pantalla "J u a n".
(5.2.3.2) Un programa que te pida tu nombre y lo muestre en pantalla separando al revés.
Por ejemplo, si tu nombre es "Juan", debería aparecer en pantalla "nauJ".

gets y puts
(5.2.4.1) Un programa que te pida una frase y la muestre en pantalla sin espacios. Por
ejemplo, si la frase es "Hola, como estás", debería aparecer en pantalla "Hola,comoestás".

getchar
(5.2.4.2) Un programa que te pida tu nombre (usando "gets") y una cifra numérica, y escriba
tu nombre tantas veces como indique esa cifra numérica.
(5.2.4.3) Un programa similar al anterior, pero que pida en primer lugar la cifra numérica y
después tu nombre (con "gets"), y luego escriba el nombre tantas veces como indique esa
cifra numérica.

Ejercicios de C 19
strcpy, strncpy y strcat
(5.2.5.1) Un programa que te pida una palabra, y la almacene en la variable llamada "texto".
Luego deberá pedir una segunda palabra, y añadirla al final de "texto". Finalmente, deberá
pedir una tercera palabra, y guardarla en la variable "texto" y en otra variable llamada
"texto2".

strcmp
(5.2.6.1) Crear un programa que pida al usuario su contraseña. Deberá terminar cuando
introduzca como contraseña la palabra "clave", pero volvérsela a pedir tantas veces como
sea necesario.
(5.2.6.2) Crear un programa que pida al usuario su nombre y su contraseña, y no le permita
seguir hasta que introduzca como nombre "Pedro" y como contraseña "Peter".

sprintf y sscanf
(5.2.7.1) Un programa que pida tu nombre, tu día de nacimiento y tu mes de nacimiento y lo
junte todo en una cadena, separando el nombre de la fecha por una coma y el día del mes
por una barra inclinada, así: "Juan, nacido el 31/12".

arrays de n dimensiones
(5.3.1) Un programa guarde los nombres de los meses. El usuario deberá indicar un número
de mes (por ejemplo, 3) y se le mostrará el nombre de dicho mes (por ejemplo, Marzo).
(5.3.2) Usar un array de 3 dimensiones para guardar los nombres de los meses en español e
inglés. El usuario deberá indicar un número de mes (por ejemplo, 3) y se le mostrará el
nombre de dicho mes en español (Marzo) y en inglés (March).

arrays indeterminados
(5.4.1) Un programa que pida 10 nombres y los memorice. Después deberá pedir que se
teclee un nombre y dirá si se encuentra o no entre los 10 que se han tecleado antes. Volverá
a pedir otro nombre y a decir si se encuentra entre ellos, y así sucesivamente hasta que se
teclee "fin".
(5.4.2) Un programa que prepare espacio para un máximo de 100 nombres (de un máximo
de 80 letras cada uno). El usuario deberá ir introduciendo un nombre cada vez, hasta que se
pulse Intro sin teclear nada, momento en el que dejarán de pedirse más nombres y se
mostrará en pantalla la lista de los nombres que se han introducido hasta entonces.

Ejercicios de C 20

Вам также может понравиться