Buscar

LINGUAGEM DE PROGRAMAÇÃO I aula 8

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 28 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 28 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 28 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. 
 
 
5- Veja o código a seguir: 
#include < stdio.h > 
#include < stdlib.h > 
void imprime(int v[]) 
{ 
 int i; 
 for(i=0;i<10;i++)printf("v[%d]=%d\n", i, v[i]); 
} 
int main(int argc, char *argv[]) { 
 int num[]={1,2,3,4,5,6,7,8,9,10}; 
 __________________________ // chamada a função imprime 
 
 return 0; 
} 
Está faltando o segundo comando na função main(), este deve ser uma chamada 
a função imprime(int v[]). Sabendo-se que o parâmetro a ser passado é um 
vetor,marque a alternativa com a forma correta da chamada desta função, de 
modo que o vetor num[] declarado na primeira linha da função main() tenha seus 
valores exibidos na tela. 
 
 
 
imprime(vet); 
 
imprime(num[]); 
 
 
imprime(v[]); 
 
 
imprime(num); 
 
imprime(int num []); 
 
 
 
 
Explicação: 
A chamda correta a esta função é imprime(num); pois em seu cabeçalho já está explicito que o 
parãmeetro é do tipo vetor de inteiros, assim basta inserir o indentificador do vetor no momento da 
chamada da função. 
 
 
 
 
 
 
 
2. 
 
Analise o código a seguir: 
#include < stdio.h > 
#include < stdlib.h > 
void modifica(int v[]) 
{ 
 int temp=v[0]; 
 v[0]=v[1]; 
 v[1]=temp; 
} 
int main(int argc, char *argv[]) { 
 int vetor[]={5,3}; 
 
 modifica(vetor); 
 printf("vetor[0]=%d\tvetor[1]=%d", vetor[0], vetor[1]); 
 return 0; 
} 
Marque a alternativa correta: 
 
 
A saída que será exibida é v[0]=5 e v[1]=5 os valores dos campos do vetor são copiados, na 
função main(). 
 
 
A saída que será exibida é v[0]=3 e v[1]=3 os valores dos campos do vetor são copiados, na 
função main(). 
 
A saída que será exibida é v[0]=5 e v[1]=3 os valores dos campos do vetor não são alterados, 
na função main(). 
 
O programa não executa, pois há erro nas atribuições no corpo da função modifica(int v[]). 
 
 
 
A saída que será exibida é v[0]=3 e v[1]=5 os valores dos campos do vetor são alterados, na 
função main(). 
 
 
 
Explicação: 
Na função o acesso ocorre exatamente no vetor que foi passado como parâmetro, portanto há alteração 
do conteúdo do mesmo. 
 
 
 
 
 
 
 
3. 
 
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 1 se o número digitado for divisível por 10 
 
 
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 
 
 
 
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. 
 
 
 
 
 
 
 
4. 
 
 
Quando uma função e chamada e recebe como parâmetro o 
endereço de uma variável, damos o nome a esta forma de 
passagem de parâmetros de Passagem por: 
 
 
 
 
referência 
 
ponteiro 
 
memória 
 
endereço 
 
valor 
 
 
 
Explicação: 
Há duas formas de passagem de parâmetros em uma função. Quando passamos um valor para a variável, 
então chamamos passagem por valor. Ou quando passamos o endereço de uma variável chamaos de 
passagem de parâmetro pro referência. 
 
 
 
 
 
 
 
5. 
 
 
Em todos os programas codificados em linguagem C aparece a função main(). 
Verifique as afirmativas. 
I- A execução de um programa em C inicia na primeira linha da função main() 
II - Alguns programas complexos em C necessitam de mais de uma função 
main() 
III - A função main() em detgerminadas situações pode ser opcional no código. 
IV - Embora muito importante não é possivel escrever um programa em C 
apenas com a função main(). 
Marque a alternativa CORRETA: 
 
 
Todas as afirmativas estão corretas 
 
 
As afirmativas I e III estão corretas 
 
 
Apenas a afirmativa I está correta 
 
As afirmativas I e II estão corretas 
 
As afirmativas I e IV estão corretas 
 
 
 
Explicação: 
A execução de um programa em C inicia-se a partir do primeiro comando da função main(). 
Não pode haver num mesmo programa mais de uma função main() e todo programa em C deve ter 
uma função main(), mesmo que o prorama se resuma apenas na função main(). 
 
 
 
 
 
 
 
6. 
 
 
O cabeçalho de uma função é composto por: < tipo de retorno > nome da função 
( lista de parâmetros). 
A lista de parâmetros, quando houver deve ter os parãmetros separados por 
vírgula e estes são entradas para 
a função, enquanto o tipo de retorno indica o tipo de valor que será a saída de 
uma função. Entretanto algumas 
funções não retornam nenhum valor, neste caso deve-se usar no seu cabeçalho 
para tipo de retorno a palavra: 
 
 
 
int 
 
 
float 
 
 
void 
 
 
return 
 
boolean 
 
 
 
Explicação: 
void é uma palavra reservada da linguagem C que quando usada antes do nome de uma função indica 
que a mesma não retorna valor. 
 
 
 
 
 
 
 
7. 
 
 
Observe o programa abaixo e escolha a opção que 
apresenta o que retorna da função chamada. 
 
 
 
 
O menor número é retornado 
 
O maior número é retornado 
 
O valor retornado corresponde ao índice da variável que contem o menor 
número 
 
Nada retorna porque o nome do vetor da função main é diferente do nome 
do vetor da função descobre 
 
 
O valor retornado corresponde ao deslocamento mais um em relação ao 
endereço base da variável que contem o menor número 
 
 
Gabarito Coment. 
 
 
Gabarito Coment. 
 
 
 
 
 
 
 
8. 
 
 
MARQUE A OPÇÃO REFERNETE VALOR FINAL DA VARIÁVEL RESULT? 
 
 
 
9 
 
18 
 
11 
 
 
6 
 
7 
 
 
 
 
 
1. 
 
 
Seja a função a seguir, onde são passados como parâmetros um vetor e seu tamanho, 
respectivamente int v[] e tam: 
void imprime(int v[], int tam) 
{ 
 int i; 
 for(i=0; i< = tam;i++) printf("v[%d]=%d\n", i, v[i]); 
} 
Analise o código da função e marque a alternativa correta: 
 
 
 
 
 
O laço de repetição está errado pois tenta acessar fora dos limites do vetor. 
 
O cabeçalho da função possui erro , pois neste caso não pode-se usar como valor de retorno 
void. 
 
 
 
Não há problemas com o código da função, esta pode ser executada sem problemas. 
 
Há erro no uso da função printf(), sabendo que um dos argumentos é um elemento do vetor. 
 
A função printf() não pode ser usada com vetores. 
 
 
 
Explicação: 
Como o tamanho do vetor é passado pelo parâmeto tam, o laço de repetição só pode acessar da posição 
0 até a posição tam-1. Portanto há erro na tentativa de acesso no vetor. 
 
 
 
 
 
 
 
2. 
 
O presidente da construtora Sempre Verde precisou, em 
um determinado momento, reajustar o salário dos 
funcionários e, como ele sabia programar porque tinha se 
dedicado muito à disciplina de Linguagem de Programação 
 
I, definiu uma função com o seguinte protótipo:float calcSalario(float salario, float percentual); 
Baseado nesse protótipo é CORRETO afirmar que a 
função: 
 
 
 
 
Recebe dois valores, salário e o percentual de reajuste, passados por valor. 
 
Recebe dois valores passados por referência. 
 
Não retorna nenhum valor para a função chamadora. 
 
Retornará dois valores para a função chamadora. 
 
Retornará o salário somado ao percentual. 
 
 
 
Explicação: 
Passagem por referência precisava do & antes do nome de cada variável. Se não 
retornasse, teria que ser void. Nunca retorna dois valores. Não tem como dizer porque 
o corpo não está presente. 
 
 
 
 
 
 
 
3. 
 
 
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: 
 
 
O programa exibirá 0 
 
O programa exibirá 5 
 
O programa exibirá 4 
 
O programa exibirá 9 
 
 
Ocorrerá um erro 
 
 
Gabarito Coment. 
 
 
Gabarito Coment. 
 
 
 
 
 
 
 
4. 
 
 
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: 3 
 
Tipo de retorno: media Quantidade de parâmetros: 2 
 
Tipo de retorno: media Quantidade de parâmetros: 3 
 
Tipo de retorno: int Quantidade de parâmetros: 3 
 
Tipo de retorno: float Quantidade de parâmetros: 2 
 
 
 
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. 
 
 
 
 
 
 
 
5. 
 
 
Na definição de uma função, precisamos escrever suas partes, 
sendo algumas obrigatórias e outras, facultativas. 
 
tipo nome ( tipo1 parâmetro1, tipo2 parâmetro2, ..., tipon 
parâmetroN) 
{ 
 corpo da função 
 } 
 
Das opções apresentadas abaixo, marque a que apresenta 
apenas partes obrigatórias de forma que a função execute 
alguma tarefa, sem levar em consideração os símbolos 
(chaves, parênteses, etc). 
 
 
Tipo, Nome e Parâmetros. 
 
Tipo, Parâmetro e corpo da função. 
 
Nome, Parâmetro e Corpo da função. 
 
 
Tipo , Nome, e Corpo da função. 
 
Tipo, Nome, Parâmetros e Corpo da Função. 
 
 
 
Explicação: 
Uma função terá, obrigatoriamente, seu tipo, nome para que possa ser chamada e o 
os comandos/ funções que formam seu corpo. 
Ela poderá não receber nada logo, os parâmetros nem sempre estarão presentes. 
 
 
 
Gabarito Coment. 
 
 
 
 
 
 
 
6. 
 
 
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 é: 
 
 
 
tipo de dados 
 
vetor 
 
 
variáveis 
 
 
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. 
 
 
 
 
 
 
 
7. 
 
 
Função em C onde são colocados todos os comandos e outras funções que 
desejamos que sejam executadas 
 
 
systema("pause") 
 
 
main() 
 
end 
 
return 
 
begin 
 
 
Gabarito Coment. 
 
 
Gabarito Coment. 
 
 
Gabarito Coment. 
 
 
 
 
 
 
 
8. 
 
 
Um programa pode ser formado por uma, ou mais funções. 
Quando existir mais de uma função, onde deverão se posicionar 
as demais funções em relação à função main()? 
Observe as afirmativas abaixo e assinale a resposta CORRETA 
I Antes da função main() obrigatoriamente. 
II Depois da função main(), obrigatoriamente, para melhorar a 
visibilidade, mas nada a acrescentar. 
III Se depois da função main(), obrigatoriamente, tem que incluir o 
protótipo antes. 
IV Pode ser antes da função main(). 
 
 
 
 
Somente a afirmativa I está correta. 
 
Somente a afirmativa II está correta. 
 
Somente a afirmativa IV está correta. 
 
 
As afirmativas III e IV estão corretas. 
 
Só a afirmativa III está correta. 
 
 
 
Explicação: 
Essa resposta necessita de um conhecimento prévio sobre o que está sendo 
perguntado. 
 
 
 
 
 
 
 
 
1. 
 
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. 
 
 
 
 
Somente a afirmativa II está correta 
 
As afirmativas II, III e IV estão corretas 
 
 
 As afirmativas I e II estão corretas 
 
 
As afirmativas II e III estão corretas 
 
 
As afirmativas II e IV estão corretas 
 
 
 
 
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 
 
 
 
 
 
 
 
2. 
 
 
Um Engenheiro civil gostaria de construir uma função que 
pudesse calcular o total de metros lineares que deveriam ser 
comprados para montar o rodapé de salas retangulares. 
Ele pediu ao desenvolvedor para definir a função. 
Assinale a opção que corresponde à definição CORRETA da 
função. 
 
 
 
float rodapeRet(float largura, comprimento) 
{ return largura + comprimento * 2;} 
 
float rodapeRet(float largura, float comprimento); 
 { return largura * comprimento;} 
 
 
float rodapeRet(float largura, float comprimento) 
{ return (largura + comprimento)*2;} 
 
float rodapeRet(float largura, float comprimento) 
{ return largura * comprimento;} 
 
float rodapeRet(float largura, float comprimento); 
{ return largura + comprimento * 2;} 
 
 
 
Explicação: 
A resposta é simples, pois só precisava de um conhecimento anterior sobre o 
perímetro de um retângulo além do que foi estudado na AULA 8 
 
 
 
 
 
 
 
3. 
 
 
Dada a função abaixo, qual o valor que será retornado quando esta função for 
chamada com: perc(200, 15) 
float perc(float val, float perc) { 
 float resp; 
 resp = val + val * (perc/100); 
 return resp; 
} 
 
 
170 
 
215 
 
 
230 
 
130 
 
30 
 
 
 
 
 
 
 
4. 
 
 
Um desenvolvedor, ao construir um programa, precisou de uma 
função que calculasse o produto entre dois números inteiros. Ele 
construiu uma função, tendo considerado a propriedade de 
fechamento, isto é, o produto de dois inteiros, inteiro será e 
colocou a linha abaixo no programa. 
cout << " Produto = " << multiplicar(a,b); 
Observe as opções abaixoe escolha aquela onde o protótipo da 
função está presente. 
 
 
 
 
float multiplicar(int a, int b) 
 
 
int multiplicar(int a, int b) ; 
 
void multiplicar(int a, int b) 
 
void multiplicar(int a, int b); 
 
int multiplicar(int a, b); 
 
 
 
Explicação: 
Se fosse do tipo void, não precisaria de cout. Todo protótipo termina com ; . O tipo de 
cada parâmetro precisa estar presente 
 
 
 
 
 
 
 
5. 
 
 
Suponha uma Universidade cujo critério para aprovação seja o 
seguinte: a soma das duas provas PR1 e PR2 tem que ser maior, 
ou superior a 14. Caso o aluno não consiga fazer esse total, 
deverá ir fazer a PR3, cuja nota, acrescida à soma da PR1 com 
PR2, precisará ser, no mínimo, o que falta para completar 21 
pontos. 
Assinale a opção CORRETA da definição de uma função que 
receba como parâmetros as notas da PR1 e da 
PR2, retornando a nota mínima que o aluno precisará tirar na 
terceira prova para que seja aprovado. 
 
 
 
 
 
float aprovacaoFinal(float pr1,float pr2) { pr3=(pr1 + pr2); } 
 
 
float aprovacaoFinal(float pr1, float pr2) { return 21-(pr1 + pr2); } 
 
 
void aprovacaoFinal (float pr1, float pr2) { return (21 - pr1 -pr2); } 
 
float aprovacaoFinal(float pr1, float pr2) { pr3 = (21-pr1-pr2); } 
 
float aprovacaoFinal( float pr1, pr2) { return 21 - ( pr1 + pr2); } 
 
 
 
Explicação: 
Se fosse do tipo void, não retornaria nada. O tipo de cada parâmetro precisa estar 
presente. O tipo float tem que retornar. 
 
 
 
 
 
 
 
6. 
 
 
Quando uma função e chamada e recebe como parâmetro o 
endereço de uma variável, damos o nome a esta forma de 
passagem de parâmetros de Passagem por: 
 
 
 
memória 
 
valor 
 
 
referência 
 
ponteiro 
 
endereço 
 
 
 
Explicação: 
Há duas formas de passagem de parâmetros em uma função. Quando passamos um valor para a variável, 
então chamamos passagem por valor. Ou quando passamos o endereço de uma variável chamaos de 
passagem de parâmetro pro referência. 
 
 
 
 
 
 
 
7. 
 
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. 
 
 
 
 
 
 
 
8. 
 
 
O cabeçalho de uma função é composto por: < tipo de retorno > nome da função 
( lista de parâmetros). 
A lista de parâmetros, quando houver deve ter os parãmetros separados por 
vírgula e estes são entradas para 
a função, enquanto o tipo de retorno indica o tipo de valor que será a saída de 
uma função. Entretanto algumas 
funções não retornam nenhum valor, neste caso deve-se usar no seu cabeçalho 
para tipo de retorno a palavra: 
 
 
 
float 
 
int 
 
boolean 
 
 
void 
 
 
return 
 
 
 
Explicação: 
void é uma palavra reservada da linguagem C que quando usada antes do nome de uma função indica 
que a mesma não retorna valor. 
 
 
 
 
 
 
 
 
 
1. 
 
 
5- Veja o código a seguir: 
#include < stdio.h > 
#include < stdlib.h > 
void imprime(int v[]) 
{ 
 int i; 
 for(i=0;i<10;i++)printf("v[%d]=%d\n", i, v[i]); 
} 
int main(int argc, char *argv[]) { 
 int num[]={1,2,3,4,5,6,7,8,9,10}; 
 __________________________ // chamada a função imprime 
 
 return 0; 
} 
Está faltando o segundo comando na função main(), este deve ser uma chamada 
a função imprime(int v[]). Sabendo-se que o parâmetro a ser passado é um 
vetor,marque a alternativa com a forma correta da chamada desta função, de 
modo que o vetor num[] declarado na primeira linha da função main() tenha seus 
valores exibidos na tela. 
 
 
 
 
imprime(num); 
 
imprime(num[]); 
 
imprime(v[]); 
 
imprime(vet); 
 
imprime(int num []); 
 
 
 
 
Explicação: 
A chamda correta a esta função é imprime(num); pois em seu cabeçalho já está explicito que o 
parãmeetro é do tipo vetor de inteiros, assim basta inserir o indentificador do vetor no momento da 
chamada da função. 
 
 
 
 
 
 
 
2. 
 
 
Analise o código a seguir: 
#include < stdio.h > 
#include < stdlib.h > 
void modifica(int v[]) 
{ 
 int temp=v[0]; 
 v[0]=v[1]; 
 v[1]=temp; 
} 
int main(int argc, char *argv[]) { 
 int vetor[]={5,3}; 
 modifica(vetor); 
 printf("vetor[0]=%d\tvetor[1]=%d", vetor[0], vetor[1]); 
 return 0; 
} 
Marque a alternativa correta: 
 
 
 
A saída que será exibida é v[0]=3 e v[1]=5 os valores dos campos do vetor são alterados, na 
função main(). 
 
A saída que será exibida é v[0]=5 e v[1]=5 os valores dos campos do vetor são copiados, na 
função main(). 
 
A saída que será exibida é v[0]=3 e v[1]=3 os valores dos campos do vetor são copiados, na 
função main(). 
 
A saída que será exibida é v[0]=5 e v[1]=3 os valores dos campos do vetor não são alterados, 
na função main(). 
 
O programa não executa, pois há erro nas atribuições no corpo da função modifica(int v[]). 
 
 
 
 
Explicação: 
Na função o acesso ocorre exatamente no vetor que foi passado como parâmetro, portanto há alteração 
do conteúdo do mesmo. 
 
 
 
 
 
 
 
3. 
 
 
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. 
 
 
 
 
 
 
 
4. 
 
 
Em todos os programas codificados em linguagem C aparece a função main(). 
Verifique as afirmativas. 
I- A execução de um programa em C inicia na primeira linha da função main() 
II - Alguns programas complexos em C necessitam de mais de uma função 
main() 
III - A função main() em detgerminadas situações pode ser opcional no código. 
IV - Embora muito importante não é possivel escrever um programa em C 
apenas com a função main(). 
Marque a alternativa CORRETA: 
 
 
Todas as afirmativas estão corretas 
 
 
As afirmativas I e II estão corretas 
 
 
Apenas a afirmativa I está correta 
 
As afirmativas I e III estão corretas 
 
As afirmativas I e IV estão corretas 
 
 
 
Explicação: 
A execução de um programa em C inicia-se a partir do primeiro comando da função main(). 
Não pode havernum mesmo programa mais de uma função main() e todo programa em C deve ter 
uma função main(), mesmo que o prorama se resuma apenas na função main(). 
 
 
 
 
 
 
 
5. 
 
MARQUE A OPÇÃO REFERNETE VALOR FINAL DA VARIÁVEL RESULT? 
 
 
 
 
 
6 
 
18 
 
7 
 
11 
 
9 
 
 
 
 
 
 
 
6. 
 
 
Função em C onde são colocados todos os comandos e outras funções que 
desejamos que sejam executadas 
 
 
 
main() 
 
end 
 
return 
 
begin 
 
systema("pause") 
 
 
Gabarito Coment. 
 
 
Gabarito Coment. 
 
 
Gabarito Coment. 
 
 
 
 
 
 
 
7. 
 
 
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 é: 
 
 
 
 
funções 
 
variáveis 
 
vetor 
 
structs 
 
 
tipo de dados 
 
 
 
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. 
 
 
 
 
 
 
 
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: float Quantidade de parâmetros: 3 
 
Tipo de retorno: media 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. 
 
 
Seja a função a seguir, onde são passados como parâmetros um vetor e seu 
tamanho, respectivamente int v[] e tam: 
void imprime(int v[], int tam) 
{ 
 int i; 
 for(i=0; i< = tam;i++) printf("v[%d]=%d\n", i, v[i]); 
} 
Analise o código da função e marque a alternativa correta: 
 
 
 
 
 
O laço de repetição está errado pois tenta acessar fora dos limites do vetor. 
 
Há erro no uso da função printf(), sabendo que um dos argumentos é um elemento do vetor. 
 
A função printf() não pode ser usada com vetores. 
 
Não há problemas com o código da função, esta pode ser executada sem problemas. 
 
O cabeçalho da função possui erro , pois neste caso não pode-se usar como valor de retorno 
void. 
 
 
 
 
Explicação: 
Como o tamanho do vetor é passado pelo parâmeto tam, o laço de repetição só pode acessar da posição 
0 até a posição tam-1. Portanto há erro na tentativa de acesso no vetor. 
 
 
 
 
 
 
 
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: 
 
 
O programa exibirá 5 
 
 
Ocorrerá um erro 
 
O programa exibirá 0 
 
O programa exibirá 9 
 
O programa exibirá 4 
 
 
Gabarito Coment. 
 
 
Gabarito Coment. 
 
 
 
 
 
 
 
3. 
 
 
Um programa pode ser formado por uma, ou mais funções. 
Quando existir mais de uma função, onde deverão se posicionar 
as demais funções em relação à função main()? 
Observe as afirmativas abaixo e assinale a resposta CORRETA 
I Antes da função main() obrigatoriamente. 
II Depois da função main(), obrigatoriamente, para melhorar a 
visibilidade, mas nada a acrescentar. 
III Se depois da função main(), obrigatoriamente, tem que incluir o 
protótipo antes. 
IV Pode ser antes da função main(). 
 
 
 
Somente a afirmativa IV está correta. 
 
Somente a afirmativa II está correta. 
 
Só a afirmativa III está correta. 
 
 
As afirmativas III e IV estão corretas. 
 
Somente a afirmativa I está correta. 
 
 
 
Explicação: 
Essa resposta necessita de um conhecimento prévio sobre o que está sendo 
perguntado. 
 
 
 
 
 
 
 
4. 
 
 
Na definição de uma função, precisamos escrever suas partes, 
sendo algumas obrigatórias e outras, facultativas. 
 
tipo nome ( tipo1 parâmetro1, tipo2 parâmetro2, ..., tipon 
parâmetroN) 
{ 
 corpo da função 
 } 
 
Das opções apresentadas abaixo, marque a que apresenta 
apenas partes obrigatórias de forma que a função execute 
alguma tarefa, sem levar em consideração os símbolos 
(chaves, parênteses, etc). 
 
 
Tipo, Nome, Parâmetros e Corpo da Função. 
 
Tipo, Nome e Parâmetros. 
 
 
Tipo , Nome, e Corpo da função. 
 
Tipo, Parâmetro e corpo da função. 
 
Nome, Parâmetro e Corpo da função. 
 
 
 
Explicação: 
Uma função terá, obrigatoriamente, seu tipo, nome para que possa ser chamada e o 
os comandos/ funções que formam seu corpo. 
Ela poderá não receber nada logo, os parâmetros nem sempre estarão presentes. 
 
 
 
Gabarito Coment. 
 
 
 
 
 
 
 
5. 
 
O presidente da construtora Sempre Verde precisou, em 
um determinado momento, reajustar o salário dos 
funcionários e, como ele sabia programar porque tinha se 
dedicado muito à disciplina de Linguagem de Programação 
 
I, definiu uma função com o seguinte protótipo: 
float calcSalario(float salario, float percentual); 
Baseado nesse protótipo é CORRETO afirmar que a 
função: 
 
 
 
Recebe dois valores passados por referência. 
 
Retornará dois valores para a função chamadora. 
 
Retornará o salário somado ao percentual. 
 
Não retorna nenhum valor para a função chamadora. 
 
 
Recebe dois valores, salário e o percentual de reajuste, passados por valor. 
 
 
 
Explicação: 
Passagem por referência precisava do & antes do nome de cada variável. Se não 
retornasse, teria que ser void. Nunca retorna dois valores. Não tem como dizer porque 
o corpo não está presente. 
 
 
 
 
 
 
 
6. 
 
 
Dada a função abaixo, qual o valor que será retornado quando esta função for 
chamada com: perc(200, 15) 
float perc(float val, float perc) { 
 float resp; 
 resp = val + val * (perc/100); 
 return resp; 
} 
 
 
170 
 
130 
 
30 
 
 
230 
 
215 
 
 
 
 
 
 
 
7. 
 
Um desenvolvedor, ao construir um programa, precisou de uma 
função que calculasse o produto entre dois números inteiros. Ele 
construiu uma função, tendo considerado a propriedade de 
fechamento, isto é, o produto de dois inteiros, inteiro será e 
 
colocou a linha abaixo no programa. 
cout << " Produto = " << multiplicar(a,b); 
Observe as opções abaixo e escolha aquela onde o protótipo da 
função está presente. 
 
 
 
 
 
int multiplicar(int a, int b) ; 
 
float multiplicar(int a, int b) 
 
int multiplicar(int a, b); 
 
void multiplicar(int a, int b) 
 
void multiplicar(int a, int b);Explicação: 
Se fosse do tipo void, não precisaria de cout. Todo protótipo termina com ; . O tipo de 
cada parâmetro precisa estar presente 
 
 
 
 
 
 
 
8. 
 
 
Suponha uma Universidade cujo critério para aprovação seja o 
seguinte: a soma das duas provas PR1 e PR2 tem que ser maior, 
ou superior a 14. Caso o aluno não consiga fazer esse total, 
deverá ir fazer a PR3, cuja nota, acrescida à soma da PR1 com 
PR2, precisará ser, no mínimo, o que falta para completar 21 
pontos. 
Assinale a opção CORRETA da definição de uma função que 
receba como parâmetros as notas da PR1 e da 
PR2, retornando a nota mínima que o aluno precisará tirar na 
terceira prova para que seja aprovado. 
 
 
 
 
 
 
float aprovacaoFinal(float pr1, float pr2) { return 21-(pr1 + pr2); } 
 
float aprovacaoFinal(float pr1, float pr2) { pr3 = (21-pr1-pr2); } 
 
float aprovacaoFinal( float pr1, pr2) { return 21 - ( pr1 + pr2); } 
 
float aprovacaoFinal(float pr1,float pr2) { pr3=(pr1 + pr2); } 
 
void aprovacaoFinal (float pr1, float pr2) { return (21 - pr1 -pr2); } 
 
 
 
Explicação: 
Se fosse do tipo void, não retornaria nada. O tipo de cada parâmetro precisa estar 
presente. O tipo float tem que retornar.

Continue navegando