El siguiente programa imprime el mensaje "hello world" en la consola utilizando la función printf.
#include <stdio.h>
int main() {
printf("hello world\n");
return 0;
}
Problema 2: Manipulación de Tipos de Datos
Este código declara variables de distintos tipos (entero, flotante y carácter), luego muestra sus valores con formato adecuado.
#include <stdio.h>
int main() {
int var_int = 10;
float var_float = 4.5;
char var_char = 'A';
printf("a = %d\n", var_int);
printf("b = %f\n", var_float);
printf("c = %c\n", var_char);
printf("Fin del programa\n");
return 0;
}
Problema 3: Tamaño de Tipos en Memoria
Utiliza la función sizeof para determinar el número de bytes que ocupa cada tipo de dato básico en el sistema actual.
#include <stdio.h>
int main() {
printf("Tipo de dato Tamaño en bytes\n");
printf("---------------- -------------------\n");
printf("char %d\n", sizeof(char));
printf("int %d\n", sizeof(int));
printf("short int %d\n", sizeof(short));
printf("long int %d\n", sizeof(long));
printf("float %d\n", sizeof(float));
printf("double %d\n", sizeof(double));
return 0;
}
Problema 4: Conversión de Temperatura
Convierte una temperatura dada en grados Fahrenheit a Celsius usando la fórmula estándar.
#include <stdio.h>
int main() {
double temp_f, temp_c;
temp_f = 100.0;
temp_c = 5.0 * (temp_f - 32.0) / 9.0;
printf("La temperatura Celsius equivalente a %5.2f°F es %5.2f°C\n", temp_f, temp_c);
return 0;
}
Problema 5: Cálculo del Perímetro de un Triángulo
Dados tres lados de un triángulo, calcula su perímetro mediante suma simple.
#include <stdio.h>
int main() {
int lado_a = 6, lado_b = 5, lado_c = 5;
int perimetro = lado_a + lado_b + lado_c;
printf("El perímetro del triángulo es: %d\n", perimetro);
return 0;
}
Problema 6: Desbordamiento de Tipo Corto
Al asignar el valor máximo posible a un tipo short (32767) y sumarle uno, se produce un desbordamiento. En representación binaria con signo, esto causa un rebote desde el valor máximo positivo al mínimo negativo (-32768).
Representación binaria:
- 32767 →
0111 1111 1111 1111 - 32767 + 1 →
1000 0000 0000 0000→ interpretado como -32768
Problema 7: Resultados de Operaciones Aritméticas con Signo
Evalúa expresiones con números negativos:
- (a) -87
- (b) -20
- (c) 0
- (d) -2
Problema 8: Evaluación de Expresiones Lógicas Compuestas
La expresión i != j < k se evalúa según el orden de precedencia. Primero se compara i y j:
- Si
i != jes verdadero (valor 1), entonces se evalúa1 < k. - Si
i == j, el resultado dei != jes 0, luego se evalúa0 < k.
Problema 9: Conversión entre Entero y Punto Flotante
Ilustra cómo se comporta la conversión implícita entre tipos numéricos:
- (a)
i = 3,d = 3.0 - (b)
i = 3,d = 3.5
Problema 10: Operador Condicional (Ternario)
El operador condicional permite seleccionar un valor basado en una condición en una sola línea. Su sintaxis es:
condición ? valor_si_verdadero : valor_si_falso;
Donde:
- condición: expresión que devuelve un valor booleano (no cero = verdadero).
- ?: si la condición es verdadera, se retorna el valor antes del
:. - :: si la condición es falsa, se retorna el valor después del
:.
Ejemplos
Ejemplo 1: Obtener el mayor valor
int max = (a > b) ? a : b;
Ejemplo 2: Determinar estado de aprobación
char* status = (score >= pass_threshold) ? "Aprobado" : "Reprobado";
Ejemplo 3: Función para obtener el mínimo
int obtener_minimo(int x, int y) {
return (x < y) ? x : y;
}
Consideraciones
Aunque útil para simplificar código corto, el uso excesivo o anidado del operaddor ternairo puede reducir la legibilidad. En casos complejos, preferir estructuras if-else mejora la claridad del código.