Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Facultad de Ingeniería
Curso: Programación Básica (PB)
Examen Final
Lima, 2 de diciembre de 2019
Hora: 2:00 pm
Duración: 1 hora y 50 minutos Nombre:
Sin apuntes
Cada pregunta vale 1p
1
4. ¿Cómo se declara un array?
a. a = Array.new
b. a = Array.open
c. a = {}
d. a = ()
e. Más de una es correcta
5. ¿Cómo se puede imprimir el último valor de un array a, dado que tiene 100 valores
guardados?
a. puts a[100]
b. puts a[99]
c. puts a.size
d. puts a.size-1
e. Más de una es correcta
6. ¿Cuál es la sentencia que falta al inicio para encontrar el menor valor del array a?
Considere que el array almacena valores del 1 al 10
# inicio
for i in (0..a.size-1) a. m=0
if (a[i]<m) b. m=1
m=a[i] c. m=10
end d. m=11
end e. Ninguna de las anteriores
puts m
7. ¿Cuál es la sentencia que falta al inicio para encontrar el mayor valor del array a?
Considere que el array almacena valores del 1 al 10
# inicio
for i in (0..a.size-1) a. m=0
if (a[i]>m) b. m=1
m=a[i] c. m=10
end d. m=11
end e. Ninguna de las anteriores
puts m
8. ¿Cuál de las siguientes alternativas describe mejor lo que hace una función recursiva?
a. Es una función que se invoca a sí misma para cualquier caso
b. Es una función que se invoca a sí misma bajo ciertas condiciones
c. Es una función que nunca se invoca a sí misma
d. Es una función que no tiene sentencia de retorno
e. Ninguna de las anteriores
2
10. Dada la siguiente función, ¿cuándo retorna 0?
def sumar(a,b)
s=a+b a. Cuando la suma es positiva
if (s>0 || s<20) b. Cuando la suma es negativa
return s c. En cualquier caso
end d. Nunca retorna 0
return 0 e. Ninguna de las anteriores
end
11. ¿Qué es una variable booleana?
a. Es una variable que solo puede tener valores 1 y 0
b. Es una variable que solo puede tener valores de un dígito (de 0 a 9)
c. Es una variable que solo puede tener valores verdadero y falso (true, false)
d. Es una variable que solo puede tener valores nulo y no nulo (nil)
e. Ninguna de las anteriores
12. Dadas las variables tipo string r y s. ¿Cuáles son los tipos de dato posibles que puede
retornar r.index(s)?
a. int
b. int y nil
c. int y true
d. int y false
e. Ninguna de las anteriores
13. ¿Cuál es el mínimo valor numérico que retorna la función index() en un string?
a. -1
b. 0
c. 1
d. Depende del tamaño del string
e. Ninguna de las anteriores
14. Dado un string a y la subcadena a[b,c]. Marque la alternativa correcta
a. b es la posición de inicio
b. c la posición de fin
c. c la cantidad de caracteres a tomar en adelante
d. a y b son correctas
e. a y c son correctas
15. ¿Cómo se declara una variable x para abrir archivo.txt para lectura?
a. x = File.new(“archivo.txt”, “r”)
b. x = File.new(“archivo.txt”, “w”)
c. x = File.open(“archivo.txt”, “r”)
d. x = File.open(“archivo.txt”, “w”)
e. Ninguna de las anteriores
16. ¿Cómo se declara una variable x para abrir archivo.txt para escritura?
a. x = File.new(“archivo.txt”, “r”)
b. x = File.new(“archivo.txt”, “w”)
c. x = File.open(“archivo.txt”, “r”)
d. x = File.open(“archivo.txt”, “w”)
e. Ninguna de las anteriores
3
17. ¿Cómo se escribe un salto de línea en un archivo f?
a. f.write(‘\n’)
b. f.write(“\n”)
c. f.newLine()
d. f.gets()
e. Más de una es correcta
18. Dado una variable f de tipo File. ¿Cuáles son los tipos de dato posibles que retorna
f.gets si se coloca en un bucle?
a. string
b. string y nil
c. string y true
d. string y false
e. Ninguna de las anteriores
19. ¿Cómo se declara una variable x en base a una clase Prueba?
a. x = Prueba.new
b. x = Prueba.open
c. x = Prueba.gets
d. x = Prueba.write
e. Ninguna de las anteriores
20. Dado un array de datos p de la clase Persona, tamaño 100, se quieren ordenar en
forma ascendente por nombre ¿cuál es la forma correcta?
class Persona
attr_accessor :nombre, :apellidos
nombre = “”
apellidos = “”
end
a b
for i in (0..98) for i in (0..98)
for j in (i+1..99) for j in (i+1..99)
if (p[i]>p[j]) if (p[i]>p[j])
aux=p[i] aux=p[i].nombre
p[i]=p[j] p[i].nombre=p[j].nombre
p[j]=aux p[j].nombre =aux
end end
end end
end end
c d
for i in (0..98) for I in (0..98)
for j in (i+1..99) for j in (i+1..99)
if (p[i].nombre>p[j].nombre) if (p[i].nombre>p[j].nombre)
aux=p[i] .nombre aux=p[i]
p[i].nombre =p[j].nombre p[i]=p[j]
p[j].nombre =aux p[j]=aux
end end
end end
end end
e. Ninguna de las anteriores