You are on page 1of 2

2da_Actividad de evaluacin.

Parmetros por valor y referencia

2da_Actividad de evaluacin. Parmetros por valor y referencia

Nombre:______________________________________________
Grupo:__________________
P1: Sigue y analiza cuidadosamente el siguiente programa e indica que

Nombre:______________________________________________
Grupo:__________________
P1: Sigue y analiza cuidadosamente el siguiente programa e indica que

imprime.

imprime.

#include <stdio.h>
/* Combinacin de variables globales y locales, y parmetros por valor
y por referencia. */
int a, b, c, d; /* Variables globales. */
void funcion1(int *, int *);
/* Prototipo de funcin. Observa que los dos parmetros son por
referencia. */

#include <stdio.h>
/* Combinacin de variables globales y locales, y parmetros por valor
y por referencia. */
int a, b, c, d; /* Variables globales. */
void funcion1(int *, int *);
/* Prototipo de funcin. Observa que los dos parmetros son por
referencia. */

int funcion2(int, int *);

int funcion2(int, int *);

/* En este prototipo el primer parmetro es por valor y el segundo por


referencia. */
void main(void)
{
int a; /* Nota que a es una variable local. */
a = 1; /* Se asigna un valor a la variable local a. */
b = 2; /* Se asignan valores a las variables globales b, c y d. */
c = 3;
d = 4;
printf(\n%d %d %d %d, a, b, c, d);
funcion1 (&b, &c);
printf(\n%d %d %d %d, a, b, c, d);
a = funcion2(c, &d);
printf(\n%d %d %d %d, a, b, c, d);
}
void funcion1(int *b, int *c)
{
int d;
a = 5; /* Observa que se hace referencia a la variable global a. */
d = 3; /* Nota que se hace referencia a la variable local d. */
(*b)++;
(*c) += 2;
printf(\n%d %d %d %d, a, *b, *c, d);
}
int funcion2(int c, int *d)
{
int b;
a++;
b = 7;
c += 3;
(*d) += 2;
printf(\n%d %d %d %d, a, b, c, *d);
return (c);
}

/* En este prototipo el primer parmetro es por valor y el segundo por


referencia. */
void main(void)
{
int a; /* Nota que a es una variable local. */
a = 1; /* Se asigna un valor a la variable local a. */
b = 2; /* Se asignan valores a las variables globales b, c y d. */
c = 3;
d = 4;
printf(\n%d %d %d %d, a, b, c, d);
funcion1 (&b, &c);
printf(\n%d %d %d %d, a, b, c, d);
a = funcion2(c, &d);
printf(\n%d %d %d %d, a, b, c, d);
}
void funcion1(int *b, int *c)
{
int d;
a = 5; /* Observa que se hace referencia a la variable global a. */
d = 3; /* Nota que se hace referencia a la variable local d. */
(*b)++;
(*c) += 2;
printf(\n%d %d %d %d, a, *b, *c, d);
}
int funcion2(int c, int *d)
{
int b;
a++;
b = 7;
c += 3;
(*d) += 2;
printf(\n%d %d %d %d, a, b, c, *d);
return (c);
}

P2.Analiza cuidadosamente el siguiente programa e indica que imprime.

P2.Analiza cuidadosamente el siguiente programa e indica que imprime.

# include <stdio.h>
/* Funciones y parmetros. */
int F1(int , int *); /* Prototipo de funcin. */
int A = 3;
int B = 7;
int C = 4; /* Variables globales. */
int D = 2;
void main(void)
{
A = F1 (C, &D);
printf(\n%d %d %d %d, A, B, C, D);
C = 3;
C = F1 (A, &C);
printf(\n%d %d %d %d, A, B, C, D);
}
int F1(int X, int *Y)
{
int A;
A = X * *Y;
C++;
B += *Y;
printf(\n%d %d %d %d, A, B, C, D);
*Y--;
return (C);
}

# include <stdio.h>
/* Funciones y parmetros. */
int F1(int , int *); /* Prototipo de funcin. */
int A = 3;
int B = 7;
int C = 4; /* Variables globales. */
int D = 2;
void main(void)
{
A = F1 (C, &D);
printf(\n%d %d %d %d, A, B, C, D);
C = 3;
C = F1 (A, &C);
printf(\n%d %d %d %d, A, B, C, D);
}
int F1(int X, int *Y)
{
int A;
A = X * *Y;
C++;
B += *Y;
printf(\n%d %d %d %d, A, B, C, D);
*Y--;
return (C);
}