Certamen 1 Lenguaje de Programación 2010-1         Prof.: Jorge López R.

1) (1.pto.) Sin modificar, eliminar o comentar las  líneas del programa siguiente, inserta líneas que logren que los datos de entrada dados, se correspondan con la salida en pantalla.
#include <stdio.h>
struct persona {
char nombre[100];
int numeroMatricula;
char sexo;
char carrera[100];
};
main(){
struct persona a,b;
scanf("%s %i %c %s",a.nombre,&a.numeroMatricula,&a.sexo,a.carrera);
printf("%s %i %c %s\n",a.nombre, a.numeroMatricula,a.sexo,a.carrera);
b=a; //copia los campos de una variable en otra
a.numeroMatricula=0;
printf("%s %i %c %s\n",d->nombre,d->numeroMatricula,d->sexo,d->carrera);
}

Entrada por teclado:
Chavez 20091111 F Enfermeria
Salida en pantalla:
Chavez 20091111 F Enfermeria
Chavez 20091111 F Enfermeria

2) (1 pto.) Corrige el siguiente programa para que sea coherente con su salida en pantalla. Explica la razón del (los) cambio(s).
#include <stdio.h>
int elementosIguales(int m, float a[], float b[]){
int r=0,i;
for (i=0;i<m;i++){
if(a[i]==b[i])r++;
}
return r;
}
main(){
float w[5]={1.1,1.2,1.3,1.4,1.5};
float z[5]={1.5,1.4,1.3,1.2,1.1};
int n;
elementosIguales(w,z,5);
printf("Elementos iguales: %i\n",r);
return 0;
}


Salida en pantalla:
Elementos iguales: 1

3) (1 pto.) Construye la tabla de trazado (ruteo)  y escribe el contenido de z[][], del siguiente programa
#include <stdio.h>
#define FC 3
int x[2][3]={1,2,3,
4,5,6};
int y[2][3]={1,4,7,
2,5,8};
int z[2][3];
main(){
int i,j;
for(i=0;i<2;i++){
for(j=0;j<3;j++){
if((x
[i][j]+y[i][j])%2==0) z[i][j]=1;
else
z[i][j]=0;
}
}
}

4) (1 pto.) Marca con una x la(s) líneas(s) del programa que se ejecuta(n) para los valores de edad que se indican en cada columna en la tabla:


valores para edad

3
20
15
6
11
  scanf("%s %d",nombre,&edad);





   if(18<=edad && edad <26)





     printf("%s esta en la U\n",nombre);





   else if(11<=edad && edad <18)





     printf("%s esta en la Media\n", nombre);





   else if(edad<11 && edad >=6)





      printf("%s esta en la Basica\n",nombre);






5) (2 ptos.) Crear el cuerpo de la función  que rota circularmente m veces a la izquierda el contenido  de una matriz unidimesional. El esqueleto  de la función de debe ser:
void rotarIzquierdaM(float  a[], int n, int m){
     
//cuerpo de la funcion en este lugar
}
Ejemplo:
main(){
float x[7]={1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7};
rotarIzquierdaM(x,7,3);
}
la matriz debe quedar:
1.4, 1.5, 1.6, 1.7
, 1.1, 1.2, 1.3