INTRODUCCION A LA ADMINISTRACION DE LOS SISTEMAS OPERATIVOS atte. julio galindo

marquesina

Todo el mundo es un genio. pero si juzgas a un pez por su habilidad de trepar un arbol, pasara el resto de su vida creyendo que es un idiota. "Albert Einstein"
gadgets para blogger

LA MEMORIA

BUSCADOR.............................................................................>>>

  • ROTULADOR

    LISTAS 3ER SEMESTRE"LISTAS TERCERO" LISTAS 5TO SEMESTRE"LISTAS QUINTO" Titulo de la entrada Titulo de la entrada Titulo de la entrada Titulo de la entrada Titulo de la entrada" EVALUACIONES" /> Titulo de la entrada" EVALUACIONESMMMMHHH" />

    ejercicios cortos de progra

    ENUNCIADOS


    1. Escribe cuál es la salida del siguiente programa:

    #include <stdio.h>

    #include <stdlib.h>

    main()

    {

    int s, j, k, i, l;

    s=0;

    for (j=1;j<=5;j++)

    { printf("%d", j );

    if (j%2 ==0) { s=s+j; }

    }

    printf("\n%d",s);

    i= 10;

    while (i>0)

    i=i-1;

    printf("\n%d",i);

    printf("\n\n");

    system ("PAUSE");

    }

    2. Escribe cuál es la salida del siguiente programa:

    #include <stdio.h>

    #include <stdlib.h>

    main()

    {

    int i, j;

    for (i=1; i<=10; i++)

    { for (j=1; j<=10-i+1; j++)

    { printf(" %d",j); }

    printf("\n");

    }

    printf("\n\n");

    system ("PAUSE");

    }

    3. Escribe cuál es la salida del siguiente programa:

    #include <stdio.h>

    #include <stdlib.h>

    main()

    { int i, j, sum;

    for (i=1; i<=3; i++)

    { sum=0;

    for (j=1; j<=i; j++)

    { sum=sum+j;

    if (i!=j) {printf("%d/%d + ",i,sum);}

    else {printf("%d/%d \n",i,sum);}

    }

    }

    printf("\n\n");

    system ("PAUSE");

    }

    4 Enunciados

    4. Escribe cuál es la salida del siguiente programa:

    #include <stdio.h>

    #include <stdlib.h>

    #define maxFila 6

    main()

    { int fila, columna, numero;

    numero=0;

    for (fila=1;fila<=maxFila; fila++)

    { columna=1;

    while (columna<=fila)

    { numero ++;

    printf("%5d", numero);

    columna ++;

    }

    printf("\n");

    }

    printf("\n\n");

    system ("PAUSE");

    }

    5. Escribe cuál es la salida del siguiente fragmento de programa:

    main()

    { int Minimo=1, Maximo=5, i, dato=25;

    for(i=Maximo;Minimo<=i;i--)

    { printf("\n el que va el %d es %d \n", i, dato-i); }

    printf("Está terminado");

    printf("\n\n");

    system ("PAUSE");

    }

    6. Escribe cuál es la salida del siguiente programa:

    #include <stdio.h>

    #include <stdlib.h>

    main()

    { int Minimo=1, Maximo=3, i,j;

    for(i=Minimo;i<=Maximo;i++)

    for(j=Minimo;j<=Maximo;j++)

    printf("i vale %d y j vale %d .\n", i, j);

    printf("\n\n");

    system ("PAUSE");

    }

    7. Escribe cuál es la salida del siguiente programa:

    #include <stdio.h>

    #include <stdlib.h>

    main()

    { int i,k;

    for (i=1; i<=5; i++)

    { for (k=1; k<=i; k++)

    printf("*");

    printf("\n");

    }

    Enunciados

    5

    for (i=4; 1<=i; i--)

    { for (k=1; k<=i; k++)

    printf("*");

    printf("\n");

    }

    printf("\n\n");

    system ("PAUSE");

    }

    8. Escribe cuál es la salida del siguiente programa:

    #include <stdio.h>

    #include <stdlib.h>

    main()

    {int a,b,n,x,y;

    n=6;

    x=0;

    y=0;

    for (a=1; a<=n; a++)

    { if (a%2== 0)

    { for (b=a; b<n; b++) {x=x+1;}

    printf("\n%d >>> %d", a,x);

    }

    else

    { for (b=1; b<a; b++) {y=y+1;}

    printf("\n%d >>> %d", a,y);

    }

    }

    printf("\n\n");

    system ("PAUSE");

    }

    9. Escribe cuál es la salida del siguiente programa:

    #include <stdio.h>

    #include <stdlib.h>

    #include <string.h>

    main()

    {char cadena[]="este error es el grave?";

    int cont,i,desde, hasta, ind, tam;

    cont=0;

    tam= strlen(cadena); // tamaño de la cadena

    for (ind=0; ind<tam; ind++)

    { if (cadena[ind]=='e')

    {cont++;}

    }

    printf("En la cadena '%s' hay %d 'e'\n",cadena, cont);

    for (i=1;i<=cont;i++)

    { printf("%d 'e' está: ",i);

    desde=0;

    hasta=0;

    while (desde<i)

    { if (cadena[hasta]=='e')

    {desde++;}

    hasta++;

    }

    for (ind=0; ind<hasta; ind++)

    {printf("%c", cadena[ind]);}

    6 Enunciados

    printf("\n");

    }

    printf("\n\n");

    system ("PAUSE");

    }

    10. Di si los dos fragmentos de programa que están a continuación son

    equivalentes. Razona la respuesta.

    ( Decir que son equivalentes significa que escribir uno u otro fragmento

    dentro de un programa da el mismo resultado.)

    A.-

    if (x<10) {x:=x+1;}

    if (x>=10) {x:=x-1;}

    if (x<10) {x:=x+1;}

    else {x:=x-1;}

    B.-

    for (i=10;i<=25; i++)

    printf(" %d \n",i);

    printf("Ha terminado");

    i=10;

    while (i<=25)

    { printf(" %d",i);

    printf("Ha terminado \n ");

    }

    11. ¿Los dos fragmentos de programa, hacen lo mismo ?. Si es que si dí que

    hacen y si es que no ¿porqué no?:

    A esta= 0;

    ind = 0;

    while ((ind<N) && (esta==0))

    { if (x==tabla[ind])

    {esta=1;}

    ind=ind+1;

    }

    if (esta==1)

    {printf("%d está en la posición %d ", x, ind-1);}

    else

    {printf("%d no está", x);}

    B esta=0;

    for (ind=0;ind<N;ind++)

    { if (x==tabla[ind])

    {esta=1;}

    }

    if (esta==1)

    {printf("está en la posición %d ", x, ind-1);}

    else

    {printf("%d no está", x);}

    12. ¿ Hacen lo mismo los dos fragmentos de programa?. Si es que si dí qué

    hacen y si es que no ¿porqué no?:

    Enunciados

    7

    A printf("Dame un número: ");

    scanf("%d", &n);

    cont=1;

    while(cont<=n)

    { printf("%d \n", cont);

    cont=cont+2;

    }

    B printf("Dame un número: ");

    scanf("%d", &n);

    for(cont=1;cont<=n;cont++)

    { if (cont%2==0)

    {printf("%d \n", cont);}

    }

    13. Escribe qué hace el siguiente programa.

    #include <stdio.h>

    #include <stdlib.h>

    main()

    { int x, y, num;

    printf("Dame un número: ");

    scanf("%d",&num);

    x=0;

    y=0;

    while (num!=0)

    { if (num%2==0)

    {y++;}

    x++;

    scanf("%d",&num);

    }

    printf("\Total de números: %d", x);

    printf("\nTotal de números pares: %d", y);

    printf("\n\n");

    system ("PAUSE");

    }

    14. El siguiente programa contiene errores, corrígelo:

    #define <stdio.h>

    #define <stdlib.h>

    #include Tope 10;

    main()

    {int tabla [tope], i, aux;

    for (i=0; i<Tope; i++)

    { tabla[i]=i;

    i=i+1;

    }

    i=0;

    while (i<=Tope)

    { aux=tau[i];

    tabla[i]=tabla[i+1];

    tabla[i+1]=aux;

    }

    8 Enunciados

    printf("\n\n");

    system ("PAUSE");

    }

    15. Sustituye las sentencias if por un único switch :



    #include <stdio.h>

    #include <stdlib.h>

    main()

    { int n;

    printf("Escribe un número: ");

    scanf("%d", &n);

    if ((n==5) || (n==6) ) {n=n+4;}

    else if ((n>7) && (n<=10)) { n=n-5;}

    else if (n==7) {n=n+1;}

    else {n=n-1; }

    printf("Número: %d", n);

    printf("\n\n");

    system ("PAUSE");

    }

    16. Dí que hace el siguiente diagrama de flujo y a continuación escribe el

    correspondiente programa en C :

    INICIO

    div<n

    d divisible div

    FIN

    si

    no

    si

    si

    no

    div

    aux

    aux1



    no aux es 0

    n

    NO SI

    div div 1

    17. Realiza el diagrama de flujo y el programa en C que haga lo siguiente:

    a. Se teclearán dos números enteros por pantalla hasta que los dos sean

    menores que 50.

    Enunciados

    9

    b. El más pequeño se irá incrementando de 5 en 5 y el más grande se

    decrementará de 2 en 2, se irán imprimiendo a la vez que se van

    generando. El programa terminará cuando los valores se crucen.

    18. El siguiente programa intenta contar cuantos carácteres “t” seguidos de

    a” hay en una frase que se pedirá por pantalla, la frase acabará con un



    punto. En el programa hay 5 errores, corrígelos. Ejemplo de ejecución

    (en negrita los datos introducidos por el usuario):

    Escribe un frase(para acabar un punto): abba tkktajjtaiitaktaoi.



    – ta – aparece 4 veces

    #include <stdio.h>

    #include <stdlib.h>

    main()

    { int antes, tot=0;

    char ahora;

    antes='z';

    printf("Escribe una frase, para acabar un punto '.': \n");

    scanf("%c", &ahora);

    while (ahora!='.')

    if (ahora=='a' || antes=='t') then {tot ++;}

    antes=ahora;

    scanf("%c", &orain);

    printf(" aparece veces '-ta-'", tot);

    printf("\n\n");

    system ("PAUSE");

    }

    19. Haz un programa que pida un número entero y obtenga la suma de los

    cuadrados de los números de 4 en 4 que hay hasta llegar a él. Por

    ejemplo, si el dato de entrada es 10, la solución vendrá dada por el

    resultado de la siguiente operación: 12 + 52 + 92



    20. ¿Qué hace el siguiente programa?

    #include <stdio.h>

    #include <stdlib.h>

    main()

    { int x, n=0;

    for (x=45; 1<=x; x--)

    if (x<30) {n=n-x;}

    else {n=n+x;}

    printf("%d", n);

    printf("\n\n");

    system ("PAUSE");

    }



    11

    SOLUCIONES PROPUESTAS


    1. 12345



    6

    0

    2. 1 2 3 4 5 6 7 8 9 10



    1 2 3 4 5 6 7 8 9

    1 2 3 4 5 6 7 8

    1 2 3 4 5 6 7

    1 2 3 4 5 6

    1 2 3 4 5

    1 2 3 4

    1 2 3

    1 2

    1

    3. 1/1



    2/1 + 2/3

    3/1 + 3/3 + 3/6

    4. 1



    2 3

    4 5 6

    7 8 9 10

    11 12 13 14 15

    16 17 18 19 20 21

    5. el que va el 5 es 20.



    el que va el 4 es 21.

    el que va el 3 es 22.

    el que va el 2 es 23.

    el que va el 1 es 20.

    Está terminado.

    6. i vale 1 y j vale 1.



    i vale 1 y j vale 2.

    i vale 1 y j vale 3.

    i vale 2 y j vale 1.

    i vale 2 y j vale 2.

    i vale 2 y j vale 3.

    i vale 3 y j vale 1.

    i vale 3 y j vale 2.

    i vale 3 y j vale 3.

    7. *



    **

    ***

    ****

    *****

    ****

    ***

    **

    *

    12 Soluciones propuestas

    8. 1 === 1



    2 >>> 5

    3 === 4

    4 >>> 8

    5 === 9

    6 >>> 9

    9. En la cadena ‘este error es el grave?’ hay 6 ‘e’.



    1 ‘e’ está: e

    2 ‘e’ está: este

    3 ‘e’ está: este e

    4 ‘e’ está: este error e

    5 ‘e’ está: este error es e

    6 ‘e’ está: este error es el grave

    10. A) No son equivalentes, en el primer fragmento cuando x es 9 a x



    se le suma 1, con lo cual es 10, y al seguir en la siguiente

    instrucción como x es 10 se le resta 1 a la x, en el segundo

    fragmento si x es menor que 10 se le suma 1 a la x y en caso

    contrario se le resta 1 a la x.

    B) No son equivalentes, en el primer fragmento se escribe los

    números de 1 a 25 y al final Ha terminado, en el segundo

    fragmento como no se incrementa la i, comienza con 10 y escribe

    10 Ha terminado de forma indefinida.

    11. No tienen el mismo efecto, en los dos se intenta ver si un valor



    x está en una tabla de N elementos, en el primer fragmento

    termina de recorrer la tabla bien porque lo ha encontrado o

    porque se han acabado los elementos, en el segundo recorre

    siempre toda la tabla y además si lo ha encontrado siempre

    imprime que está en la posición ind-1, número de elementos de la

    tabla menos 1.

    12. No tienen el mismo efecto, en los dos se solicita un número por



    pantalla, imprimiéndose los números impares hasta llegar al

    número en el primer fragmento y en el segundo fragmento los

    pares.

    13. Se van pidiendo números por pantalla hasta que se teclee el



    número 0, en y se van sumando el número de pares que se

    introducen y en x el número de números que se introducen, al

    final se imprime x e y.

    14. #define <stdio.h> corregido #include <stdio.h>

    #define <stdlib.h> corr. #include <stdio.h>

    #include Tope 10; corr. #define Tope 10



    main (){

    int tabla [Tope], i, lag;

    for (i=1; i<Tope; i++) corr. for (i=0; i<Tope; i++)



    { tau[i]=i;

    Soluciones propuestas 13

    i=i+1; sobra



    }

    i=1; corr. i=0;

    while (i<=Tope) corr. while (i<Tope)



    { lag=tau[i];

    tau[i]=tau[i+1];

    tau[i+1]=lag; falta i=i+1;



    }

    printf("\n\n");

    system ("PAUSE");

    }

    15. switch (n)



    {

    case 5: case 6: n=n+4; break;

    case 7: n=n+1; break;

    case 8: case 9: case 10: n=n-5; break;

    otherwise: n=n-1;

    }

    16. Se imprime SI si un número tecleado previamente por pantalla es



    primo y NO si no lo es.

    #include <stdio.h>

    #include <stdlib.h>

    main ()

    { int n, div,aux;

    printf("Dame un número: ");

    scanf("%d", &n);

    div=2;

    aux=0;

    while (div<n)

    { if (n%div==0)

    {aux=1;}

    div=div+1;

    }

    if (aux==0)

    {printf("SI");}

    else

    {printf("NO");}

    printf("\n\n");

    system ("PAUSE");

    }

    17. #include <stdio.h>



    #include <stdlib.h>

    main ()

    { int a,b,t,h;

    printf("Dame dos números menores que 50 ");

    scanf("%d %d", &a, &b);

    while (50<a || 50<b)

    14 Soluciones propuestas

    { printf("Dame dos números menores que 50 " );

    scanf("%d %d", &a, &b);

    }

    if (b<a)

    {t=b; h=a;}

    else

    {t=a; h=b;}

    while (t<=h)

    { printf("El más pequeño : %5d .El más grande: %5d\n",t,h);

    t=t+5;

    h=h-2;

    }

    printf("\n\n");

    system ("PAUSE");

    }

    Soluciones propuestas 15

    18. #include <stdio.h>



    #include <stdlib.h>

    main ()

    { int tot=0;

    char ahora,antes;

    antes='z';

    printf("Escribe una frase, para acabar un punto '.': \n");

    scanf("%c", &ahora);

    while (ahora!='.')

    { if (ahora=='a' || antes=='t')

    {tot ++;}

    antes=ahora;

    16 Soluciones propuestas

    scanf("%c", &ahora);

    }

    printf(" aparece %d veces '-ta-'", tot);

    printf("\n\n");

    system ("PAUSE");

    }

    19. #include <stdio.h>



    #include <stdlib.h>

    main ()

    { int n, z;

    long sum;

    printf("Teclea un número: ");

    scanf("%d",&n);

    sum=0;

    z=1;

    while (z<=n)

    { sum= sum + z*z;

    z=z+4;

    }

    printf("Solución: %ld", sum);

    printf("\n\n");

    system ("PAUSE");

    }

    20. Empieza el programa dando el valor 45 a la x, entra en un bucle



    mientras x sea mayor o igual que 1, en el bucle si x es mayor o

    igual que 30 realiza n=n+x y si x es menor que 30 realiza n=nx,

    en los dos resta 1 a x. Al final se imprime el valor 165.


    No hay comentarios.:

    Publicar un comentario

    COMENTAR