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