Examen de Fundamentos de la Programación (Modelo 2)

Anuncio
Examen de Fundamentos de la Programación
(Modelo 2)
27 de noviembre de 2007
1. Estudia con atención el siguiente programa y luego indica qué mensajes
emite el compilador:
#include <stdio.h> #include <math.h>
void main () {
int
uno;
double raiz;
scanf ("%d", &uno);
printf ("%lf\n", sqrt (uno));
}
a) sqrt undefined
b) ’uno’: undeclared identifier
c) ’raiz’: unreferenced local variable *
2. ¿Qué numero entero representa la cadena 10011100 en notación de complemento a 2?
a) -112
b) -100 *
c) -102
3. La variable de una instrucción switch puede ser de tipos:
a) int, long y char *
b) int y double
c) void, int y char
4. Un bucle es:
1
a) Un conjunto de instrucciones que se ejecutan dependiendo del resultado de la evaluación de una condición lógica.
b) Un grupo de instrucciones que se repiten dependiendo del resultado
de la evaluación de una condición lógica. *
c) Un grupo de instrucciones que se repiten un número de veces que se
fija durante la compilación del programa.
5. Conocer la precedencia de un operador nos permite:
a) Saber la posición en que aparece dentro de una expresión
b) Conocer el orden en que se evalua cuando aparece repetido varias
veces en una misma expresión
c) Saber si se evalua antes o después que otros operadores dentro de
una misma expresión *
6. ¿Cuál de las siguientes cadenas representa al número 125 en notación
binaria?
a) 1111101 *
b) 1011111
c) 1111110
7. Suma las siguientes cadenas en complemento a 2 e indica cuál es el resultado en el sistema decimal:
10011100
00111010
a) -41
b) 42
c) -42 *
8. Si peso es una variable de tipo double, ¿ves algún error en esta instrucción?
scanf ("%.2lf", &peso);
a) Sı́, sobra .2 en el formato *
b) Sı́, sobra la l en el formato
c) No
9. Estudia el siguiente programa e indica cuál es su salida cuando se teclea
21:
#include <stdio.h>
void main () {
int num;
scanf ("%d", &num);
while (num > 0)
{
if (num % 2)
num -= 2;
else
printf ("%d ", num);
num--;
}
}
a) 18 14 10 6 2 *
b) 21
c) Ninguna de las otras dos
10. ¿Cuál de las siguientes afirmaciones es cierta?
a) La negación lógica (!) tiene menos precedencia que la suma
b) La disyunción lógica tiene más precedencia que la suma
c) La conjunción lógica tiene menos precedencia que el producto *
11. ¿Cuál de las siguientes afirmaciones es cierta?
a) La instrucción break termina la ejecución de la función main.
b) La instrucción break termina la ejecución de un bucle while. *
c) la instrucción break termina la ejecución de un programa.
12. Estudia el siguiente programa:
#include <stdio.h>
void main () {
int
i, num;
double suma;
printf ("Numero entero: ");
scanf ("%d", &num);
for (i=1, suma=0; i<=num; i++)
suma += suma + 2*i - 1;
printf ("%.0lf\n", suma);
}
¿Qué escribe en la pantalla cuando se introduce el valor 5?
a) 25
b) 83 *
c) 37
13. ¿Qué escribe el siguiente programa si se teclea 5?
#include <stdio.h>
void main () {
int num, resultado;
scanf ("%d", &num);
for (resultado=0; num; resultado++)
num -= 2;
printf ("%d\n", resultado);
}
a) 2
b) 3
c) Nada *
14. ¿Qué escribe el siguiente programa si se teclea 6?
#include <stdio.h>
void main () {
int i, num, resultado=0;
scanf ("%d", &num);
while (num)
{
num -= 2;
for (i=0; i<num; i++)
resultado += i;
}
printf ("%d\n", resultado);
}
a) 6
b) 5
c) 7 *
15. ¿Cúal de las siguientes afirmaciones es correcta?
a) El depurador es una herramienta que permite compilar un programa
después de ejecutarlo.
b) El depurador es una herramienta que permite ejecutar un programa
instrucción a instrucción. *
c) El depurador es una herramienta que permite intercambiar instrucciones durante la ejecución de un programa.
16. Observa los siguientes tipos de datos estructurados:
#define MAX 500
typedef struct {
char nombre [50];
char apellido [50];
int codigo;
} Vendedor;
typedef struct {
char dia [20];
char mes [20];
int agno;
} Fecha;
typedef struct {
char
producto [5];
Vendedor empleado;
Fecha
fecha;
int
unidades;
} Entrada;
typedef struct {
Entrada datos [MAX];
int
numero;
} Base;
Dada la siguiente declaración
Base datos [6];
¿Cuál de las siguientes instrucciones es correcta?
scanf ("%s", datos [1].datos [0].empleado[0].nombre);
scanf ("%s", datos [0].datos [0].producto);
scanf ("%s", datos [2].datos.producto);
a) La segunda *
b) La última
c) La primera
17. ¿Qué escribe el siguiente programa si se teclea ebano?
#include <stdio.h>
void main () {
int i, num;
char cad [30];
scanf ("%s", cad);
for (i=0, num=0; cad [i]; i++)
if (cad [i] > cad [0])
num++;
printf ("%d\n", num);
}
a) 3
b) 2 *
c) 1
Descargar