EJERCICIOS de C
(Actualizada el 2 de Junio de 2002)

BLOQUE 1

1.- Leer dos números enteros y escribir el mayor de los dos o un mensaje si son iguales. (Solución)

2.- Leer un carácter y dos números enteros. Si el carácter leído es un operador aritmético calcular la operación correspondiente, si es cualquier otro mostrar error. Hacer el programa utilizando if-else.

3.- Hacer el mismo programa usando la instrucción switch(). (Solución)

4.- Leer un número entero y visualizar su tabla de multiplicar. (Solución)

5.- Generar enteros de 3 en 3 comenzando por el 2 hasta el valor máximo menor que 30. Calcular la suma de los enteros generados que sean divisibles por 5.

6.- Media de una serie de números que finaliza al introducir el 999. El 999 no debe ser tenido en cuenta para la media. (Solución

7.- Leer un número entero positivo y averiguar si es perfecto. Un nº es perfecto cuando es igual a la suma de sus divisores excepto el mismo. (Solución)

8.- Leer dos números enteros a y b mayores o iguales que cero y calcular su producto mediante sumas. (Solución)

9.- Leer un número entero y averiguar si es o no múltiplo de 9. Un número es múltiplo de 9 si la suma de sus cifras es 9 o múltiplo de 9. (Solución)

10.- Generar los N primeros términos de la serie de Fibonacci. El valor de N (entero y positivo) deberá ser leído por teclado. En esta serie los dos primeros números son 1, y el resto se obtiene sumando los dos anteriores: 1,1,2,3,5,8,13,21,... (Solución)

11.- Presentar en la función main() el siguiente menú de opciones:
1.- Tabla de multiplicar (leer en main() un número y en una función mostrar su tabla de multiplicar).
2.- Producto por sumas (en main() leer dos números enteros mayores que 0 y en una función calcular su producto mediante sumas sucesivas).
3.- Mostrar números comprendidos (leer dos números enteros cualesquiera y en función mostrar los números comprendidos entre ambos, no se incluyen). (Solución)

12.- Leer por teclado un numero entero N. Escribir los números primos comprendidos entre 1 y N. Diseñar una función que permita averiguar si un número es o no primo. (Solución
13.- Leer una fecha en formato dia-mes-año, averiguar si es correcta e indicar el día siguiente. (Solución
14.- Implementar un programa que sea capaz de calcular el resultado de aplicar la fórmula siguiente (n i)= n! /( i! * (n-i)!).
Para ello se dispone de dos funciones, una de ellas lee un número por teclado que debe ser mayor o igual que cero. Teniendo en cuenta además  que n tiene que ser necesariamente mayor que i. La otra función calcula el factorial de un número. 
(Solución)
15.-Mostrar los datos de un fichero de texto usando el símbolo de redirección del sistema operativo MS-DOS. 
Ejecutar: programa<fich.txt 
(Solución)

BLOQUE 2

1.- Cargar una tabla de p filas y q columnas, escribir la tabla en forma de matriz y escribir la suma de las filas y las columnas.

2.- Cargar un array de m números enteros decir cual es el mayor y donde esta. 

3.- Cargar un array de n enteros y calcular la media de los que estén en posiciones pares.(Solución)

4.- Programa: Leer en la función main() un número entero "n" mayor que 2 y menor o igual que 20. 
Cargar, en una función, un array de "n" números enteros. Mostrar el vector, en una sola línea, en otra función. 
En main() leer otro número entero y en una función contar las veces que aparece dicho número en el array, el resultado debe indicarse en main(). (Solución)

5.- Leer, en main(), una cadena de caracteres y llamar a un función que la modifique. En la función se deben cambiar mayúsculas por minúsculas, minúsculas por mayúsculas y dígitos por puntos. El resultado se escribe en la función main(). (Solución)

6.- Leer una cadena de caracteres y cortarla en palabras escribiendo cada palabra en una línea. Se supone que las palabras se separan sólo por blancos. (Solución)

7.- Leer un numero n y pedir n veces tres números enteros e imprimirlos cada vez ordenados de menor a mayor. Utilizar una función que, con ayuda de punteros, permita ordenar dos números.(Solución)
8.- Convertir una cadena de caracteres a un valor entero mediante una función que reciba la dirección de la cadena y la dirección de la variable que almacenará el resultado. (Se supone que hay números el la cadena). 
-Buscar el comienzo del número distinto de blanco, supondremos + o -.
-Averiguar el signo, si no es un carácter valido devuelve un error. 
-Si el carácter es un digito se pasa a decimal ((ascii)numero-48)*10.
-Si la función finaliza de forma correcta devuelve un uno.  (Solución)
9.- Generar los N primeros términos de la serie de Fibonacci, utilizando para ello una función en las que se trabaja con variables estáticas. (Solución)
10.- Cargar un array bidimensional de p*q y devolver un puntero apuntando a la fila que mas suma. (Solución)
11.- Leer por teclado un número entero largo e indicar si el número leído es o no capicúa. Para ello debe utilizarse un array unidimensional donde almacenaremos cada una de las cifras del número leído.
Se implementarán dos funciones, una para descomponer el número en cifras y cargar el array, y otra para comparar las posiciones del array y determinar si el número es capicúa.
(Solución
12.- Introducir una cadena de caracteres, e indicar si la cadena leída es o no un palíndromo (se lee igual de izquierda a derecha, que de derecha a izquierda). Ej: Dabale arroz a la zorra el abad (Solución)
13.- Leer por teclado un número entero mayor que 0 y menor o igual que 10 para determinar el rango de una matriz de enteros.
Leer un segundo número entero, que servirá para indicar el valor de comienzo.
Cargar, recorriendo en espiral, una matriz de enteros, a partir del segundo valor leído, y con el rango indicado. (Solución)

Indice

 

Inicio