tectarque.16mb.comtectarque.16mb.com/apuntes/Ejercicios C.docx · Web viewque muestre por pantalla...

28
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

Transcript of tectarque.16mb.comtectarque.16mb.com/apuntes/Ejercicios C.docx · Web viewque muestre por pantalla...

Page 1: tectarque.16mb.comtectarque.16mb.com/apuntes/Ejercicios C.docx · Web viewque muestre por pantalla los nombres de dos personas en líneas sucesivas. Ejemplo: Declaración e inicialización

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

Page 2: tectarque.16mb.comtectarque.16mb.com/apuntes/Ejercicios C.docx · Web viewque muestre por pantalla los nombres de dos personas en líneas sucesivas. Ejemplo: Declaración e inicialización

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 variablesEjercicio 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

Page 3: tectarque.16mb.comtectarque.16mb.com/apuntes/Ejercicios C.docx · Web viewque muestre por pantalla los nombres de dos personas en líneas sucesivas. Ejemplo: Declaración e inicialización

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

Page 4: tectarque.16mb.comtectarque.16mb.com/apuntes/Ejercicios C.docx · Web viewque muestre por pantalla los nombres de dos personas en líneas sucesivas. Ejemplo: Declaración e inicialización

2. Operadores aritméticosEjercicio 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

Page 5: tectarque.16mb.comtectarque.16mb.com/apuntes/Ejercicios C.docx · Web viewque muestre por pantalla los nombres de dos personas en líneas sucesivas. Ejemplo: Declaración e inicialización

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

Page 6: tectarque.16mb.comtectarque.16mb.com/apuntes/Ejercicios C.docx · Web viewque muestre por pantalla los nombres de dos personas en líneas sucesivas. Ejemplo: Declaración e inicialización

3. Introducción de datos por tecladoEjercicio 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

Page 7: tectarque.16mb.comtectarque.16mb.com/apuntes/Ejercicios C.docx · Web viewque muestre por pantalla los nombres de dos personas en líneas sucesivas. Ejemplo: Declaración e inicialización

4. Sentencias if y switchEjercicio 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

Page 8: tectarque.16mb.comtectarque.16mb.com/apuntes/Ejercicios C.docx · Web viewque muestre por pantalla los nombres de dos personas en líneas sucesivas. Ejemplo: Declaración e inicialización

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

Page 9: tectarque.16mb.comtectarque.16mb.com/apuntes/Ejercicios C.docx · Web viewque muestre por pantalla los nombres de dos personas en líneas sucesivas. Ejemplo: Declaración e inicialización

5. BuclesEjercicio 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

Page 10: tectarque.16mb.comtectarque.16mb.com/apuntes/Ejercicios C.docx · Web viewque muestre por pantalla los nombres de dos personas en líneas sucesivas. Ejemplo: Declaración e inicialización

6. ArraysEjercicio 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

Page 11: tectarque.16mb.comtectarque.16mb.com/apuntes/Ejercicios C.docx · Web viewque muestre por pantalla los nombres de dos personas en líneas sucesivas. Ejemplo: Declaración e inicialización

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

Page 12: tectarque.16mb.comtectarque.16mb.com/apuntes/Ejercicios C.docx · Web viewque muestre por pantalla los nombres de dos personas en líneas sucesivas. Ejemplo: Declaración e inicialización

7. Más ejerciciosprintf: 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

Page 13: tectarque.16mb.comtectarque.16mb.com/apuntes/Ejercicios C.docx · Web viewque muestre por pantalla los nombres de dos personas en líneas sucesivas. Ejemplo: Declaración e inicialización

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

Page 14: tectarque.16mb.comtectarque.16mb.com/apuntes/Ejercicios C.docx · Web viewque muestre por pantalla los nombres de dos personas en líneas sucesivas. Ejemplo: Declaración e inicialización

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

Page 15: tectarque.16mb.comtectarque.16mb.com/apuntes/Ejercicios C.docx · Web viewque muestre por pantalla los nombres de dos personas en líneas sucesivas. Ejemplo: Declaración e inicialización

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

Page 16: tectarque.16mb.comtectarque.16mb.com/apuntes/Ejercicios C.docx · Web viewque muestre por pantalla los nombres de dos personas en líneas sucesivas. Ejemplo: Declaración e inicialización

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

Page 17: tectarque.16mb.comtectarque.16mb.com/apuntes/Ejercicios C.docx · Web viewque muestre por pantalla los nombres de dos personas en líneas sucesivas. Ejemplo: Declaración e inicialización

(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.

(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").

Ejercicios de C 17

Page 18: tectarque.16mb.comtectarque.16mb.com/apuntes/Ejercicios C.docx · Web viewque muestre por pantalla los nombres de dos personas en líneas sucesivas. Ejemplo: Declaración e inicialización

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.

(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.

Ejercicios de C 18

Page 19: tectarque.16mb.comtectarque.16mb.com/apuntes/Ejercicios C.docx · Web viewque muestre por pantalla los nombres de dos personas en líneas sucesivas. Ejemplo: Declaración e inicialización

(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

Page 20: tectarque.16mb.comtectarque.16mb.com/apuntes/Ejercicios C.docx · Web viewque muestre por pantalla los nombres de dos personas en líneas sucesivas. Ejemplo: Declaración e inicialización

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