Questões da Prova de Algoritmos e Programação I


Esta página contém questões que caíram em provas passadas e recentes, visando facilitar o estudo. No final da página haverá o gabarito. Caso a questão tenha ".1" pra cima na numeração, se trata de uma possível variante dessa questão.

1. Observe o código fonte a seguir:

Console.Write("Digite a hora: ");
int hora = int.Parse(Console.ReadLine());

if(hora >= 8 && hora<23) {
    Console.WriteLine("Estamos abertos!");
}
else {
    Console.WriteLine("Estamos fechados!");
}

O valor de entrada que deve ser digitado quando a mensagem "Digite a hora:" for exibida de maneira a gerar a saída "Estamos Abertos!" é:

  1. 7
  2. 6
  3. 24
  4. 23
  5. 22

2. Observe o programa a seguir que tem por objetivo informar sobre sua idade para participar de um processo de eleições:

Console.Write("Informe sua idade: ");
int idade = int.Parse(Console.ReadLine());

if (idade >= 70) {
    Console.WriteLine("Você é idoso e seu voto é facultativo");
}
else if (idade >= 18) {
    Console.WriteLine("Seu voto é obrigatório!");
}
else if (idade >= 16) {
    Console.WriteLine("Você é adolescente e seu voto é facultativo");
}
else {
    Console.WriteLine("Você ainda não pode votar");
}

Analisando o código-fonte acima podemos afirmar que:

  1. O programa pode gerar a saída que adultos de 18 anos devem obrigatoriamente votar
  2. O programa pode gerar a saída que adolescentes com 15 anos de idade podem votar
  3. O programa está restringindo entradas com números negativos
  4. O programa pode gerar a saída que adolescentes de 17 anos devem obrigatoriamente votar
  5. O programa pode gerar a saída que adultos de 71 anos devem obrigatoriamente votar

3. Referente à estrutura de repetição while, observe o código a seguir:

Console.Write("Informe um número: ");
int numero = int.Parse(Console.ReadLine());
int i = 0;

while (i < numero * 3) {
    i = i + numero * 2;
}

Console.WriteLine("i = " + i);

Quando informado como entrada o número 20, a saída esperada é:

  1. i = 60
  2. i = 10
  3. i = 0
  4. i = 80
  5. i = 20

4. No que diz respeito ao uso da estrutura de repetição for, segue o código abaixo para análise:

Console.Write("Informe um número: ");
int numero = int.Parse(Console.ReadLine());

for(int i = numero; i > 0; i = i - numero / 5) {
    Console.Write(" " + i);
}

A saída esperada para o código-fonte apresentado, quando a entrada fornecida é 200, é:

  1. 200 160 120 80 40
  2. 200 50 100 25
  3. 180 90 45 20 10
  4. 200 30 10 5 0
  5. 180 90 45 10

5. A seguir é apresentada uma função desenvolvida em linguagem C#:

void calculaAreaRetangulo(ladoA, ladoB) {
    Console.WriteLine("A área do retângulo é " + ladoA * ladoB);
}

Referente à implementação da função acima pode-se afirmar que:

  1. A função precisa especificar os tipos de dados nos parâmetros de entrada.
  2. É necessário a palavra return ao final da implementação para a devida execução.
  3. É necessário a remoção do tipo de dado de saída da função.
  4. A função está desenvolvida corretamente.
  5. A função precisa especificar os tipos de dados nos parâmetros de saída.

6. Em uma aula de matemática básica, a professora ensinou aos alunos sobre o cálculo do perímetro de polígonos:

A alternativa que apresenta a função implementada corretamente pelo aluno, em linguagem de programação C#, é:

  1. double calculaPerimetro(a, b, c) {
        return a+b+c;
    }
  2. double calculaPerimetro(double a, double b, double c) {
        return perimetro;
    }
  3. double calculaPerimetro() {
        return a+b+c;
    }
  4. calculaPerimetro(double a, double b, double c) {
        return a+b+c;
    }
  5. double calculaPerimetro(double a, double b, double c) {
        return a+b+c;
    }

7. Elabore um programa em linguagem de programação C# que informa o maior número inteiro dentre 10 números inteiros informados pelo usuário:

using System;

int num, numMaior;

Console.WriteLine("Digite um número: ");
numMaior = int.Parse (Console.ReadLine());

for (int i = 1; i < 10; i++) {
    Console.WriteLine("Digite um número: ");
    num = int.Parse (Console.ReadLine());

    if (num > numMaior)
        numMaior = num;
}

Console.WriteLine("Numero maior é: " + numMaior);

Explicação: O algoritmo lê 10 números inteiros digitados pelo usuário e determina qual deles é o maior. O primeiro número é armazenado como o maior inicialmente. Em seguida, os próximos 9 números são comparados com esse valor, e, se algum for maior, ele substitui o anterior. Ao final, o maior número informado é exibido na tela.


Abaixo encontra-se as respostas das questões anteriores: