Amigos Tangireros Aqui les dejo mi primer post.
se trata de varios ejercicios resueltos en lenguaje c. para aquellos que comienzan en el mundo de la programacion y para que practiquen..cualquier duda solo poregunten!!

los ejercicios van desde el mas sencillo hasta el mas complicado aqui van
dejen sus comentarios y/o puntos!!!!!!!!

EJERCICIOS

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

/* Primer programa */
#include <stdio.h>
main()
{
printf("Primer programan";
}

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 %st telefono %st edad %d",amigos.nombre,
amigos.telefono,amigos.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 nn";
printf ("La longitud de char a= %dn",sizeof(a));
printf ("La longitud de short int b= %dn",sizeof(b));
printf ("La longitud de int c= %dn",sizeof(c));
printf ("La longitud de long int d= %dn",sizeof(d));
printf ("La longitud de unsigned char e= %dn",sizeof(e));
printf ("La longitud de unsigned short int f= %dn",sizeof(f));
printf ("La longitud de unsigned int g= %dn",sizeof(g));
printf ("La longitud de unsigned long int h= %dn",sizeof(h));
printf ("La longitud de float i= %dn",sizeof(i));
printf ("La longitud de double j= %dn",sizeof(j));
printf ("La longitud de long double k= %dn",sizeof(k));
printf("nValores minimos y maximos de cada uno de los tiposnn";
printf ("Minimo y maximo de char a= %dtt%dn",CHAR_MIN,CHAR_MAX);
printf ("Minimo y maximo de short int b=%dtt%dn",SHRT_MIN,SHRT_MAX);
printf ("Minimo y maximo de int c= %dtt%dn",INT_MIN,INT_MAX);
printf ("Minimo y maximo de long int d=%dtt%dn",LONG_MIN,LONG_MAX);
printf ("Maximo de unsigned char e= %dn",UCHAR_MAX);
printf ("Maximo de unsigned short int f= %dn",USHRT_MAX);
printf ("Maximo de unsigned int g= %dn",UINT_MAX);
printf ("Maximo de unsigned long int h= %dn",ULONG_MAX);
printf ("Minimo y maximo de float i= %dtt%dn",FLT_MIN,FLT_MAX);
printf ("Minimo y maximo de double j= %dtt%dn",DBL_MIN,DBL_MAX);
printf ("Minimo y maximo de long double k=%dtt%dn",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 %sn",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 %sn",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 = %gn",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 %dn",numero1, numero2, menor);
}

* Curso on line Oncología Cáncer ginecológico Dexeus: Mayo - Junio 2010
www.dexeus.comEnlaces patrocinados

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(" numerot exp2t exp3t exp4";
puts("------t-----t-----t-----";
for (n=0; n<=10; ++n)
printf("%2dt%5dt%5dt%5dn",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! = %dn",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 Celsiusn",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 ("tttt TABLA ASCIInn";
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 codigon";
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);
for (i=0; i<tamanyo-1; i++)
{
for (j=i+1; j<tamanyo; j++)
{
if (lista > lista[j])
{
aux=lista;
lista=lista[j];
lista[j]=aux;
}
}
}
printf("n El vector ordenado es el siguiente:n";
for (i=0; i<tamanyo; i++) printf("%d ",lista);
printf("n";
}
scanf ("%d",&tamanyo);
if (tamanyo > LIM)
{
printf("El limite del vector se ha excedido";
printf(", por favor cambie el limite en el codigon";
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);
for (i=0; i<tamanyo-1; i++)
{
for (j=i+1; j<tamanyo; j++)
{
if (lista > lista[j])
{
aux=lista;
lista=lista[j];
lista[j]=aux;
}
}
}
printf("n El vector ordenado es el siguiente:n";
for (i=0; i<tamanyo; i++) printf("%d ",lista);
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 codigon";
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);
for (i=0; i<tamanyo-1; i++)
{
for (j=i+1; j<tamanyo; j++)
{
if (lista > lista[j])
{
aux=lista;
lista=lista[j];
lista[j]=aux;
}
}
}
printf("n El vector ordenado es el siguiente:n";
for (i=0; i<tamanyo; i++) printf("%d ",lista);
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 = %dn", vglobal);
printf("nLa variable vlocal en main vale = %dn", 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 = %dn", vglobal);
printf("nLa variable vlocal despues de suma1 vale = %dn", vlocal);
suma2(vlocal);
printf("nLa variable vglobal despues de suma2 vale = %dn", vglobal);
printf("nLa variable vlocal despues de suma2 vale = %dn", vlocal);
}
void suma1(int x)
{
extern int vglobal;
++x;
++vglobal;
printf("nLa variable vglobal dentro de suma1 vale = %dn", vglobal);
printf("nEl argumento (vlocal) dentro de suma1 vale = %dn", x);
return;
}
void suma2(int x)
{
extern int vglobal;
++x;
++vglobal;
printf("nLa variable vglobal dentro de suma2 vale = %dn", vglobal);
printf("nEl argumento (vlocal) dentro de suma2 vale = %dn", x);
return;
}