Baixe o app para aproveitar ainda mais
Prévia do material em texto
Questão 1 Considere o seguinte trecho de um programa em português estruturado que utiliza estruturas lógicas. quantidade ← 0; x ← 0; escreva("Digite um valor numérico: "); leia(valor); enquanto (valor > 0) faca se (valor > x) entao x ← valor; quantidade ← 1; senao se (valor = x) entao quantidade ← quantidade + 1; fim_se; fim_se; escreva("Digite um novo valor:"); leia(valor); fim_enquanto; escreva ("x = ", x); escreva ("quantidade = ", quantidade); É correto dizer que: A) caso sejam lidos dois ou mais valores positivos, a variável quantidade sempre será maior que 1. B) se forem lidos vários valores positivos, a variável x armazena o maior deles e a variável quantidade conta quantas vezes ele se repetiu. C) se o primeiro valor lido for negativo, será impresso x = 0 e quantidade = 1. D) os comandos dentro da estrutura de repetição sempre serão executados pelo menos uma vez. E) o trecho utiliza estrutura condicional recursiva, pois há um comando se_então dentro de outro se_então. Questão 2 As sub-rotinas são blocos de comandos que realizam tarefas específicas, ou seja, são conjuntos de instruções projetadas para cumprirem uma atividade singular. Neste contexto analise as afirmativas abaixo. I. Um procedimento é uma estrutura que agrupa um conjunto de comandos a ser executado quando ele for chamado. II. Um procedimento é um tipo especial de sub-rotina onde, depois de executada a sua chamada, o valor calculado por ele é retornado em seu nome, logo, ele passa a ser uma variável de uma expressão. III. Uma função é chamada dentro do corpo do programa principal como se fosse um comando e, após seu término, a execução continua a partir do ponto onde foi chamada. IV. Cada função tem acesso às variáveis do programa que o chamou (variáveis locais), e tem acesso às suas próprias variáveis (variáveis globais), que existem apenas durante sua chamada. Estão corretas: A) II e III, apenas. B) I e III, apenas. C) I e II, apenas. D) II e IV, apenas. E) I e IV, apenas. Questão 3 As variáveis são muito úteis para o armazenamento de diversos tipos de dados. No contexto dos tipos de estruturas de dados, analise as afirmativas abaixo. I. A variável do tipo vetor possui a estrutura de uma tabela contendo apenas 1 coluna e N linhas ou N colunas e 1 linha. II. A variável do tipo matriz possui a estrutura de uma tabela contendo N colunas e M linhas. III. Ponteiro é um tipo de variável composta heterogênea. IV. Podemos manipular variáveis e outros recursos pelo endereço de memória utilizando registros. Assinale a alternativa correta. A) Somente as alternativas I e III estão corretas. B) Somente as alternativas I e II estão corretas. C) Somente a alternativa III está correta. D) Somente a alternativa I está correta. E) Somente a alternativa II está correta. Questão 4 Analise as funções abaixo. (I): int fat(int n) { if (n==0) return 1; else return n*fat(n-1); } (II): int fat(int n) { int i = 0; int f = 1; for(i = 1; i <= n; i++) f = f*i; return f; } (III): int fib(int n) { int f1 = 0; int f2 = 1; int f3, i; for (i = 1; i <= n; i++) { f3 = f2 + f1; f1 = f2; f2 = f3; } return f1; } (IV): void torre (int n, char a, char b, cahr c) { if (n > 0) { torre(n – 1, a, b, c); printf("mover de %c para %c", a, b); torre(n – 1, c, b, a); } } São funções recursivas as funções dadas em: A) II e IV, apenas. B) II e III, apenas. C) I e II, apenas. D) I e III, apenas. E) I e IV, apenas. Questão 5 Dada a estrutura abaixo: struct produto { int codigo; char descricao[30]; float preco; }; Essa estrutura é considerada: A) estrutura de dados encadeada. B) estrutura de dados recursiva. C) estrutura de dados heterogênea. D) estrutura de dados homogênea. E) estrutura de dados sequencial. Questão 6 Considere o programa na linguagem C dado abaixo. #include < stdio.h > #include < math.h > int main() { int valor; valor = 10; if (valor%2 == 0) { printf("a"); } else { printf("b"); } if (valor >= 12) { printf("c"); } return 0; } Qual o resultado final do programa? A) a. B) b. C) bc. D) ac. E) c. Questão 7 Para definir uma função, empregamos a seguinte forma básica: < tipo > < nome >([< tipo de parâmetros >][< parâmetros >]) } //declarações; //comandos; } De acordo com a forma de representação de uma função, analise as afirmativas abaixo. I. < tipo > refere-se ao tipo de entrada que a função receberá; este tipo deve ser void se a função não tiver valor de entrada; II. < nome > é o identificador da função no resto do programa; III. < parâmetros > é uma lista de variáveis que representam valores de entrada para a função; IV. Dentro do corpo da função, a primeira seção é destinada à declaração das variáveis globais. Estão corretas: A) I e IV, apenas. B) II e IV, apenas. C) I e III, apenas. D) I e II, apenas. E) II e III, apenas. Questão 8 A estrutura de repetição para é utilizada quando se sabe o número de vezes em que um trecho do algoritmo deve ser repetido. Observe o algoritmo a seguir: Algoritmo_Prova; var inteiro: a, b, c, i; inicio a ← 0; b ← 1; c ← 1; para i ← 2 ate 6 passo 1 faca c ← a + b; a ← b; b ← c; fim_para; escreva(b); fim. Assinale a alternativa que contém o que será impresso. A) 2. B) 7. C) 9. D) 8. E) 4. Questão 9 A linguagem de programação é a linguagem de comunicação de ideias entre o computador e as pessoas. Neste contexto, analise as afirmativas abaixo marcando V para as verdadeiras e F para as falsas. ( ) A linguagem de máquina apresenta vários inconvenientes pois todas as operações são escritas como conjuntos de uns e zeros para que possam ativar diretamente os dispositivos eletrônicos do computador. ( ) Os ambientes em que escrevemos nosso código na linguagem C possuem um programa que é capaz de transformar esse código em um escrito em linguagem de máquina. Este programa é chamado interpretador. ( ) Se existir erro de semântica em um código significa que algum comando ou instrução existente no programa foi escrito de maneira incorreta e o programa não poderá ser executado. ( ) Quando existem erros de sintaxe em um código significa que alguma instrução não está fazendo o que queríamos que fizesse e os resultados apresentados pelo programa não serão corretos. Assinale a alternativa que apresenta a sequência correta. A) V – V – V – V. B) V – F – F – F. C) F – F – V – F. D) V – F – V – F. E) F – V – V – V. Questão 10 As variáveis e as constantes são locais reservados na memória para armazenamento dos dados e cada uma possui um nome próprio para sua identificação. Sobre os conceitos de variáveis e constantes, analise as afirmativas abaixo. I. Em um algoritmo, uma constante é um espaço físico na memória, identificada por um nome, que pode sofrer alteração durante a execução do programa. II. Enquanto as variáveis só "existem" em tempo de execução, elas são associadas a "nomes", chamados identificadores, durante o tempo de desenvolvimento. III. O escopo de uma variável é definido pelos blocos onde a variável pode ser utilizada; variáveis diferentes declaradas no mesmo escopo não precisam ter nomes diferentes. IV. É uma boa prática de programação sempre inicializar as variáveis para evitar que recebam dados que estejam na memória. Assinale a alternativa correta. A) Apenas as afirmativas I e III estão corretas. B) Apenas as afirmativas II e IV estão corretas. C) Apenasas afirmativas I e II estão corretas. D) Todas as afirmativas estão corretas. E) Apenas as afirmativas II e III estão corretas. Questão 11 Considere o código-fonte abaixo, desenvolvido na linguagem de programação "portugol". Algoritmo_Prova; var inteiro: x, y, z, k, resultado; inicio x ← 2; y ← 4; z ← 9; k ← 3; resultado ← 0; se ((x < y + k) e (k*2 > 4) e (z + k < 12)) entao resultado ← 1; senao se ((y + 10 < z) ou (z > 12)) entao resultado ← 2; senao se ((x + 2) >= (y – 4)) entao resultado ← 3; senao resultado ← 4; fim_se; fim_se; fim_se; escreva(resultado); fim O número impresso ao final da execução deste código-fonte é: A) 0. B) 2. C) 4. D) 1. E) 3. Questão 12 A atribuição se refere ao ato de atribuir um(a) valor/informação a uma variável. Analise o algoritmo abaixo. Algoritmo_Prova; var inteiro: x, z, y; caracter: c; inicio x ← 15; y ← 40; z ← x; x ← y; y ← z; c ← ‘x’; escreva(x, y, c); fim. Quais os valores de x, y e c, respectivamente, que serão impressos na tela ao término da execução do algoritmo? A) 15, 40, 15. B) 40, 15, 40. C) 40, 40, x. D) 15, 40, x. E) 40, 15, x. Questão 13 Variáveis podem armazenar conjuntos de informações em vetores e/ou matrizes desde que os elementos desses conjuntos sejam do mesmo tipo, mas, em muitos casos, é necessário trabalhar com um conjunto de dados de tipos distintos.Para resolver esse problema, poderá ser usada uma estrutura de dados chamada de registro. De acordo com o contexto acima, analise as afirmativas abaixo. I. Um registro reúne uma informação de vários objetos. II. Cada informação é considerada um tipo de dado ou campo de registro. III. Registros são estruturas de dados heterogêneas. Assinale a alternativa correta: A) Somente as afirmativas I e III estão corretas. B) Somente as afirmativas I e II estão corretas. C) Somente a afirmativa II está correta. D) Somente a afirmativa III está correta. E) Somente a afirmativa I está correta. Questão 14 As estruturas de dados homogêneas permitem agrupar diversas informações dentro de uma mesma variável. Este agrupamento ocorre obedecendo sempre ao mesmo tipo de dado. Considere o seguinte algoritmo: Algoritmo_Prova; var inteiro: x[20]; inicio para i ← 1 ate 10 passo 1 faca x[i] ← i*3; fim_para; fim. Assinale a alternativa que contém os dados armazenados em cada posição do vetor, da primeira até a última, respectivamente, após a execução do código. A) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. B) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. C) 3, 4, 5, 6, 7, 8, 9, 10, 11, 12. D) 3, 6, 9, 12, 15, 18, 21, 24, 27, 30. E) 2, 4, 6, 8, 10, 12, 14, 16, 18, 20. Questão 15 Quando uma sub-rotina não retorna um valor para o programa que a chamou, ela é declarada como: A) void. B) float. C) char. D) int. E) double. Questão 16 A atribuição se refere ao ato de atribuir um(a) valor/informação a uma variável. Analise o algoritmo abaixo. Algoritmo_Prova; var inteiro: x, z, y; inicio x ← 5; y ← 30; z ← y – x*2; escreva(z); x ← 20; y ← x – z/2; escreva(y); fim. Quais os valores que serão impressos para z e y, respectivamente? A) 10 e 10. B) 20 e 0. C) 20 e 20. D) 20 e 10. E) 0 e 20 Questão 1 Questão 2 Questão 3 Questão 4 Questão 5 Questão 6 Questão 7 Questão 8 Questão 9 Questão 10 Questão 11 Questão 12 Questão 13 Questão 14 Questão 15 Questão 16
Compartilhar