0% encontró este documento útil (0 votos)
39 vistas6 páginas

Examen 3

Este documento proporciona las instrucciones para un examen de Fundamentos de Informática que durará 2 horas. Contiene 10 preguntas sobre conceptos básicos de bases de datos, lenguajes de programación como C, y estructuras de datos. Se pide al estudiante que complete su nombre, resuelva las preguntas y siga las instrucciones del examen.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
39 vistas6 páginas

Examen 3

Este documento proporciona las instrucciones para un examen de Fundamentos de Informática que durará 2 horas. Contiene 10 preguntas sobre conceptos básicos de bases de datos, lenguajes de programación como C, y estructuras de datos. Se pide al estudiante que complete su nombre, resuelva las preguntas y siga las instrucciones del examen.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 6

Examen: FUNDAMENTOS DE

INFORMÁTICA
Fecha: 6 de FEBRERO de 2015
Curso: 2014/2015Duración del
examen: 2 horas
Especialidad: MecánicaDuración del
examen: 2 horas

Apellidos y nombre:______________________________________________________
Duración estimada del examen: 1,5 horas
Instrucciones:
1. Los móviles deben estar apagados
2. Es necesario disponer de un documento de identificación (DNI, pasaporte, …)
3. Los apuntes, libros y cualquier otro material deben estar debidamente guardados

Pregunta 1: Selecciona la respuesta correcta, rodeándola con un círculo. (2 puntos) (0.2 puntos por
apartado)

1) ¿Cuál de las siguientes NO es uno de los objetivos de las bases de datos?


a) Seguridad.
b) Integridad
c) Claridad
d) Evitar la redundancia

2) ¿Qué es una base de datos?


a) Conjunto de programas que permiten a los usuarios crear y mantener una base de datos
b) Conjunto formado por la Base de Datos y el SGBD
c) Colección de datos relacionados con un significado implícito.
d) Gran volumen de datos recopilados del universo del discurso

3) ¿Cuál de las siguientes No es una característica que deben cumplir las relaciones?
a) Cada relación tiene un nombre distinto al del resto de las relaciones
b) Los valores de los atributos son atómicos: en cada tupla, cada atributo toma un solo valor
c) No puede haber dos atributos con igual nombre en una relación. Además, el orden de los atributos no es
relevante.
d) No puede haber tuplas repetidas y deben estar ordenadas

4) Cuál de las siguientes opciones es una características de la Memoria Principal:


a) Está ligada a las unidades más rápidas del ordenador (UC, ALU, Controladores)
b) Está dividida en una serie de celdas (posiciones de memoria o palabras), numeradas con una dirección
unívoca a través de la cual se accede a cada una de ellas, cada celda tiene una longitud que siempre es un
byte.
c) La longitud de las palabras se mide en número de bytes (unidad mínima de información que se puede
almacenar).
d) La capacidad de la memoria se mide en bits.
e) Ninguna es correcta
f) Todas son correctas

1
Alumno:___________________________________________________________________________________________

5) ¿Qué función tiene este símbolo?


a) Llamada subrutina
b) Representa el comienzo y el final de un algoritmo
c) Representa una introducción de datos en la memoria desde los periféricos.
d) Indica cualquier tipo de operación.
6) El lenguaje C es:
a) Es muy portable, potente, eficiente, de propósito específico, compilado y de nivel medio.
b) Es muy portable, potente, eficiente, de propósito general, interpretado y de nivel medio.
c) Es muy portable, potente, eficiente, de propósito general, compilado y de nivel medio.
d) Es muy portable, potente, eficiente, de propósito general, compilado y de nivel alto.

7) Ante el siguiente código ¿qué valor toma la variable a?

int a=0;
switch (a+1){
case 1: a+1;
case 2: a+1;
case 3: a-1
default: a+1;
}
a) 2
b) 3
c) 0
d) 1

8) Si quisiera recorrer el siguiente array int matriz[7][3] desde el último elemento al primero, usaría el siguiente
código.
a) for(i=0; i<7;i++)
for(j=0;j<3;j++)
matriz[i][j];
b) for(i=6; i>=0;i--)
for(j=2;j>=0;j--)
matriz[i][j];
c) for(i=6; i>0;i--)
for(j=2;j>0;j--)
matriz[i][j];
d) for(i=0; i<7;i++)
for(j=0;j<3;j++)
matriz[j][i];

9) ¿Para qué sirve esta función strlwr(c1)?


a) Copia la cadena c2 sobre la cadena c1.
b) Convierte la cadena c1 a minúsculas
c) Concatena la cadena c1 con la cadena c2.
d) Busca la primera ocurrencia del carácter ch1 en la cadena c1.

2
Alumno:___________________________________________________________________________________________

10) A partir de la siguiente declaración de variables

#define PI 3.14
#define N "2"
struct punto{
float coordX;
float coordY;
};
struct punto Figuras[10], *F1;
char *p, colores[10][15];
float datos[20][10];
int T[15], N1;

y la llamada al subprogramaSUBPROG (N, &F1->coordX, &Figuras[N1].coordY, datos);¿cuál es el prototipo


adecuado?
a) void SUBPROG(float P1, char P2[15], float *P3, char P4[12]);
b) float SUBPROG(struct punto P1[10], char P2[2], float *P3);
c) struct punto SUBPROG(char *P1, char P2[4]);
d) float SUBPROG(struct punto P1[10], char P2[3], float *P3);
e) void SUBPROG(float P1, char P2[10], float *P3, struct punto *P4);
f) void SUBPROG(char P1, float P2, char P3);
g) void SUBPROG(char P1[2], float *P2, float *P3, float P4[20][10]);
h) void SUBPROG(char P1[3], float *P2, float *P3, float P4[20]);

3
Alumno:___________________________________________________________________________________________

Pregunta 2: Disponiendo de las siguientes estructuras y declaración de variable, responda a las


cuestiones que se plantean (3 puntos):
struct integrante {
char nombre[50];
char instrumento[20];
int valoración; // consideración a nivel mundial de integrante
};
struct banda {
char nombre[15];
int n_integrantes; // número de integrantes del grupo
int honorarios; // en miles de euros.
struct integrante componentes[10];
};
struct concierto {
char nombre[10];
char fecha[9];
int presupuesto; // en millones de euros
struct banda grupo[20];
int n_grupos // número de grupos en el festival
};
int main(){
struct concierto festival[10];
}
a) Mostrar el nombre del festival con mayor presupuesto(1.2 ptos).

int i; int i;
int mayor=0, int pos; int mayor=0, char nombre2[10];
for(i=0;i<10;i++) for(i=0;i<10;i++)
if(festival[i].presupuesto>mayor){ if(festival[i].presupuesto>mayor){
mayor= festival[i].presupuesto; mayor= festival[i].presupuesto;
pos=i; strcpy(nombre, festival[i].nombre) ;
} }
printf("El nombre es %s", festival[i].nombre); printf("El nombre es %s",nombre2);//puts(nombre2);
// puts(festival[i].nombre);

b) Mostrar el nombre del segundo componente del grupo con mayor honorarios. (1.8 ptos)

int i,j;
int mayor=0, char nombre2[50];
for(i=0;i<10;i++){
n=festival[i].n_grupos-1;
for(j=0;j<n;j++)
if(festival[i].grupos[j].honorarios>mayor){
mayor= festival[i].grupo[j].honorarios;
strcpy(nombre2, festival[i].grupos[j].componentes[1].nombre) ;
}
printf("El nombre es %s",nombre2); //puts(nombre2);

4
Alumno:___________________________________________________________________________________________

Indicar cómo queda la matriz del ejemplo una vez a que se ejecuta el siguiente programa. (3 puntos)
2 5 7 6 2 6 8 12

1 3 5 4 8 9 5 4

0 1 1 6 15 15 5 4

7 6 0 0 17 21 13 16
#include<stdlib.h> El alumno debe rellenar cómo queda la
#include<stdio.h> matriz tras cada ejecución del bucle do-
while:
#define n 4 Iteración 1:

void Proc(int MA[n][n],int f1, int f2,int f3); 2 6 8 12

int main() 1 3 5 4
{
int it; 0 1 1 6
int M[4][4]={2,5,7,6,1,3,5,4,0,1,1,6,7,6,0,0};
7 6 0 0
it=1;
Iteración 2:
do
{
2 6 8 12
if (M[it-1][it-1]%2 == 0) Proc(M,n-4,n-2,it-1);
else Proc(M,n-3,n-1,it-1); 8 9 5 4
it++;
} 0 1 1 6
while (it<=n);
system("Pause"); 7 6 0 0
return 0; Iteración 3:
}
2 6 8 12
void Proc(int MA[n][n],int f1, int f2, int f3)
{
int i; 8 9 5 4

for (i=0;i<n;i++) 15 15 5 4
{
MA[f3][i]=MA[f1][i]+MA[f2][i]; 7 6 0 0
}
Iteración 4:
}
2 6 8 12

8 9 5 4

15 15 5 4

17 21 13 16

5
Alumno:___________________________________________________________________________________________

4.- Programa que visualiza la media, el valor más pequeño, el valor más grande y la cantidad de números positivos de un vector,
llamando a una función que realiza dichos cálculos. Sin embargo se han cometido ciertos errores. Se pide escribir correctamente
cada una de las líneas en las que detecte algún error (ya sea de tipo sintáctico, o un error que hace que la ejecución del programa
no sea la esperada) (2 ptos)
Programa con errores Programa sin errores
1 #include <stdio.h> #include <stdio.h>
2 #include <stdlib.h> #include <stdlib.h>
3 #define tamax 20; #define tamax 20
4 void calculos (float vect[tamax], int celdas, float *media, void calculos (float vect[tamax], int celdas, float *media,
float *min, float *max, int *npos) float *min, float *max, int *npos);
5 int main (){ int main (){
6 float vect [celdas]={3.4, 4.5, 7.0, 8.0, 1.0, 0.0, 3.0, 1.0, 10.0, float vect [tamax]={3.4, 4.5, 7.0, 8.0, 1.0, 0.0, 3.0, 1.0,
5.0}; 10.0, 5.0};
7 int celdas=10; int npos,celdas=10;
8 float min, max, media; float min, max, media;
9 calculos (vect, celdas, media, min, max, npos); calculos (vect, celdas, &media, &min, &max, &npos);
10 printf ("\nLa media del vector es: %f",media); printf ("\nLa media del vector es: %f",media);
11 printf ("\nEl valor mas bajo es: %f",min); printf ("\nEl valor mas bajo es: %f",min);
12 printf ("\nEl valor mas alto es: %f",max); printf ("\nEl valor mas alto es: %f",max);
13 printf ("\nHay %f numeros positivos\n",npos); printf ("\nHay %d numeros positivos\n",npos);
14 system("pause"); system("pause");
15 } }
16 void calculos (float vect[tamax], int celdas, float *media, void calculos (float vect[tamax], int celdas, float *media,
float *min, float *max, int *npos) { float *min, float *max, int *npos) {
17 int suma; float suma;
18 int i; int i;
19 suma=0; *min=-999999.0; *max=999999.0; *npos=0; suma=0; *min=999999.0; *max=-999999.0; *npos=0;
20 for (i=0;i<=celdas;i++){ for (i=0;i<celdas;i++){
21 suma=suma+vect[i]; suma=suma+vect[i];
22 if (vect[i]< *min) *min=vect[i]; if (vect[i]< *min) *min=vect[i];
23 if (vect[i]> *max) *max=vect[i]; if (vect[i]> *max) *max=vect[i];
24 if (vect[i]>= 0) *npos=*npos+1; if (vect[i]>= 0) *npos=*npos+1;
25 } }
26 *media=celdas/suma; *media=suma/celdas;
27 } }

También podría gustarte