12.213 cursos gratis
8.307.734 alumnos
Facebook Twitter YouTube
Busca cursos gratis:

Introducción al Lenguaje C

Autor: Fernando Guerrero
Curso:
8,81/10 (467 opiniones) |73701 alumnos|Fecha publicación: 10/05/2004

Capítulo 14:

 Ejercicios

EJERCICIOS

1. Escriba un programa que imprima el mensaje "Primer programa".

/* Primer programa */

#include <stdio.h>

main()

{

printf("Primer programa\n");

}

2. Escriba un programa que lea y escriba un carácter.

/* Leer y escribir un caracter */

#include <stdio.h>

main ()

{

char car;

printf("Escriba un caracter: ");

car=getchar();

printf("\nEl caracter introducido es %c.\n",car);

}

3. Escriba un programa que imprima una lista de amigos guardados en una agenda (tipo estructura).

/* Lista los campos de una agenda construida en el programa */

#include <stdio.h>

#define N 3

main()

{

struct agenda

{

char nombre[25];

char telefono[10];

int edad;

};

struct agenda

amigos[N]={{"Pepe","913472314",18},{"Juan","915547623",19},{"Rosa","917456778",21}};

int i;

for (i=0; i<N; ++i)

{

printf("\nAmigo %s\t telefono %s\t edad %d",amigos[i].nombre,

amigos[i].telefono,amigos[i].edad);

}

printf("\n");

}

}

4. Escriba un programa para ver las longitudes y valores máximos y mínimos en bytes de los tipos básicos de programación en C.

/* Muestra las longitudes en longitudes en bytes

y los valores maximos y minimos de los tipos basicos */

#include <stdio.h>

#include <limits.h>

#include <float.h>

main()

{

char a;

short int b;

int c;

long int d;

unsigned char e;

unsigned short int f;

unsigned int g;

unsigned long int h;

float i;

double j;

long double k;

printf ("Longitud de cada uno de los tipos basicos \n\n");

printf ("La longitud de char a= %d\n",sizeof(a));

printf ("La longitud de short int b= %d\n",sizeof(b));

printf ("La longitud de int c= %d\n",sizeof(c));

printf ("La longitud de long int d= %d\n",sizeof(d));

printf ("La longitud de unsigned char e= %d\n",sizeof(e));

printf ("La longitud de unsigned short int f= %d\n",sizeof(f));

printf ("La longitud de unsigned int g= %d\n",sizeof(g));

printf ("La longitud de unsigned long int h= %d\n",sizeof(h));

printf ("La longitud de float i= %d\n",sizeof(i));

printf ("La longitud de double j= %d\n",sizeof(j));

printf ("La longitud de long double k= %d\n",sizeof(k));

printf("\nValores minimos y maximos de cada uno de los tipos\n\n");

printf ("Minimo y maximo de char a= %d\t\t%d\n",CHAR_MIN,CHAR_MAX);

printf ("Minimo y maximo de short int b=%d\t\t%d\n",SHRT_MIN,SHRT_MAX);

printf ("Minimo y maximo de int c= %d\t\t%d\n",INT_MIN,INT_MAX);

printf ("Minimo y maximo de long int d=%d\t\t%d\n",LONG_MIN,LONG_MAX);

printf ("Maximo de unsigned char e= %d\n",UCHAR_MAX);

printf ("Maximo de unsigned short int f= %d\n",USHRT_MAX);

printf ("Maximo de unsigned int g= %d\n",UINT_MAX);

printf ("Maximo de unsigned long int h= %d\n",ULONG_MAX);

printf ("Minimo y maximo de float i= %d\t\t%d\n",FLT_MIN,FLT_MAX);

printf ("Minimo y maximo de double j= %d\t\t%d\n",DBL_MIN,DBL_MAX);

printf ("Minimo y maximo de long double k=%d\t\t%d\n",LDBL_MIN,LDBL_MAX);

}

5. Escriba un programa que te imprima un mensaje de presentación, te pregunte como te llamas y te salude.

/* Saludo */

#include <stdio.h>

main()

{

char nombre[20];

printf("Hola, me llamo Ordenador, y tu?\n");

scanf("%s",&nombre[0]);

printf("Me alegro de conocerte %s\n",nombre);

}

6. Escriba el ejercicio de presentación (ejercicio número 5) y que te salude con nombre y apellidos.

/* Saludo con Nombre y apellido (utilizacion de gets en lugar de scanf) */

#include <stdio.h>

void contestar (char []);

main()

{

char nombre[20];

printf("Hola, me llamo Iagoba, y tu?\n");

gets(nombre);

contestar(nombre);

}

void contestar(char *nombre)

{

printf("Me alegro de conocerte %s\n",nombre);

}

7. Escriba un programa que calcule el área de un triángulo rectángulo, dada la altura y la base.

/* Area de un triangulo rectangulo */

#include <stdio.h>

main()

{

float altura, base;

double area;

printf("\nBase del triangulo = ");

scanf("%f",&base);

printf("\nAltura del triangulo = ");

scanf("%f",&altura);

area= 0.5 * (double) altura * base;

printf("\nArea = %g\n",area);

}

8.  Escriba un programa que halle el menor de dos números pedidos al usuario.

/* Calculo del menor de dos numeros dados */

#include <stdio.h>

main()

{

int menor, numero1, numero2;

printf("\nEscriba el primer numero y pulso INTRO: ");

scanf("%d",&numero1);

printf("\nEscriba el segundo numero y pulso INTRO: ");

scanf("%d",&numero2);

if (numero1 < numero2) menor=numero1;

else menor=numero2;

/* la sentencia if-else es equivalente a: menor=numero1<numero2 ? numero1 : numero2; */

printf("\nEl menor de %d y %d es %d\n",numero1, numero2, menor);

}

9. Escriba un programa que pida al usuario un carácter y un número de repeticiones. Luego imprima el carácter el número de veces especificado.

/* Repetir un caracter un numero de veces */

main()

{

char ch;

int num_rep;

printf("\nEscriba el caracter a repetir: ");

scanf("%c",&ch);

printf("\nEscriba el numero de repeticiones: ");

scanf("%d",&num_rep);

while (num_rep>0)

{

printf("%c",ch);

--num_rep;

}

printf("\n");

}

10. Escriba un programa que imprima una tabla con las cuatro primeras potencias de los números 1 a 10.

/* Imprime la tabla de las primera 4 potencias del 1 al 10 */

#include <stdio.h>

main()

{

int n;

puts(" numero\t exp2\t exp3\t exp4");

puts("------\t-----\t-----\t-----");

for (n=0; n<=10; ++n)

printf("%2d\t%5d\t%5d\t%5d\n",n,n*n,n*n*n,n*n*n*n);

}

11. Escriba un programa que calcule el factorial de un número.

/* Factorial de un numero */

#include <stdio.h>

main()

{

int i, numero, factorial=1;

printf("\nEscriba un numero entero para calcular su factorial: ");

scanf("%d",&numero);

for (i=numero; i>1; --i) factorial *= i;

printf("\n%d! = %d\n",numero,factorial);

}

12. Escriba un programa que muestre una tabla de conversiones de temperatura de grados Farenheit a grados Celsius, de 0ºF a 300ºF de 20 en 20ºF.

/* Sistema de temperaturas */

#include <stdio.h>

main()

{

int i;

float c;

for (i=0;i<=300;i+=20)

{

c=(5./9)*(i-32);

printf("%3d grados Farenheit equivalen a %4.4f grados Celsius\n",i,c);

}

}

13. Escriba un programa que muestre la tabla ASCII.

/* Tabla ASCII */

#include <stdio.h>

#define INI 33

#define FIL 15

#define COL 20

main()

{

int k, kk, i;

for (k=1; k<FIL; k++)

{

if (k==1) printf ("\t\t\t\t TABLA ASCII\n\n");

else printf("\n");

for (i=1; i<=COL; i++)

{

kk=INI+(k-1)*COL+i;

if (kk>255) break;

printf(" %c",kk);

}

printf("\n");

for (i=1; i<=COL; i++)

{

kk=INI+(k-1)*COL+i;

if (kk>255) return(1);

if (kk<100) printf(" %d",kk);

}

}

}

14. Escriba un programa que dándole el importe exacto de una cantidad te indica el mínimo número de monedas que podrías tener. Las monedas son de 1, 5, 10, 25, 50, 100, 200 y 500 pesetas.

/* Cambio optimo de monedas */

#include <stdio.h>

#define LIM 8

int monedas[LIM]= {500, 200, 100, 50, 25, 10, 5, 1};

main()

{

int num, cantidad, numonedas;

printf ("Introduzca el importe exacto: ");

scanf ("%d", &cantidad);

printf ("El cambio optimo es el siguiente: \n");

for (num=0; num<LIM; num++)

{

numonedas=cantidad/monedas[num];

if (numonedas != 0) printf ("%d de %d.\n", numonedas, monedas[num]);

cantidad= cantidad % monedas[num];

}

}

15. Escriba un programa que ordene un vector (de dimensión máxima 15) por el método de la burbuja.

/* Algoritmo de la burbuja (ordenacion de un vector) */

#include <stdio.h>

#define LIM 15

main ()

{

int i=0, j, tamanyo, aux;

int lista[LIM];printf("Longitud del vector a ordenar ");

scanf ("%d",&tamanyo);

if (tamanyo > LIM)

{

printf("El limite del vector se ha excedido");

printf(", por favor cambie el limite en el codigo\n");

return;

}

while (i<tamanyo)

{

i++;

printf("Numero %d: ",i);

scanf("%d",&lista[i-1]);

}

printf("\n El vector introducido es el siguiente:\n");

for (i=0; i<tamanyo; i++) printf("%d ",lista[i]);

for (i=0; i<tamanyo-1; i++)

{

for (j=i+1; j<tamanyo; j++)

{

if (lista[i] > lista[j])

{

aux=lista[i];

lista[i]=lista[j];

lista[j]=aux;

}

}

}

printf("\n El vector ordenado es el siguiente:\n");

for (i=0; i<tamanyo; i++) printf("%d ",lista[i]);

printf("\n");

}

scanf ("%d",&tamanyo);

if (tamanyo > LIM)

{

printf("El limite del vector se ha excedido");

printf(", por favor cambie el limite en el codigo\n");

return;

}

while (i<tamanyo)

{

i++;

printf("Numero %d: ",i);

scanf("%d",&lista[i-1]);

}

printf("\n El vector introducido es el siguiente:\n");

for (i=0; i<tamanyo; i++) printf("%d ",lista[i]);

for (i=0; i<tamanyo-1; i++)

{

for (j=i+1; j<tamanyo; j++)

{

if (lista[i] > lista[j])

{

aux=lista[i];

lista[i]=lista[j];

lista[j]=aux;

}

}

}

printf("\n El vector ordenado es el siguiente:\n");

for (i=0; i<tamanyo; i++) printf("%d ",lista[i]);

printf("\n");

}

printf("Longitud del vector a ordenar ");

scanf ("%d",&tamanyo);

if (tamanyo > LIM)

{

printf("El limite del vector se ha excedido");

printf(", por favor cambie el limite en el codigo\n");

return;

}

while (i<tamanyo)

{

i++;

printf("Numero %d: ",i);

scanf("%d",&lista[i-1]);

}

printf("\n El vector introducido es el siguiente:\n");

for (i=0; i<tamanyo; i++) printf("%d ",lista[i]);

for (i=0; i<tamanyo-1; i++)

{

for (j=i+1; j<tamanyo; j++)

{

if (lista[i] > lista[j])

{

aux=lista[i];

lista[i]=lista[j];

lista[j]=aux;

}

}

}

printf("\n El vector ordenado es el siguiente:\n");

for (i=0; i<tamanyo; i++) printf("%d ",lista[i]);

printf("\n");

}

16. Escriba un programa que compruebe la diferencia entre una variable global, una variable local y un argumento de función.

/* Ejemplo de variable global, local y argumento de funcion */

#include <stdio.h>

int vglobal=100; /* Se ve en todo el fichero y debe ir con extern dentro de la declaracion en las funciones */

void suma1(int x);

void suma2(int x);

main()

{

extern int vglobal;

int vlocal=200;

printf("\nLa variable vglobal en main vale = %d\n", vglobal);

printf("\nLa variable vlocal en main vale = %d\n", vlocal);

suma1(vlocal);

/* En salida no se ha modificado su valor pese a que en suma1 se hagan operaciones con vlocal (argumento) */

printf("\nLa variable vglobal despues de suma1 vale = %d\n", vglobal);

printf("\nLa variable vlocal despues de suma1 vale = %d\n", vlocal);

suma2(vlocal);

printf("\nLa variable vglobal despues de suma2 vale = %d\n", vglobal);

printf("\nLa variable vlocal despues de suma2 vale = %d\n", vlocal);

}

void suma1(int x)

{

extern int vglobal;

++x;

++vglobal;

printf("\nLa variable vglobal dentro de suma1 vale = %d\n", vglobal);

printf("\nEl argumento (vlocal) dentro de suma1 vale = %d\n", x);

return;

}

void suma2(int x)

{

extern int vglobal;

++x;

++vglobal;

printf("\nLa variable vglobal dentro de suma2 vale = %d\n", vglobal);

printf("\nEl argumento (vlocal) dentro de suma2 vale = %d\n", x);

return;

}

Capítulo siguiente - Ejercicios II
Capítulo anterior - Librerías

Nuestras novedades en tu e-mail

Escribe tu e-mail:

Al presionar "Recibir" estás dándote de alta y aceptas las condiciones legales de mailxmail

Cursos similares a Introducción al Lenguaje C


  • Vídeo
  • Alumnos
  • Valoración
  • Cursos
1. Lenguaje C++. Guía para Programadores
C++ es un potente lenguaje de programación que apareció en 1980, continuando con... [01/07/04]
37.692  
2. Action Script 3. Lenguaje de programación
Action script 3 . Este curso de informática fue realizado especialmente para las... [04/05/11]
274
Curso con video
3. Introducción a Oracle
En el curso se introducen los conceptos básicos para saber que es un Gestor de... [01/02/06]
21.247  

El blog de mailxmail|¿Qué es mailxmail.com?|ISSN: 1699-4914|Ayuda
Publicidad|Condiciones legales de mailxmail


¿Recibir novedades de Programación? ¡No te costará nada!