Buscar

testando o conhecimento - Linguagem de programação


Prévia do material em texto

1.
		Qual o nome da diretiva que é usada para incluir arquivos dentro do programa fonte que estivermos construindo?
	
	
	
	define
	
	
	typedef
	
	
	struct
	
	
	const
	
	
	include
	
Explicação:
Estudamos que precisaremos incluir bibliotecas em nossos programas e, para que isso seja possível, a diretiva include deverá ser usada para cada inclusão.
	
	Gabarito
Coment.
	
	
	Gabarito
Coment.
	
	
	
	 
		
	
		2.
		Sabe-se que a linguagem C é uma das mais utilizadas no mundo. Desenvolvida em 1972 é uma linguagem voltada para programadores. Dentre as opções abaixo é incorretoafirmar:
	
	
	
	Possui com conjunto muito grande palavras reservadas o que torna o aprendizado complexo
	
	
	Possui características de Linguagem de alto nível.
	
	
	Permite a compilação de softwares para plataforma Windows, Linux e Unix.
	
	
	Possibilita o desenvolvimento de funções próprias
	
	
	Possui características de Linguagem de baixo nível.
	
Explicação:
Estudamos várias vantagens da Linguagem C e uma delas, apesar da importância dela na história da programação inclusive manipulando a MP com o conceito de Ponteiro foi o número pequeno de palavras reservadas.
Por essa razão, a resposta incorreta é: Possui com conjunto muito grande palavras reservadas o que torna o aprendizado complexo
	
	Gabarito
Coment.
	
	
	Gabarito
Coment.
	
	
	
	 
		
	
		3.
		Com relação a diretiva de pré compilação #define, pode-se dizer que:
 
	
	
	
	  É usada parra definições de funções (incluindo a função main())
 
	
	
	  É usada para definição de constantes  
	
	
	   É usada para parar a execução de um programa
	
	
	 É usada para inclusão de arquivos com declarações  
	
	
	  É usada para declarações de objetos externos (protótipos de funções e variáveis)  
	
Explicação:
Na linguagem C só existe duas formas de se definir uma constante:
Utilizando a diretiva de pré compilação #define ou utilizando o modificador "const" na declaração de uma variável.
Ex: #define PI 3.14
     const float PI = 3.14;
	
	
	
	 
		
	
		4.
		A linguagem C/C++ apresenta vantagens e desvantagens em sua utilização. Considere as seguintes afirmativas:
|) Possibilidade em programação de alto e baixo nível;
||) Grande período para o aprendizado.
|||) Adequação a grandes projetos;
 
Assinale a alternativa que contem apenas vantagens da linguagem C++.
	
	
	
	Apenas |
	
	
	| e ||
	
	
	|| e |||
	
	
	Apenas |||
	
	
	| e |||
	
Explicação:
A únicaa alternativa errada é a que considera um longo período de aprendizado, já que estas são linguagens que possuem uma sintaxe fácil e conjunto de comandos limitados.
	
	Gabarito
Coment.
	
	
	
	 
		
	
		5.
		Observe as afirmativas abaixo e assinale a opção correta.
I  A linguagem C só pode tem uma função.
II  A única função obrigatória em um programa codificado na linguagem C é a função  main().
III Muitas vezes, poderemos incluir várias bibliotecas em nossos programas se tivermos que usar algumas funções pré-definidas.
IV Quando formos incluir bibliotecas, precisamos seguir uma ordem, começando pela biblioteca stdio.h, obrigatoriamente
	
	
	
	As afirmativas III e IV estão erradas
	
	
	Somente a afirmativa IV está correta
	
	
	Somente a afirmativa II está correta
	
	
	As afirmativas I e III estão erradas
	
	
	As afirmativas II e III estão corretas
	
Explicação:
Tudo está na Aula 1
	
	
	
	 
		
	
		6.
		Qual a vantagem da Linguagem C que está descrita no texto abaixo?
'Um programa que, com pouca ou nenhuma modificação, poderá ser compilado em várias plataformas.'
	
	
	
	Portabilidade
	
	
	Simplicidade
	
	
	Modularidade
	
	
	Estruturada
	
	
	Rapidez
	
Explicação:
A resposta está na Aula 1 quando estudamos as sete vantagens da Linguagem C.
	
	
	
	 
		
	
		7.
		Qual a vantagem da Linguagem C que está descrita no texto abaixo?
'Permite que o desenvolvedor defina suas funções.'
	
	
	
	Portabilidade
	
	
	Estruturada
	
	
	Simplicidade
	
	
	Rapidez
	
	
	Modularidade
	
Explicação:
A resposta está na Aula 1 quando estudamos as sete vantagens da Linguagem C
	
	
	
	 
		
	
		8.
		Sabemos que a linguagem C apresenta várias vantagens. Quando dizemos que usamos três procedimentos básicos: sequência, seleção e iteração e que é possível gerar um executável rápido, estamos nos referindo às seguintes características na ordem:
	
	
	
	Complexidade e Estruturada
	
	
	Portabilidade e Estruturada
	
	
	Estruturada e Rapidez
	
	
	Rapidez e Portabilidade
	
	
	Portabilidade e Modularidade
	
Explicação:
Estudamos várias vantagens da Linguagem C.
Portabilidade significa que, com pequenas modificações, migramos para outros SO.
Sabemos que ela tem um conjunto pequeno de palavras reservadas logo, não é complexa.
Por ter três procedimentos básicos, ela é estruturada.
Por fim, ela gera um executável rápido
		1.
		Se você precisasse exibir 123.45 onde o total de algarismos da parte inteira com a parte decimal seria igual a 8, preenchendo com zero as que não fossem necessárias e  com três algarismos na parte decimal, qual das opções abaixo você escolheria?
	
	
	
	printf("%f\n", 123.45);
	
	
	printf("%8f3\n", 123.45);
	
	
	printf("%08.3f\n", 123.45);
	
	
	printf("%.3f\n", 123.45);
	
	
	printf("%09.3f\n", 123.45);
	
Explicação:
Assunto bem explorado na Aula 2 inclusive com PDF.
	
	
	
	 
		
	
		2.
		Na Linguagem C,  encontramos três funções que podem exibir na tela.
Leia com atenção as afirmativas abaixo e selecione a opção correta
I A função puts() exibe uma cadeia de caracteres, mas não exibe conteúdo de variáveis.
II A função printf() exibe cadeia de caracteres, conteúdo de variáveis de qualquer tipo, resultado de expressões.
III A função putchar() exibe uma cadeia de caracteres ou o conteúdo de variáveis do tipo char com um caractere ou um conjunto de caracteres.
 
	
	
	
	A afirmativa II está errada e as demais corretas
	
	
	A afirmativa I está errada e as demais corretas
	
	
	A afirmativa III está errada e as demais corretas
	
	
	Todas as afirmativas estão corretas
	
	
	A afirmativa II é a única correta
	
Explicação:
O aluno precisa saber o que cada função é capaz de exibir. Esse conteúdo está na AULA 2.
	
	
	
	 
		
	
		3.
		Na linguagem C, as strings "%d", "%f" e "%s" estão usualmente associadas ao uso da função:
	
	
	
	feof
	
	
	printf
	
	
	getch
	
	
	void
	
	
	main
	
	
	
	 
		
	
		4.
		Quais as funções da biblioteca stdio.h, da linguagem C usadas para exibir mensagens na tela?
 
	
	
	
	putchar("string") e printf("string")
	
	
	putchar("string") e puts("string")
 
	
	
	printf("string") e msg("string")
	
	
	msg("string") e puts("string")
	
	
	printf("string") e puts("string")
	
Explicação:
msg não é uma função da stdio.h, putchar() exibe apenas um caracter, portanto as únicas funções que são capazes de exibir uma mensagem e pertencem a stdio.h são a puts() e a printf()
	
	
	
	 
		
	
		5.
		Qual o nome da função matemática que calcula a potenciação de um número?
	
	
	
	double
	
	
	pow
	
	
	elevado
	
	
	pot
	
	
	sqrt
	
Explicação:
A bibliotecamath.h é formada por um grupo de funções matemáticas. Sendo assim, como a linguagem foi escrita em inglês, serão descartadas todas as palavras em Português.
Partindo desse princípio, sobram sqrt , pow e double.
double é um tipo de dado real de dupla precisão logo, não é função matemática.
sqrt abreviatura de square root. Essa é a função que retorna a raiz quadrada do argumento
pow, abreviatura de power(potência). Essa é a função que eleva um número a um expoente que significa multiplicar o número por ele mesmo tantas vezes quanto for o expoente.
	
	Gabarito
Coment.
	
	
	Gabarito
Coment.
	
	
	
	 
		
	
		6.
		Um Engenheiro estava construindo um trecho de programa onde pedia que o usuário respondesse com uma letra ou um algarismo.
Se o usuário não tivesse respondido, ele enviaria uma mensagem de erro.
Ele sabia que precisava aprender mais alguma estrutura, mas, no momento, pensou em experimentar uma função que pudesse lhe dar um retorno.
Pesquisou nas bibliotecas estudadas na aula 2 e achou.
Qual o nome dessa função?
	
	
	
	isalpha()
	
	
	isalnum()
	
	
	isnotalphadigit()
	
	
	isdigit()
	
	
	isspace()
	
	Gabarito
Coment.
	
	
	Gabarito
Coment.
	
	
	
	 
		
	
		7.
		Observe o programa abaixo e selecione a resposta que mostra e/ou explica o que será exibido no display.
#include 
int main() 
{ 
printf ("%s%d%%","Juros de ",10);
}
	
	
	
	Juros de 10%
	
	
	Nada porque tem muitos %
	
	
	10 Juros de
	
	
	% Juros de 10
	
	
	%s%d%% Juros de 10
	
	Gabarito
Coment.
	
	
	
	 
		
	
		8.
		Qual a funções da biblioteca stdio.h, da linguagem C usada exclusivamente para exibir apenas um caracter  na tela?
	
	
	
	msg('char')
 
	
	
	printf('char')
 
	
	
	putchar('char')
 
	
	
	scanf('char')
	
	
	puts('char')
 
	
Explicação:
Embora as funções puts() e printf() possam exibir um caracter, a função que exibe exclusivamente um caracter é a putchar()
	
	 
		
	
		1.
		Em C++, como podemos inicializar a variável sexo recebendo um valor F?
	
	
	
	char sexo == F;
	
	
	char sexo = "F";
	
	
	char sexo = 'F';
	
	
	char sexo = F;
	
	
	string sexo = "F"
	
Explicação:
A atribuição de uma variável do tipo char deve ser realizada com o valor entre aspas simples, ou melhor apóstrofes.
	
	
	
	 
		
	
		2.
		Na linguagem de programação C, como em outras, na criação de programas, precisamos fazer a entrada e saída de dados no sistema e para tal temos algumas opções.
Das opções apresentadas, qual não é parte linguagem C, conforme o material apresentado nas aulas.
	
	
	
	cin ( )
	
	
	fgetc(stdin)
	
	
	scanf ( )
	
	
	getchar ( )
	
	
	printf ( )
	
Explicação:
fgetc(stdin) / printf ( ) / scanf ( ) /    getchar ( ) São funções da linguagem C, mas cin(), Não é.
	
	Gabarito
Coment.
	
	
	
	 
		
	
		3.
		Na linguagem C, uma variável pode ser classificada como LOCAL ou GLOBAL. De acordo com as características das variáveis LOCAIS, marque a alternativa ERRADA.
	
	
	
	As variáveis locais não podem ser acessadas de fora do escopo em que foram criadas.
	
	
	A função main() pode acessar qualquer variável local de qualquer função.
	
	
	Duas, ou mais funções, podem declarar variáveis locais com os mesmos nomes.
	
	
	Uma variável local só é visualizada pela função onde foi declarada.
	
	
	Existem funções que não têm variáveis locais.
	
Explicação:
As variáveis locais só são visualizadas pela função logo, a main() Não tem esse privilégio.
Logo, ERRADA: A função main() pode acessar qualquer variável local de qualquer função
	
	Gabarito
Coment.
	
	
	Gabarito
Coment.
	
	
	
	 
		
	
		4.
		A declaração de uma variável na linguagem C é realizada com a informação do tipo de dado que a variável irá armazenar em seguida o nome da variável.
Que tipo de informação é passada para o sistema operacional quando na declaração de uma variável informamos o tipo de dado que esta irá armazenar.
	
	
	
	nenhuma informação pra o sistema operacional
	
	
	qualidade da memória alocada
	
	
	endereço de memória alocada
	
	
	tipo de memória alocada
	
	
	quantidade de memória alocada
	
Explicação:
Na declaração de uma variável, o tipo de dado que a variável irá armazenar serve para que o sistema operacional saiba a quantidade de memória necessaria para armazenamento do dado, enquanto que o nome da variável é associado pelo sistema operacional ao endereço da memória onde a variável é alocada.
	
	
	
	 
		
	
		5.
		A função scanf utiliza qual operador para a entrada de dados:
	
	
	
	Aritmético
	
	
	Condicional
	
	
	Atribuição
	
	
	Relacional
	
	
	Endereço
	
	
	
	 
		
	
		6.
		Um aluno sabia que, no Código ASCII os algarismo de 0 a 9 têm códigos no intervalo fechado de 48 a 57.
Ele viu várias linhas em um programa e gostaria de saber qual a linha que estava exibindo o algarismo de código 51.
int num=51;
 
	
	
	
	printf("\nValor de num: %.4d",num);
	
	
	printf("\nValor de num: %d ",num); 
	
	
	printf("\nValor de num: %.f ",(float)num); 
 
	
	
	printf("\nValor de num: %c ",num);
	
	
	printf("\nValor de num: %.f ",num);
	
Explicação:
O aluno precisa conhecer todos os especificadores de formato e o que significa casting(conversão de tipo)
	
	
	
	 
		
	
		7.
		Com relação a uma variável global podemos afirmar que:
 
	
	
	
	A declaração de uma variável global é feita fora de qualquer escopo do programa, inclusive fora da função main().
 
	
	
	O identificador de uma variável global inicia obrigatoriamente com com o caracter 'G'.
 
	
	
	A declaração de uma variável global é feita sempre dentro da função main()
 
	
	
	Só é possivel acessar essa variável dentro do escopo da função que esta foi declarada
 
	
	
	O identificador de uma variável global será feito obrigatoriamente com caracteres maiúsculos
	
Explicação:
Uma variável global deve ser declarada fora de qualquer escopo do programa, esta pode ser acessada de qualquer parte do programa e uma vez declarada seu espaço de alocação só é liberado ao final do programa.
	
	
	
	 
		
	
		8.
		Um aluno declarou uma variável inteira da seguinte forma: int num =145;
Qual linha ele deverá incluir em seu programa para que exiba o conteúdo com quatro casas alinhadas à direita, deixando espaços quando não for usada a posição.
 
	
	
	
	printf("\nValor de num: %.f ",(float)num); 
 
	
	
	printf("\nValor de num: %04d ",num); 
	
	
	printf("\nValor de num: %.f ",num);
	
	
	printf("\nValor de num: %.4d",num);
	
	
	printf("\nValor de num: %4d ",num);
 
	
Explicação:
O aluno precisa conhecer todos os especificadores de formato e o que significa casting(conversão de tipo)
	
	 
		
	
		1.
		O Operador ternário é uma forma elegante de representar if else if, visto que é abreviada. Observe o trecho abaixo e assinale a opção que descreve o que faz.
int a=12, b=35, c=7, resp;
resp=(a>b && a > c) ?a: (b>c) ? b/c:c;
printf (''valor: %d'' , resp);
	
	
	
	Exibe valor: 7
	
	
	Exibe valor: 12
	
	
	Exibe valor: 5
	
	
	Exibe valor: 35
	
	
	Exibe valor: 0
	
Explicação:
resp=(a>b && a > c) ?a: //a Não tem conteúdo maior do que o conteúdo de b, embora tenha maior do o conteúdo de c, o testeé falso. Logo, vai par depois do :
 (b>c) ? b/c //Como o conteúdo de b é maior do que o conteúdo de c, a variável resp receberá o valor de b(35) dividido pelo valor de c(7) que será 35/7 = 5
:c;//ignorada
 
 
	
	Gabarito
Coment.
	
	
	
	 
		
	
		2.
		Observe o trecho do programa abaixo:
float a, b, c;
printf("\n Digite o primeiro numero: "); scanf ("%f",&a);
printf("\n Digite o segundo numero: "); scanf ("%f",&b);
if (a >= b) { printf("Valor de c: %f" , c = a + b); } else { printf("Valor de c: %f" , c = a - b); }
Se o usuário digitar os números abaixo, marque a opção que contém as saídas corretas.
10 e 5 ; 8 e 8 ; 3 e 9 ; 25 e 15 ; 6 e 32.
	
	
	
	15 ; 16 ; -6 ; 40 ; -26
	
	
	15 ; 16 ; 6 ; 40 ; -26
	
	
	16 ; 0 ; -6 ; 40 ; 26
	
	
	16 ; - 16 ; -6 ; 40 ; -26
	
	
	15 ; 0 ; -6 ; 35 ; 26
	
	
	
	 
		
	
		3.
		Os operadores de incremento  e decremento merecem atenção quando não se tem experiência em usa-los.
Observe o trecho abaixo e Escolha a opção que mostra a saída e os valores das variáveis c e d.
int a=12, b = 18, c, d;
c = ++a;
d = b++;
c += 5;
if( c  > d ) printf("\nO valor da variável c é maior do que o valor da variável d: %d > %d\n" , c,d);
else if( c == d ) printf("\nO valor da variável c  é igual ao valor da variável d: %d = %d\n" , c,d);
     else printf("\nO valor da variável c  é menor do que o valor da variável d: %d < %d\n" , c,d);
 printf(" \n%d\t%d\n ",c,d);
	
	
	
	O teste verdadeiro é c == d e os valores para c e d são, respectivamente, 19 e 19.
	
	
	O teste verdadeiro é c == d e os valores para c e d são, respectivamente, 18 e 18.
	
	
	O teste verdadeiro é c > d e os valores para c e d são, respectivamente, 19 e 18.
	
	
	O teste verdadeiro(no caso o else) é c < d e os valores para c e d são, respectivamente, 17 e 19.
 
	
	
	O teste verdadeiro(no caso o else) é c < d e os valores para c e d são, respectivamente, 18 e 19.
	
Explicação:
Esse exercício necessita do domínio do pré-incremento e pós-incremento ao se atribuir valores a variáveis.
No pré-incremento, primeiro incrementa e depois atribui o novo valor a outra variável.
No pós-incremento, primeiro atribui o valor atual e depois incrementa.
 
	
	
	
	 
		
	
		4.
		A estrutura do if na linguagem C, como em toda linguagem, tem uma sintaxe. Observe as afirmações abaixo e escolha a opção ERRADA.
 
I As chaves de abertura e fechamento, sempre,  não são obrigatórias.
II No teste unimos expressões relacionais com operadores lógicos quando necessário.
III A palavra then está presente na estrutura.
IV O uso do  else poderá não ser necessário.
 
	
	
	
	I está errada.
	
	
	IV está correta e a I não está correta.
	
	
	I e III estão corretas.
	
	
	II e IV estão corretas.
	
	
	II está correta e a III não está correta.
	
Explicação:
Não existe then na linguagem C
Somente estão corretas a II e IV.
Como está pedindo a errada, teremos: I e III estão corretas como resposta.
 
	
	Gabarito
Coment.
	
	
	Gabarito
Coment.
	
	
	
	 
		
	
		5.
		Se precisarmos testar o conteúdo de uma variável e sabendo-se que só serão executados comandos se o teste retornar verdadeiro, qual estrutura você indicaria para esse caso?
	
	
	
	if
	
	
	if else if
	
	
	printf()
	
	
	if else
	
	
	switch()
	
Explicação:
Estudamos as estruturas: if, if ... else , if ... else if e swtitch().
If (simples) ¿ só executa o bloco se for verdadeiro o teste. Ideal
If.. else (composto) ¿ sempre executa um dos blocos
If ... else if (encadeados) ¿ sempre executa um dos n blocos
switch() ¿ um alternativa para ifs encadeados, mas com restrições a alguns tipos.
	
	Gabarito
Coment.
	
	
	
	 
		
	
		6.
		Observe o trecho abaixo:
char sexo; int idade;
puts("\nEntre com sexo(F/ M) e idade: ");
scanf("%c %d", &sexo, &idade);
if(toupper(sexo) == 'F' && (idade < 18 || idade > 80))
 puts(" \nValor do plano de Saúde com desconto\n");
else    
  puts(" \nValor do plano de Saúde sem desconto\n");       
Se o usuário executar três vezes os valores: f 17 / M 17/ F 81, qual opção mostraria as respostas corretas?
	
	
	
	Valor do plano de Saúde sem desconto / Valor do plano de Saúde sem desconto / Valor do plano de Saúde sem desconto
	
	
	Valor do plano de Saúde sem desconto / Valor do plano de Saúde sem desconto / Valor do plano de Saúde com desconto
	
	
	Valor do plano de Saúde sem desconto / Valor do plano de Saúde com desconto / Valor do plano de Saúde sem desconto
	
	
	Valor do plano de Saúde com desconto / Valor do plano de Saúde sem desconto / Valor do plano de Saúde com desconto
	
	
	Valor do plano de Saúde com desconto / Valor do plano de Saúde com desconto / Valor do plano de Saúde com desconto
	
Explicação:
Em programação, entender dominar a sintaxe de cada comando/ estrutura é fundamental.
Nesse caso, conhecer os operadores relacionais e lógicos também
	
	
	
	 
		
	
		7.
		Em uma estrutura de decisão com if/else onde se deseja comparar vetores de char, pode-se usar:
 
	
	
	
	operadores lógicos
 
	
	
	a função pow() 
 
	
	
	operadores relacionais
 
	
	
	a função strcmp() 
 
	
	
	operadores aritméticos
 
	
Explicação:
Para se criar um teste que compare vetores de char só é possível com a função strcmp() da biblioteca string.h
nunca pode-se usar os operadores relacionais.
	
	
	
	 
		
	
		8.
		Os operadores lógicos servem para combinar resultados de expressões, retornando se o resultado final é verdadeiro ou falso. Marque a alternativa que contém o operador lógico que deve ser utilizado quando as duas proposições lógicas necessitam ser verdadeiras para que o resultado da combinação seja verdadeiro.
	
	
	
	((pontos>=10) && (pontos <=20))
	
	
	((pontos>=10) || (pontos <=20))
	
	
	((pontos>=10) % (pontos <=20))
	
	
	((pontos>=10) ! (pontos <=20))
	
	
	((pontos>=10) # (pontos <=20))
	
Explicação:
((pontos>=10) ! (pontos <=20))  Errada, pois ! é um operador Unário logo, não une expressões relacionais.
((pontos>=10) && (pontos <=20)) CERTA, pois está definindo um intervalo fechado: números maiores ou iguais a 10 e menores ou iguais a 20.
 
((pontos>=10) || (pontos <=20)) Errada, pois pontos>=10 abrange Todos os pontos maiores ou iguais a 10 e pontos <=20 abrange todos os pontos menores ou iguais a 20. Conclusão, qualquer número
((pontos>=10) # (pontos <=20))  Errada, pois # Não é operador lógico.
((pontos>=10) % (pontos <=20))  Errada, pois % Não é operador lógico.
	
	 
		
	
		1.
		Considerando com entrada os seguinte números 5 e 10. Marque a alternativa que contém a resposta do programa na tela para os números digitados.
int main() {
int a,b; scanf("%d",&a); scanf("%d",&b);
while (a < b) { printf("%d",a); a = a + 2; }
system("pause");
return 0; }
	
	
	
	57
	
	
	57911
	
	
	579
	
	
	56789
	
	
	Nenhuma das outras alternativas
	
	
	
	 
		
	
		2.
		Considerando com entrada os seguinte números 5 e 8. Marque a alternativa que contém a resposta do programa na tela para os números digitados.
int main() {
int a,b; scanf("%d",&a); scanf("%d",&b);
while (a < b) { printf("%d",a); a = a + 1; }
system("pause");
return 0; }
	
	
	
	678
	
	
	67
	
	
	5678
	
	
	567
	
	
	56
	
	
	
	 
		
	
		3.
		João foi realizar uma prova que tinha uma questão com o trecho abaixo e pedia para assinalar a opção que mostrava quantas vezes seria exibida a mensagemBOM.
Se fosse você, qual escolheria?
int y;
for(y=2; y <= 16; y+= 2) puts( "BOM" );
 
	
	
	
	8 vezes
	
	
	9 vezes
	
	
	10 vezes
	
	
	16 vezes
	
	
	15 vezes
	
Explicação:
O aluno precisa ter entendido que  a estrutura do for usa uma PA ou PG
	
	
	
	 
		
	
		4.
		Analise o código a seguir e marque a alternativa que exprime o que esse trecho de código executa:
#include < stdio.h> //Retire o espaço depois de < quando for compilar
int main()
{
   int x, i;
   printf("Entre com numero: "); scanf("%d", &x);
   for(i=1; i<1 + x/2; i++)
   {
      if(x%i==0 && i%2==0) printf("Divisores: %d\n", i);
   }
   if(x%2==0)printf( "Divisores: %d\n", x);
   return 0;
}
	
	
	
	O código mostra os todos os divisores pares de um número.
	
	
	O código mostra os números divisíveis por 2.
	
	
	O código mostra os números divisíveis por 3.
	
	
	O código mostra os todos os divisores de um número.
	
	
	O código mostra os todos os divisores ímpares de um número.
 
	
Explicação:
O aluno deve compreender que estão sendo testados como divisor todos os números menores que a metade do número introduzido pelo usuário, e caso o número testado tenha divisão exata e seja par será mostrado.
Assim como o próprio número quando este for par, já que todo número é divisível por ele mesmo.
	
	
	
	 
		
	
		5.
		 Muitas séries matemáticas podem ser geradas pela estrutura do  for. Analise o código abaixo, supondo que você digitou 2 e 4 quando lhe foram solicitados dois números e escolha a opção que contém a série exibida pelo código.
	
	
	
	2       4       6       10       16       26       42       68
	
	
	2       4       4       8       12       20       32       52
	
	
	2       4       6       10       16       26       42
	
	
	2       4       4       8       12       20       32       
	
	
	2       4       6       8       19       12       14       16
	
	Gabarito
Coment.
	
	
	Gabarito
Coment.
	
	
	
	 
		
	
		6.
		Qual dos comandos abaixo permite que um bloco de comandos seja executado enquanto a variável num seja diferente de 0?
	
	
	
	for (i = num; i > 0; i++)
	
	
	for ( i = 0; i == num; i++)
	
	
	enquanto (num > 0)
	
	
	while (num != 0)
	
	
	while (num == 0)
	
Explicação:
As estruturas de repetição podem testar a condição antes de executar o bloco (for e while) ou executar pelo menos uma vez(do...while) porque testa ao final.
Conhecer os operadores relacionais e lógicos será fundamental para criarmos a expressão do teste.
A frase  enquanto a variável  num seja diferente de 0 já nos dá a resposta: while(num != 0).
	
	Gabarito
Coment.
	
	
	
	 
		
	
		7.
		Leia com atenção as afirmativas abaixo e escolha a opção correta.
I A estrutura do for, por definição, é ideal quando o número de repetições for conhecido
II A estrutura do for testa ao final enquanto a estrutura while testa no início
III A estrutura while pode simular a estrutura do for e a estrutura do... while
IV A estrutura do for sem nenhum parâmetro, só com os  ;   dentro dos parênteses e com um if no corpo da repetição, pode simular a estrutura while
V Tanto a estrutura do...while quanto a estrutura while, testam no início
	
	
	
	Somente I e V estão corretas   
	
	
	Somente I, II, III e V estão corretas        
	
	
	Somente I, III e V estão corretas
	
	
	Somente I, III e IV estão corretas        
	
	
	Somente II, III e V estão corretas
	
Explicação:
I A estrutura do for, por definição, é ideal quando o número de repetições for conhecido VERDADE
II A estrutura do for testa ao final enquanto a estrutura while testa no início FALSA, pois a estrutura do for, assim como a estrutura while, testa no início
III A estrutura while pode simular a estrutura do for e a estrutura do... while VERDADE
Todas as estruturas podem simular as outras
IV A estrutura do for sem nenhum parâmetro, só com os ; dentro dos parênteses e com um if no corpo da repetição, pode simular a estrutura while VERDADE
V Tanto a estrutura do...while quanto a estrutura while, testam no início FALSA, pois a estrutura do..while testa ao final
	
	Gabarito
Coment.
	
	
	Gabarito
Coment.
	
	
	
	 
		
	
		8.
		Considere o trecho de código abaixo. O que será impresso quando o programa for executado?
int main()
{
    int contador = 1; //declarando e inicializando a variável de controle
     
    while (contador <= 10) // Testando a condição
    {
          printf("%d ", contador); //Executando um comando dentro do laço 
           
         
    }
     
    return 0; 
}
	
	
	
	Nunca vai parar. 1 2 3 4 5 6 7 8 9 10 11 12 13 14...
	
	
	0 1 2 3 4 5 6 7 8 9 10
	
	
	1 2 3 4 5 6 7 8 9 10
	
	
	Nunca vai parar. 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...
	
	
	1 2 3 4 5 6 7 8 9
	
Explicação:
A estrutura while repete o bloco enquanto o teste for verdadeiro.
Se a variável contador começa com 1 e NÃO tem ser valor alterado, ficará sempre com 1 logo, entra em loop
Resposta correta: Nunca vai parar. 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...
		1.
		Na linguagem C os vetores são um assunto de grande relevância, por isso o programador deve saber bem como utilizar, declarar e utilizar.
Sabendo que as notas dos alunos de uma escola variam entre 0.0 e 10.0 com uma casa decimal e que é necessário criar um vetor que armazene até 150 notas, qual alternativa declara de forma correta este vetor para  atender a necessidade citada.
	
	
	
	float %.1f notas[150];
	
	
	float notas[150];
	
	
	integer notas[150];
	
	
	int notas[150];
	
	
	real notas[150];
	
Explicação:
Quando declaramos um vetor, primeiro precisamos escolher o tipo e como são notas, precisará ser float.
Depois, entre parênteses, o número de notas que precisa ser armazenado. Nesse caso 150.
Se o vetor será preenchido com notas que não são sabidas, nada mais existe na declaração.
CORRETA: float notas[150];
	
	Gabarito
Coment.
	
	
	Gabarito
Coment.
	
	
	
	 
		
	
		2.
		Um aluno estava estudando a Aula 6 quando se deparou com a linha abaixo onde dizia que declarava e inicializava o vetor de nome matriculas e do tipo int.
int matriculas[]={123,138, 13, 97, 64, 111 };
Achou estranho não ter um número dentro dos [ ] após o nome.
Qual o tamanho do vetor e o que  ele deveria incluir na linha abaixo para exibir a terceira matrícula?
printf( " \n%d ", ?);
	
	
	
	Tamanho é 5 e para exibir a terceira matricula usaria matriculas[2] 
 
	
	
	Tamanho é 5 e para exibir a terceira matricula usaria matriculas[3] 
 
	
	
	Não tem como informar o tamanho do vetor, mas para exibir a terceira matricula usaria matriculas[3]  
   
	
	
	Tamanho é 6 e para exibir a terceira matricula usaria matriculas[2] 
	
	
	Tamanho é 6 e para exibir a terceira matricula usaria matriculas[3] 
 
	
Explicação:
Lembro que o número entre o par [ ] significa o deslocamento em relação ao endereço base onde se encontra o primeiro elemento do vetor.
	
	
	
	 
		
	
		3.
		
Qual o elemento do vetor referenciado por vet[vet[5]]?
	
	
	
	4
	
	
	1
	
	
	3
	
	
	9
	
	
	2
	
	
	
	 
		
	
		4.
		Um  programador precisa declarar vetores para armazenar códigos dos 101 usuários e respectivos valores a pagar.
Lembrando que nenhum centavo será descartado, qual das opções abaixo, atenderia ao que ele precisa.
	
	
	
	  int codigos[100], valores[100];
 
	
	
	  int codigos[100]; float valores[100];char codigos[100]; float valores[100];
	
	
	  int codigos[101]; float valores[101];
	
	
	  int codigos[101], valores[101];
	
Explicação:
Declarar um vetor está bem explicado na Aula 6.
tipo nomeVetor[tamanho];
	
	
	
	 
		
	
		5.
		Analise o código a seguir e marque a alternativa que melhor descreve o que está sendo executado.
#include < stdio.h> //Retire o espaço depois de < quando for compilar
#define T 10
int main()
{
int x[T], i;
for(i=0; i< T; i++)x[i]=i+1;
for(i=1; i< T; i+=2)
{
 printf("x[%d]: %d\n", i,x[i]);
}
return 0;
}
 
	
	
	
	É declarado um vetor de inteiros com 10 posições, e preenchido com os números de 1 a 10, a partir da primeira posição.E são exibidos apenas as posições pares do vetor com seus respectivos conteúdos.
 
	
	
	É declarado um vetor de inteiros com 10 posições, e preenchido com os números de 1 a 10, a partir da primeira posição.E são exibidos apenas as posições ímpares do vetor com seus respectivos conteúdos.
 
	
	
	É declarado um vetor de inteiros com 10 posições, e preenchido com os números de 1 a 9, a partir da primeira posição.E são exibidos apenas as posições pares do vetor com seus respectivos conteúdos.
 
	
	
	É declarado um vetor de inteiros com 9 posições, e preenchido com os números de 1 a 10, a partir da primeira posição.E são exibidos apenas as posições ímpares do vetor com seus respectivos conteúdos.
 
	
	
	É declarado um vetor de inteiros com 9 posições, e preenchido com os números de 1 a 10, a partir da primeira posição.E são exibidos apenas as posições pares do vetor com seus respectivos conteúdos.
 
	
Explicação:
É declarado um vetor de inteiros com 10 posições, e preenchido com os números de 1 a 10, a partir da primeira posição.
E são exibidos apenas as posições ímpares do vetor com seus respectivos conteúdos, já que no segundo laço a variável i é iniciada com o valor 1 e o incremento é 2.
	
	
	
	 
		
	
		6.
		
Qual o elemento do vetor referenciado por vet[3]?
	
	
	
	2
	
	
	0
	
	
	4
	
	
	1
	
	
	7
	
Explicação:
Vetores são estruturas contíguas onde suas posições são referenciadas a partir de índices, onde o índice inicial é 0 (zero), o seguinte 1 e assim por diante.
O vetor é referenciado pelo endereço do primeiro byte do conjunto logo, o primeiro elemento tem o mesmo endreço do vetor e como o que fica entre [ ] é o deslocamenro do elmento em relação ao endreço base, 0 fica dentro dos [ ]. 
Desta forma o conteúdo do campo Vet[3] é 7.
	
	
	
	 
		
	
		7.
		Um aluno estava estudando a Aula 6 quando se deparou com o trecho abaixo onde dizia que declarava e inicializava o vetor de nome matriculas e do tipo int.
int x, matriculas[4]={123,138, 13, 97  };
Ele gostaria de construir um trecho para exibir os dados do vetor na mesma linha.
Qual dos trechos abaixo ele usou?
	
	
	
	for(x = 0; x <= 4; x++ )
 printf("%d\n",matriculas[x]);
	
	
	for(x=1; x < 4; x++ )
 printf("%d\t",matriculas[x]);
	
	
	for(x = 0; x < 4; x++ )
 printf("%d\n",matriculas[x]);
	
	
	for(x = 1; x <= 4; x++ )
 printf("%d\n",matriculas[x]);
	
	
	for(x = 0; x < 4; x++ )
 printf("%d\t",matriculas[x]);
	
Explicação:
Um trecho que manipula todo o vetor deverá começar em 0 e terminar antes do tamanho.
Usar o caractere \t possibilita exibr na mesma linha.
	
	
	
	 
		
	
		8.
		A linguagem C permite a inicialização de vetores junto com sua declaração.
Dada as alternativas abaixo, selecione a que está incorreta:
	
	
	
	int valores[5] = {10, 15, 20, 25, 30};
	
	
	char valores = "ABCD";
	
	
	char valores[] = {'A', 'B', 'C', 'D'};
	
	
	char valores[5] = {'A', 'B', 'C', 'D'};
	
	
	int valores[] = {10, 15, 20, 25, 30};
	
Explicação:
Errada: char valores = "ABCD"; porque faltam [].
Deveria ser assim: char valores[] = "ABCD";
	
	
	
		1.
		Analise o programa a seguir e escolha a opção que ilustra o que será exibido para o usuário caso ele digite o valor 4.
	
	
	
	sexta
	
	
	dia não existe
	
	
	quarta
	
	
	quinta
	
	
	terça
	
	
	
	 
		
	
		2.
		Observe as afirmativas abaixo e escolha a opção correta, sabendo-se que foi usada a letra V se a afirmativa for verdadeira e F, se for falsa. Nas respostas, aparecem três letras que correspondem, respectivamente, às afirmativas I, II e III.
I Matrizes bidimensionais não são Estruturas homogêneas.
II Se tivermos dois vetores reais de dimensões deferentes, podemos agrupá-los em uma matriz bidimensional com a dimensão do maior vetor.
III Quando precisarmos armazenar 30 nomes, deveremos dimensionar uma matriz bidimensional de char.
 
	
	
	
	V  V  F
	
	
	F  V  V
	
	
	V  V  V
	
	
	F  F  V
	
	
	F  F   F
	
Explicação:
Essa é uma pergunta que deseja que o aluno tenha estudado os conceitos básicos da AULA 7 logo,certo ou errado.
	
	
	
	 
		
	
		3.
		Analisando o códio a seguir, pode-se afirmar que:
#include < stdio.h >
#define T 5
int main()
{
int x[T][T], i,j;
for(i=0; i< T; i++)
for(j=0; j< T; j++)
x[i][j]=j+1;
for(i=0; i< T; i++)
for(j=0; j< T; j++)
if(i==j)printf("x[%d][%d]: %d\t",i, j,x[i][j]);
return 0;
}
	
	
	
	O programa não executa;
	
	
	O programa cria uma matriz de duas dimensões e exibe os elementos da diagonal principal.
	
	
	O programa multiplica dois vetores de dimensão igua a 5.
 
	
	
	O programa cria uma matriz de duas dimensões e exibe todos seus elementos.
	
	
	O programa cria uma matriz de duas dimensões vazia.
	
Explicação:
Neste caso o aluno deve conhecer o conceito de diagonal principal de uma matriz, isto é onde os índices linha e colna são iguais.
Assim como temos:
for(j=0; j< T; j++)
if(i==j)printf("x[%d][%d]: %d\t",i, j,x[i][j]);
Pode-se afirmar que: O programa cria uma matriz de duas dimensões e exibe os elementos da diagonal principal.
	
	
	
	 
		
	
		4.
		Observe o trecho de programa abaixo e selecione a resposta correta.
 
  char nome[5][30];
  puts("\nNome e ultimo sobrenome: ");
  scanf( "%s", nome[0]);
...
 
	
	
	
	Dá mensagem de erro porque falta & antes de nome
	
	
	Dá mensagem de erro porque  scanf não pode ser usado com vetor de char.
	
	
	Ignora a linha do scanf, mas não tem nenhuma mensagem.
	
	
	Armazena nome e sobrenome.
	
	
	Armazena só o primeiro nome
	
Explicação:
A função scanf() para de "ler" o que foi digitado quando encontra o código do espaço porque assume que o que vem a ser o conteúdo de outra variável.
Use fgets.
	
	
	
	 
		
	
		5.
		Analise o programa a seguir e escolha a opção que ilustra o que será exibido para o usuário caso ele digite o valor 7
.
	
	
	
	quarta
	
	
	dia não existe
	
	
	quinta
	
	
	sexta
	
	
	sábado
	
	
	
	 
		
	
		6.
		Analisando o códio a seguir, pode-se afirmar que:
#include 
#define T 5
int main()
{
int x[T][T], i,j;
for(i=0; i< T; i++)
for(j=0; j< T; j++)
x[i][j]=j+1;
for(i=0; i< T; i++)
for(j=0; j< T; j++)
printf("x[%d][%d]: %d\t",i, j,x[i][j]);
return 0;
}
	
	
	
	Os valores armazenados nos elementos de uma mesma linha na matriz são zerados.
 
	
	
	Os valores armazenados nos elementos de uma mesma linha na matriz são iguais.
	
	
	Os valores armazenados nos elementos de uma mesma coluna na matriz são iguais.
	
	
	O programa não executa pois há falta de chaves.
	
	
	Os valores armazenados nos elementos de uma mesma coluna na matriz são zerados.Explicação:
Neste caso o preenchimento da matriz está sendo realizado de forma horizontal,
for(j=0; j< T; j++)
x[i][j]=j+1; Lembrar que durante esta execução o valor da linha é fixo o que varia é o valor da coluna.
isto é preenchendo-se por linha e como as linhas tem valores iguais pode-se afirmar que:
Os valores armazenados nos elementos de uma mesma coluna na matriz são iguais.
	
	
	
	 
		
	
		7.
		Um treinador de uma equipe de futebol com 22 atletas gostaria  de declarar matrizes para guardar nomes, total de  jogadas boas e total de jogadas perdidas.
Qual das opções abaixo possibilitaria isso se ele usasse, somente, matrizes bidimensionais?
	
	
	
	int jogadasB[22], jogadasR[22]; char nomes[22][30];
	
	
	int jogadasB[21], jogadasR[21]; char nomes[21][30]
	
	
	int jogadas[22][2]; char nomes[22]; 
	
	
	int jogadas[21][1]; char nomes[21][30]; 
	
	
	int jogadas[22][2]; char nomes[22][30]; 
	
Explicação:
Lembrando que o número que fica dentro dos [ ] significa o total, de fato, que desejamos.
	
	
	
	 
		
	
		8.
		As matrizes, assim como os vetores, são muito importantes para facilitar o trabalho de um programador, por isso é extremamente importante saber como utiliza-la.
Assinale a alternativa em que há uma matriz bidimensional, do tipo inteiro, com 10 linhas e 20 colunas, declarada de forma correta.
	
	
	
	matrizExemplo float[20][10];
	
	
	int matrizExemplo[10][20];
	
	
	int matrizExemplo[10,20];
	
	
	float matrizExemplo[20][10];
	
	
	matrizExemplo int[10][20];
	
Explicação:
Quando declaramos uma matriz bidimensional, primeiro precisamos escolher o tipo. Nesse caso, o enunciado informa que é int,
Depois, vem o nome da matriz que nesse exemplo foi colocado em todas as respostas, matrizExemplo.
Por último virão dois pares de colchetes onde o primeiro terá o número de linhas e o segundo, o número de colunas.
CORRETA: int matrizExemplo[10][20];
		1.
		Um engenheiro gostaria de definir uma função para resolver um determinado problema.
Observe o código abaixo e identifique a opção que exibe o que é retornado pela função.
	
	
	
	Retorna 0 caso o número digitado seja negativo
	
	
	Retorna o total de algarismos do número digitado independente do sinal
	
	
	Nada retorna porque tem erro na função, uma vez que não testa se o número é negativo
	
	
	Retorna o total de números digitados e divisíveis por 10
	
	
	Retorna 1 se o número digitado for divisível por 10
	
Explicação:
A função descobre divide o numero digitado por 10 e torna a dividir este resultado por 10 enquanto que o resultado das divisões são maiores que zero.
Toda vez que a função realiza uma divisão é incrementada a variável c, desta forma o valor armazenado na variável c que é retornado pela função indica o número de algarismos que formam o número introduzido pelo o usuário.
	
	Gabarito
Coment.
	
	
	Gabarito
Coment.
	
	
	
	 
		
	
		2.
		Observe o código apresentado na questão:
#include < stdio.h>
#include < stdlib.h>
int x=4;
void main(){
  int x=5;
  exibir(x); 
  system("PAUSE");      
}
void exibir(int y){
   printf("%d",y);    
}
Dentre as opções abaixo é correto afirmar:
	
	
	
	Ocorrerá um erro
	
	
	O programa exibirá 9
	
	
	O programa exibirá 4
	
	
	O programa exibirá 0
	
	
	O programa exibirá 5
	
	Gabarito
Coment.
	
	
	Gabarito
Coment.
	
	
	
	 
		
	
		3.
		Os programas inicialmente eram desenvolvidos em um único bloco, com a introdução da modularização de programas
foi possível garantir uma melhora na legibilidade dos códigos, um maior aproveitamento e reuso de códigos e melhora na manutenção de sistemas.
Assim o principal elemento da modularização de programas é:
 
	
	
	
	variáveis
	
	
	vetor
	
	
	tipo de dados
	
	
	funções
	
	
	structs
 
	
Explicação:
As funções são blocos de programas que proporcionam, um programa dividido em
módulos, podendo estas funções serem utilizadas varias vezes no mesmo programa
ou ainda em outros programas, garantindo o reuso de código. Como as funções
são blocos pequenos de códigos com objetivos bem específicos, o entendimento da funcionalidade
do bloco é facilitada, garantindo uma maior legibilidade do programa e em consequ~encia
maior facilidade para manutenção do programa.
	
	
	
	 
		
	
		4.
		Função em C onde são colocados todos os comandos e outras funções que desejamos que sejam executadas
	
	
	
	return
	
	
	main()
	
	
	begin
	
	
	systema("pause")
	
	
	end
	
	Gabarito
Coment.
	
	
	Gabarito
Coment.
	
	
	Gabarito
Coment.
	
	
	
	 
		
	
		5.
		MARQUE A OPÇÃO REFERNETE VALOR FINAL DA VARIÁVEL RESULT?
	
	
	
	18
	
	
	6
	
	
	11
	
	
	7
	
	
	9
	
	
	
	 
		
	
		6.
		Ao definirmos uma função, podemos afirmar que:
I Toda função tem parâmetros
II Quando nada retorna, o tipo é void
III Quando todos os parâmetros são do mesmo tipo, é suficiente usar o tipo uma vez e separar os nomes dos parâmetros por vírgulas
IV  Na passagem por valor, o endereço da variável da função chamadora é passado para a função chamada
Após uma análise das afirmativas acima, escolha a opção correta.
 
	
	
	
	 As afirmativas I e II estão corretas
  
	
	
	As afirmativas II e IV estão corretas
 
	
	
	As afirmativas II e III estão corretas
 
	
	
	As afirmativas II,  III e IV estão corretas
 
	
	
	Somente a afirmativa II está correta
	
Explicação:
Dominar os conceitos iniciais será fundamental para responder a essa questão.
Sintaxe na definição de uma função está bem explicada na Aula 8
	
	
	
	 
		
	
		7.
		Observe o programa abaixo e escolha a opção que apresenta o que retorna da função chamada.
                         
	
	
	
	O valor retornado corresponde ao índice da variável que contem o menor número 
	
	
	O valor retornado corresponde ao deslocamento mais um em relação ao endereço base da variável que contem o menor número 
	
	
	O maior número é retornado 
	
	
	O menor número é retornado 
	
	
	Nada retorna porque o nome do vetor da função main é diferente do nome do vetor da função descobre 
	
	Gabarito
Coment.
	
	
	Gabarito
Coment.
	
	
	
	 
		
	
		8.
		Qual o tipo de retorno e quantos parâmetros tem a função abaixo?
float media(int n1, int n2, int n3){
return (n1+n2+n3)/3;
}
	
	
	
	Tipo de retorno: float Quantidade de parâmetros: 2
	
	
	Tipo de retorno: media Quantidade de parâmetros: 2
	
	
	Tipo de retorno: media Quantidade de parâmetros: 3
	
	
	Tipo de retorno: float Quantidade de parâmetros: 3
	
	
	Tipo de retorno: int Quantidade de parâmetros: 3
	
Explicação: float é o tipo de retorno; E a quantidade de parâmetros é 3, pois temos que carregar n1, n2 e n3 do tipo int na função.
		1.
		Considere que as bibliotecas necessárias foram devidamente declaradas.
int main() {
FILE *arq ;
int i;
_____ c ;
arq = _____ ( " jornal.txt " , " r " ) ;
if ( arq == NULL ){
printf ( " Erro na abertura do arquivo " ) ;
system ( " pause " ) ;
exit ( 1 ) ;
} else
for ( i = 0; i<5; i++){
c = fgetc ( arq ) ;
printf( "%c", c ) ;
}
_____( arq ) ;
system ( " pause " ) ;
return 0;
}
Complete as lacunas do código para que o programa funcione corretamente.
A ordem em que as palavras são dispostas na resposta, devem preencher respectivamente as lacunas.
	
	
	
	char - fopen - fcloseint - abrir - fopen
	
	
	int - open - close
	
	
	float - fopen - fclose
	
	
	char - fopen - fechar
	
	Gabarito
Coment.
	
	
	
	 
		
	
		2.
		Qual o modo de abertura de arquivo me permite ler, mas não escrever?
	
	
	
	r
	
	
	w
	
	
	r+
	
	
	a+
	
	
	a
	
	
	
	 
		
	
		3.
		Complete a lacuna:
A função getc() realiza a leitura de arquivos ____________________ .
	
	
	
	de uma única vez
	
	
	caractere por caracterer
	
	
	palavra por palavra
	
	
	de uma frase inteira
	
	
	de um vetor
	
	
	
	 
		
	
		4.
		Para a manipulação de arquivos na linguagem C, primeiro precisamos abrir o mesmo. Sabendo-se que o arquivo tem o nome de texto.txt, que foi associado com a variável de nome: arq, e que é do tipo texto, avalie cada uma das afirmativas e marque a que faz a abertura para ler e/ou gravar dados no fim do arquivo corretamente seguindo as regras da linguagem.
	
	
	
	arq = fopen("texto.txt", "w");
	
	
	arquivo = fopen("material.dat", "r+");
	
	
	arq = fopen("texto.txt", "a+");
	
	
	arquivo = fopen("material.dat", "a+");
	
	
	arquivo = fopen("material.dat", "w+");
	
	Gabarito
Coment.
	
	
	
	 
		
	
		5.
		Assinale a opção onde está presente a função que tem como finalidade fechar o arquivo, embora todos os arquivos sejam fechados quando o programa é finalizado.
	
	
	
	fopen(..);
	
	
	fseek( ...);
	
	
	feof(...);
	
	
	fputs( ...);
	
	
	fclose(...);
	
Explicação:
Essa é uma resposta conclusiva.
	
	
	
	 
		
	
		6.
		A função fgets():
	
	
	
	lê uma linha inteira de uma vez.
	
	
	lê um caracter de cada vez.
	
	
	imprime uma linha inteira de uma vez.
	
	
	imprime um caracter de cada vez.
	
	
	lê um arquivo inteiro de uma vez.
	
	Gabarito
Coment.
	
	
	Gabarito
Coment.
	
	
	
	 
		
	
		7.
		Na manipulação de arquivos na linguagem C, no processo de abertura do mesmo, podemos ter erros: devido a não existência do arquivo; ao arquivo estar corrompido; etc, não sendo possível abrir o mesmo.
Das afirmativas apresentadas qual define corretamente o que pode ser feito em relação ao erro na abertura, segundo o que foi apresentado nas aulas.
	
	
	
	Não é possível tratar este tipo de erro, pois precisamos da estrutura Try ... Catch que consegue prevenir e evitar o fechamento do programa.
	
	
	A palavra chave FILE, que permite fazer a associação do arquivo, mantem o valor NULL caso não seja possível abrir o arquivo, desta forma, utilizando o if, o usuário pode mandar uma mensagem adequada para o usuário.
	
	
	O tratamento é feito com um if, e tendo havido problemas no arquivo de texto, o mesmo é eliminado e retornado uma mensagem padrão para o usuário.
	
	
	Não é necessário tratar, pois não existindo o arquivo ele simplesmente cria um novo e nunca terá problema.
	
	
	A função fopen, retorna NULL quando não consegue abrir o arquivo e o usuário pode tratar o conteúdo da variável associada ao arquivo, comparando com o valor NULL.
	
	Gabarito
Coment.
	
	
	Gabarito
Coment.
	
	
	
	 
		
	
		8.
		Sabe-se que o modo padrão é o texto logo, não precisa incluir ao final de cada letra t.
Observe as opções abaixo e escolha a que deverá ser usada quando se abre um arquivio, pois permite leitura/ escrita e alteração no modo texto(txt).
	
	
	
	r+
	
	
	r
	
	
	w+
	
	
	a+
	
	
	a
	
Explicação:
Para responder a essa questão, o aluno precisa conhecer os seis modos de abertura para um arquivo texto.
	
	
	
		1.
		Assinale a opção que apresenta a função que seta o indicador de posição do arquivo no início
	
	
	
	ftell(...);
	
	
	rewind(...);
	
	
	fclose(...);
	
	
	fputs(...);
	
	
	fopen(...);
	
Explicação:
São muitas funções nessa aula que precisam ser estudadas.
	
	
	
	 
		
	
		2.
		Assinale a opção que apresenta a função que lê dados de um arquivo binário.
	
	
	
	sscanf(...);
	
	
	fgets(...);
	
	
	fgetc(...);
	
	
	fscanf(...);
	
	
	fread(...);
	
Explicação:
São muitas funções nessa aula que precisam ser estudadas.
	
	
	
	 
		
	
		3.
		Na criação de uma rotina de manipulação de equipamentos para perfuração de poços, o programador precisava apenas pegar alguns dados existentes em um arquivo do equipamento para efeitos de cálculos e fechá-lo.
Das opções abaixo marque a que descreve a forma mais adequada, com a qual o programador deveria acessar o arquivo, segundo sua necessidade.
 
	
	
	
	Somente para leitura
	
	
	Para leitura e edição
	
	
	Para leitura e gravação
	
	
	Não precisa abrir o arquivo
	
	
	Somente para gravação
	
Explicação:
No caso aqui descrito o arquivo deve ser aberto no modo somente leitura, pois a necessidade do programador é apenas de consulta.
Não sendo necessário abrir o arquivo no modo leitura e gravação, ou no modo somente gravação ou ainda no modo leitura e edição,
já que nenhuma alteração será realizada no arquivo em questão. A opção "Não precisa abrir o arquivo" também é incorreta, pois 
mesmo para realizar apenas uma leitura em um arquivo é necessário abrir este.
	
	
	
	 
		
	
		4.
		Nas aulas aprendemos sobre as funções de leitura e gravação.
A respeito da função fwrite assinale a alternativa correta.
	
	
	
	fwrite(endreçoElemento, ptrArq, quantidade);
	
	
	fwrite( tamanho, endreçoElemento, ptrArq);
	
	
	fwrite(endreçoElemento, tamanho, quantidade, ptrArq);
	
	
	fwrite(endreçoElemento, tamanho, quantidade);
	
	
	fwrite(quantidade, ptrArq, endreçoElemento,tamanho);
	
	Gabarito
Coment.
	
	
	Gabarito
Coment.
	
	
	
	 
		
	
		5.
		A função rewind() de protótipo
void rewind (FILE *fp);
tem como comportamento:
	
	
	
	Retornar a posição corrente do arquivo para o fim.
	
	
	Adiantar para a próxima posição corrente do arquivo.
	
	
	Adiantar a posição corrente do arquivo para o fim.
	
	
	Adiantar a posição corrente do arquivo para o início.
	
	
	Retornar a posição corrente do arquivo para o início.
	
	Gabarito
Coment.
	
	
	Gabarito
Coment.
	
	
	
	 
		
	
		6.
		Suponha que o arquivo dados.txt contém a cadeia de caracteres "ABCYDEF" e nada mais. O que o seguinte programa imprime?
int main( void) {
FILE *entrada;
int c; 
entrada = fopen( "dados.txt", "r");
while ((c = getc( entrada)) != EOF)
printf( "%c ", c);
fclose( entrada);
return EXIT_SUCCESS;
}
	
	
	
	ABC
	
	
	ABCYDEF
	
	
	DEF
	
	
	ABCDEFY
	
	
	ABCDEF
	
	Gabarito
Coment.
	
	
	Gabarito
Coment.
	
	
	
	 
		
	
		7.
		Assinale a opção que apresenta o modo de abertura que permite leitura/ escrita e acrescentar ao final em um arquivo binário.
	
	
	
	r+
	
	
	ab+
	
	
	rb+
	
	
	w+
	
	
	a+
	
Explicação:
Para responder a essa questão, o aluno precisa conhecer os seis modos de abertura para um arquivo binário.
	
	
	
	 
		
	
		8.
		Uma das ultimas funções estudadas foi a rename(). Suponha que o nome do arquivo é inicial é ARQ e o novo deve ser ARQ2, e é constante.
Assinale a alternativa que apresenta a sintaxe correta para a função.
	
	
	
	rename("ARQ", ARQ2);
	
	
	rename("ARQ2", "ARQ");rename("ARQ, ARQ2");
	
	
	rename("ARQ", "ARQ2");
	
	
	rename(ARQ2, ARQ);

Continue navegando