Logo Passei Direto
Buscar

AO2_ Algoritmos e Lógica de Programação

Ferramentas de estudo

Questões resolvidas

Toda linguagem de programação possui comandos que permitem a execução repetida de um determinado trecho de código de programa. Com esse recurso, o programador não precisa duplicar as linhas de código em virtude da necessidade de executá-las várias vezes. Os diversos comandos disponíveis são denominados estruturas de repetição, comumente conhecidas como laços ou loop.
Posto isso, avalie as afirmacoes a seguir: I. A utilização das estruturas de repetição “enquanto...faça...” e “para...de...ate...faça” podem ser utilizadas nos mesmos casos que necessitem de solução com laço de repetição com a quantidade de iterações definidas. II. A utilização do laço de repetição “para...de...ate...faça” é recomendada para o laço de repetição cujas quantidades de iterações não são previsíveis. III. A utilização de laço de repetição “enquanto...faça...” atende somente a soluções que necessitem de um laço de repetição com a quantidade de iterações indefinidas. É correto o que se afirma em:
II e III, apenas.
III, apenas.
I e II, apenas.
I, apenas.
I, II e III.

Um programador deve ter competência para resolver problemas computacionais organizadamente. Ele deve praticar os seguintes passos para a resolução sistemática de um problema computacional, no qual temos o entendimento macro do problema, a elaboração do algoritmo, a diagramação da solução e a codificação do programa. Todas as fases assinaladas são importantes. Destacamos a de elaboração do algoritmo, que traz subsídios sólidos para que a busca do programa seja com baixo índice de erros em suas soluções computacionais.
Considerando o trecho acima, avalie as seguintes asserções e a relação proposta entre elas. I. Uma pseudolinguagem possui uma estrutura que simula as linguagens de programação formais praticadas por programadores profissionais. PORQUE II. Um programa codificado em pseudolinguagem deve ser totalmente aderente à estrutura de controle de fluxo e comandos das linguagens formais de programação. A respeito dessas asserções, assinale a opção correta:
As asserções I e II são proposições verdadeiras, e a II é uma justificativa da I.
A asserção I é uma proposição falsa, e a II é uma proposição verdadeira.
As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I.
A asserção I é uma proposição verdadeira, e a II é uma proposição falsa.
As asserções I e II são proposições falsas.

A construção de software não é uma tarefa simples. Por isso, está sujeita a diversos tipos de problema que acabam resultando na obtenção de um produto diferente daquele que se espera. Para que os erros de software sejam descobertos antes de o software ser liberado para utilização, existe uma série de atividades chamadas de validação, verificação e teste, com a finalidade de garantir que tanto o modo pelo qual o software está sendo construído quanto o produto em si estejam em conformidade com o especificado.
Considerando as informações apresentadas, avalie as afirmações a seguir: I. A única forma de testar um algoritmo é testá-lo após a codificação em uma linguagem de programação, com isso, podemos entrar com os dados. Os resultados finais mostram o comportamento exato do algoritmo nos vários cenários de teste. II. Um sistema é composto por um conjunto de programas, sendo que cada qual possui um objetivo específico, mas que são todos voltados para resolver um problema maior. Por isso, fazer testes unitários não contribui para o teste de um sistema. Somente um teste amplo é capaz de mostrar pontos falhos no todo. III. Ao término da elaboração do algoritmo, o programador deve buscar formas de verificar se está funcionando corretamente. Uma forma eficaz de utilizar uma técnica com a qual possa identificar todas as variáveis manipuladas no algoritmo, verificar todas as condições (requisitos) necessárias para solucionar o problema, dispositivos de entrada e saída, e pontos que demonstrem o comportamento do programa. É correto o que se afirma em:
III, apenas.
I e III, apenas.
I e II, apenas.
II e III, apenas.
I, apenas.

Toda linguagem de programação possui três aspectos que um programador, ao fazer uso de uma dada linguagem, deve ter pleno domínio: aspectos lexicais, sintáticos e semânticos. Os lexicais dizem respeito ao conjunto de palavras que o programa reconhece (dicionário), o que vale tanto para variáveis, comandos e identificadores. Os sintáticos referem-se à estrutura de cada comando, ou seja, a sintaxe do comando. Os semânticos estão relacionados com a manipulação dos dados e seus respectivos tipos.
Qual é o termo que designa uma linguagem que diferencia letras maiúsculas de letras minúsculas na codificação dos comandos e atribuição de identificadores (variáveis, nomes de funções e labels)?
Palavra Reservada.
Case Sensitive.
IDE.
Expressões.

Uma variável é uma posição nomeada de memória usada para guardar um valor que pode ser modificado pelo programa. Na linguagem C, todas as variáveis devem ser declaradas antes de serem usadas. As variáveis declaradas dentro de uma função (dentro do bloco de código) são chamadas de variáveis locais. Um bloco de código inicia-se com o caractere abre-chaves ({) e termina em fecha-chaves (}). Ao contrário das locais, as variáveis globais são reconhecidas pelo programa inteiro e podem ser usadas em qualquer ponto, ou seja, por todas as funções. Essas variáveis podem preservar seus valores durante todo o processamento do programa, valores que também podem ser alterados por qualquer comando específico de atribuição de valores localizados em qualquer parte do programa.
Com base nos dados acima, avalie as seguintes asserções e a relação proposta entre elas. I. Em um código C, podemos ter variáveis declaradas dentro de diferentes funções com o mesmo nome, e seus valores em memória são preservados, podendo ser alterados somente pela função que a criou. PORQUE II. Em linguagem C, as variáveis declaradas fora de todos os blocos (no início do programa) somente podem ser acessadas pela função main(), porque esta é a função principal do programa. A respeito das asserções, assinale a opção correta:
As asserções I e II são proposições verdadeiras, e a asserção II é uma justificativa da I.
A asserção I é uma proposição falsa, e a asserção II é uma proposição verdadeira.
As asserções I e II são proposições verdadeiras, mas a asserção II não é uma justificativa da I.
As asserções I e II são ambas proposições falsas.
A asserção I é uma proposição verdadeira, e a asserção II é uma proposição falsa.

A partir dessas informações, avalie as afirmacoes a seguir:
É correto o que se afirma em:
I. Uma boa prática de programação é a utilização de quantos comandos goto forem necessários para controlar o fluxo do programa. Isso evidencia também que o programador é muito habilidoso na manipulação dos comandos que controlam o fluxo de execução dos programas.
II. O comando return é utilizado quando a função necessita retornar ao ponto de onde ela foi chamada. Esse comando retorna um valor ou pode não retornar valor, ou seja, quando a função não tiver um valor associado a ela (void).
III. O comando break é utilizado quando o programador necessita encerrar a execução do programa imediatamente.
I e II, apenas.
I, apenas.
III, apenas.
I, II e III.
II, apenas.

Leia o texto a seguir: A chamada de funções proporciona ao programador uma forma eficiente de estruturar sua lógica, pois, ao fragmentarmos a resolução de um problema computacional em partes menores, passamos a ter um domínio maior do fluxo do programa. Um código em C pode ser estruturado com várias funções, e a função que obrigatoriamente deve aparecer é a função main(). Uma função pode ou não ao seu término, devolver um valor. Este valor é devolvido através do comando return.
Qual é o termo, em linguagem C, que declara explicitamente que a função não devolve valores?
#include
double.
return.
void.
int.

Leia o trecho abaixo: O fluxo normal de um programa de computador executa instruções em uma sequência: parte-se da primeira instrução do algoritmo até alcançar a última instrução da sequência. Um dos recursos utilizados em linguagens de programação, como forma de desvio do fluxo, é a utilização de funções. As funções são trechos de códigos executados que podem ser chamadas em qualquer ponto do programa, por outras funções.
Considerando esse contexto, avalie as seguintes asserções e a relação proposta entre elas.
I. Dentro de uma mesma função, pode haver mais de um comando return, porém, todos devem devolver valores do mesmo tipo.
II. O comando return deve devolver valores que sejam do mesmo tipo que constam na declaração da função. Por exemplo a função “double calcSalario()”, que deve devolver um valor calculado do tipo double no(s) comando(s) return.
A asserção I é uma proposição falsa, e a asserção II é uma proposição verdadeira.
As asserções I e II são proposições ambas falsas.
As asserções I e II são proposições verdadeiras, mas a asserção II não é uma justificativa da I.
A asserção I é uma proposição verdadeira, e a asserção II é uma proposição falsa.
As asserções I e II são proposições verdadeiras, e a asserção II é uma justificativa correta da I.

As matrizes bidimensionais costumam ser utilizadas para representar tabelas de valores, consistindo em informações organizadas em linhas e colunas. Para identificar um elemento particular da tabela, devemos especificar os subscritos. As matrizes bidimensionais são compostas por m linhas e n colunas, e são chamadas de matrizes m por n, e estes elementos m e n determinam o tamanho da matriz.
Considerando as informações apresentadas, avalie as afirmações a seguir:
I. Suponha uma declaração de uma matriz bidimensional (linguagem C): “int qtd[4][3];”. Com isso, o comando “printf("\n qtd %d = ", qtd[1 [5]);” possui um erro conceitual referente à manipulação de matrizes.
II. Para acessar os dados de uma matriz bidimensional, utilizamos os índices i e j, que correspondem respectivamente à referência de colunas e linhas da matriz.
III. Para percorrer todas as linhas e colunas de uma matriz, é recomendado o laço de repetição for.
I e II, apenas.
I, apenas.
III, apenas.
I e III, apenas.
I, II e III.

Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Questões resolvidas

Toda linguagem de programação possui comandos que permitem a execução repetida de um determinado trecho de código de programa. Com esse recurso, o programador não precisa duplicar as linhas de código em virtude da necessidade de executá-las várias vezes. Os diversos comandos disponíveis são denominados estruturas de repetição, comumente conhecidas como laços ou loop.
Posto isso, avalie as afirmacoes a seguir: I. A utilização das estruturas de repetição “enquanto...faça...” e “para...de...ate...faça” podem ser utilizadas nos mesmos casos que necessitem de solução com laço de repetição com a quantidade de iterações definidas. II. A utilização do laço de repetição “para...de...ate...faça” é recomendada para o laço de repetição cujas quantidades de iterações não são previsíveis. III. A utilização de laço de repetição “enquanto...faça...” atende somente a soluções que necessitem de um laço de repetição com a quantidade de iterações indefinidas. É correto o que se afirma em:
II e III, apenas.
III, apenas.
I e II, apenas.
I, apenas.
I, II e III.

Um programador deve ter competência para resolver problemas computacionais organizadamente. Ele deve praticar os seguintes passos para a resolução sistemática de um problema computacional, no qual temos o entendimento macro do problema, a elaboração do algoritmo, a diagramação da solução e a codificação do programa. Todas as fases assinaladas são importantes. Destacamos a de elaboração do algoritmo, que traz subsídios sólidos para que a busca do programa seja com baixo índice de erros em suas soluções computacionais.
Considerando o trecho acima, avalie as seguintes asserções e a relação proposta entre elas. I. Uma pseudolinguagem possui uma estrutura que simula as linguagens de programação formais praticadas por programadores profissionais. PORQUE II. Um programa codificado em pseudolinguagem deve ser totalmente aderente à estrutura de controle de fluxo e comandos das linguagens formais de programação. A respeito dessas asserções, assinale a opção correta:
As asserções I e II são proposições verdadeiras, e a II é uma justificativa da I.
A asserção I é uma proposição falsa, e a II é uma proposição verdadeira.
As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I.
A asserção I é uma proposição verdadeira, e a II é uma proposição falsa.
As asserções I e II são proposições falsas.

A construção de software não é uma tarefa simples. Por isso, está sujeita a diversos tipos de problema que acabam resultando na obtenção de um produto diferente daquele que se espera. Para que os erros de software sejam descobertos antes de o software ser liberado para utilização, existe uma série de atividades chamadas de validação, verificação e teste, com a finalidade de garantir que tanto o modo pelo qual o software está sendo construído quanto o produto em si estejam em conformidade com o especificado.
Considerando as informações apresentadas, avalie as afirmações a seguir: I. A única forma de testar um algoritmo é testá-lo após a codificação em uma linguagem de programação, com isso, podemos entrar com os dados. Os resultados finais mostram o comportamento exato do algoritmo nos vários cenários de teste. II. Um sistema é composto por um conjunto de programas, sendo que cada qual possui um objetivo específico, mas que são todos voltados para resolver um problema maior. Por isso, fazer testes unitários não contribui para o teste de um sistema. Somente um teste amplo é capaz de mostrar pontos falhos no todo. III. Ao término da elaboração do algoritmo, o programador deve buscar formas de verificar se está funcionando corretamente. Uma forma eficaz de utilizar uma técnica com a qual possa identificar todas as variáveis manipuladas no algoritmo, verificar todas as condições (requisitos) necessárias para solucionar o problema, dispositivos de entrada e saída, e pontos que demonstrem o comportamento do programa. É correto o que se afirma em:
III, apenas.
I e III, apenas.
I e II, apenas.
II e III, apenas.
I, apenas.

Toda linguagem de programação possui três aspectos que um programador, ao fazer uso de uma dada linguagem, deve ter pleno domínio: aspectos lexicais, sintáticos e semânticos. Os lexicais dizem respeito ao conjunto de palavras que o programa reconhece (dicionário), o que vale tanto para variáveis, comandos e identificadores. Os sintáticos referem-se à estrutura de cada comando, ou seja, a sintaxe do comando. Os semânticos estão relacionados com a manipulação dos dados e seus respectivos tipos.
Qual é o termo que designa uma linguagem que diferencia letras maiúsculas de letras minúsculas na codificação dos comandos e atribuição de identificadores (variáveis, nomes de funções e labels)?
Palavra Reservada.
Case Sensitive.
IDE.
Expressões.

Uma variável é uma posição nomeada de memória usada para guardar um valor que pode ser modificado pelo programa. Na linguagem C, todas as variáveis devem ser declaradas antes de serem usadas. As variáveis declaradas dentro de uma função (dentro do bloco de código) são chamadas de variáveis locais. Um bloco de código inicia-se com o caractere abre-chaves ({) e termina em fecha-chaves (}). Ao contrário das locais, as variáveis globais são reconhecidas pelo programa inteiro e podem ser usadas em qualquer ponto, ou seja, por todas as funções. Essas variáveis podem preservar seus valores durante todo o processamento do programa, valores que também podem ser alterados por qualquer comando específico de atribuição de valores localizados em qualquer parte do programa.
Com base nos dados acima, avalie as seguintes asserções e a relação proposta entre elas. I. Em um código C, podemos ter variáveis declaradas dentro de diferentes funções com o mesmo nome, e seus valores em memória são preservados, podendo ser alterados somente pela função que a criou. PORQUE II. Em linguagem C, as variáveis declaradas fora de todos os blocos (no início do programa) somente podem ser acessadas pela função main(), porque esta é a função principal do programa. A respeito das asserções, assinale a opção correta:
As asserções I e II são proposições verdadeiras, e a asserção II é uma justificativa da I.
A asserção I é uma proposição falsa, e a asserção II é uma proposição verdadeira.
As asserções I e II são proposições verdadeiras, mas a asserção II não é uma justificativa da I.
As asserções I e II são ambas proposições falsas.
A asserção I é uma proposição verdadeira, e a asserção II é uma proposição falsa.

A partir dessas informações, avalie as afirmacoes a seguir:
É correto o que se afirma em:
I. Uma boa prática de programação é a utilização de quantos comandos goto forem necessários para controlar o fluxo do programa. Isso evidencia também que o programador é muito habilidoso na manipulação dos comandos que controlam o fluxo de execução dos programas.
II. O comando return é utilizado quando a função necessita retornar ao ponto de onde ela foi chamada. Esse comando retorna um valor ou pode não retornar valor, ou seja, quando a função não tiver um valor associado a ela (void).
III. O comando break é utilizado quando o programador necessita encerrar a execução do programa imediatamente.
I e II, apenas.
I, apenas.
III, apenas.
I, II e III.
II, apenas.

Leia o texto a seguir: A chamada de funções proporciona ao programador uma forma eficiente de estruturar sua lógica, pois, ao fragmentarmos a resolução de um problema computacional em partes menores, passamos a ter um domínio maior do fluxo do programa. Um código em C pode ser estruturado com várias funções, e a função que obrigatoriamente deve aparecer é a função main(). Uma função pode ou não ao seu término, devolver um valor. Este valor é devolvido através do comando return.
Qual é o termo, em linguagem C, que declara explicitamente que a função não devolve valores?
#include
double.
return.
void.
int.

Leia o trecho abaixo: O fluxo normal de um programa de computador executa instruções em uma sequência: parte-se da primeira instrução do algoritmo até alcançar a última instrução da sequência. Um dos recursos utilizados em linguagens de programação, como forma de desvio do fluxo, é a utilização de funções. As funções são trechos de códigos executados que podem ser chamadas em qualquer ponto do programa, por outras funções.
Considerando esse contexto, avalie as seguintes asserções e a relação proposta entre elas.
I. Dentro de uma mesma função, pode haver mais de um comando return, porém, todos devem devolver valores do mesmo tipo.
II. O comando return deve devolver valores que sejam do mesmo tipo que constam na declaração da função. Por exemplo a função “double calcSalario()”, que deve devolver um valor calculado do tipo double no(s) comando(s) return.
A asserção I é uma proposição falsa, e a asserção II é uma proposição verdadeira.
As asserções I e II são proposições ambas falsas.
As asserções I e II são proposições verdadeiras, mas a asserção II não é uma justificativa da I.
A asserção I é uma proposição verdadeira, e a asserção II é uma proposição falsa.
As asserções I e II são proposições verdadeiras, e a asserção II é uma justificativa correta da I.

As matrizes bidimensionais costumam ser utilizadas para representar tabelas de valores, consistindo em informações organizadas em linhas e colunas. Para identificar um elemento particular da tabela, devemos especificar os subscritos. As matrizes bidimensionais são compostas por m linhas e n colunas, e são chamadas de matrizes m por n, e estes elementos m e n determinam o tamanho da matriz.
Considerando as informações apresentadas, avalie as afirmações a seguir:
I. Suponha uma declaração de uma matriz bidimensional (linguagem C): “int qtd[4][3];”. Com isso, o comando “printf("\n qtd %d = ", qtd[1 [5]);” possui um erro conceitual referente à manipulação de matrizes.
II. Para acessar os dados de uma matriz bidimensional, utilizamos os índices i e j, que correspondem respectivamente à referência de colunas e linhas da matriz.
III. Para percorrer todas as linhas e colunas de uma matriz, é recomendado o laço de repetição for.
I e II, apenas.
I, apenas.
III, apenas.
I e III, apenas.
I, II e III.

Prévia do material em texto

24/09/2019 AO2: Algoritmos e Lógica de Programação
https://famonline.instructure.com/courses/1382/quizzes/8542 1/19
AO2
Vencimento 25 set em 23:59 Pontos 6 perguntas 10 Disponível 23 set em 0:00 - 25 set em 23:59 3 dias
Limite de tempo Nenhum
Instruções
Histórico de tentativas
Tentativa Hora Pontuação
Importante:
Para iniciar a atividade no aplicativo Canvas Student, clique em "View Quiz" ou "Fazer o Questionário", no final da página.
Conforme imagem abaixo:
24/09/2019 AO2: Algoritmos e Lógica de Programação
https://famonline.instructure.com/courses/1382/quizzes/8542 2/19
Tentativa Hora Pontuação
MAIS RECENTE Tentativa 1 227 minutos 0 de 6
 As respostas corretas estarão disponíveis em 25 set em 23:59.
Pontuação deste teste: 0 de 6
Enviado 24 set em 11:51
Esta tentativa levou 227 minutos.
0 / 0,6 ptsPergunta 1IncorretoIncorreto
Leia o texto a seguir:
 
Toda linguagem de programação possui comandos que permitem a execução repetida de um determinado
trecho de código de programa. Com esse recurso, o programador não precisa duplicar as linhas de código em
virtude da necessidade de executá-las várias vezes. Os diversos comandos disponíveis são denominados
estruturas de repetição, comumente conhecidas como laços ou loop.
(Fonte: ALVES, W. P. Linguagem e Lógica de Programação.
São Paulo: Érica, 2015 - Adaptado).
Posto isso, avalie as afirmações a seguir:
 
I. A utilização das estruturas de repetição “enquanto...faça...” e “para...de...ate...faça” podem ser utilizadas nos
mesmos casos que necessitem de solução com laço de repetição com a quantidade de iterações definidas.
24/09/2019 AO2: Algoritmos e Lógica de Programação
https://famonline.instructure.com/courses/1382/quizzes/8542 3/19
II. A utilização do laço de repetição “para...de...ate...faça” é recomendada para o laço de repetição cujas
quantidades de iterações não são previsíveis.
III. A utilização de laço de repetição “enquanto...faça...” atende somente a soluções que necessitem de um laço
de repetição com a quantidade de iterações indefinidas.
 
É correto o que se afirma em:
 I, II e III. 
 II e III, apenas. 
Alternativa D
Alternativa está incorreta. A afirmativa I é verdadeira porque a estrutura de repetição “enquanto...faça...” pode
ser utilizada em soluções que necessitem de um laço de repetição com a quantidade de interações definidas,
pois pode-se controlar a quantidade de iterações na variável sentinela. A afirmativa II é falsa, pois a estrutura de
repetição “para...de...ate...faça” é apropriada para soluções que necessitem de um laço de repetição com a
quantidade de iterações definidas, porque o controle de iterações já faz parte da estrutura do comando. Assim,
as duas estruturas de repetição podem ser utilizadas nos mesmos casos que necessitem de uma solução com
um laço de repetição com a quantidade de iterações definidas. A afirmativa III é falsa porque a estrutura de
repetição “enquanto...faça...” atende tanto às soluções que necessitem de um laço de repetição com a
quantidade de iterações indefinidas, quanto às quantidades de iterações indefinidas. Por isso, a alternativa
correta é I, apenas.
 I e II, apenas. 
 III, apenas. 
 I, apenas. 
24/09/2019 AO2: Algoritmos e Lógica de Programação
https://famonline.instructure.com/courses/1382/quizzes/8542 4/19
0 / 0,6 ptsPergunta 2IncorretoIncorreto
Leia o texto abaixo:
 
Um programador deve ter competência para resolver problemas computacionais organizadamente. Ele deve
praticar os seguintes passos para a resolução sistemática de um problema computacional, no qual temos o
entendimento macro do problema, a elaboração do algoritmo, a diagramação da solução e a codificação do
programa.
Todas as fases assinaladas são importantes. Destacamos a de elaboração do algoritmo, que traz subsídios
sólidos para que a busca do programa seja com baixo índice de erros em suas soluções computacionais.
Considerando o trecho acima, avalie as seguintes asserções e a relação proposta entre elas.
 
I. Uma pseudolinguagem possui uma estrutura que simula as linguagens de programação formais praticadas por
programadores profissionais.
 
PORQUE
 
II. Um programa codificado em pseudolinguagem deve ser totalmente aderente à estrutura de controle de fluxo e
comandos das linguagens formais de programação.
 
A respeito dessas asserções, assinale a opção correta:
24/09/2019 AO2: Algoritmos e Lógica de Programação
https://famonline.instructure.com/courses/1382/quizzes/8542 5/19
 As asserções I e II são proposições falsas. 
 A asserção I é uma proposição verdadeira, e a II é uma proposição falsa. 
Alternativa C
Alternativa está incorreta. A asserção I é uma proposição verdadeira porque uma pseudolinguagem é uma
reprodução informal das linguagens de programação formais. Portanto, uma pseudolinguagem deve ter a
seguinte estrutura: Início do programa, uma seção para a declaração de variáveis e uma seção para a
codificação do algoritmo. Além disso, é necessário que a pseudolinguagem possua regras para os aspectos
lexicais, sintáticos e semânticos que toda linguagem de programação possui. A asserção II é uma proposição
verdadeira e justifica corretamente a asserção I. Uma pseudolinguagem precisa ter uma estrutura em
conformidade com as linguagens formais porque faz com que a transformação da pseudolinguagem para o
código formal tenha uma correspondência de paradigmas entre ambas.
 As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I. 
 As asserções I e II são proposições verdadeiras, e a II é uma justificativa da I. 
 A asserção I é uma proposição falsa, e a II é uma proposição verdadeira. 
0 / 0,6 ptsPergunta 3IncorretoIncorreto
Leia o trecho a seguir:
 
24/09/2019 AO2: Algoritmos e Lógica de Programação
https://famonline.instructure.com/courses/1382/quizzes/8542 6/19
A construção de software não é uma tarefa simples. Por isso, está sujeita a diversos tipos de problema que
acabam resultando na obtenção de um produto diferente daquele que se espera.
Para que os erros de software sejam descobertos antes de o software ser liberado para utilização, existe uma
série de atividades chamadas de validação, verificação e teste, com a finalidade de garantir que tanto o modo
pelo qual o software está sendo construído quanto o produto em si estejam em conformidade com o
especificado.
(Fonte: DELAMARO, M. E.; MALDONADO, J. C.; JINO, M. Introdução ao teste de software.
Rio de Janeiro: Campos/Elsevier, 2007).
Considerando as informações apresentadas, avalie as afirmações a seguir:
 
I. A única forma de testar um algoritmo é testá-lo após a codificação em uma linguagem de programação, com isso,
podemos entrar com os dados. Os resultados finais mostram o comportamento exato do algoritmo nos vários cenários de
teste.
II. Um sistema é composto por um conjunto de programas, sendo que cada qual possui um objetivo específico, mas que
são todos voltados para resolver um problema maior. Por isso, fazer testes unitários não contribui para o teste de um
sistema. Somente um teste amplo é capaz de mostrar pontos falhos no todo.
III. Ao término da elaboração do algoritmo, o programador deve buscar formas de verificar se está funcionando
corretamente. Uma forma eficaz de utilizar uma técnica com a qual possa identificar todas as variáveis manipuladas no
algoritmo, verificar todas as condições (requisitos) necessárias para solucionar o problema, dispositivos de entrada e
saída, e pontos que demonstrem o comportamento do programa.
 
É correto o que se afirma em:
 I e III, apenas. 
24/09/2019 AO2: Algoritmos e Lógica de Programação
https://famonline.instructure.com/courses/1382/quizzes/8542 7/19
Alternativa E
Alternativa está incorreta. A afirmativa I é falsa, uma vez que existe outra forma de testar umprograma antes de
sua codificação. Para esse fim, temos o teste de mesa, que verifica em tempo de algoritmo codificado em
pseudolinguagem ou fluxograma. Assim, não há necessidade de o computador fazer o teste de mesa, o qual
pode ser feito com a utilização somente de lápis e papel. A afirmativa II é falsa por afirmar que testes unitários
não contribuem para o teste de sistema. Se um sistema é composto de vários programas, então o teste unitário
contribui muito para o teste de sistema, pois este está voltado para a verificação de um resultado amplo; já o
teste unitário busca a verificação muito próxima de cada linha codificada no programa. A afirmativa III é
verdadeira. Após produzir o algoritmo, o programador deve verificar se este está funcionando corretamente, ou
seja, se está fazendo o que foi pedido. Por isso, existe uma técnica eficaz, chamada teste de mesa, a qual
facilita o entendimento do fluxo de execução do algoritmo e permite identificar erros de lógica na construção do
algoritmo. Esta técnica é composta por um instrumento que reúne todas as variáveis envolvidas no algoritmo e
todas as condições que o programa deve prever. Nessa técnica, também é possível que se planejem vários
cenários a se testar. Portanto, a alternativa correta é III, apenas.
 I e II, apenas 
 II e III, apenas. 
 I, apenas. 
 III, apenas. 
0 / 0,6 ptsPergunta 4IncorretoIncorreto
Leia o texto a seguir:
24/09/2019 AO2: Algoritmos e Lógica de Programação
https://famonline.instructure.com/courses/1382/quizzes/8542 8/19
 
Toda linguagem de programação possui três aspectos que um programador, ao fazer uso de uma dada
linguagem, deve ter pleno domínio: aspectos lexicais, sintáticos e semânticos. Os lexicais dizem respeito ao
conjunto de palavras que o programa reconhece (dicionário), o que vale tanto para variáveis, comandos e
identificadores. Os sintáticos referem-se à estrutura de cada comando, ou seja, a sintaxe do comando. Os
semânticos estão relacionados com a manipulação dos dados e seus respectivos tipos.
Do ponto de vista léxico, existem linguagens de programação que possuem regras muitos específicas para a
identificação de seus vários identificadores (variáveis, comandos, labels etc.).
Qual é o termo que designa uma linguagem que diferencia letras maiúsculas de letras minúsculas na codificação
dos comandos e atribuição de identificadores (variáveis, nomes de funções e labels)?
 Palavra Reservada. 
 Case Sensitive. 
 IDE. 
 Expressões. 
Alternativa E
Alternativa está incorreta. Expressões são estruturas que as linguagens de programação possuem. As
expressões são formadas pelos elementos mais básicos: Dados e Operadores. Alternativa correta é Case
Sensitive, pois é um termo da Língua Inglesa, incorporado aos termos das linguagens de programação, que
designa uma linguagem de programação que faz a diferenciação entre letras minúsculas e maiúsculas na
escrita. Esse ponto é muito importante, pois faz referência a variáveis homônimas escritas de formas diferentes
(por exemplo, a variável contador é diferente da variável Contador) e que podem produzir erros de lógica.
 Eclipse. 
24/09/2019 AO2: Algoritmos e Lógica de Programação
https://famonline.instructure.com/courses/1382/quizzes/8542 9/19
0 / 0,6 ptsPergunta 5IncorretoIncorreto
Leia o texto a seguir:
 
Uma variável é uma posição nomeada de memória usada para guardar um valor que pode ser modificado pelo
programa. Na linguagem C, todas as variáveis devem ser declaradas antes de serem usadas.
As variáveis declaradas dentro de uma função (dentro do bloco de código) são chamadas de variáveis locais.
Um bloco de código inicia-se com o caractere abre-chaves ({) e termina em fecha-chaves (}).
Ao contrário das locais, as variáveis globais são reconhecidas pelo programa inteiro e podem ser usadas em
qualquer ponto, ou seja, por todas as funções. Essas variáveis podem preservar seus valores durante todo o
processamento do programa, valores que também podem ser alterados por qualquer comando específico de
atribuição de valores localizados em qualquer parte do programa.
(Fonte: SCHILDT, H. C Completo e Total. São Paulo: Makron Books, 2006).
Com base nos dados acima, avalie as seguintes asserções e a relação proposta entre elas.
 
I. Em um código C, podemos ter variáveis declaradas dentro de diferentes funções com o mesmo nome, e seus
valores em memória são preservados, podendo ser alterados somente pela função que a criou.
 
PORQUE
 
24/09/2019 AO2: Algoritmos e Lógica de Programação
https://famonline.instructure.com/courses/1382/quizzes/8542 10/19
II. Em linguagem C, as variáveis declaradas fora de todos os blocos (no início do programa) somente podem ser
acessadas pela função main(), porque esta é a função principal do programa.
 
A respeito das asserções, assinale a opção correta:
 As asserções I e II são proposições verdadeiras, e a asserção II é uma justificativa da I. 
 A asserção I é uma proposição verdadeira, e a asserção II é uma proposição falsa. 
 As asserções I e II são ambas proposições falsas. 
 As asserções I e II são proposições verdadeiras, mas a asserção II não é uma justificativa da I. 
 A asserção I é uma proposição falsa, e a asserção II é uma proposição verdadeira. 
Alternativa D
Alternativa está incorreta. A asserção I é uma proposição verdadeira, visto que variáveis locais só podem ser
referenciadas por comando que estão dentro do bloco no qual as variáveis foram declaradas. Pelo princípio da
variável local, ela somente pode ser visível pela função que a criou, ou seja, embora as variáveis distintas sejam
homônimas, elas não são visíveis no programa inteiro. A asserção II é uma proposição falsa, pois as variáveis
criadas fora de todas as funções que fazem parte do programa são variáveis globais; e como tal são
reconhecidas pelo programa inteiro, podendo ser usadas em qualquer ponto do programa, e não somente pela
função main().
0 / 0,6 ptsPergunta 6IncorretoIncorreto
24/09/2019 AO2: Algoritmos e Lógica de Programação
https://famonline.instructure.com/courses/1382/quizzes/8542 11/19
Leia o trecho abaixo:
 
A linguagem C oferece estruturas para o controle do fluxo de execução de um programa. Assim, pode-se alterar
a simples execução sequencial dos comandos. Dentre as estruturas de controle de fluxo, temos os comandos
condicionais. Além dos comandos condicionais, a linguagem C também oferece estruturas que permitem repetir
um bloco de comandos. Essas estruturas são conhecidas como comandos de repetição. A parte do programa
que é executada várias vezes em um comando de repetição é chamada de laço de repetição.
Considerando esse contexto, avalie as seguintes asserções e a relação proposta entre elas.
 
I. O comando while é frequentemente utilizado quando não se conhece, a priori, quanta vezes o laço de
repetição será executado, mas se sabe que o laço será executado pelo menos uma vez. O comando while deve
ser utilizado quando a execução do laço de repetição não for opcional.
 
PORQUE
 
II. O do-while é um comando de repetição que, primeiramente, testa o seu critério de continuação e somente
depois, dependendo do resultado, prossegue na execução do laço de repetição.
 
A respeito dessas asserções, assinale a opção correta:
 A asserção I é uma proposição verdadeira, e a asserção II é uma proposição falsa. 
 A asserção I é uma proposição falsa, e a asserção II é uma proposição verdadeira. 
24/09/2019 AO2: Algoritmos e Lógica de Programação
https://famonline.instructure.com/courses/1382/quizzes/8542 12/19
 As asserções I e II são ambas proposições falsas. 
 As asserções I e II são proposições verdadeiras, e a asserção II é uma justificativa correta da I. 
 As asserções I e II são proposições verdadeiras, mas a asserção II não é uma justificativa correta da I. 
Alternativa B
Aalternativa está incorreta. A asserção I é uma proposição falsa porque o while é um comando de repetição
que, primeiramente, testa o seu critério de continuação e somente depois, dependendo do resultado, prossegue
na execução do laço de repetição; ele deve ser usado somente quando o laço de repetição for opcional. A
asserção II é uma proposição falsa porque o do-while é um comando de repetição que, primeiramente, executa
o laço de repetição e, em seguida, testa o seu critério de continuação para determinar se executa novamente o
laço de repetição.
0 / 0,6 ptsPergunta 7IncorretoIncorreto
Leia o trecho abaixo:
 
Em um programa de computador, as instruções são executas em uma sequência, partindo-se da primeira
instrução do algoritmo e, pelo fato de não haver desvios (condições e laços de repetição), segue
gravitacionalmente até alcançar a última instrução da sequência. Para que o fluxo seja interrompido, utilizam-
se recursos imperativos, como o comando goto, também conhecido por comando de interrupção abrupta, ou
comando de chamada de função, além de alguma estrutura de repetição ou por estrutura de decisão.
Os comandos de controle automático de fluxo (while, for, do-while) são comandos que proporcionam ao
programador uma forma segura de condução do fluxo natural do programa, enquanto o comando goto atribui ao
24/09/2019 AO2: Algoritmos e Lógica de Programação
https://famonline.instructure.com/courses/1382/quizzes/8542 13/19
programador este controle.
A partir dessas informações, avalie as afirmações a seguir:
 
I. Uma boa prática de programação é a utilização de quantos comandos goto forem necessários para controlar o
fluxo do programa. Isso evidencia também que o programador é muito habilidoso na manipulação dos comandos
que controlam o fluxo de execução dos programas.
II. O comando return é utilizado quando a função necessita retornar ao ponto de onde ela foi chamada. Esse
comando retorna um valor ou pode não retornar valor, ou seja, quando a função não tiver um valor associado a
ela (void).
III. O comando break é utilizado quando o programador necessita encerrar a execução do programa
imediatamente.
 
É correto o que se afirma em:
 I e II, apenas. 
 I, apenas. 
 III, apenas. 
 I, II e III. 
24/09/2019 AO2: Algoritmos e Lógica de Programação
https://famonline.instructure.com/courses/1382/quizzes/8542 14/19
Alternativa E
Alternativa está incorreta. A afirmativa I é falsa porque o comando goto é um recurso que deve ser evitado na
lógica de programação, posto que ele possibilita que o fluxo normal da lógica seja interrompido, e isso propicia
muitas oportunidades de erros de lógica. Não se coloca em dúvida a habilidade de quem o usa, porém, partindo-
se do princípio de que programas são passíveis de manutenção, o comando goto dificulta o entendimento da
lógica e potencializa os riscos de surgimento de bugs. A afirmativa II é verdadeira porque o comando return é
utilizado para retornar à função chamada para o ponto que a chamou. Trata-se de um desvio porque faz com
que a execução retorne ao ponto onde a chamada da função foi feita. Sua sintaxe é return expressão. A
“expressão” é opcional, caso a função chamada não tiver um valor associado a ela (void). A afirmativa III é falsa
porque a função break não encerra o programa, mas: i) Terminar um case (Comando switch); ii) Forçar o fim de
um laço de repetição (for, while ou do-while). O comando que encerra um programa é o exit(). Logo, a alternativa
correta é II, apenas.
 II, apenas. 
0 / 0,6 ptsPergunta 8IncorretoIncorreto
Leia o texto a seguir:
 
A chamada de funções proporciona ao programador uma forma eficiente de estruturar sua lógica, pois, ao
fragmentarmos a resolução de um problema computacional em partes menores, passamos a ter um domínio
maior do fluxo do programa. Um código em C pode ser estruturado com várias funções, e a função que
obrigatoriamente deve aparecer é a função main(). Uma função pode ou não ao seu término, devolver um valor.
Este valor é devolvido através do comando return.
Qual é o termo, em linguagem C, que declara explicitamente que a função não devolve valores?
24/09/2019 AO2: Algoritmos e Lógica de Programação
https://famonline.instructure.com/courses/1382/quizzes/8542 15/19
 #include 
 double. 
 return. 
 void. 
 int. 
Alternativa C
Alternativa está incorreta porque int indica um tipo de dado do tipo numérico inteiro, sem a representação da
parte das casas decimais, posto que o C opera com cinco tipos básicos de dados: caractere, inteiro, ponto
flutuante, ponto flutuante de precisão dupla e sem valor, que são representados respectivamente por char, int,
float, double e void. A alternativa correta é void, pois toda função, ao seu término, emite um comando para a
devolução de valor. O ponto de chamada da função deve estar preparado para receber o valor. Para isso, na
declaração da função deve-se indicar qual é o tipo de dado que deve ser retornado. Entretanto, se a função não
devolver valor, deverá ser indicado quando da codificação da função. Para tanto, a função é declarada com o
termo void, no lugar do tipo de dado. Por exemplo: void fun_nome() { }.
0 / 0,6 ptsPergunta 9IncorretoIncorreto
Leia o trecho abaixo:
 
24/09/2019 AO2: Algoritmos e Lógica de Programação
https://famonline.instructure.com/courses/1382/quizzes/8542 16/19
O fluxo normal de um programa de computador executa instruções em uma sequência: parte-se da primeira
instrução do algoritmo até alcançar a última instrução da sequência. Um dos recursos utilizados em linguagens
de programação, como forma de desvio do fluxo, é a utilização de funções. As funções são trechos de códigos
executados que podem ser chamadas em qualquer ponto do programa, por outras funções.
Toda função, exceto as funções declaradas como void, deve devolver valor para o ponto de chamada. Esse valor
é devolvido pelo comando return.
Para ilustrar a situação, imagine que um programa necessita fazer uma parte do cálculo de pagamento de um
funcionário. Esse cálculo é feito a partir dos proventos e dos descontos. Então, o programa deve ser seccionado
em várias funções para calcular cada um dos elementos. Cada função deve fazer o cálculo que é de sua
responsabilidade e devolver o resultado para o ponto que a chamou (Função principal). Esta, por sua vez, utiliza
os valores devolvidos para fazer a soma de proventos e a dedução dos descontos, gerando o valor líquido.
Considerando esse contexto, avalie as seguintes asserções e a relação proposta entre elas.
 
I. Dentro de uma mesma função, pode haver mais de um comando return, porém, todos devem devolver valores
do mesmo tipo.
 
PORQUE
 
II. O comando return deve devolver valores que sejam do mesmo tipo que constam na declaração da função. Por
exemplo a função “double calcSalario()”, que deve devolver um valor calculado do tipo double no(s) comando(s)
return.
 
A respeito das asserções, assinale a opção correta:
24/09/2019 AO2: Algoritmos e Lógica de Programação
https://famonline.instructure.com/courses/1382/quizzes/8542 17/19
 A asserção I é uma proposição falsa, e a asserção II é uma proposição verdadeira. 
Alternativa E
 Alternativa está incorreta. A asserção I é uma proposição verdadeira porque o comando return possui duas
importantes utilizações dentro de uma função: provocar a saída imediata da função e devolver um valor para o
ponto de chamada da função. A linguagem C permite que, dentro de uma mesma função, seja codificado mais
de um comando return. Isso porque o término de uma função pode ser executado em qualquer ponto dela. É
importante, porém, que o valor devolvido em todos os pontos seja do mesmo tipo do dado que consta no
comando de declaração da função. A asserção II é uma proposição verdadeira porque a linguagem C impõe que
todo comando return (quando devolve valores), ao sercodificado, deverá devolver valores do mesmo tipo de
dado que consta na declaração da função. A asserção II justifica a corretamente a asserção I, já que ela afirma
que os comandos devem devolver valores do mesmo tipo.
 As asserções I e II são proposições ambas falsas. 
 As asserções I e II são proposições verdadeiras, mas a asserção II não é uma justificativa da I. 
 A asserção I é uma proposição verdadeira, e a asserção II é uma proposição falsa. 
 As asserções I e II são proposições verdadeiras, e a asserção II é uma justificativa correta da I. 
0 / 0,6 ptsPergunta 10IncorretoIncorreto
Leia o texto abaixo:
 
24/09/2019 AO2: Algoritmos e Lógica de Programação
https://famonline.instructure.com/courses/1382/quizzes/8542 18/19
As matrizes bidimensionais costumam ser utilizadas para representar tabelas de valores, consistindo em
informações organizadas em linhas e colunas. Para identificar um elemento particular da tabela, devemos
especificar os subscritos. As matrizes bidimensionais são compostas por m linhas e n colunas, e são chamadas
de matrizes m por n, e estes elementos m e n determinam o tamanho da matriz. Cada elemento da matriz
bidimensional é identificado (acessado) por um nome de elemento seguido dos subscritores que identificam sua
localização na matriz.
(Fonte: DEITEL, H. M.; DEITEL, P. J. C++: Como Programar. 5. ed.
São Paulo: Pearson Prentice Hall, 2006. p. 279).
Considerando as informações apresentadas, avalie as afirmações a seguir:
 
I. Suponha uma declaração de uma matriz bidimensional (linguagem C): “int qtd[4][3];”. Com isso, o comando
“printf("\n qtd %d = ", qtd[1 [5]);” possui um erro conceitual referente à manipulação de matrizes.
II. Para acessar os dados de uma matriz bidimensional, utilizamos os índices i e j, que correspondem
respectivamente à referência de colunas e linhas da matriz.
III. Para percorrer todas as linhas e colunas de uma matriz, é recomendado o laço de repetição for.
 
Está correto o que se afirma em:
 I e II, apenas. 
24/09/2019 AO2: Algoritmos e Lógica de Programação
https://famonline.instructure.com/courses/1382/quizzes/8542 19/19
Alternativa C
Alternativa está incorreta. A afirmativa I é verdadeira porque conceitualmente o acesso a uma tabela
bidimensional tem a seguinte regra: Os valores dos indexadores estão limitados ao tamanho da matriz, ou seja,
o tamanho de uma matriz bidimensional é dado pelos valores declarados para a linha e a coluna (i e j
respectivamente). No caso do comando print..., ele manipulando a coluna [5], porém na declaração o valor
máximo é [3]. A afirmativa II é falsa porque, para acessar os dados de uma matriz bidimensional, utilizamos
índices i e j que correspondem respectivamente à referência de linhas e colunas da matriz. A afirmativa III é
verdadeira porque, por definição, o laço de repetição for é recomendado quando o número de repetições é
controlado por uma variável de valor conhecido. Uma matriz é definida como sendo uma área de tamanho
definido em linhas e colunas. O laço de repetição for é então o paradigma de laço de repetição ideal para
percorrer uma matriz bidimensional. Logo, a alternativa correta é I e III, apenas.
 I, apenas. 
 III, apenas. 
 I e III, apenas. 
 I, II e III. 
Pontuação do teste: 0 de 6

Mais conteúdos dessa disciplina