Certamen 1 Lenguaje de Programación
Jorge López R.


1. (1 punto)
a) Nombre  los componentes del Sistema Procesador y describa la función de cada uno de ellos. b) Mediante un diagrama, explique el proceso paso a paso para obtener un programa ejecutable a partir de dos archivos fuente.
c) defina y de un ejemplo de: identificador, palabra reservada, variable global y puntero .
d) Describa la diferencia entre una variable local y una variable argumento de una función.
2. (1 punto) Ayuda operaciones binarias: | (or), & (and), ^ (xor), ~ (negación, cambia 1's por 0's y 0' por 1's), << k (desplaza binariamente k dígitos a la izquierda e inserta un cero en el de menor orden), >>k (idem anterior pero a la derecha)
a) ¿Qué hace el siguiente programa?:
main(){
int n=0,i;
unsigned char x;
scanf("%x", &x);
for (i=0;i<8;i++)
n = n + ((x>>i)&0x1);
printf("%d\n",n);
}
b) Modifique func() para que las variables puedan estar declaradas dentro de main() y tener un nombre distinto. Complete la declaración para que no se emitan "warnings".
int x = 5, y = 2, z = 8;
main(){
.....................
func();
}
void func(){
int aux;
aux = x; x = y; y = z; z = aux;

3. (2 puntos) Ayuda:  % (resto de la división entera)
a) Crear una función que devuelve el menor dígito decimal del entero que se le pasa como argumento, el prototipo es:
int menorDigito(int);
b) Crear una función que determine si los 8 dígitos decimales de un entero tienen simetría. Ejemplos: 12344321, 88222288. El prototipo es:
int esSimetrico(int);  Debe devolver uno si es y cero si no es.

4. (2 puntos)
Hacer un programa que lea por teclado un conjunto de n enteros, n es también un entero leido por teclado. El programa debe imprimir la cantidad total de números pares y la de impares.