-------------------------------------------------------
1. Introducción general
-------------------------------------------------------
1.1.  Comencemos
-------------------------------------------------------

1.1. Ejecute el programa "hola mundo" en su sistema.  Experimente con
     la omisión de partes del programa, para ver que mensajes de error
     se obtienen.

1.2. Experimente para descubrir qué pasa cuando la cadena del
     argumento de printf() contiene \c, en donde c es un carácter que
     no está en la lista siguiente: b, t, ", \.

-------------------------------------------------------
1.2.  Variables y expresiones aritméticas
-------------------------------------------------------

1.3. Modifique el programa de conversión de temperaturas de modo que
     escriba un encabezado sobre la tabla. 

1.4. Escriba un programa que escriba la tabla correspondiente a la
     conversión desde Celsius a Fahrenheit.

-------------------------------------------------------
1.3.  La proposición for
-------------------------------------------------------

1.5. Modifique el programa de conversión de temperaturas de manera que
     escriba la tabla en orden inverso, o sea, desde 300 grados hasta
     cero.

-------------------------------------------------------
1.4.  Constantes simbólicas
-------------------------------------------------------

-------------------------------------------------------
1.5.  Entrada y salida de caracteres
-------------------------------------------------------

1.6. Verifique que la expresión getchar() != EOF es cero o uno.

1.7. Escriba un programa que imprima el valor de EOF.

1.8. Escriba un programa que cuente espacios en blanco, tabuldores y
     nuevas líneas.  

1.9. Escriba un programa que copie su entrada a la salida,
     reemplazando cada secuencia de dos o más blancos por un único
     blanco.

1.10. Escriba un programa que copie su entrada a la salida,
      reemplazando cada tabulación por \t, cada retroceso por \b, y
      cada \ por \\.  Esto hace que las tabulaciones y los espacios
      sean visibles sin confusiones. 

1.11. Cómo probaría el programa para contar palabras?  Qué clase de
      entrada es la más conveniente para descubrir errores si éstos
      existen. 

1.12. Escriba un programa que escriba su entrada una palabra en cada
      línea. 

-------------------------------------------------------
1.6.  Arreglos
-------------------------------------------------------

1.13. Escriba un programa que imprima el histograma de las longitudes
      de las palabras de su entrada.  En la primera versión del
      programa dibuje las barras en sentido horizontal.  En la segunda
      versión dibuje las barras en sentido vertical.

1.14. Escriba un programa que imprima el histograma de las frecuencias
      con que se presentan diferentes caracteres leidos a la entrada.

-------------------------------------------------------
1.7.  Funciones
-------------------------------------------------------

1.15. Escriba de nuevo el programa de coversión de temperatura de la 
sección 1.2, de modo que utilice una función para la conversión.

-------------------------------------------------------
1.8.  Argumentos: llamada por valor
-------------------------------------------------------

No hay ejercicios propuestos.

-------------------------------------------------------
1.9.  Arreglos de caracteres
-------------------------------------------------------

1.16. Corrija la rutina principal del programa de la línea más larga de
modo que imprima la longitud de líneas de entrada arbitrariamente
largas, y tanto texto como sea posible.

1.17. Escriba un programa que imprima todas las líneas de entrada que 
sean mayores de 80 caracteres.

1.18. Escriba un programa que elimine los blancos y los tabuladores que 
estén al final de cada línea de entrada, y que borre completamente las 
líneas en blanco.

1.19. Escriba una función reverse(s) que invierta la cadena de 
caracteres s.  Úsela para escribir un programa que invierta su entrada, 
línea a línea.

-------------------------------------------------------
1.10. Variables externas y alcance
-------------------------------------------------------

1.20. Escriba un programa detab que reemplace tabuladores de la entrada 
con la cantidad apropiada de espacios en blanco para espaciar hasta la 
siguiente posición de tabulación.  Considere un conjunto fijo de 
posiciones de tabulación, digamos cada n columnas.  Debe ser n una 
variable o una constante simbólica?

1.21. Escriba un programa entab que reemplace cadenas de blancos por el 
mínimo número de tabuladores y blancos necesario para obtener el mismo 
espaciado.  Considere las posiciones de tabulación de igual manera que 
para detab.  Cuando un tabulador o un simple espacio en blanco fuera 
suficiente para alcanzar una posición de tabulación, a cuál se le debe 
dar preferencia?

1.22. Escriba un programa para "plegar" líneas largas de entrada en dos 
o más líneas cortas después del último carácter no blanco que ocurra 
antes de la n-ésima columna de entrada.  Asegúrese de que su programa se 
comporta apropiadamente con líneas muy largas, y de que no hay blancos o 
tabuladores antes de la columna especificada.

1.23. Escriba un programa para eliminar todos los comentarios de un
programa en C.  No olvide de manejar apropiadamente las cadenas entre 
comillas y las constantes de carácter.  Los comentarios de C no se 
anidan.

1.24.  Escriba un programa para revisar los errores de sintaxis 
rudimentarios de un programa en C, como paréntesis, llaves y corchetes 
no alineados.  No olvide la comillas ni los apóstrofos, las secuencias 
de escape y los comentarios.  (Este programa es difícil si se hace 
completamente general.)

    Source: geocities.com/ar/uap_c2a/ej-01

               ( geocities.com/ar/uap_c2a)                   ( geocities.com/ar)