Cómo usar este libro
1. El entorno de programación
1.1. Introducción
1.2. El entorno de programación
2. Introducción a la programación en lenguaje C
2.1. Introducción
2.2. Introducción al concepto de programa y a la construcción de programas
2.3. Introducción al lenguaje C
2.3.1. Cabecera de un programa en lenguaje C
2.3.2. Declaración de ficheros include
2.3.3. Declaración de constantes y variables globales
2.3.4. Declaración de funciones
2.3.5. El programa principal
2.4. Elementos de un programa en lenguaje C
2.4.1. Palabras clave o reservadas del lenguaje C
2.4.2. Los datos
2.4.3. Identificadores
2.4.4. Los operadores
2.4.5. Las expresiones
2.4.6. Los signos de puntuación
2.4.7. Los comentarios
2.4.8. Signos de puntuación y separadores
2.4.9. Funciones y macros
2.5. Escritura y ejecución del primer programa
3. Variables fundamentales y constantes
3.1. Introducción
3.2. Las variables en el lenguaje C
3.3. Las variables fundamentales en el lenguaje C
3.3.1. Las variables fundamentales ordinales en el lenguaje C
3.3.2. Las variables fundamentales reales en el lenguaje C
3.4. Las constantes
3.5. Declaración de variables
3.6. Laboratorio de lenguaje C
3.6.1. Enunciado
3.6.2. Solución al laboratorio 3.6
4. Las expresiones y operadores
4.1. Introducción
4.2. Las expresiones y los operadores
4.2.1. Operadores aritméticos
4.2.2. Operadores de asignación
4.2.3. Operadores de relación
4.2.4. Operadores lógicos
4.2.5. Operadores direccionales
4.2.6. Operadores dimensionales
4.2.7. Prioridad en la ejecución de los operadores
5. Variables estructuradas
5.1. Introducción a las variables estructuradas
5.2. Variables estructuradas de tipo array
5.3. Variables de registro
5.4. Uniones
5.5. Campos de bits
5.6. Listas enumeradas
5.7. Sinónimos de tipos de datos (typedef)
5.8. Laboratorio de lenguaje C
5.8.1. Enunciado
5.8.2. Solución al laboratorio 5.8
5.9. Laboratorio de lenguaje C
5.9.1. Enunciado
5.9.2. Solución al laboratorio 5.9
5.10. Laboratorio de lenguaje C
5.10.1. Enunciado
5.10.2. Solución al laboratorio 5.10
6. Control de flujo de un programa
6.1. Introducción
6.2. Introducción a la programación estructurada
6.3. El control de flujo de un programa
6.4. Ejecución condicionada de una sentencia:if else
6.5. Control de flujo en bloques alternativos
6.5.1. La estructura if else
6.5.2. Estructura switch case
6.6. Laboratorio de lenguaje C
6.6.1. Enunciado
6.6.2. Solución al laboratorio 6.6
7. Estructuras de bloques repetitivos
7.1. Introducción
7.2. Introducción a los bloques repetitivos
7.3. Bloques repetitivos con contador; la estructura for
7.3.1. La sentencia continue
7.4. Bloques repetitivos condicionados con la evaluación de la condición al final del bloque; la estructura do while
7.5. Bloques repetitivos condicionados con la evaluación de la condición al inicio del bloque: la estructura while
7.6. Laboratorio de Lenguaje C
7.6.1. Enunciado
7.6.2. Solución al laboratorio 7.6
7.7. Laboratorio de Lenguaje C
7.7.1. Enunciado
7.7.2. Solución al laboratorio 7.7
7.8. Laboratorio de Lenguaje C
7.8.1. Enunciado
7.8.2. Solución al laboratorio 7.8
8. Punteros
8.1. Introducción
8.2. Concepto de puntero
8.3. Aritmética de punteros
8.3.1. Puntero a una cadena de caracteres
8.3.2. Puntero a un array de enteros
8.4. Punteros a estructuras
8.5. Puntero a una función
8.6. Puntero de un puntero
9. Las funciones
9.1. Introducción
9.2. Introducción al uso de funciones
9.2.1. Ventajas de la utilización de funciones
9.3. Paso de argumentos a las funciones
9.3.1. Paso de argumentos por valor
9.3.2. Paso de argumentos por dirección
9.3.3. Blindaje de punteros en llamadas a funciones
9.4. Programación estructurada con funciones
9.5. Laboratorio de lenguaje C
9.5.1. Enunciado
9.5.2. Solución al laboratorio 9.5
10. Envío de textos a la consola del sistema
10.1. Introducción
10.2. Escritura de textos en la pantalla
10.2.1. La escritura de textos en la pantalla; la función printf
10.2.2. La escritura de textos en la pantalla; la función wprintf
10.3. La escritura de caracteres en la pantalla; la función putc y putwc
10.4. Laboratorio de lenguaje C
10.4.1. Enunciado
11. Entrada de datos a través del teclado
11.1. Introducción
11.2. Lectura de respuestas desde el teclado
11.3. La familia de funciones scanf
11.4. Lectura de cadenas de caracteres en la consola; la función gets
11.5. Lectura de un carácter en la consola; la función getchar
11.6. Entrada de datos a través de los argumentos de ejecución del programa
11.7. Laboratorio de lenguaje C
11.7.1. Enunciado
11.7.2. Solución al laboratorio 11.7
12. Gestión de caracteres y cadenas
12.1. Introducción
12.2. Funciones que permiten investigar la naturaleza de un carácter
12.3. Funciones de gestión de cadenas de caracteres
12.4. Laboratorio de lenguaje C
12.4.1. Enunciado
12.4.2. Solución al laboratorio 12.4
13. Gestión de bloques de memoria
13.1. Introducción
13.2. Introducción a la gestión de memoria
13.3. Reserva de memoria con la función malloc
13.4. Reserva de memoria con la función calloc
13.5. Ampliación de memoria con la función realloc
13.6. Funciones que permiten copiar, rellenar e investigar bloques de memoria
13.6.1. Funciones que copian bloques de memoria; memcpy y memmove
13.6.2. Función de búsqueda de un carácter;memchr
13.6.3. Función de relleno con un carácter; memset
13.7. Laboratorio de lenguaje C
13.7.1. Enunciado
13.7.2. Solución al laboratorio 13.7
14. Funciones matemáticas y de conversión de textos a valores numéricos
14.1. Introducción
14.2. Funciones matemáticas
14.2.1. Las funciones de redondeo; ceil y floor
14.2.2. Valor absoluto de un número
14.2.3. Descomposición de un número real en parte entera y parte decimal
14.2.4. Raíz cuadrada de un número real
14.2.5. División entre enteros
14.2.6. Funciones trigonométricas
14.2.7. Logaritmos
14.2.8. Descomposición de un número real en mantisa y exponente
14.3. Funciones que obtienen el valor numérico de una cadena de dígitos
15. Tiempos, fechas y números aleatorios
15.1. Introducción
15.2. Funciones de gestión de tiempos y fechas
15.2.1. Fecha y hora del sistema
15.2.2. Fecha y hora UTC
15.2.3. Fecha y hora local
15.2.4. Construcción de una fecha y hora
15.2.5. Medición del tiempo transcurrido en un programa
15.2.6. Diferencia entre dos datos de fecha y hora
15.3. Números aleatorios
16. Ficheros de texto
16.1. Introducción
16.2. Introducción al uso de ficheros
16.3. Técnicas para el manejo de ficheros
16.4. Asignación de un canal a un fichero
16.5. Escritura de datos en un fichero
16.6. Lectura de datos en un fichero de texto
16.7. Escritura de ficheros con formato
16.8. Laboratorio de lenguaje C
16.8.1. Enunciado
16.8.2. Solución al laboratorio 16.8
16.9. Laboratorio de lenguaje C
16.9.1. Enunciado
16.9.2. Solución al laboratorio 16.9
17. Ficheros de acceso directo
17.1. Introducción
17.2. Ficheros de acceso directo
17.3. Control de la posición del cursor en un fichero
17.4. Ficheros de acceso directo con estructuras de registros
18. Recursividad y métodos de ordenación
18.1. Introducción
18.2. Funciones recursivas
18.3. Métodos de ordenación
18.3.1. Ordenación de un array; función qsort
18.4. Métodos de ordenación implementados por el programador
18.4.1. Método de la burbuja
18.4.2. Método de la concha
18.4.3. Método de la inserción
18.4.4. Método QuickSort
18.4.5. Eficacia de los métodos de ordenación
18.5. Laboratorio de lenguaje C
18.5.1. Enunciado
18.5.2. Solución al laboratorio de lenguaje C 18.5
18.6. Laboratorio de lenguaje C
18.6.1. Enunciado
18.6.2. Solución al laboratorio de lenguaje C 18.6
19. Listas estructuradas
19.1. Introducción
19.2. Estructuras dinámicas
19.3. Listas de enlace simple
19.3.1. Operaciones elementales con listas de enlace simple
19.4. Listas de enlace doble
19.5. Árboles binarios
20. Llamadas al sistema operativo
20.1. Introducción
20.2. La función system
20.3. Investigación y cambio de las variables de entorno del sistema operativo
20.4. Creación de un nuevo proceso; función spawn
20.5. Terminación de un proceso; funciones exit y atexit
21. Directrices para el preprocesador
21.1. Introducción
21.2. Directrices para el preprocesador
21.2.1. Directriz #define
21.2.2. Directriz #undef
21.2.3. Compilación condicional
21.2.4. Directrices #ifdef e #ifndef
21.2.5. Directriz #line
21.2.6. Directriz #error
21.2.7. Directriz #pragma
21.3. Laboratorio de lenguaje C
21.3.1. Enunciado
21.3.2. Solución A. Funciones del lenguaje C incorporadas a la norma AN alfabético