EXAMEN PARCIAL DE PROGRAMACIÓN I GRUPO 2 - PERMUTACIÓN 2 Tiempo disponible: 50 minutos Puntuación: sobre 10 puntos - las respuestas acertadas suman 1 punto - las respuestas falladas restan 0.25 - las preguntas sin responder ni suman ni restan Datos personales que debéis rellenar en la hoja de examen: - Con letras, el cuadro superior: estudi, data, nom, cognoms, assignatura y grup (de teoría) - Marcando las casillas, y también con letras: - DNI - Centre: 337 - Assignatura: 12406 - Parcial: dejadlo en blanco - Permutació: 2 - Grup: 02 - En el último cuadro: el NIA, comenzando con tres ceros, por ejemplo 00012345 Cómo rellenar las respuestas : - El número de pregunta es el que aparece a la derecha de las casillas y se corresponde con un bloque con dos filas - De estas dos filas, tenéis que rellenar la primera (con un número impar). La segunda (con un número par) sirve para anular la respuesta - Recordad que debéis rellenar la casilla completa - Mejor con bolígrafo negro o lápiz oscuro (nº 1 ò 2). No uséis típex! 1. Un número entero se dice elemental si es divisible por 3 ó 5 pero no lo es por 4. Indica cuál de las siguientes expresiones devuelve verdadero si y sólo si un cierto número entero i es elemental es: a) b) c) d) (i % 3 == 0 || i % 5 == 0) && ( i % 4 != 0) (i % 3 == 0 || i % 5 == 0) && ! ( i % 4 != 0) (i % 3 == 0 || i % 5 == 0) && ( i % 4 == 0) (i % 3 == 0 || i % 5 == 0) || ! ( i % 4 != 0) 2. Indica cuántas iteraciones del bloque se realizan al ejecutar el siguiente bucle: for (i=0 ; i<6 ; i++) { for (j=0 ; j<i ; j++) {/* bloque*/} } a) b) c) d) 25 36 15 21 3. Indica qué valores se escriben cuándo se compila y ejecuta el siguiente programa: #include <stdio.h> int f1(int x) { x++; return x; } int f2(int x, int y) { return x * y; } a) b) c) d) main() { int x = 3, y = 6, a, b, c; a = f1(x); b = f1(y); c = f2(a,b); printf("%d , %d , %d", x, y, c); } 4 , 7 , 28 3 , 6 , 28 3 , 6 , 18 Ninguna de las anteriores 4. Indica qué valores se escriben cuando se compila y ejecuta el siguiente programa: a) b) c) d) #include <stdio.h> int f1(int y, int x) { return x - y; } main() { int x = 3, y = 7; printf("%d , %d", f1(x,y), f1(y,x)); } 4, 4 -4, -4 -4, 4 4, -4 5. Indica qué valores se escriben cuándo se compila y ejecuta el siguiente programa: a) b) c) d) #include <stdio.h> int f1(int x) { x++; return x; } int f2(int x) { x--; return f1(x); } int f3(int x, int y) { x = f2(x); y = f2(y); return x + y; } void f4(int y, int x) { y *= 2; x++; printf("%d , %d , %d", x, y, f3(x, y)); } main() { int x = 3, y = 7; f4(x, y); } 8 , 6 , 14 14 , 4 , 18 13 , 3 , 16 Ninguna de las anteriores 6. Indica qué se escribe cuándo se compila y ejecuta el siguiente programa: #include <stdio.h> #define N 6 main() { int v1 [N] = {0, 2, 4, 1, 3, 5}; int v2 [N] = {11, 22, 33, 44, 55, 66}; int x = 1; for(x=0; x <N; x++) printf("%d , ", v2[v1[N - 1 - x]]); } a) b) c) d) 11 , 22 , 33 , 44 , 55 , 66 , 11 , 33 , 55 , 22 , 44 , 66 , 66 , 44 , 22 , 55 , 33 , 11 , Ninguna de las anteriores 7. Indica qué se escribe cuándo se compila y ejecuta el siguiente programa: #include <stdio.h> #define N 10 main() { int v [N] = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100}; int x; for(x=0; x < N; x++) if (v[x]%20==0) v[x] *= 10; for(x=N-1; x >= 0; x--) if (v[x] >= 100) printf("%d , ", v[x]); } a) b) c) d) 100 , 1000 , 800 , 600 , 400 , 200 , 200 , 400 , 600 , 800 , 1000 , Ninguna de las anteriores 8. Indica qué se escribe cuando se compila y ejecuta el siguiente programa: #include <stdio.h> #define N 3 main() { int m1[N][N] = {{1, 1, 1}, {2, 2, 2}, {3, 3, 3}}; int m2[N][N]; int x, y; for(x=0; x < N; x++) for(y=0; y < N; y++) if (m1[x][y]%2 == 0) m2[x][y] = m1[x][y]; else m2[x][y] = m1[y][x]; printf("%d , %d , %d", m2[0][2], m2[1][2], m2[2][2]); } a) b) c) d) 1,2,3 3,2,3 3,3,3 Ninguna de las anteriores 9. Indica qué se escribe cuándo se compila y ejecuta el siguiente programa: #include <stdio.h> #define N 3 main() { int m[N][N] = {{0, 0, 0}, {1, 1, 1}, {2, 2, 2}}; int x, y; for(x=0; x < N; x++) for(y=1; y < N; y++) m[x][y] = m[x][y] + m[x][y-1]; printf("%d , %d , %d", m[0][0], m[1][1], m[2][2]); } a) b) c) d) 0,2,6 1,2,3 0,1,3 1,3,6 10. Indica qué se escribe cuándo se compila y ejecuta el siguiente programa: #include <stdio.h> #include <string.h> main() { char cad[100] = "abcdefghijklmnoqrstuvxyz"; cad[strlen(cad)/2] = '\0'; cad[strlen(cad)/2] = '\0'; printf("%s , %d", cad, strlen(cad)); } a) b) c) d) abcdef, 6 abcdefghijkl, 12 abcdefghijklmnoqrstuvxyz , 24 abcdefghijklmnoqrstuvxyz , 100 Soluciones 1. a 2. c 3. b 4. d 5. a 6. c 7. b 8. b 9. a 10. a