Buscar

INTRODUÇÃO A PROGRAMAÇÃO ESTRUTURADA EM C

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 57 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 57 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 57 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1. Tendo em vista o pensamento computacional, qual das opções abaixo não é um pilar para este conceito?
a) Algoritmos
b) Adaptabilidade
c) Decomposição
d) Abstração
2. O reconhecimento de padrões está presente em nossas vidas desde a Educação Básica. Pode-se afirmar que ele consiste em:
d) Identificar repetições ou regras de recorrência.
1. Considere o fluxograma a seguir:
Suponha que o usuário tenha informado o valor 1,80 no passo 3 e o valor 70 no passo 5. Qual será o resultado deste fluxograma?
a) Será exibido o valor 21,60.
b) Será exibida a frase “Você não está abaixo do peso”.
2. (FCC - 2016 - Adaptada) Considere o diagrama abaixo.
Analisando o raciocínio lógico e as estruturas lógicas utilizadas no diagrama, é correto afirmar que:
a) A lógica implementa a solução de cálculo da média de 2 números diferentes de zero.
b) Se um dos números digitados for zero, nada é impresso.
c) Se os dois números digitados na primeira vez forem zero, os dois serão somados e divididos por 2.
d) Se os dois números digitados forem iguais, nenhum resultado é impresso.
1. Observe o trecho de pseudocódigo a seguir:
a ← 10
b ← 15
a ← a + b
Imprimir (a)
Determine a saída de um programa que fosse escrito com este trecho.
a) 10
b) 15
c) 25
d) 1015
2. Considere o seguinte programa, escrito em Portugol:
Na linha em que está escrito //TRECHO OMITIDO, deve ser inserida uma instrução que imprima na tela a seguinte frase: “O número digitado foi: , ” seguida do valor que o usuário digitou. Ou seja, se o usuário tiver digitado o valor 1 quando foi solicitado, a frase impressa na tela deve ser O número digitado foi: 1 Para executar corretamente esta instrução, a linha omitida deve ser:
a) Escrever (“O número digitado foi: ”, numero)
b) Escreva (“O número digitado foi: ”, numero)
c) Escreva (“O número digitado foi: numero”
d) Escreva (“O número digitado foi: ”)
		1.
		(INPE - Técnico da Carreira de Desenvolvimento Tecnológico - 2006)Considere as três afirmações a seguir:
I.   Recursividade é uma forma de repetição.
II.  Variáveis são uma abstração de locais de memória do computador.
III. Operações aritméticas e lógicas só́ podem ser realizadas entre operandos do mesmo tipo.
Está(ão) correta(s):
	
	
	
	I, II e III
	
	
	Apenas I
	
	
	I e II
	
	
	Apenas II 
	
	
	II e III 
	Explicação:
Explicação.
	
	
	 
		
	
		2.
		Um tipo de diagrama, e pode ser entendido como uma representação esquemática de um processo ou algoritmo refere-se ao conceito de:
	
	
	
	Fluxograma;
	
	
	Algoritmo;
	
	
	Diagrama;
	
	
	Abstração;
	
	
	Processo;
	Explicação:
Como pode ser observado no Módulo 2 do Tema 1 o fluxograma é outra ferramenta bem útil para a representação de uma solução, e pode ser entendido como a representação gráfica de um algoritmo.
	
	
	 
		
	
		3.
		Os operadores no qual permitem a realização de comparações entre valores são chamados de:
	
	
	
	Lógico;
	
	
	Bit a Bit;
	
	
	Relacionais;
	
	
	Internacionais;
	
	
	Símbolo;
	Explicação:
Como pode ser observado no Módulo 2 do Tema 2 Os operadores relacionais permitem a realização de comparações entre valores. Elas são expressas por meio dos valores verdadeiro e falso.
	
	
	 
		
	
		4.
		Sobre os operadores avalie as assertivas a seguir
I. Os operadores aritméticos permitem que escrevamos expressões que retornem valores numéricos
II. Os operadores relacionais nos permitem comparar valores
III. As expressões relacionais retornam valores lógicos
IV. As expressões lógicas retornam valores inteiros
Com base em sua análise, assinale a UNICA alternativa que contém TODAS as assertivas corretas
	
	
	
	I, II e IV
	
	
	II e III
	
	
	I, II e III
	
	
	I, II, III e IV
	
	
	I e II
	Explicação:
I. Os operadores aritméticos permitem que escrevamos expressões que retornem valores numéricos --> VERDADE
II. Os operadores relacionais nos permitem comparar valores --> VERDADE
III. As expressões relacionais retornam valores lógicos --> VERDADE
IV. As expressões lógicas retornam valores inteiros --> FALSO, retornam valores lógicos
	
	
	 
		
	
		5.
		Considere o seguinte trecho de código em Portugol Studio:
num=10
produto=1
soma=0
enquanto (num < 9) 
{   se (num%2==0)
        Produto=produto*num
    senao
         soma=soma+num
    num=num+1
}
escreva(produto,soma)
O que será exebido pelo trecho de código acima?
	
	
	
	O algoritmo não exibirá nenhuma resposta
	
	
	0 e 0, respectivamente
	
	
	1 e 0, respectivamente
	
	
	10 e 20, respectivamente
	
	
	1 e 1, respectivamente
	Explicação:
Com num =10, a repetição não será executada e serão impressos os valores de produto e soma que foram inicializados (1 e 0)
	
	
	 
		
	
		6.
		Observe a descrição da estrutura básica do comando switch case na linguagem C, exibida a seguir.
 
switch (VARIAVEL)
{
case :
comando (s);
case :
comando (s);
...
default :
comando (s);
}
 
Está correto afirmar que:
	
	
	
	O comando break não é permitido no interior dos grupos de comandos.
	
	
	Somente um dos grupos de comandos pode ser executado de cada vez.
	
	
	O código para o caso default é obrigatório.
	
	
	As variáveis de controle podem ser do tipo int, char e float.
	
	
	Cada caso deve ser definido por uma constante escrita após a palavra case, seguida dos dois pontos
	Explicação:
O comando switch testa o valor da variável sinalizada entre parênteses e compara com a constante explicitada nos cases.
A opção default serve para o caso em que nenhuma das opções oferecidas tenha sido satisfeita, mas não é obrigatório.
testar a igualdade de variáveis floats não é uma boa prática de programação por causa da limitação de casas decimais que pode ocasionar valores diferentes quando a lógica aponta para a igualdade por conta de arredondamentos e truncamentos que ocorrem nas operações matemáticas. Portanto, o comando switch não permite o uso de casos associados a números reais.
A implementação do comando switch não isola os casos, permitindo, assim, que o programa possa continuar após um caso ser satisfeito. Para que ele funcione de acordo como ocmando lógico (atender a apenas um caso), deve-se usar o comando break ao final de cada caso, garantido o funcionamento de apenas um caso por vez.
Dessa forma, apenas a opção Cada caso deve ser definido por uma constante escrita após a palavra case, seguida dos dois pontos é correta
 
	
	
	 
		
	
		7.
		Considere o seguinte enunciado:
Escreva um trecho de codigo, em Portugol,  que leia uma lista de números terminada em zero e mostre se o número é par ou ímpar.
Assinale a alternativa que apresenta corretamente esse trecho de código em Portugol Studio, usando o comando com teste no início (pré-teste).
 
	
	
	
	leia(num)
enquanto (num!=0) 
{ se num%2==0
      escreva ( numero e par¿)
   senao 
      escreva (¿numero impar¿)
   leia (num)
}
 
	
	
	leia(num)
faca
{ se num%2==0
      escreva ( numero e par¿)
  senao 
  escreva (¿numero impar¿)
  leia (num)
}
enquanto (num!=0)
	
	
	leia(num)
enquanto (num!=0) 
{ se num%2 != 0
      escreva ( numero e par¿)
  senao 
      escreva (¿numero impar¿)
  leia (num)
}
	
	
	leia(num)
enquanto (num<> 0) 
{ se num%2==0
     escreva ( numero e par¿)
  senao 
     escreva (¿numero impar¿)
  leia (num)
}
	
	
	leia(num)
enquanto (num==0) 
{ se num%2==0
     escreva ( numero e par¿)
  senao 
     escreva (¿numero impar¿)
  leia (num)
}
	Explicação:
Explicação.
	
	
	 
		
	
		8.
		É preciso verificar se o conteúdo da variável NUM existe ou não em um vetor de 10 posições de inteiros, de nome VET.
Assinale a alternativa que apresenta o trecho de código correto em linguagem C:
 
	
	
	
	int num,ind=0,achou=0,vet[10];
scanf ("%d",num);
while (ind<10 && achou==0)
{
   if (num=vet[ind])
   achou=1;
   else ind++;
}
	
	
	int num,ind=0,achou=0,vet[10];
scanf ("%d",num);
while (ind<10 && achou==0)
{
   if (num==vet[ind])
   achou=1;
   else ind++;
}
	
	
	int num,ind=0,achou=0,vet[10];scanf ("%d",num);
while (achou==0)
{
   if (num==vet[ind])
   achou=1;
   else ind++;
}
	
	
	int num,ind=0,achou=0,vet[10];
scanf ("%d",num);
while (ind<10 && achou=0)
{
   if (num=vet[ind])
   achou=1;
   else ind++;
}
	
	
	int num,ind=0,achou=0,vet[10];
scanf ("%d",num);
while (ind<10 && achou==0)
{
   if (num==vet[ind])
   achou=1;
}
	
	
	 
		
	
		9.
		Assinale a resposta correta a questão abaixo.
- Considerando um vetor de 400 posições de inteiro. Qual o indice do vetor que ocupa o terceiro e vigéssimo elemento, respectivamente, em uma implementação em linguagem C ?
 
	
	
	
	4 e 21
	
	
	2 e 20
	
	
	3 e 19
	
	
	3 e 20
	
	
	2 e 19
	Explicação:
Posição 0 - 1o elemento
Posiçao 1 - 2o elemento
Posição 2 - 3o elemento
-----
----
Posição 19 - 20o elemento
	
	
	 
		
	
		10.
		Na codificação de um programa na linguagem C, é necessária a declaração de uma matriz bidimensional para armazenar as notas de 3 disciplinas de uma turma com 50 alunos.
O algoritmo considera que os dados estarão organizados na matriz, de modo que cada linha represente a nota de uma disciplina dos 50 alunos
Marque a alternativa que apresenta, de forma correta, a declaração dessa matriz, chamada de notasAlunos:
	
	
	
	float matalunos[3,50];
	
	
	float matalunos [50][3];
	
	
	float matalunos [3][50];
	
	
	float matalunos [50..3];
	
	
	float matalunos 50 x 3;
	Explicação:
a primeira dimensao são as linhas, a segunda as colunas
linhas - notas dos 50 alunos de 1 disciplina
colunas - notas das 3 provas
	
Parte superior do formulário
1. (Adaptada de: MPU - FCC - Analista de Informática - Desenvolvimento de Sistemas - 2007) O tipo de dados float refere-se aos dados do tipo:
Real
Real
Parte inferior do formulário
Comentário
Parabéns! A alternativa "D" está correta.
Os do tipo float são dados com casas decimais. Por isso, eles são representados na Matemática como números reais.
Parte superior do formulário
2. (Adaptada de: IBGC - Hemominas - Técnico de Informática - 2013) Assinale a alternativa que apresenta um exemplo típico de dados numéricos sem casas decimais:
558Um, dois e três
Parte inferior do formulário
Comentário
Parabéns! A alternativa "B" está correta.
As letras A e D representam tipos de dados do tipo char. B apresenta um tipo de dado numérico; C, tipos de dados com casas decimais.
2. (FUNIVERSA - PC-DF - Perito Criminal - Informática - 2012) São palavras-chave da linguagem C no padrão ANSI, não podendo, portanto, ser utilizadas como nomes para variáveis:
3. Parte superior do formulário
4. float peso, float altura;
5. Parte inferior do formulário
6. float peso, float altura;
Parabéns! A alternativa "D" está correta.
7. Depois de um identificador, só é possível haver um sinal de ponto e vírgula ou uma vírgula seguida de outro identificador.
8. 5. (Adaptada de: CESPE - Banco da Amazônia - Técnico-científico - Tecnologia da Informação - Administração de Dados - 2010) Acerca das estruturas de informação, considere a seguinte afirmação: nos tipos primitivos de dados do tipo inteiro, os valores são números inteiros para os quais são definidas operações matemáticas. Esses tipos de dados não possuem casas decimais.
Na implementação de um aplicativo, podemos representar a ideia apresentada por meio do seguinte tipo inteiro:
A idade
Parabéns! A alternativa "A" está correta.
Exemplos de idades de pessoas são 20 ou 50 anos, ou seja, números sem casas decimais. Portanto, utilizamos o tipo primitivo inteiro. A cor dos olhos é medida em cadeia de caracteres (char), como, por exemplo azul, verde e castanho-claro. O peso, por sua vez, deve ser medido em quilogramas (ou libras) com um número real (tipo primitivo float ou double), como 70,0 Kg. Já o endereço é representado como uma cadeia de caracteres (char), como Av. Paulista, 100.
Parte superior do formulário
1. (Adaptada de: TJ - BA - Analista Judiciário - Tecnologia da Informação - 2015) Considere, na linguagem C, que as variáveis A e B contenham os valores 60 e 13, tendo as respectivas representações binárias:
A=0011 1100
B=0000 1101
Neste caso, as expressões A&&B e A||B possuem, respectivamente, os seguintes valores:
0000 110Parte superior do formulário
0000 1100 e 0011 1101;
Parte inferior do formulário
0 e 0011 1101;
0000 1100 e 0011 1101;
Parte inferior do formulário
Comentário
Parabéns! A alternativa "D" está correta.
Para resolver essas expressões, devemos montar uma tabela com os valores e realizar as operações passo a passo:
- A&B = 0000 1100
	A
	0       0
	1
	1       1
	1
	0
	0
	B
A&B
	0       0
0       0
	0
0
	0       1
0       1
	1
1
	0
0
	1
0
- A | B = 00 11 1101
	A
	0       0
	1
	1       1
	1
	0
	0
	B
	0       0
	0
	0       1
	1
	0
	1
	A|B
	0       0
	1
	1       1
	1
	0
	1
2. (Adaptado de: NUCEPE - SEDUC-PI - Professor de Informática - 2009) Assinale a alternativa que mostra o operador lógico OU em linguagem C
||
Comentário
Parabéns! A alternativa "B" está correta.
Os símbolos das letras A e D não pertencem à linguagem C. O símbolo de C é o e-lógico.
Parte superior do formulário
3. (FCC - TRF - 4ª Região - Técnico Judiciário - Tecnologia da Informação - 2014) O tipo booleano é um tipo de dado utilizado na programação de computadores. Em operações lógicas, o resultado será sempre um valor boolean TRUE ou FALSE.
Muitas vezes, tais operações são apresentadas em uma tabela conhecida como tabela verdade. Observe este exemplo:
	A
	B
	A E B
	A OU B
	NÃO (A E B)
	TRUE
	FALSE
	
	I
	II
	FALSE
	TRUE
	III
	
	
As lacunas I, II ou III são preenchidas, correta e respectivamente, por:
Parte inferior do formulário
Comentário True, true e false
Parabéns! A alternativa "A" está correta.
Os valores calculados derivam diretamente das tabelas verdade apresentadas anteriormente:
	a
	b
	a || b
	verdadeiro
	verdadeiro
	verdadeiro
	verdadeiro
	falso
	verdadeiro
	falso
	verdadeiro
	verdadeiro
	falso
	falso
	falso
	a
	b
	a && b
	!(a && b)
	verdadeiro
	verdadeiro
	verdadeiro
	falso
	verdadeiro
	falso
	falso
	verdadeiro
	falso
	verdadeiro
	falso
	verdadeiro
	falso
	falso
	falso
	verdadeiro
4. (FUNDATEC - Prefeitura de Chuí - RS - Fiscal de Tributos - 2019) Observe a seguinte tabela verdade:
	P
	Q
	R
	P^Q
	(P^Q)⇒R
	verdadeiro
	verdadeiro
	verdadeiro
	verdadeiro
	verdadeiro
	(1)
	verdadeiro
	falso
	falso
	(2)
Os valores lógicos que preenchem (1) e (2) são, respectivamente:
Falso – Verdadeiro
5. Considere o seguinte segmento de código na linguagem C:
int a=5, b=2;
float c=7, d=3;
int e, f;
float g, h;
e=a/b;
f=c/d;
g=a/b;
h=c/d;
Assinale a alternativa que apresenta os valores das variáveis término da execução:
5, 2, 7.0, 3.0, 2, 2, 2.0, 2.3
Parabéns! A alternativa "A" está correta.
Vemos que a/b é uma divisão inteira. Assim, seu resultado é inteiro; portanto, a/b=2. Quando esse valor é atribuído ao inteiro e, tal inteiro apenas recebe seu valor: e=2. Quando essa atribuição é feita a um número ponto flutuante, ele é convertido; logo, g=2.0.
Observamos que c/d é uma divisão de números ponto flutuante sendo atribuída a um número inteiro, ou seja, depois da divisão com ponto flutuante (2.33333). Quando atribuído a um número inteiro, ele é convertido: f=2; já para um ponto flutuante, não há conversão: h=2.3.
Parte superior do formulário
6. (UFTM - Engenharia da Computação ou Engenharia da Produção - 2018) Aponte, entre as alternativas abaixo, os resultados da resolução da seguinte expressão lógica (escrita na linguagem C) para os valores de A, B e C definidos nos cenários I, II e III:
(A && B) && ((C || A || B) || (!A && C))
I: A=true, B=true, C=false
II: A=false, B=true, C=true
III: A=false, B=true, C=false
Parte inferior do formulário
5, I: true, II: false, III: false
Parabéns! A alternativa "A" está correta.
Devemos inicialmente montar a tabela verdade:
	A
	B
	C
	!A
	C=A&&B
	D=C||A||B
	E=!A&&C
	D||E
	C&&F
	1
	1
	1
	0
	1
	1
	0
	1
	1
	1
	1
	0
	0
	1
	1
	0
	1
	1
	1
	0
	1
	0
	0
	1
	0
	1
	0
	1
	0
	0
	0
	0
	1
	0
	1
	0
	0
	1
	1
	1
	0
	1
	1
	1
	0
	0
	1
	0
	1
	0
	1
	0
	1
	0
	0
	0
	11
	0
	1
	1
	1
	0
	0
	0
	0
	1
	0
	0
	0
	0
	0
Basta agora confrontar os valores da tabela verdade com os dados do enunciado apresentados nos itens I, II e III para encontrar o valor da expressão e os valores das variáveis mais adequados.
2, 7.0, 3.0, 2, 2, 2.0, 2.3
Falso – VerParte superior do formulário
1. Qual é o valor armazenado na variável a após a execução destas linhas?
int a, b, c;
a = b + c;
b = 1;
c = b + 1;
	
a) 1
b) 2
c) 3
d) Um valor aleatório
Parte inferior do formulário
Responder
Comentário
Parabéns! A alternativa D está correta.
A variável a recebe a soma das variáveis b e c, porém, na segunda linha, elas ainda não têm valor atribuído. O resultado é um valor aleatório, visto que os bits são compostos por 0 e 1.
dadeiro
Parte superior do formulário
2. Qual é o valor armazenado na variável ch após a execução destas linhas?
int a = 1;
char ch = ‘A’;
ch = ch + a;
	
a) 1
b) ‘A’
c) ‘B’
d) Ocorrerá um erro de compilação.
Parte inferior do formulário
Responder
Comentário
Parabéns! A alternativa C está correta.
A terceira linha somará uma unidade ao valor da variável ch e, com isso, ela passará a armazenar o caractere ‘B’.
Parte superior do formulário
1. Considere o seguinte trecho de código escrito em C:
#include <stdio.h>
void main(){
int a, b;
a = 5;
b = a%2;
a = a + 1;
printf(“a = %d e b = %d.∖n”, a, b);
}
	
Assinale a alternativa que apresenta, corretamente, o conteúdo a ser exibido na tela quando o trecho for executado.
a) a = %d e b = %d.∖n
b) a = 5 e b = 1.∖n
c) a = 6 e b = 1
d) a = 6 e b = 0
Parte inferior do formulário
Responder
Comentário
Parabéns! A alternativa C está correta.
A variável b recebe o resto de a dividido por 2. Como a, nesse momento, tem valor 5, o resto da divisão por 2 é 1. A variável a, após a atribuição de valor de b, é incrementada em uma unidade.
Parte superior do formulário
2. Considere o seguinte trecho de código escrito em C:
#include <stdio.h>
void main(){
char letra;
int a;
a = 10;
letra = ‘L’;
letra = letra + a%2;
printf(“a = %d e letra = %c.∖n”, a, letra);
}
	
Assinale a alternativa que apresenta, corretamente, o conteúdo a ser exibido na tela quando o trecho for executado:
a) a = 10 e letra = L
b) a = 10 e letra = M
c) a = 0 e letra = L
d) a = 10 e letra = K
Parte inferior do formulário
Responder
Comentário
Parabéns! A alternativa A está correta.
Como o resto da divisão de a por 2 é igual a 0, o valor da variável a não é alterado.
Parte superior do formulário
1. Considere o seguinte trecho de código escrito em C:
#include <stdio.h>
void main(){
int a, b, c;
c = a-b;
printf(“Entre com dois inteiros:∖n”);
scanf(“%d %d”, &a, &b);
printf(“A diferença entre %d e %d vale %d∖n”, a, b, c);
}
	
Suponha que o usuário tenha entrado com os valores:
15
6
Assinale a alternativa que apresenta, corretamente, o resultado da execução desse trecho.
a) A diferença entre 15 e 6 vale 9.
b) Ocorrerá um erro porque a variável c não está precedida de & na atribuição.
c) Ocorrerá um erro porque as variáveis a e b não estão precedidas de & na instrução de escrita do resultado.
d) A variável c terá um valor aleatório.
Parte inferior do formulário
Responder
Comentário
Parabéns! A alternativa D está correta.
A atribuição c = a - b é feita antes que as variáveis a e b recebam os valores informados pelo usuário. Logo, não se sabe o valor delas.
Parte superior do formulário
2. Considere o seguinte trecho de código escrito em C:
#include <stdio.h>
void main(){
float altura, peso, imc;
printf(“Entre com a sua altura e o seu peso:∖n”);
scanf(“%f %f”, &altura, &peso);
imc = (peso/altura)/altura;
printf(“Seu IMC vale %f∖n”, imc);
}
	
Suponha que o usuário tenha entrado com os valores:
1.80
75
Assinale a alternativa que apresenta, corretamente, o resultado da execução desse trecho.
a) Seu IMC vale 23.14.
b) Seu IMC vale 23.
c) Seu IMC vale 23.148149.
d) Ocorrerá um erro porque a variável imc não está precedida de & na atribuição.
Parte inferior do formulário
Responder
Comentário
Parabéns! A alternativa C está correta.
A impressão na tela de uma variável do tipo float é feita com 6 casas decimais. A entrada de dados é feita corretamente, com as variáveis altura e peso armazenando os valores 1.80 e 75, respectivamente.
Parte superior do formulário
1) Marque a alternativa que apresenta a forma adequada de implementação de um código que verifique se uma divisão pode ser realizada, através da averiguação de o divisor ser nulo ou não. Considere as variáveis float a, b, c; de acordo com a equação c=a/b. if(b==0){
      printf("WARNING: Divisão por zero");
}
Parabéns! A alternativa "A" está correta.
A opção correta é a letra A, uma vez que, para a divisão ser possível, é necessário que o divisor seja não nulo.
2) Em uma universidade, um aluno é considerado aprovado se a média das duas provas AV1 e AV2 for maior ou igual a 7. Implemente o segmento do código, na Linguagem C, que informará ao usuário (aluno) se ele está aprovado. Marque a alternativa que apresenta o segmento de código correto.
Considere:
  
// Primeiro definimos nossas variáveis.
float av1, av2, media;
//Depois processamos a entrada
//Primeiro com a informação para o usuário
printf("Informe a nota da AV1");
//Depois com o comando de leitura.
scanf("%f", &av1);
//Repetimos para a segunda nota.
printf("Informe a nota da AV2");
scanf("%f", &av2);
//Calculamos agora a média aritmética.
media = (av1 + av2) / 2.0;
Comentário
Parabéns! A alternativa "A" está correta.
O enunciado cita que a média deve ser maior ou igual a 7, portanto, a única alternativa que utiliza o condicional correto é a letra A, > =.
if(media>=7)}printf(¨PARABENS!VOCE ESTA APROVADO!\N);}
3) Considere o segmento de código abaixo, que faz parte de uma aplicação que verifica se o estoque de um determinado produto em um supermercado alcançou a quantidade mínima ou não.
Caso tenha alcançado a quantidade mínima, é emitida uma mensagem para o fornecedor entregar mais itens daquele produto. Caso o estoque mínimo do produto seja zero, então não é realizado novo pedido. Caso o estoque atual do produto seja zero, uma mensagem é emitida para o fornecedor entregar alguns itens daquele produto.  
Para cada produto, o seu estoque mínimo é calculado em outra parte do código e armazenado na variável estoque_minimo_produto. Da mesma forma, o estoque atual é calculado em outra parte do código e armazenado na variável estoque_atual_produto. Assim, estas variáveis, ao comporem a expressão lógica, já possuirão os valores para um determinado produto.  
O segmento de código é apresentado abaixo.
if(expressao_controle_estoque){
  Emitir_Mensagem_Novo_Pedido();
  printf(“Enviada mensagem para fornecedor”);
}
Considerando as premissas informadas anteriormente para as variáveis estoque_atual_produto e estoque_minimo_produto, marque a opção que apresenta o valor adequado para a variável expressão_controle_estoque, baseado nas duas variáveis anteriores.
expressão_controle_estoque = (estoque_minimo_produto>0) && ( (estoque_minimo_produto > estoque_atual_produto) || (estoque_atual_produto==0))
Comentário
Parabéns! A alternativa "C" está correta.
Os requisitos são:
I. Caso tenha alcançado a quantidade mínima, é emitida uma mensagem para o fornecedor entregar mais itens daquele produto.
                     estoque_minimo_produto > estoque_atual_produto
II. Caso o estoque mínimo do produto seja zero, então não é realizado novo pedido.
                   estoque_minimo_produto > 0
III. Caso o estoque atual do produto seja zero, uma mensagem é emitida para o fornecedor entregar alguns itens daquele produto.
                   estoque_minimo_produto==0
A resposta certa, portanto, é a alternativa C.
4) Marque a opção que apresenta um exemplo de operação que não poderá ser utilizada no segmento de código abaixo.
int a = 1, b = 2, c = 3;
if(expressão){
  printf(“Operação realizada com sucesso”);
}
a- if(“PI”){
Comentário
Parabéns! A alternativa "A" está correta.
As expressões b, c e d estão corretas, mas a expressão a nãoestá. Um conjunto de caracteres não pode ser um condicional para o operador if.
Parte superior do formulário
1) (Baseada em CESPE - 2017 - TRT - 7ª Região (CE) - Analista Judiciário - Tecnologia da Informação)
A estrutura lógica presente no diagrama apresentado é do tipo:
SESE ENTÃO SENÃO ENTÃO SENÃO
Parte inferior do formulário
Comentário
Parabéns! A alternativa "D" está correta.
A estrutura apresentada é do tipo se então (indicado com o sim na figura) senão (indicado com o não da figura).
2) (Baseada em FCC - 2010 - SP - Agente de Defensoria - Analista de Sistemas) Marque a alternativa que apresenta o comando utilizado na estrutura de decisão composta, ou seja, que possua a opção a ser executada caso a condição seja verdadeira e caso a condição seja falsa.
if{}else{}
Opção correta, letra B. A única opção que possui estrutura de condição é a alternativa b. As outras opções mostram estruturas de repetição que possuem caraterísticas e aplicações diferentes em programação.
1) (Baseado em IFAL – 2014) Para que faixa de valores da variável x o seguinte trecho de código imprime a letra C?
  
if( x <= 200)
if (x < 100)
  if (x < 0) printf(“A”)
  else printf(“B”)
else printf(“C”)
else printf(“D”)
100<=x<=200
Parabéns! A alternativa "C" está correta.
A resposta correta é a letra C. Ela será impressa se o primeiro if for verdadeiro e o segundo if for falso. No primeiro, if indica que x < = 200 e o segundo if indica que o valor deverá ser a negação de x < 100, que neste caso é x > = 100. Combinando as duas expressões, temos que x > =100 e x < = 200, resultando na letra C.
2) Nossos carros podem ser abastecidos com álcool ou com gasolina, mas o preço e o rendimento são bem diferentes. Então, como devemos abastecer? Diz a sabedoria popular que, para que seja recomendável o abastecimento com álcool, o preço deste combustível deverá ser até 70% do preço da gasolina. Assim, marque a opção que apresenta o complemento do código de um programa em C que, após ter sido fornecido pelo usuário o preço do litro dos dois combustíveis, informe com qual deveremos abastecer.
Código existente:
  
// definição das variáveis que serão utilizadas.
float preço_alcool, preco_gasolina, fator_decisao;
//entradad da dados
printf("Foneça o preço do álcool:");
scanf("%f", &preco_alcool);
printf("Foneça o preço da gasolina:");
scanf("%f", &preco_gasolina);
 
//processamento e saída.
printf("Abasteça com ");
Comentário
Parabéns! A alternativa "D" está correta.
A resposta correta é a letra D. Como estamos falando de divisão dos dois valores, obrigatoriamente o denominador, que neste caso é o preço da gasolina, não poderá ser nulo. Assim, automaticamente a alternativa A e B estão incorretas porque estão sendo testados os numeradores. A alternativa B e C está incorreta, pois a expressão que está sendo avaliada está incorreta, o correto é dividir o preço do álcool pelo da gasolina.
3) (Baseado em FCC – TRT – 9ª Região - Analista Judiciário - Tecnologia da Informação)  
Considere o segmento de código abaixo:
  
#include <stdio.h>
int main(int argc, char *argv[]){
  char sexo;
  printf(“Qual é o seu sexo? (f/m) ”);
  scanf(“%c”, &sexo);
  if(sexo == ‘f’ && sexo == ‘F’)
  printf(“Você é do sexo feminino. ”);
  else
  if(sexo == ‘m’ && sexo == ‘M’)
  printf(“Você é do sexo masculino. ”);
  else
  printf( “Você digitou um valor de sexo invalido ”);
}
Sobre o código acima, é correto afirmar que:
Se for digitada uma letra maiúscula ‘F’ ou minúscula ‘f’ será impresso "Você é do sexo feminino".
Parte superior do formulário
4) Marque a opção que apresenta apenas tipos válidos que podem ser empregados em uma estrutura do tipo switch:
int, char e long
int, double e char
float, double e char
int, float e double
Parte inferior do formulário
Comentário
Parabéns! A alternativa "A" está correta.
Conforme visto no item estruturas de múltiplas alternativas, os tipos que podem ser usados no switch são int, char e long. Assim, as letras B, C e D estão incorretas. B está incorreta por conter o tipo double, C e D por conter os tipos float e double.
1) Retornando ao caso da média, temos agora outra situação. O aluno é considerado aprovado se a média das duas provas AV1 e AV2 é maior do que 7, porém, será considerado “em recuperação” no caso de a média estar entre 5 e 7, e estará reprovado se a média for abaixo de 5. A nota máxima de um aluno é 10. Marque a alternativa que apresenta os testes que deverão ser completados no código abaixo.
  
if (EXPRESSAO1){
  if(EXPRESSAO2)
  printf(“aprovado”);
  else
  printf(“valor incorreto de média”
else
  if(EXPRESSAO3){
  printf(“em recuperação”);
 else
  if(EXPRESSAO4){
  printf(“reprovado”);
 else
  printf(“valor incorreto de média”);
>=0
EXPRESSAO2: media<=5
EXPRESSAO3: media>=7
EXPRESSAO4: media>=10
Parte inferior do formulário
Comentário
Parabéns! A alternativa "A" está correta.
A resposta correta é a letra A. Para ser aprovado, media >=7, portanto, isso somente poderá ocorrer se a EXPRESSAO1 tiver 
este valor. A média de uma avaliação necessariamente precisa ser até 10. Valores de médias maiores não são usuais, pois a média não pode ser maior do que 10. Caso a média não seja >=7, então o aluno poderá estar de recuperação, >=5 ou reprovado no caso contrário, portanto >=0. Valores estranhos a esta situação são considerados incorretos.
Parte superior do formulário
2) Considere o if abaixo.
  
int a=1, b=2 e c;
 
if(a>b)
      c=3;
else
      c=4;
Marque a alternativa que apresenta o operador ternário que substitui este if.  
c = (a>b)?3:4;
c = (a>b):4?3;
c = (a<=b)?3:4;
c = (a<=b):4?3;
Responder
Parte inferior do formulário
PRESSAO1: media>=7
Comentário
Parabéns! A alternativa "A" está correta.
No operador ternário, o símbolo ( ? ) vem antes do símbolo ( : ), assim, as letras B e D estão incorretas. Neste caso, como a > b é falso, o valor de C deverá ser 4. No exemplo da letra D, se a = b, a variável C receberá o valor 4, o que não corresponde ao if apresentado.
Parte superior do formulário
1. Assinale a opção que apresenta corretamente a estrutura do comando FOR, para mostrar os números pares de 2 a 2002 (inclusive), em ordem decrescente:
a) for cont=2002, cont>=2, cont=cont-2
b) for (cont=2; cont<=2002; cont=cont=cont+2)
c) for (cont=2002; cont>=2; cont=cont-2)
d) for (cont=2000; cont>2; cont=cont-2)
Parte inferior do formulário
Responder
Comentário
Parabéns! A alternativa C está correta.
Como é em ordem decrescente, o valor inicial da variável que controla a repetição é 2002;(cont=2002). A condição é (cont>=2) enquanto cont for maior ou igual a 2, vai processar. O decremento, já que vamos começar com valor maior que a condição, será de 2, pois estamos processando números pares. Assim o correto é: for (cont=2002;cont>=2;cont=cont-2).
Parte superior do formulário
. Assinale a opção que apresenta o trecho de código correto em Portugol para mostrar a soma dos números compreendidos entre 1 e 121 (inclusive):
a) soma=0
para (cont=1; cont<=121; cont++)
{
soma = soma + cont
{
mostre(soma)
b) para (cont=121; cont>=1; cont--)
{
soma = soma + cont
{
mostre(soma)
c) para (cont=1; cont<=121; cont++)
{
soma = soma + cont
{
mostre(soma)
d) soma=0
para (cont=1; cont<=121; cont--)
{
soma = soma + cont
{
mostre(soma)
Parte inferior do formulário
Responder
Comentário
Parabéns! A alternativa A está correta.
A alternativa B está errada, pois não inicializa a variável soma e decrementa a variável de controle que foi iniciada com 1; a alternativa C está errada, pois não inicializa a variável soma e incrementa a variável de controle que foi iniciada com 121; já a alternativa D está errada, pois decrementa a variável de controle que foi inicializada com 1.
Parte superior do formulário
1. Avalie cada assertiva a seguir, referentes aos comandos WHILE e FOR, da Linguagem C e assinale a única correta:
a) O comando WHILE repete até que a condição seja falsa.
b) O comando WHILE e FOR podem ser aplicados exatamente aos mesmos problemas, não havendo distinção entre eles.
c) Sendo o testeda condição no início da repetição, a sequência de comandos a ser repetida sempre será executada.
d) Para problemas onde a quantidade de vezes é conhecida, não podemos usar o comando WHILE, apenas o FOR.
Parte inferior do formulário
Responder
Comentário
Parabéns! A alternativa A está correta.
A alternativa B está incorreta porque existem problemas aplicáveis ao ENQUANTO para os quais o FOR não é adequado; a alternativa C é incorreta pois basta que a condição seja falsa já no primeiro laço da repetição para que ela não seja executada; já a alternativa D é incorreta porque nesse tipo de problema, ambos os comandos podem ser usados.
Parte superior do formulário
2. Considere fazer um programa em C que leia uma sequência de números inteiros terminada em 9 ou 99. Assinale a opção que mostra corretamente a expressão da condição do comando ENQUANTO para resolver o problema.
a) while (num<>9 e num<> 99)
b) while (num != 9 && num!=99)
c) while (num =9 !! num = 99)
d) while (num <= 99)
Parte inferior do formulário
Responder
Comentário
Parabéns! A alternativa B está correta.
ENQUANTO número, FOR diferente de 9 e de 99:
while (num != 9 && num!=00)
diferente é !=
E = && 
Parte superior do formulário
1. Avalie as afirmativas a seguir com relação aos comandos DO... WHILE, WHILE e FOR da Linguagem C e assinale a alternativa incorreta:
a) O comando DO... WHILE repete a sequência de comandos até que a condição seja verdadeira.
b) O comando DO... WHILE, por fazer o teste da condição no final do laço que se repete, sempre vai executar ao menos uma vez a sequência de comandos a ser repetida.
c) No comando DO... WHILE, o teste da condição é feito ao final do laço da repetição e no comando WHILE, o teste é feito no início do laço.
d) Para problemas nos quais conhecemos o número de vezes que a sequência de comandos será repetida, os 3 comandos (FOR, WHILE, DO... WHILE) podem ser usados, sendo o comando FOR o mais adequado.
Parte inferior do formulário
Responder
Comentário
Parabéns! A alternativa A está correta.
O comando DO... WHILE repete enquanto a condição for verdadeira, ou até que ela seja falsa.
Parte superior do formulário
2. Considerando o trecho de código abaixo com o comando FOR, assinale o seu equivalente usando o comando DO... WHILE:
for (cont=100; cont>=1; cont--)
printf(“contador=”,cont);
a) cont=100;
do
{
printf (“contador=”, cont);
cont--;
}
while (cont>=1);
b) cont=100;
do
{
printf (“contador=”, cont);
cont--;
}
while (cont>1);
c) cont=100;
do
{
printf (“contador=”, cont);
}
while (cont>1);
d) cont=100;
do
{
printf (“contador=”, cont);
cont--;
}
while (cont<=1);
Parte inferior do formulário
Responder
Comentário
Parabéns! A alternativa A está correta.
Na alternativa B, a condição está errada, diferente do trecho do FOR; na alternativa C, falta o decremento da variável de controle cont=; já na alternativa D, a condição com sinal de comparação está invertido e difere do trecho do FOR.
Parte superior do formulário
1. Você deseja armazenar na variável MEDIA a média aritmética entre todos os elementos de um vetor com 20 número reais chamado VET. O trecho de código cuja estrutura repetitiva permite que isso seja feito é:
soma=0;
for (ind=0;ind<=20;ind++)
{ soma=soma+VET[ind]; }
media=soma/20;
soma=0;
for (ind=0;ind<=20;ind++)
{ soma=VET[ind]; }
media=soma/20;
soma=0;
for (ind=0;ind=20)
{ soma=soma+VET[ind]; }
media=soma/20;
soma=0;
for (ind=0;ind<20;ind++)
{ soma=soma+VET[ind]; }
media=soma/20;
Parte inferior do formulário
Comentário
Parabéns! A alternativa "D" está correta.
São 20 elementos. Logo, a repetição FOR deve começar com ZERO (primeiro elemento do vetor), ir até 19 (última posição) e ser incrementada de 1 em 1. No interior da repetição, devemos acumular a soma dos números e, ao final, dividi-la por 20, que corresponde à média.
Vamos analisar cada alternativa:
A) Está errada, pois ind=20 não existe e, ao tentar acessar essa posição do vetor, resultará em erro.
B) Está errada por dois motivos. Primeiro, Ind não pode ser igual a 20 (acima). Segundo, o acúmulo da soma está errado, pois encerraria a repetição armazenando o último elemento do vetor.
C) Está errado, pois a condição final = 20 vai sair da repetição no primeiro laço.
Parte superior do formulário
2. Considere um vetor de 15 elementos do tipo caracter, chamado VOGAIS. Você precisa que o programa que manipula esse vetor contabilize a quantidade de vogais “A” ou “E” que nele estão armazenadas e guardar o total na variável CONT. Assinale o trecho de código que executa essa contagem corretamente:
cont=0;
for (ind=0;ind<=14;ind++)
{
if (vogais[ind]=='a' || vogais[ind]=='e’)
cont=cont+1;
}
cont=0;
for (ind=0;ind<=15;ind++)
{
if (vogais[ind]=='a' && vogais[ind]=='e')
cont=cont+1;
}
cont=0;
for (ind=0;ind<=14;ind++)
{
if (vogais[ind]=='a' or vogais[ind]=='e’)
cont+1;
}
for (ind=0;ind<=14;ind++)
{
if (vogais[ind]=='a' || vogais[ind]=='e')
cont+-=1;
}
Parte inferior do formulário
Comentário
Parabéns! A alternativa "A" está correta.
São 15 elementos. Logo, a repetição (FOR, no caso) deve começar na posição ZERO (primeiro elemento do vetor) e ir até a posição 14 (último elemento do vetor). Dentro da repetição, devemos verificar se o elemento é a vogal “a” ou “e” e, em caso positivo, contabilizar mais 1 na variável CONT, que, antes da repetição, deve ser inicializada.
Vamos analisar cada alternativa:
B) A repetição vai até 15 e tenta acessar o elemento vogais[15], que não existe. Além disso, o operador lógico OU está errado. || é o correto.
C) O operador lógico ou está errado. || é o correto. Além disso, o comando “cont+1” não faz nada, quando o correto seria cont=cont+1, cont++ ou cont+=1.
D) A variável cont não está sendo inicializada e, quando for incrementada, dará erro. Além disso, o comando “cont+-=” está errado. O correto seria cont=cont+1, cont++ ou cont+=1.
Parte superior do formulário
1. Considere uma matriz 10x30, na qual armazenamos as notas de 10 provas de 30 alunos de uma turma. Qual é o trecho de código correto para ler os dados, armazenar nessa matriz, bem como encontrar e mostrar a maior nota de cada prova?
maior=0;
for (lin=0;lin<30;lin++)
{ for(col=0;col<10;col++)
{ scanf (“%f “,&mat[lin][col];
if (mat[lin][col]>maior)
maior= mat[lin][col];
}
printf (“%f maior da turma: “,maior)
}
maior=0;
for (lin=0;lin<10;lin++)
{ for(col=0;col<30;col++)
{ scanf (“%f “,&,mat[lin][col];
if (mat[lin][col]>maior)
maior= mat[lin][col];
}
printf (“%f maior da turma: “,maior)
}
for (lin=0;lin<10;lin++)
{ maior=10.00;
for(col=0;col<30;col++)
{ scanf (“%f “,&mat[lin][col];
if (mat[lin][col]>maior)
maior= mat[lin][col];
}
printf (“%f maior da turma: “,maior)
}
for (lin=0;lin<10;lin++)
{ maior=0;
for(col=0;col<30;col++)
{ scanf (“%f ”,&mat[lin][col];
if (mat[lin][col]>maior)
maior= mat[lin][col];
}
printf (“%f maior da turma: “,maior)
}
Parte inferior do formulário
Comentário
Parabéns! A alternativa "D" está correta.
Vamos analisar cada alternativa:
A) A variável maior inicializada nesse ponto vai mostrar a maior nota de toda a matriz, e não apenas a da turma (que seria ao final de cada linha). A dupla de FOR está errada, pois são 10 linhas e 30 colunas: o primeiro FOR deve ir até <10, e o segundo, até <30.
B) A variável maior inicializada nesse ponto vai mostrar a maior nota de toda a matriz, e não apenas da turma (que seria ao final de cada linha).
C) A variável maior inicializada com 10.00 nunca vai receber a menor nota, pois todas as notas serão menores que ela.
Parte superior do formulário
2. Considere uma matriz 3x3 de inteiros, com seus elementos armazenados, de nome MAT. Sua necessidade é exibir os elementos de sua diagonal principal. Para tal, o trecho de código na linguagem C é:
for (ind=0;ind<3;ind++)
{ printf (“%f : “,mat[i][i]); }
for (ind=0;ind<=3;ind++)
{ printf (“%f : “,mat[i][i]); }
for (ind=1;ind<3;ind++)
{ printf (“%f : “,mat[i][i]); }
for (ind=1;ind<=3;ind++)
{ printf (“%f : “,mat[i][i]); }
Parte inferior do formulário
Comentário
Parabéns! A alternativa "A" está correta.
Vamos analisar cada alternativa:B) A matriz é 3x3, porém, com essa repetição, tentará acessar a diagonal [4,4] da matriz (que não existe).
C) A matriz é 3x3, porém, com essa repetição, não acessará o elemento [0,0] da diagonal principal da matriz e tentará acessar a diagonal [4,4] da matriz (que não existe).
D) A matriz é 3x3, porém, com essa repetição, não acessará o elemento [0,0] da diagonal principal da matriz.

Outros materiais