ALGUNAS PREGUNTAS TIPO TEST DEL TEMA 4 1. ¿Qué escribe el siguiente fragmento de programa? int x=0; if (x=0) printf("x es igual a cero\n"); else printf("x es distinto de 0\n"); a) b) c) d) No escribe nada. Error de compilación. x es distinto de 0 x es igual a cero OJO con la asignación en la condición del if. 2. Para este código, ¿qué valor se genera en SALIDA? for (A=0;A<=1;A++) for (B=0;B<=1;B++) for (C=0;C<=1;C++) SALIDA=(A && B) || C; a) 0 b) 1 c) 2 d) 3 3. ¿Qué escribe el siguiente fragmento de programa cuando n=3? int i=1; while (i<=n) { if ((i%n) == 0) {++i;} } printf("%d",i); a) b) c) d) e) Es un bucle infinito 1 4 234 Todas las demás respuestas son falsas 4. ¿Qué escribe el siguiente fragmento de programa? unsigned int i; ... for(i=10;i>=2;i=i-2){ printf("%u",i); } printf("1%u",i); a) b) c) d) e) 1086421 10864211 10864210 8642 10987654321 5. ¿Cuanto vale x AL FINAL de la ejecución del siguiente bucle? a) b) c) d) e) for(x=2;x<=13;x+=12) printf("%d",x); 14 13 25 2 Todas las demás respuestas son falsas 6. ¿Qué escribe el siguiente bucle? int i=1; ... do { printf("%i,", ++i); } while (i<10); a) b) c) d) 2,3,4,5,6,7,8,9,10, 2,3,4,5,6,7,8,9, 1,2,3,4,5,6,7,8,9, 1,2,3,4,5,6,7,8,9,10, 7. ¿Cuándo se ejecuta la instrucción x+=2? switch(x) { default: x+=20; case 1: x+=1; case 2: x+=2; } a) b) c) d) Siempre. Nunca. Cuando x vale 2. Cuando x vale distinto de 2. 8. ¿Qué calcula el siguiente programa? #include <stdio.h> int main() { int x,y,i,result; i=1; result=1; scanf ("%d",&x); scanf ("%d",&y); while(i<=y) { result *= x; i++; } printf("%d",result); return 0; } a) b) c) d) La potencia de x elevado a y. El producto de todos los naturales entre x e y. La potencia de x elevado a i. El programa no termina. 9. ¿Cuántas veces se ejecuta el siguiente bucle? int i=4; while (++i <= 20){ ... i=i+3; } a) b) c) d) 4 vueltas. 5 vueltas. 6 vueltas. Ni 4, ni 5, ni 6 vueltas. 10. ¿Cuándo finaliza el siguiente bucle? do { ..... } while (a<0 && a>15 || a!=20); a) b) c) d) Cuando a valga 20. Cuando a esté entre 0 y 15. Cuando a esté entre 0 y 15 o valga 20. Cuando a valga distinto de 20. 11. ¿Qué escribe el siguiente bucle? int i=0, j=1; while (i<=6 || j<=5) printf("%i-%i;",i++,++j); a) b) c) d) 0-2;1-3;2-4;3-5;4-6;5-7;6-8; 0-2;1-3;2-4;3-5;4-6; 0-1;1-2;2-3;3-4;4-5;5-6; Las tres respuestas propuestas son incorrectas. 12. ¿Qué bucle se ejecuta 10 veces? a) int i=2; do{ ... i=i+3; }while(i<32); b) int i=2; do{ ... i=i+3; }while(i<=32); c) int i=2; do{ ... i=i+3; } while(i<35); 13. ¿Qué imprime el siguiente código en lenguaje C? int x=1, result=0; while(x<=10) { result = result + x; x = x + 1; } printf("%d",result); a) b) c) d) Suma los 10 primeros naturales Suma x 10 veces Cuenta hasta 10 Ninguna de las respuestas es correcta d) int i=2; do{ ... i=i+3; }while(i<=35); 14. ¿Cuál será el valor de la variable cont después de la ejecución del siguiente trozo de código? int i, cont = 0; for(i=1;i<=10;i++) switch(i){ case 1: case 4: cont++; case 5: case 6: case 7: case 8: case 9: cont--; default: cont*=2; } a) b) c) cero menor que cero mayor que cero 15. Tras la ejecución del siguiente trozo de código, la variable cont int i, j, cont=0; for (i=1; i==10; i++) for (j=10; j==1; j--) cont++; cont++; a) tendrá el valor 1 b) tendrá el valor 101 c) tendrá el valor 200 16. El siguiente trozo de código escribirá en pantalla: unsigned i, j=0, cero=0, dos=2; do { for (i=4; i<=8; i=i+2) while (i>j && j<=1) j++; cero++; } while ( cero<dos); printf(“la variable j=%u”, j); a) la variable j=0 b) nunca llega a escribir que la variable j=1 porque el bucle más externo nunca terminará c) la variable j=2