MC102 - Algoritmos e Programação de Computadores
MC102 Horários Plano de
desenvolvimento
Cronograma Oferecimentos
anteriores

Gabarito do Prova1

Esta prova ficou disponível no Moodle nas versões Arrasta e Solta e Múltipla Escolha. A ordem de apresentação das caixas e das alternativas pode ter variado entre os estudantes.


Q01  Q02  Q03  Q04  Q05  Q06  Q07  Q08  Q09  Q10  Q11  Q12  Q13  Q14  Q15 


Q01 (0.4)

Indique o valor e o tipo das expressões abaixo:
Expressão Valor Tipo
4 + 1          
5 * 1.0          
5 - 0.0          
10 / 2          

5 5.0 int float

Gabarito:

Expressão Valor Tipo
4 + 15int
5 * 1.05.0float
5 - 0.05.0float
10 / 25.0float

Pontuação: pesos iguais para todos os itens.

Outras alternativas:

(75% => 0.30)
Expressão Valor Tipo
4 + 15int
5 * 1.05.0float
5 - 0.05.0float
10 / 25int

(75% => 0.30)
Expressão Valor Tipo
4 + 15.0float
5 * 1.05.0float
5 - 0.05.0float
10 / 25.0float

(50% => 0.20)
Expressão Valor Tipo
4 + 15int
5 * 1.05.0float
5 - 0.05int
10 / 25int

(25% => 0.10)
Expressão Valor Tipo
4 + 15int
5 * 1.05int
5 - 0.05int
10 / 25int

Q02 (0.4)

Indique o valor e o tipo das expressões abaixo:
Expressão Valor Tipo
8 // 3          
8 % 3          
8 % -3          
8.0 // 3          

-2 -1 2 2.0 int float

Gabarito:

Expressão Valor Tipo
8 // 32int
8 % 32int
8 % -3-1int
8.0 // 32.0float

Pontuação: pesos iguais para todos os itens.

Outras alternativas:

(87% => 0.35)
Expressão Valor Tipo
8 // 32int
8 % 32int
8 % -3-2int
8.0 // 32.0float

(75% => 0.30)
Expressão Valor Tipo
8 // 32.0float
8 % 32int
8 % -3-1int
8.0 // 32.0float

(62% => 0.25)
Expressão Valor Tipo
8 // 32int
8 % 32int
8 % -3-2int
8.0 // 32int

(37% => 0.15)
Expressão Valor Tipo
8 // 32.0float
8 % 32.0float
8 % -3-1float
8.0 // 32.0float

Q03 (0.4)

Indique o valor e o tipo das expressões abaixo:
Expressão Valor Tipo
4 + 1 != 5.0               
"5 != 5.0"               
"5" != "5.0"               
5 != 5.0               

True False "5 != 5.0" bool str

Gabarito:

Expressão Valor Tipo
4 + 1 != 5.0Falsebool
"5 != 5.0""5 != 5.0"str
"5" != "5.0"Truebool
5 != 5.0Falsebool

Pontuação: pesos iguais para todos os itens.

Outras alternativas:

(75% => 0.30)
Expressão Valor Tipo
4 + 1 != 5.0Falsebool
"5 != 5.0"Truebool
"5" != "5.0"Truebool
5 != 5.0Falsebool

(75% => 0.30)
Expressão Valor Tipo
4 + 1 != 5.0Falsebool
"5 != 5.0""5 != 5.0"str
"5" != "5.0""5 != 5.0"str
5 != 5.0Falsebool

(50% => 0.20)
Expressão Valor Tipo
4 + 1 != 5.0Truebool
"5 != 5.0""5 != 5.0"str
"5" != "5.0""5 != 5.0"str
5 != 5.0Truebool

(37% => 0.15)
Expressão Valor Tipo
4 + 1 != 5.0Truebool
"5 != 5.0"Truebool
"5" != "5.0""5 != 5.0"str
5 != 5.0Falsebool

Q04 (0.4)

Indique o valor das expressões abaixo:
Expressão Valor
10 - 10 * 10 + 10     
-40 - 40 * -1     
40 + 40 * -1     
10 * -2**3     

-80 0 80

Gabarito:

Expressão Valor
10 - 10 * 10 + 10-80
-40 - 40 * -10
40 + 40 * -10
10 * -2**3-80

Pontuação: pesos iguais para todos os itens.

Outras alternativas:

(75% => 0.30)
Expressão Valor
10 - 10 * 10 + 100
-40 - 40 * -10
40 + 40 * -10
10 * -2**3-80

(75% => 0.30)
Expressão Valor
10 - 10 * 10 + 10-80
-40 - 40 * -10
40 + 40 * -10
10 * -2**380

(50% => 0.20)
Expressão Valor
10 - 10 * 10 + 10-80
-40 - 40 * -1-80
40 + 40 * -10
10 * -2**380

(25% => 0.10)
Expressão Valor
10 - 10 * 10 + 10-80
-40 - 40 * -1-80
40 + 40 * -1-80
10 * -2**380

Q05 (0.4)

Indique o valor das expressões abaixo:
Expressão Valor
5 < 3 + 4     
2 < 5 != 3 * 3 < 10     
not 2 - 5 < 3 * 2 + 2     
not True and False     

True False Erro!

Gabarito:

Expressão Valor
5 < 3 + 4True
2 < 5 != 3 * 3 < 10True
not 2 - 5 < 3 * 2 + 2False
not True and FalseFalse

Pontuação: pesos iguais para todos os itens.

Outras alternativas:

(75% => 0.30)
Expressão Valor
5 < 3 + 4True
2 < 5 != 3 * 3 < 10Erro!
not 2 - 5 < 3 * 2 + 2False
not True and FalseFalse

(75% => 0.30)
Expressão Valor
5 < 3 + 4True
2 < 5 != 3 * 3 < 10True
not 2 - 5 < 3 * 2 + 2Erro!
not True and FalseFalse

(50% => 0.20)
Expressão Valor
5 < 3 + 4False
2 < 5 != 3 * 3 < 10True
not 2 - 5 < 3 * 2 + 2False
not True and FalseTrue

(25% => 0.10)
Expressão Valor
5 < 3 + 4False
2 < 5 != 3 * 3 < 10False
not 2 - 5 < 3 * 2 + 2Erro!
not True and FalseFalse

Q06 (0.6)

Complete o programa abaixo de maneira que a partir da leitura de três inteiros distintos seja identificado o maior deles.
a = int(input())
b = int(input())
c = int(input())

if                 :
  print("A é o maior:", a)
                      :
  print("B é o maior:", b)
else :
  print("C é o maior:", c)

a > b or a > c a > b and a > c b > a b > c c > b if elif

Gabarito:

a = int(input())
b = int(input())
c = int(input())

if a > b and a > c :
  print("A é o maior:", a)
elif b > c :
  print("B é o maior:", b)
else :
  print("C é o maior:", c)

Pontuação: pesos iguais para todos os itens.

Outras alternativas:

(66% => 0.40)
a = int(input())
b = int(input())
c = int(input())

if a > b or a > c :
  print("A é o maior:", a)
elif b > c :
  print("B é o maior:", b)
else :
  print("C é o maior:", c)

(66% => 0.40)
a = int(input())
b = int(input())
c = int(input())

if a > b and a > c :
  print("A é o maior:", a)
if b > c :
  print("B é o maior:", b)
else :
  print("C é o maior:", c)

(66% => 0.40)
a = int(input())
b = int(input())
c = int(input())

if a > b and a > c :
  print("A é o maior:", a)
elif c > b :
  print("B é o maior:", b)
else :
  print("C é o maior:", c)

(0% => 0.00)
a = int(input())
b = int(input())
c = int(input())

if a > b or a > c :
  print("A é o maior:", a)
if b > a :
  print("B é o maior:", b)
else :
  print("C é o maior:", c)

Q07 (0.8)

O programa abaixo deve ler um conjunto de três valores maiores do que zero representando as medidas dos lados de um triângulo e verificar se este conjunto:

a = float(input())
b = float(input())
c = float(input())

if                                          :
   print("Triângulo")
elif                                          :  
   print("Triângulo degenerado")
else :
   print("Não forma triângulo")

a < b + c and b < a + c and c < a + b
a < b + c or b < a + c or c < a + b
a == b + c and b == a + c and c == a + b
a == b + c or b == a + c or c == a + b

Gabarito:

a = float(input())
b = float(input())
c = float(input())

if a < b + c and b < a + c and c < a + b :
   print("Triângulo")
elif a == b + c or b == a + c or c == a + b :  
   print("Triângulo degenerado")
else :
   print("Não forma triângulo")

Pontuação: pesos iguais para os dois itens.

Outras alternativas:

(50% => 0.40)
a = float(input())
b = float(input())
c = float(input())

if a < b + c or b < a + c or c < a + b :
   print("Triângulo")
elif a == b + c or b == a + c or c == a + b :  
   print("Triângulo degenerado")
else :
   print("Não forma triângulo")

(50% => 0.40)
a = float(input())
b = float(input())
c = float(input())

if a < b + c and b < a + c and c < a + b :
   print("Triângulo")
elif a == b + c and b == a + c and c == a + b :  
   print("Triângulo degenerado")
else :
   print("Não forma triângulo")

(0% => 0.00)
a = float(input())
b = float(input())
c = float(input())

if a < b + c or b < a + c or c < a + b :
   print("Triângulo")
elif a == b + c and b == a + c and c == a + b :  
   print("Triângulo degenerado")
else :
   print("Não forma triângulo")

Q08 (1.0)

Como vimos na Tarefa de Laboratório 05, para ser doador de sangue é necessário atender a uma série de requisitos. Complete o programa abaixo, que lê um inteiro que representa os anos completos da idade de uma pessoa e escreve, conforme o caso, uma das mensagens abaixo.
idade = int(input())
if            : 
                                                           
elif            : 
                                                           
elif            : 
                                                           
elif            : 
                                                           
else :
                                                           

idade < 60 idade < 16 idade < 18 idade < 70
print("Sem impedimentos ou restrições quanto à idade.")
print("Impedimento: menor de 16 anos.")
print("Impedimento: maior de 69 anos.")
print("Restrição: requer autorização do responsável.")
print("Restrição: não pode ser a primeira doação.")

Gabarito:

idade = int(input())
if idade < 16 : 
    print("Impedimento: menor de 16 anos.")
elif idade < 18 : 
    print("Restrição: requer autorização do responsável.")
elif idade < 60 : 
    print("Sem impedimentos ou restrições quanto à idade.")
elif idade < 70 : 
    print("Restrição: não pode ser a primeira doação.")
else :
    print("Impedimento: maior de 69 anos.")

Pontuação: pesos iguais para todos os itens.

Outras alternativas:

(55% => 0.55)
idade = int(input())
if idade < 16 : 
    print("Impedimento: menor de 16 anos.")
elif idade < 18 : 
    print("Restrição: requer autorização do responsável.")
elif idade < 70 : 
    print("Restrição: não pode ser a primeira doação.")
elif idade < 60 : 
    print("Sem impedimentos ou restrições quanto à idade.")
else :
    print("Impedimento: maior de 69 anos.")

(33% => 0.33)
idade = int(input())
if idade < 60 : 
    print("Sem impedimentos ou restrições quanto à idade.")
elif idade < 18 : 
    print("Restrição: requer autorização do responsável.")
elif idade < 70 : 
    print("Restrição: não pode ser a primeira doação.")
elif idade < 16 : 
    print("Impedimento: menor de 16 anos.")
else :
    print("Impedimento: maior de 69 anos.")

(33% => 0.33)
idade = int(input())
if idade < 60 : 
    print("Sem impedimentos ou restrições quanto à idade.")
elif idade < 16 : 
    print("Impedimento: menor de 16 anos.")
elif idade < 18 : 
    print("Restrição: requer autorização do responsável.")
elif idade < 70 : 
    print("Restrição: não pode ser a primeira doação.")
else :
    print("Impedimento: maior de 69 anos.")

(33% => 0.33)
idade = int(input())
if idade < 16 : 
    print("Impedimento: menor de 16 anos.")
elif idade < 60 : 
    print("Sem impedimentos ou restrições quanto à idade.")
elif idade < 18 : 
    print("Restrição: requer autorização do responsável.")
elif idade < 70 : 
    print("Impedimento: maior de 69 anos.")
else :
    print("Restrição: não pode ser a primeira doação.")

Q09 (0.8)

Dado o contexto da Tarefa de Laboratório 06, um aluno identificou que um de seus caracóis estava realizando o percurso de 33 cm em tempos surpreendentes. Desta forma, resolveu amostrar os tempos deste caracol várias vezes e verificar qual foi a velocidade máxima atingida. Complete o código abaixo considerando que haverá uma medida de tempo por linha e que a sequência de tempos será encerrada por -1. Considere também que o tempo foi medido em minutos que a velocidade será expressa em cm/min.
t = float(input())
          
while t != -1 :
  if            :
               
  t = float(input())

print("Velocidade maxima:",          , "cm/min"

t = minimo t = maximo t < minimo t > maximo minimo = t maximo = t 33/minimo 33/maximo

Gabarito:

t = float(input())
minimo = t
while t != -1 :
  if t < minimo :
     minimo = t
  t = float(input())

print("Velocidade maxima:", 33/minimo, "cm/min"

Pontuação: pesos iguais para todos os itens.

Outras alternativas:

(50% => 0.40)
t = float(input())
t = minimo
while t != -1 :
  if t < minimo :
     t = minimo
  t = float(input())

print("Velocidade maxima:", 33/minimo, "cm/min"

(0% => 0.00)
t = float(input())
maximo = t
while t != -1 :
  if t > maximo :
     maximo = t
  t = float(input())

print("Velocidade maxima:", 33/maximo, "cm/min"

(0% => 0.00)
t = float(input())
t = maximo
while t != -1 :
  if t > maximo :
     t = maximo
  t = float(input())

print("Velocidade maxima:", 33/maximo, "cm/min"

Q10 (0.8)

Complete o código para que o programa produza o desenho ilustrado abaixo:
*@@@@
**@@@
***@@
****@
for i in           :
    print(        * "*", end="")
    print(        * "@")

range(4) range(1,5) range(5) i 4 (5 - i) (4 - i)

Gabarito:

for i in range(1,5):
    print(i * "*", end="")
    print((5 - i) * "@")

Pontuação: pesos iguais para todos os itens.

Outras alternativas:

(66% => 0.53)
for i in range(5):
    print(i * "*", end="")
    print((5 - i) * "@")

(33% => 0.26)
for i in range(1,5):
    print((5 - i) * "*", end="")
    print(i * "@")

(0% => 0.00)
for i in range(4):
    print(4 * "*", end="")
    print((4 - i) * "@")

Q11 (0.8)

Complete o código para que o programa produza uma tabuada no formato abaixo. Note que o uso do comando format() irá garantir que todos os números sejam escritos com dois dígitos.
01 02 03 04 05 06 07 08 09 
02 04 06 08 10 12 14 16 18 
03 06 09 12 15 18 21 24 27 
04 08 12 16 20 24 28 32 36 
05 10 15 20 25 30 35 40 45 
06 12 18 24 30 36 42 48 54 
07 14 21 28 35 42 49 56 63 
08 16 24 32 40 48 56 64 72 
09 18 27 36 45 54 63 72 81 
10 20 30 40 50 60 70 80 90
for i in                     :
   for j in                     :
       print(format(j, "02d"), end=" ") 
   print()

range(10) range(11) range(1,11) range(i, 10) range(i, 10 * i) range(i, 10 * i, i) range(j, 10 * j, j)

Gabarito:

for i in range(1,11) :
   for j in range(i, 10 * i, i) :
       print(format(j, "02d"), end=" ") 
   print()

Pontuação: pesos iguais para os dois itens.

Outras alternativas:

(50% => 0.40)
for i in range(11) :
   for j in range(i, 10 * i, i) :
       print(format(j, "02d"), end=" ") 
   print()

(50% => 0.40)
for i in range(1,11) :
   for j in range(j, 10 * j, j) :
       print(format(j, "02d"), end=" ") 
   print()

(0% => 0.00)
for i in range(10) :
   for j in range(i, 10) :
       print(format(j, "02d"), end=" ") 
   print()

(0% => 0.00)
for i in range(10) :
   for j in range(i, 10 * i) :
       print(format(j, "02d"), end=" ") 
   print()

Q12 (0.6)

Considere a seguinte declaração de uma variável do tipo lista e indique o valor das operações abaixo ou a ocorrência de um erro:
lista = [2, 4, "a", "b"]
lista[:]                
lista[-3]                
lista[-3:]                
lista[4]                
lista[2:]                
lista[2:-2]                

2 4 'a' 'b' [] ['b'] ['a', 'b'] [4, 'a', 'b'] [2, 4, 'a', 'b'] Erro!

Gabarito:

lista[:][2, 4, 'a', 'b']
lista[-3]4
lista[-3:][4, 'a', 'b']
lista[4]Erro!
lista[2:]['a', 'b']
lista[2:-2][]

Pontuação: pesos iguais para todos os itens.

Outras alternativas:

(66% => 0.40)
lista[:]Erro!
lista[-3]4
lista[-3:][4, 'a', 'b']
lista[4]'b'
lista[2:]['a', 'b']
lista[2:-2][]

(66% => 0.40)
lista[:][]
lista[-3]4
lista[-3:][4, 'a', 'b']
lista[4]Erro!
lista[2:]['a', 'b']
lista[2:-2]'a'

(16% => 0.10)
lista[:][2, 4, 'a', 'b']
lista[-3]2
lista[-3:]['a', 'b']
lista[4]'b'
lista[2:][4, 'a', 'b']
lista[2:-2]Erro!

(16% => 0.10)
lista[:]Erro!
lista[-3]'a'
lista[-3:]['a', 'b']
lista[4]['b']
lista[2:][4, 'a', 'b']
lista[2:-2][]

Q13 (0.6)

Considere as seguintes declarações de variáveis do tipo string e indique o valor das operações abaixo ou a ocorrência de um erro:
h = "#ilovepython"
e = ":-)"
e[:-1] + "D"        
e[5]        
h[-6:] == "Python"        
h[6:]        
h[0] + e        
":-(" < e        

":-)" ":-D" "#:-)" ":-(" "Python" "python" True False Erro!

Gabarito:

e[:-1] + "D"":-D"
e[5]Erro!
h[-6:] == "Python"False
h[6:]"python"
h[0] + e"#:-)"
":-(" < eTrue

Pontuação: pesos iguais para todos os itens.

Outras alternativas:

(66% => 0.40)
e[:-1] + "D"":-D"
e[5]Erro!
h[-6:] == "Python"False
h[6:]"Python"
h[0] + e"#:-)"
":-(" < e":-("

(50% => 0.30)
e[:-1] + "D"":-D"
e[5]Erro!
h[-6:] == "Python"True
h[6:]"Python"
h[0] + e"#:-)"
":-(" < eFalse

(33% => 0.20)
e[:-1] + "D"Erro!
e[5]":-)"
h[-6:] == "Python"True
h[6:]"python"
h[0] + e"#:-)"
":-(" < eFalse

(0% => 0.00)
e[:-1] + "D"Erro!
e[5]":-)"
h[-6:] == "Python""python"
h[6:]"Python"
h[0] + e":-("
":-(" < eFalse

Q14 (1.0)

Analise o código abaixo e indique o valor a ser escrito na saída.
lista = [0, 2, 4, 5, 3]
sublista = []
for i in range(len(lista)): 
  if lista[i] % 2 == 0 or i % 2 == 0 :
      sublista.append(lista[i])
print(sublista)
Saída:                

[0, 2, 4, 5, 3] [0, 2, 4] [0, 2, 4, 3] [0, 4, 3]

Gabarito:

Saída: [0, 2, 4, 3]

Pontuação: 100% para escolha da caixa correta.

Outras alternativas: 0%.


Q15 (1.0)

Complete o código de maneira que seja identificado qual é o comprimento máximo das strings presentes em lista:
lista = ["unicamp", "ciencias", "arte", "cultura"]
comp_maximo = 0

for                        :
    if            > comp_maximo : 
      comp_maximo =           

print("Comprimento máximo:", comp_maximo)

p in range(len(lista)) p in lista lista[p] len(p) len(lista)

Gabarito:

lista = ["unicamp", "ciencias", "arte", "cultura"]
comp_maximo = 0

for p in lista :
    if len(p) > comp_maximo : 
      comp_maximo = len(p)

print("Comprimento máximo:", comp_maximo)

Pontuação: pesos iguais para todos os itens.

Outras alternativas:

(33% => 0.33)
lista = ["unicamp", "ciencias", "arte", "cultura"]
comp_maximo = 0

for p in lista :
    if len(lista) > comp_maximo : 
      comp_maximo = len(lista)

print("Comprimento máximo:", comp_maximo)

(0% => 0.00)
lista = ["unicamp", "ciencias", "arte", "cultura"]
comp_maximo = 0

for p in range(len(lista)) :
    if lista[p] > comp_maximo : 
      comp_maximo = lista[p]

print("Comprimento máximo:", comp_maximo)

(0% => 0.00)
lista = ["unicamp", "ciencias", "arte", "cultura"]
comp_maximo = 0

for p in range(len(lista)) :
    if len(lista) > comp_maximo : 
      comp_maximo = lista[p]

print("Comprimento máximo:", comp_maximo)