Boletín 1 - Introducción al lenguaje C

Anuncio
Boletín 1
1. Indique cuáles de los siguientes identificadores no son válidos y por qué:
a. X_max
f. contador2
b. 5down
g. si*no
c. SumaTotal
h. longitud
d. _total
i. long
e. si_o_no
2. Defina las siguientes constantes:
a. Una constante entera EOF con valor -1.
b. Una constante entera MAXIMO con valor 999.
c. Dos constantes enteras CIERTO y FALSO con valores 1 y 0, respectivamente.
d. Una constante carácter ULTIMA_LETRA con valor ‘Z’.
e. Una constante real PI con valor 3.14159.
f. Una constante real EPSILON con valor 0.00001 (utilice la notación científica).
g. Una cadena constante MENSAJE con valor “Error en la entrada de datos”.
3. Defina los siguientes tipos de datos:
a. Un tipo Edad que represente la edad de una persona.
b. Un tipo Dni que represente el DNI de una persona.
c. Un tipo Vocal que represente el conjunto de las cinco vocales.
d. Un tipo DiaSemana que represente los siete días de la semana.
e. Un tipo Mes que represente los meses del año.
4. Declare las siguientes variables:
a. Dos variables carácter c1 y c2 con valores iniciales ‘A’ y ‘B’ respectivamente.
b. Dos variables enteras i, j.
c. Una variable real d.
d. Una variable encontrado de tipo lógico con valor inicial Falso.
e. Una variable mayoría_de_edad de tipo Edad con valor inicial 18.
f. Una variable dia de tipo DiaSemana.
g. Una variable mes_de_nacimiento de tipo Mes.
5. Indique el valor de las siguientes expresiones:
a. 3 / 2
g. ‘5’ – ‘0’
b. 3.0 / 2
h. ‘7’ – ‘5’
c. (int) 3.0 / 2
i. ‘a’ – 32
d. 10.0 / 5 * 2.0
j. 6 / 3 * 2
e. 10.0 / 5 / 2
k. 6 / (3 * 2)
f. 10.0 / (5 / 2.0)
l. 1 + 2 * 3
6. Suponiendo declaradas y asignadas las variables:
int i=8, j=5;
double x=0.005, y=-0.01;
char c=’c’, d=’d’;
Indique los valores de las siguientes expresiones:
a) (3 * i -2 * j) % (2 * d – c)
b) 2 * ((i / 5) + (4 * (j – 3)) % (i + j – 2))
c) – (i + j) / 2
d) i++;
e) i--;
f) i <= j + 3
g) c > d
h) j != 6
i) c == 99
j) 2 * x + (y == 0)
k) !(i <= j)
l) (i > 0) && (j < 5)
m) (i > 0) || (j < 5)
n) (x > y ) && (i > 0) || (j < 5)
o) (x > y) || (i > 0) && (j < 5)
p) i % 2 == 0
q) (i >= 1) && (i <= 10)
r) (i < 1) || (i > 10)
s) i / j
t) (double) (i / j)
u) (double) i / j
7. Dadas las siguientes definiciones de constantes:
#define MINIMO 1
#define MAXIMO 5
#define VALOR1 7
#define VALOR2 9
#define VALOR3 -1
y la siguiente declaración de variable:
int numero;
Escriba sendas expresiones lógicas que sean verdaderas si:
a) El valor de numero de encuentra en el rango definido por las constantes
MINIMO y MAXIMO.
b) El valor de numero es uno de los tres valores constantes VALOR1, VALOR2
y VALOR3.
c) El valor de numero se encuentra en el rango definido por las constantes
MINIMO y MAXIMO, o bien es igual al valor constante VALOR1.
8. Sean dos fechas dadas por (dia1,mes1,anyo1) y (dia2,mes2,anyo2), respectivamente.
Escriba una expresión lógica cuyo valor sea cierto si la primera fecha es igual o anterior
a la segunda, y falso si es posterior.
9. Dada la declaración de variables:
int a = 1, b = 5, c = 2;
indique el valor de la siguiente expresión lógica:
(((a < b) || (c == 1)) && !(b <= (a – c)))
10. Sean dos variables enteras x e y, y sea la asignación siguiente:
x = 5 + y++;
desdoble la asignación en dos instrucciones de forma que el operador de incremento
no intervenga en la expresión. Una vez hecho esto, indique el valor que tendrán las
variables x e y después de ejecutarse las instrucciones, siendo el valor inicial de la
variable e igual a 7.
11. Dada la declaración de variables:
int i = 5, j = 7, edad = 15;
double suma = 12.559;
char vocal = ‘a’;
indique el resultado impreso por las siguientes instrucciones:
a) printf(“El cuadrado de %d vale %d”, i, i*i);
b) printf(“%3d x %3d = %3d”, i, j, i*j);
c) printf(“%3d x %3d = %10.5d”, i, j, i*j);
d) printf(“La suma es: %.2lf”,suma);
e) printf(“La edad de %s es %d años”, “Rosario”, edad);
f) printf(“Nombre
Edad\n%s%4d,”Rosario”, edad);
g) printf(“Nombre
Edad\n%10s%4d,”Rosario”, edad);
h) printf(“Nombre
Edad\n%-10s%4d,”Rosario”, edad);
12. Indique el resultado impreso por el siguiente programa:
#include <stdio.h>
int main ()
{
int millas, yardas;
double kms;
millas = 26;
yardas = 385;
kms = 1.609 * (millas + yardas/1760.0);
printf(“\nLa distancia del maratón es %lf kms\n”, kms);
}
13. Escriba un programa que calcule el área de un círculo. Defina para ello el valor de π
como una constante.
14. Escriba un programa que lea un instante de tiempo expresado en horas, minuto y
segundos y calcule el número de segundos transcurridos desde las cero horas hasta
dicho instante de tiempo. Utilice la fórmula:
segundos_transcurridos = horas * 3600 + minutos * 60 + segundos
Descargar