Está en la página 1de 4

Universidad de Piura

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. Suponiendo que SS representa sentencias de código y CC condiciones, indique cuál


caso tiene la sintaxis correcta
a b c d
if (CC) if (CC) if (CC) if (CC)
SS SS SS SS
elsif (CC) elsif (CC) elsif (CC) elsif (CC)
SS SS SS SS
elsif (CC) else (CC) elsif (CC) else
SS SS SS SS
else (CC) else else else
SS SS SS SS
end end end end
e. Ninguna de las anteriores

2. ¿Cuándo se repite el siguiente bucle?


begin
x=gets.to_i
end while (x<10 || x>15)
a. Cuando x no es menor que 10 ni mayor que 15
b. Cuando x no es menor o igual que 10 ni mayor o igual que 15
c. Cuando x no es mayor que 10 ni menor que 15
d. Cuando x no es mayor o igual que 10 ni menor o igual que 15
e. Ninguna de las anteriores

3. ¿Qué podemos afirmar de los siguientes 3 casos?


i ii iii
x=0 x=0 for x in (0..10)
begin while (x<10) puts x
puts x puts x end
x=x+1 x=x+1
end while (x<10) end
a. i y ii hacen lo mismo
b. ii y iii hacen lo mismo
c. i y iii hacen lo mismo
d. i, ii y iii hacen lo mismo
e. i, ii y iii no hacen lo mismo

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

9. Dada la siguiente función, indique qué es lo que hace


def sumar(a,b) a. Imprime la suma a+b
s=a+b b. Retorna la suma a+b
return s c. a y b
end d. 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

También podría gustarte