Ejemplo de alcance

c:
#include <stdio.h>

void usoLocal( void );       /* prototipo de función */
void usoStaticLocal( void ); /* prototipo de función */
void usoGlobal( void );      /* prototipo de función */

int x = 1; /* variable global */

/* la función main comienza la ejecución del programa */
int main()
{
   int x = 5; /* variable local a main */

   printf("x local fuera del alcance de main es %d\n", x );

   { /* comienza el nuevo alcance */
      int x = 7; /* variable local con nuevo alcance */

      printf( "x local en el alcance interno de main es %d\n", x );
   } /* fin de nuevo alcance */

   printf( "x local en el alcance externo de main es %d\n", x );

   usoLocal();       /* usoLocal contiene a automatic local x */
   usoStaticLocal(); /* usoStaticLocal contiene a static local x */
   usoGlobal();      /* usoGlobal utiliza global x */
   usoLocal();       /* usoLocal reinicializa automatic local x */
   usoStaticLocal(); /* static local x retiene su valor previo */
   usoGlobal();      /* x global también retiene su valor */

   printf( "\nx local en main es %d\n", x );

   return 0; /* indica terminación exitosa */

} /* fin de main */

/* usoLocal reinicializa a la variable local x durante cada llamada */
void usoLocal( void )
{
   int x = 25/* se inicializa cada vez que se llama usoLocal */

   printf( "\nx local en usoLocal es %d después de entrar a usoLocal\n", x );
   x++;
   printf( "x local en usoLocal es %d antes de salir de usoLocal\n", x );
} /* fin de la función usoLocal */

/* usoStaticLocal initializa la variable static local x sólo la primera vez
   que se invoca a la función; el valor de x se guarda entre las llamadas a esta
   función */

void usoStaticLocal( void )
{
   /* se inicializa sólo la primera vez que se invoca usoStaticLocal */
   static int x = 50

   printf( "\nlocal static x es %d al entrar a usoStaticLocal\n", x );
   x++;
   printf( "local static x es %d al salir de usoStaticLocal\n", x );
} /* fin de la función usoStaticLocal */

/* la función usoGlobal modifica la variable global x durante cada llamada */
void usoGlobal( void )
{
   printf( "\nx global es %d al entrar a usoGlobal\n", x );
   x *= 10;
   printf( "x global es %d al salir de usoGlobal\n", x );
} /* fin de la función usoGlobal */
¿Ya le viste algún error? Dejanos tu correción ;-)

Antes de comentar: Gran parte de los ejercicios propuestos no tienen librerías debido a que Wordpress elimina los tags HTML. Si sabes/tienes/conoces las librerías que hacen falta, déjalo en los comentarios.

Otro punto antes de comentar, Si vas a sugerir un segmento de código en algún lenguaje debes hacerlo así:

De esta manera el código sale coloreado.

Otro punto importante para muchos que sienten que se les ignora: Todos los comentarios los reviso y en su debido momento los apruebo, pero ojo con el último párrafo.

Para poner los símbolos de las librerías sin que desaparezcan, debes escribir los símbolos de mayor > y menor qué < con su entidad HTML correspondiente, así como el símbolo de &

Mis Algoritmos se reserva el derecho de alterar, publicar o no los comentarios así como cambiar estas reglas de uso.

Si estas de acuerdo, adelante puedes comentar :)

P.D. No le hago tareas a nadie, mejor hagan la mía :P