ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Programacion ejercicios

Daniel HernandezTrabajo29 de Agosto de 2015

4.492 Palabras (18 Páginas)256 Visitas

Página 1 de 18

____________________________________________________________________________________

APELLIDOS:

NOMBRE:

CARRERA:

____________________________________________________________________________________

INFORMACION SOBRE LA FORMA DE REALIZAR EL EXAMEN

=====================================================

Después del enunciado de cada pregunta, existen cuatro opciones numeradas:  01)  02)  04)  08).

El alumno debe contestar cada pregunta colocando DOS cifras decimales en el recuadro RESPUESTA, que correspondan con la SUMA de las opciones que considere correctas.

Ejemplos:

--    Si se considera que son correctas las opciones 01) y 04), se contestará con:

RESPUESTA:

  0

  5

--    Si se considera que son correctas las opciones 01), 02) y 08), se contestará con:

RESPUESTA:

  1

  1

--    Si se considera que sólo es correcta la opción 08), se contestará con:

RESPUESTA:

  0

  8

--    Si se considera que ninguna opción es correcta, se contestará con:

RESPUESTA:

  0

  0

NOTA:

Suponer que en los códigos fuente de todos los enunciados están ya incluidos mediante directivas "include" todos los ficheros de cabecera que sean necesarios.


01)  Indicar cual de las siguientes funciones es la que presenta por pantalla la cadena referenciada por "n", pero escrita al revés.

        01) void escribir (char *n)

              {   if (*n!=0)  {  escribir (n+1);  putchar (*n);  }  }

        02) void escribir (char *n)

              {   if (*n!=0)  {  escribir (n++);  putchar (*n);  }  }

        04) void escribir (char *n)

              {   if (*n!='\0')  {  escribir (n+1);  putchar (*n);  }  }

        08) void escribir (char *n)

              {   if (*n!=0)  {  escribir (n+1);  putchar (n);  }  }

        

RESPUESTA:

____________________________________________________________________________________

02)  Al ejecutar el siguiente programa:

main()

{

    int a[8] = { 1,2,3,4,5,6,7,8 }, *p = &a[5],  v;

    v = (*p-- = 4);

    printf ( "v=%d, a[5]=%d", v, a[5] );

}

        01) Imprime  v=4, a[5]=4, y el puntero "p" acaba apuntando a la dirección de a[4]

        02) Imprime  v=5, a[5]=4, y el puntero "p" acaba apuntando a la dirección de a[4]

        04) Imprime  v=4, a[5]=3, y el puntero "p" acaba apuntando a la dirección de a[4]

        08) Imprime  v=4, a[5]=5, y el puntero "p" no se modifica pues se decrementa el valor de a[5]

RESPUESTA:

____________________________________________________________________________________

03)  En el arbol binario de búsqueda siguiente:                            4

                                                              2                10

                                                        1          3     8         12

¿en qué orden se han podido introducir los datos?                                   11         13

        01) 4  2  10  12  8  11  13  1  3

        02) 4  2  10  8  12  13  11  3  1

        04) 4  2  10  11  8  12  1  3  13

        08) 1  2  3  4  8  10  11  12  13

RESPUESTA:


04)  Completar la función siguiente para conseguir que se impriman números enteros en pantalla sin usar la función "printf":

void  imprimir ( int N )

{

    if ( N<0 )

        {   putchar ('-'); N = -N;   }

    if ( N >= 10 )

        /* COMENTARIO A SUSTITUIR */

    putchar ( N%10 + '0' );

}

        01) putchar ( N/10 + '0' );

        02) imprimir ( N/10 );

        04) imprimir ( N/10 + '0' );

        08) putchar ( N/10 );

RESPUESTA:

____________________________________________________________________________________

05)  En un fichero en disco disponemos de las notas correspondientes a una determinada asignatura. Cada registro del fichero es de la forma:        typedef  struct  r

                                        {   char nombre[60];

                                             float nota;

                                        }   tregnota;

Completar el desarrollo de la función   "numregs"   que recibe como argumento el nombre de un fichero y devuelve como resultado la cantidad de registros del tipo "tregnota" que contiene, o bien un 0 si no se puede abrir el fichero, sustituyendo el comentario indicado.

int  numregs (char *nombrefich)

{

     int tam;

     FILE *pf;

     if  ((pf = fopen (nombrefich, "rb") == NULL )

         {   printf ("No se puede abrir el fichero.\n"); return 0;   }

     /*  COMENTARIO A SUSTITUIR */

     fclose (pf);

     return  tam;

}

        01) fseek (pf, 0L, 2);  tam = (int)(ftell (pf))/sizeof (tregnota);

        02) fseek (pf, 0L, SEEK_END);  tam = (int)(ftell (pf))/sizeof (tregnota);

        04) fseek (pf, 0L, SEEK_END);  tam = (int)(ftell (pf))*sizeof (tregnota);

        08) fseek (pf, 0L, SEEK_SET);  tam = (int)(ftell (pf))/sizeof (tregnota);

RESPUESTA:

06)  Se quiere escribir un programa que reciba dos números ("n" y "k")  a través de la linea de órdenes y que calcule la raiz "n-ésima" de "k". Se supone que la función que calcula la raiz n-ésima ya existe, y su declaración prototipo es    float raiz ( float k, int n ).

La forma de llamar al programa desde el Sistema Operativo será:    raiz  7  2187

Para conseguir esto, indicar qué lineas han de ser sustituidas por el comentario en el siguiente programa:

main ( int argc,  char *argv[ ] )

{

    int n;  float k;

    if ( argc != 3 )  {  printf ("Forma de uso: %s  n  k", argv[0] ); exit (-1); }

    n = atoi ( argv[1] );

    if ( n<=1)  {  printf ("Parámetro %s fuera de rango\n", argv[1] ); exit (-1); }

    /* COMENTARIO  A SUSTITUIR */

}

        01) k = atof ( argv[2] ); printf ("%f\n", raiz (k,n));

        02) k = argv[2]; printf ("%f\n", raiz (k,n));

        04) k = atof ( argv[1] ); printf ("%f\n", raiz (k,n));

        08) k = atof ( argv[2] ); k = raiz (k,n); printf ("%g\n", k);

RESPUESTA:

____________________________________________________________________________________

07)  Si se crea un arbol binario de búsqueda con los valores    50, 20, 10, 90, 70, 40, 80     , en el que cada nodo está compuesto por una estructura del tipo        struct  nodo

                                                        {   int dato;

                                                             struct nodo *izqdo;

                                                             struct nodo *dcho;

                                                        }

...

Descargar como (para miembros actualizados) txt (17 Kb) pdf (117 Kb) docx (21 Kb)
Leer 17 páginas más »
Disponible sólo en Clubensayos.com