Buscar

Linguagem de Programação I - Banco de Questões

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 16 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 16 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 16 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

LINGUAGEM DE PROGRAMAÇÃO I 
 
 A Linguagem C foi inventada e foi implementada no início dos anos 70 por Dennis Ritchie em um DEC PDP-
11, usando o Sistema Operacional UNIX. Marque a alternativa CORRETA: 
Resposta: A linguagem C é uma linguagem compilada e pode ser executada em vários sistemas operacionais. 
Comentário: A linguagem de programação C é uma linguagem compilada e muito flexível, pois pode ser compilada para 
execução em diversos sistemas operacionais. 
 
 A Linguagem C tem algumas características importantes e uma delas é a Portabilidade, isso significa dizer 
que: 
Resposta: Com pequenas alterações, o programa poderá ser compilado em várias plataformas. 
Comentário: A Portabilidade é uma das grandes vantagens da linguagem C porque com poucas modificações (às vezes, nenhuma) podemos 
compilar em qualquer arquitetura. 
 Qual a vantagem da Linguagem C que está descrita no texto abaixo? “Permite que o desenvolvedor defina 
suas funções”. 
Resposta: Modularidade. 
Comentário: A resposta está na Aula 1 quando estudamos as sete vantagens da Linguagem C. 
 Estudamos que a linguagem C apresenta várias características. Analise as afirmativas abaixo e assinale a 
opção correta. 
I. Com pequenas modificações, um código poderá ser compilado em várias plataformas. 
II. Não pode ser modularizada 
III. Possui um propósito específico 
IV. Considerada de nível intermediário 
Resposta: I e IV estão corretas. 
 
 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. ” 
Resposta: Portabilidade. 
 
 Um programador precisa criar alguns nomes de variáveis para utilizar em seu programa desenvolvido em 
C++ e apresenta as seguintes opções: 
I. return 
II. Name 
III. 2Name 
Baseado nas regras de definição de nomes de variáveis da linguagem pode-se afirmar que está (ão) correto (s). 
Resposta: Apenas a II. 
Comentário: return é uma palavra reservada e 2Name não pode ser usada pois o nome de uma variável não pode ser iniciado 
por número. 
 Todo programa codificado na linguagem C pode incluir uma, ou várias bibliotecas, mas existe uma que tem 
que estar nessa lista, na maioria das vezes, devido a necessidade da interação com o usuário. Assinale a alternativa 
que apresenta essa biblioteca. 
Resposta: stdio.h 
Comentário: A linguagem C disponibiliza várias bibliotecas que, dependendo da aplicação, deverão ser incluídas. Entretanto, para possibilitar a 
interação com o usuário, iremos precisar da biblioteca padrão (standard) de entrada (input) e de saída (output) que tem a extensão h (header). 
 
 Na história da linguagem C, alguns momentos foram marcantes devido a acréscimos e/ou modificações 
significativas embora nem todos os compiladores tenham aderido. Abaixo estão relacionadas alguns deles: 
 Surge o tipo long long para inteiros; 
 As funções matemáticas passam a aceitar todos os tipos numéricos; 
 O caracter // para comentário de uma linha, pode ser usado também; 
Assinale a opção que contém o nome do documento onde apareceram, pela primeira vez, as modificações acima: 
Resposta: Padrão C99. 
Comentário: Em 1999, alguns ajustes forma feitos e surgiu o padrão C99 que incluiu os itens abaixo. 
 
 Em um programa, precisávamos usar as bibliotecas: math.h, stdio.h e stdlib.h. 
Assinale o trecho correto que possibilita incluí-las. 
Resposta: 
#include stdio.h 
#include stdlib.h 
#include math.h 
 
 
 
 Qual será a saída do comando abaixo: printf (“O valor de Pi é %/6f”,pi); 
Resposta: Valor de Pi é 3.141592 
 
 Na linguagem C, as strings "%d", "%f" e "%s" estão usualmente associadas ao uso da função: 
Resposta: printf 
 
 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? 
Resposta: isalnum() 
 
 Assinale a função que não é disponível na plataforma Linux 
Resposta: system() 
 
 Qual biblioteca da linguagem C contém as funções para exibir mensagens na tela? 
Resposta: stdio.h 
Comentários: A biblioteca do C que possui funções para maniulação de entrada e saída de dados é a 
stdio.h 
 
 Quais as funções da biblioteca stdio.h, da linguagem C usadas para exibir mensagens na tela 
Resposta: printf("string") e puts("string") 
Comentário: 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() 
 
 Um Engenheiro Mecânico tinha um arquivo onde ele gostaria que os nomes dos materiais fossem todos 
convertidos para letras minúsculas. 
Observe as linhas abaixo e assinale a opção que contem a função que realiza essa conversão e a biblioteca a qual 
pertence 
Resposta: tolower() e ctype.h 
 
 Observe abaixo várias funções que recebem dados via teclado. Qual delas permite uma leitura formatada? 
Resposta: scanf() 
 Analisando o código a seguir, que usa a função getchar(), podemos dizer: 
/* programa getchar.c */ 
#include 
int main(void) 
{ 
 char cLetra; 
 cLetra = getchar(); 
 printf("Letra digitada %c\n", cLetra); 
 printf("Na tabela ASCII %d\n", cLetra); 
 return 0; 
} 
Resposta: O código está correto, embora a função getchar() retorne um int e este está sendo atribuído a uma 
variável tipo char. 
Comentário: A resposta correta é: O código está correto, embora a função getchar() retorne um int e este está sendo atribuído a 
uma variável tipo char. 
O código está correto, pois embora a função getchar() retorne um int, pode-se atribuir para um char devido a conversão 
automática da linguagem 
 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. 
Resposta: cin ( ) 
Comentários: fgetc(stdin) / printf ( ) / scanf ( ) / getchar ( ) São funções da linguagem C, mas cin(), 
Não é. 
 
 
 
 Marque a opção abaixo que mostra um nome que não pode ser usado como identificador de uma variável 
Resposta: 1uma 
Comentários: O identificador de uma variável nunca poderá ser iniciado por um número 
 
 Um aluno declarou uma variável real da seguinte forma: float num =145.1; 
Qual linha ele deverá incluir em seu programa para que exiba o conteúdo com quatro casas à esquerda do ponto 
decimal e, as demais, à direita. 
Resposta: printf("\nValor de num: %8.3f ",num); 
Comentários: O aluno precisa conhecer todos os especificadores de formato e o que significa 
casting(conversão de tipo). 
 
 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. 
Resposta: printf("\nValor de num: %4d ",num); 
Comentários: O aluno precisa conhecer todos os especificadores de formato e o que significa 
casting(conversão de tipo) 
 
 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. 
Resposta: quantidade de memória alocada 
Comentários: 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 necessária 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 
 
 É um nome de variável válido 
Resposta: media_nota2 
Comentários: 
As regras para se nomear uma variável na linguagem C são: 
 Somente letras sem acentuação e nem cedilha, maiúsculas e minúsculas. 
 Algarismos 
 O caractere underline ( _ ) 
 Não pode começar com algarismo 
A única que atende às exigências é: media_nota2 
 
 Em programação é possível que haja decisões usando o IF. Todo IF deve vir seguido de uma condição que 
deve ter como resultado Verdadeiro ou Falso. Considerando esta afirmativa, qual das opções abaixo deve apresentar 
erro na compilação 
Resposta: if (z = 21) 
Comentário: 
Errada: if (z = 21) 
O operador relacional de igualdade é == 
 O desenvolvimento de um programa precisa atender as necessidades do usuário final, para isto o 
desenvolvedor conta com algumas estruturas que facilitam a construção de seu código fonte. Uma delas é a estrutura 
condicional if. 
Das opções apresentadas marque a qual melhor define esta estrutura 
Resposta: Testa uma expressão e dependendo do resultado permite que o programa siga por caminhos diferentes 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 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? 
Resposta: Valor do plano de Saúde com desconto / Valor do plano de Saúde sem desconto / Valor do plano de 
Saúde com desconto. 
Comentário: Em programação, entender dominar a sintaxe de cada comando/ estrutura é fundamental. 
Nesse caso, conhecer os operadores relacionais e lógicos também. 
 Um programa deve ler um valor inteiro. Caso o valor lido seja positivo deve imprimir a 
mensagem "Valor positivo". Assinale a opção que apresenta estrutura condicional CORRETA para a 
solução desse problema. 
Resposta: if ( valor > 0) 
 
 Existe sempre uma dúvida por parte do desenvolvedor se escolhe switch() ou if quando está 
usando a Linguagem C. 
Sabemos que existem algumas exigências para se usar o switch(). 
Analise as opções abaixo e assinale a opção correta. 
o Qualquer tipo pode ser usado. 
o Somente o tipo vetor de char que Não pode ser usado. 
o Não pode ser usado intervalo tipo: 1..3 em um case. 
o Sempre será obrigatório usar o comando break; ao final de um case. 
o Quando o valor digitado não estiver presente em nenhum dos cases, irá para a opção default, 
caso exista. 
Resposta: III e V são verdadeiras 
 
 Em uma estrutura de decisão com if/else onde se deseja comparar vetores de char, pode-se 
usar 
Resposta: a função strcmp() 
Comentário: 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 
 
 Os loops são utilizados para executar um conjunto de instruções várias vezes baseando-se 
sempre em uma condição que decidirá se continua repetindo ou não. 
Qual estrutura de repetição abaixo, garante que o bloco de instruções seja executado no mínimo uma 
vez? 
Resposta: do...while 
Comentários: A linguagem C apresenta três estruturas de repetição: for e while testam no início, 
significando que podem não executar nem uma vez. 
A estrutura do...while testa ao final ao bloco logo, executa pelo menos uma vez. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Qual dos trechos de programa em C++ apresentados indica corretamente se um numero é par 
ou ímpar? 
Resposta: 
cin >> numero; 
if (numero %2 == 0) 
cout << "par"; 
else 
cout <<"impar"; 
 
Comentário: 
cin >> numero; 
if (numero / 2 == 0) 
cout << "par"; 
else 
cout <<"impar"; 
Neste trecho a comparação verifica se o resultado da divisão por 2 é zero, por isso está 
errada.(numero / 2 == 0) 
cin >> numero; 
if (numero % 2 = 0) 
cout << "par"; 
else 
cout <<"impar"; 
Neste trecho não há comparação e sim a tentativa errada de se fazer uma atribuição (numero % 2 = 
0) 
cin >> numero; 
if (numero %2 = 1) 
cout << "par"; 
else 
cout <<"impar"; 
Neste trecho não há comparação e sim a tentativa errada de se fazer uma atribuição (numero % 2 = 
1) 
cin >> numero; 
cout << numero %2; 
Neste trecho de código é impresso o resto da divisão por 2 do valor armazenado na variável numero. E 
não é isto que se quer. 
 Complete o trecho de código abaixo com a expressão condicional adequada para o comando 
de repetição exibir a mensagem "Boa Noite" 100 vezes. 
i = 0; 
while ( ) { 
cout << "Boa Noite" << endl; 
i = i + 1; 
} 
 
Resposta: i < 100 
 
 
 
 
 
 
 
 Uma empresa que presta serviços de pintura predial, desenvolveu um aplicativo destinado a 
calcular o número de latas necessárias para pintar uma parede. O programa lê o tipo de pintura 
(interna ou externa), a largura e a altura em metros (inteiros) da parede. Para calcular a quantidade 
de tinta e o número de latas, sabe-se que são necessários 3 litros de tinta para pintar cada metro 
quadrado interno ou 4 litros para cada metro quadrado externo. Sabe-se também que cada lata tem 2 
litros de tinta. 
Dado o trecho de programa abaixo, identifique a opção correta que complemente o programa para 
realizar o cálculo do número de latas de tinta: 
 
void main(){ 
float altura, largura; 
char tipo; int total_latas, tot_metros, aux; 
puts("\nDigite E para Externo e I para Interno"); 
tipo = getchar(); 
puts("\nDigite a altura da parede: "); 
scanf("%f",&altura); 
printf("\nDigite a largura da parede: "); 
scanf("%f",&largura); 
tot_metros = altura*largura; 
 
Resposta: 
if(tot_metros%2) 
aux = 1; 
else 
aux = 0; 
switch(tipo){ 
case 'I': 
case 'i': 
printf("%d",(tot_metros*3)/2+aux); 
break; 
case 'E': 
case 'e': 
printf("%d",(tot_metros*4)/2+aux); 
break; 
default: 
printf("%s","Tipo invalido"); 
} 
system("PAUSE"); 
} 
 
 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 mensagem BOM. 
Se fosse você, qual escolheria? 
int y; 
for(y=2; y <= 16; y+= 2) puts( "BOM" ) 
Resposta: 8 vezes 
Comentários: O aluno precisa ter entendido que a estrutura do for usa uma PA ou PG 
 
 
 
 
 
 
 
 Sabendo que no programa abaixo foi digitado na sequencia os números 4 e 10. Marque a 
alternativa que contém a saída gerada pelo programa para a entrada fornecida. 
#include 
using namespace std; 
int main() { 
 int a, b; 
 cin >> a >> b; 
 a = a + 1; 
 while ( a < b ) { 
 cout << " " << a; 
 a = a + 1; 
 } 
} 
 
Resposta: 5 6 7 8 9 
 
 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; 
} 
Resposta: O código mostra os todos os divisores ímpares de um número. 
Comentários: 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 ímpar será mostrado. 
Assim como o próprio número quando este for ímpar, já que todo número é divisível por ele mesmo. 
 João foi realizar uma prova que tinha uma questão com o trecho abaixo e pedia para assinalar a 
opção que explicava a finalidade da estrutura while nele. 
 int num; 
 puts("\nNumero de ... algarismos:"); 
 scanf("%d", &num); 
 while (num < 100 || num > 999) 
 { 
 puts("\nNumero FORA do Intervalo"); 
 puts("\nNumero de ... algarismos:"); 
 scanf("%d", &num);} 
Resposta: Trecho de Proteção para evitar que o usuário digite número menor do que 100 ou maior do que 999. 
Comentários: O conceito de trecho de proteção é fundamental na programação para evitar que valores 
indesejáveis sejam aceitos. 
 
 
 
 
 
 
 
 
 
 
 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; 
} 
Resposta: O código mostra os todos os divisores pares de um número. 
Comentários: 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. 
 
 Considere o trecho de código abaixo. O que será impresso quando o programa for executado? 
int main() 
{ 
 int contador = 10; 
 while (contador > 1) 
 { 
 printf("%d ", contador); 
 contador--; 
 } 
 return 0; 
} 
Resposta: 10 9 8 7 6 5 4 3 2 
Comentários: A estrutura while repete o bloco enquanto o teste for verdadeiro. 
Se a variável contador começa com 10 e exibe o valor do contador enquanto ele for maior do que, significa que quando ele for 
decrementado e chegar a 1, interromperá a repetição; 
Resposta correta: 10 9 8 7 6 5 4 3 2 
 
 Na programação estruturada quando implementamos de modo sequencial ocorre um problema 
com relação ao armazenamento destas variáveis que é a perca de dados armazenados. Para solucionar 
este problema uma estrutura de dados adequada para isto é: 
Resposta: Utilizar vetores 
 
 Qual das alternativas abaixo possui o comando que devolve o numero de caracteres em um uma 
string? 
Resposta: Strlen 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Analise o código a seguir e marque a alternativa que se efetuada mostraria na tela apenas os 
números ímpares armazenados no vetor. 
 
#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; 
} 
Resposta: for(i=0; i< T; i+=2) 
Comentário: Se fizermos for(i=0; i< T; i+=2) 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 0 e o incremento é 2. Repare que as posições impares 
contêm apenas números pares. 
 
 A linguagem C, ao contrário de outras linguagens de programação, não possui um tipo de dados 
correspondente às strings; no lugar, usam-se vetores e ponteiros 
Admitindo-se que existe declarado um vetor chamado nome de 50 posições(nome[50]), qual das 
opções abaixo efetua corretamente a leitura de seu primeiro nome? 
Resposta: scanf("%s", nome); 
 
 A linguagem C permite a inicialização de vetores junto com sua declaração. 
Dada as alternativas abaixo, selecione a que está incorreta: 
Resposta: char valores = "ABCD"; 
Comentário: Errada: char valores = "ABCD"; porque faltam []. 
Deveria ser assim: char valores[] = "ABCD" 
 
 Um programador declarou os vetores abaixo e gostaria de fazer o trecho de entrada para 
armazenar códigos dos 43 funcionários e respectivos salários. 
int x,codigos[43]; float salarios[43]; 
A dúvida dele está na linha do for. Você poderia indicar qual ele deveria escolher? 
Resposta: for(x = 0; x < 43 ; x++ ) 
Comentário: Saber que o número que fica dentro dos [ ] é o deslocamento em relação ao endereço base é fundamental para 
resolver a questão. 
Isso é bem explicado na AULA 6 
 
 Qual o elemento do vetor referenciado por vet[3]? 
 
 
Resposta: 7 
Comentários: 
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. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Um aluno estava estudando matrizes e se deparou com um pequeno problema: toda vez que 
ele pedia para exibir o conteúdo de uma variável de uma matriz unidimensional, o resultado que 
aparecia era outro. Sabe-se que ele dimensionou uma matriz de nome numerosI para armazenar 100 
números inteiros e que ele construiu um trecho que exibia, numerado de 1 até 100, os números 
digitados. Observe o trecho do programa abaixo e assinale a opção onde estão presentes a declaração 
da matriz e a chamada correta do número escolhido pelo usuário. 
 
Resposta: int numerosI[100]; prinft("\n%d\n",numerosI[pos-1]) 
Comentário: Na declaração de um vetor é necessário informar a quantidade de elementos que comporão o vetor, assim para 100 
inteiros temos: 
int numerosI[100]; 
E como os indices de um vetor começam a partir de 0, temos : 
printf("\n%d\n",numerosI[pos-1]) 
 
 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; 
} 
Resposta: Os valores armazenados nos elementos de uma mesma coluna na matriz são iguais. 
Comentário: 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. 
 
 Observe o trecho de programa abaixo e selecione a resposta correta. 
 char nome[5][30]; 
 puts("\nNome e ultimo sobrenome: "); 
 scanf( "%s", nome[0]); 
... 
Resposta: Armazena só o primeiro nome 
Comentário: 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 
 
 
 
 
 
 Considere que todas as bibliotecas necessárias foram declaradas. 
int main() 
{ 
int mat[3][3], i, j, det; 
puts("Codigo que calcula o determinante de uma matriz 3x3\n"); 
____{ 
puts("Digite os elementos da matriz\n"); 
____(i=0;i<3;i++) 
____(j=0;j<3;j++) 
scanf("%d", &mat[i][j]); 
fflush(stdin); 
det= (mat[0][0]*mat[1][1]*mat[2][2]) + (mat[0][1]*mat[1][2]*mat[2][0]) + 
(mat[0][2]*mat[1][0]*mat[2][1]) - ((mat[0][1]*mat[1][0]*mat[2][2]) + 
(mat[0][0]*mat[1][2]*mat[2][1]) + (mat[0][2]*mat[1][1]*mat[2][0])); 
printf("\ndet=%d\n", det); 
} ____ (det==0); 
system("pause"); 
return (0); 
} 
Complete as lacunas do código da maneira correta para que o programa funcione corretamente. 
Resposta: do-for-for-while 
 
 Um programador precisa armazenar em uma tabela a quantidade de alunos, por turma, que 
tiraram notas abaixo da méida, exatamente na média e acimma da média. 
Sabendo que a méida é 6.0 e que esta tabela, chamada de mapa, servirá para armazenar as notas das 
30 turmas existentes, e que para o programa que está sendo desenvolvido o melhor será organizar as 
turmas por linhas na tabela. 
Marque a alternativa que melhor representa a declaração desta tabela. 
Resposta: int mapa[30][3]; 
Comentário: A declaração de um vetor bidimensional é feita na forma identificador [nº de linhas][nº de colunas], 
como os dados a serem armazenado são grandezas inteira, isto é quantidade de alunos e necessita-se de 30 posiçoes para 
linhas que representamas turmas e apenas 3 posiçoes para as colunas, o correto é int mapa[30][3]; 
 
 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. 
 
Resposta: Sábado 
 
 
 
 
 
 O departamento do pessoal de uma empresa precisa de um programa para armazenar nomes, cargos, 
número de dependentes e salários de 32 funcionários. 
Um desenvolvedor pensou em algumas linhas que precisariam ser incluídas no código para tornar possível a 
construção dos trechos de entrada, saída e outros necessários. 
Observe as declarações abaixo e escolha a que possibilita isso. 
Resposta: float sal[32]; int dep[32]; char nomes[32][30], cargos[32][20]; 
Comentário: Lembrando que o número que fica dentro dos [ ] significa o total, de fato, que desejamos. 
O número de caracteres de um nome e profissão são baseados no comum: 25 a 30 caracteres para um nome é razoável. 
Tipos diferentes não se agrupam. 
 
 Uma matriz é definida como float mat[5][10]; Quantos elementos esta matriz armazena? 
Resposta: 50 elementos 
 
 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? 
Resposta: int jogadas[22][2]; char nomes[22][30]; 
Comentário: Lembrando que o número que fica dentro dos [ ] significa o total, de fato, que desejamos. 
 
 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. 
Resposta: 
float rodapeRet(float largura, float comprimento) 
{ return (largura + comprimento)*2;} 
Comentário: 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. 
 
 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: 
Resposta: Void 
Comentário: 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. 
 
 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). 
Resposta: Tipo, Nome, e Corpo da função. 
Comentário: 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. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Os programas inicialmente eram desenvolvidos em um único bloco, com a introdução da modularização 
de programas 
foi possível garantir uma melhora a 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 é: 
Resposta: funções 
As funções são blocos de programas que proporcionam, um programa dividido em 
módulos, podendo estas funções serem utilizadas várias 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ência 
maior facilidade para manutenção do programa. 
 
 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; 
} 
Resposta: 230 
 
 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. 
Resposta: imprime (num); 
Comentário: A chamada correta a esta função é imprime (num); pois em seu cabeçalho já está explicito que o parâmetro é do 
tipo vetor de inteiros, assim basta inserir o identificador do vetor no momento da chamada da função. 
 
 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: 
Resposta: O laço de repetição está errado pois tenta acessar fora dos limites do vetor 
Comentário: Como o tamanho do vetor é passado pelo parâmetro tão, 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. 
 
 
 
 
 
 
 
 
 
 
 
 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: 
Resposta: 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(). 
Comentário: Na função o acesso ocorre exatamente no vetor que foi passado como parâmetro, portanto há alteração do 
conteúdo do mesmo. 
 
 Assinale a opção onde está presente a função que " extrai " dados numéricos de um vetor de char, não 
do teclado, além de evitar problemas na alternância na leitura de valores numéricos com vetores de char ao 
trabalharmos com arquivos. 
Resposta: sscanf(...); 
Comentário: Essa é uma Aula com muitas funções e o aluno precisa conhecer todas. 
 
 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): 
Resposta: r+ 
Comentário: Para responder a essa questão, o aluno precisa conhecer os seis modos de abertura para um arquivo texto. 
 
 A função fgets(). 
Resposta: lê uma linha inteira de uma vez. 
 
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. 
Resposta: char - fopen - fclose 
 
 
 
 
 
 
 
 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 associadocom 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. 
Resposta: arq = fopen("texto.txt", "a+"); 
 
 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 
Resposta: 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. 
 
 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. 
Resposta: fclose(...); 
Comentário: Essa é uma resposta conclusiva. 
 
 Assinale a opção que apresenta a função que seta o indicador de posição do arquivo no início. 
Resposta: rewind(...); 
Comentário: São muitas funções nessa aula que precisam ser estudadas. 
 
 A função _________ funciona como a função scanf(), porém, ao invés de ler os dados de teclado, estes 
dados são lidos de um arquivo. 
Resposta: fscanf() 
 
 Assinale a opção que apresenta a função que lê dados de um arquivo binário 
Resposta: fread(...); 
 
 Assinale a opção que apresenta a função que grava dados em um arquivo binário 
Resposta: fwrite(...); 
 
 Assinale a opção que apresenta o modo de abertura que permite leitura/ escrita e acrescentar ao final em 
um arquivo binário. 
Resposta: ab+ 
Para responder a essa questão, o aluno precisa conhecer os seis modos de abertura para um arquivo binário. 
 
 A função rewind() de protótipo 
void rewind (FILE *fp); 
tem como comportamento 
Resposta: Retornar a posição corrente do arquivo para o início. 
 
 Nas aulas aprendemos sobre as funções de leitura e gravação. 
A respeito da função fwrite assinale a alternativa correta. 
Resposta: fwrite(endreçoElemento, tamanho, quantidade, ptrArq); 
 
 Com relação a diretiva de pré compilação #include, pode-se dizer que: 
Resposta: É usada para inclusão de arquivos cabeçalhos (headers) 
 
 Você estava trabalhando na plataforma Windows e foi definindo várias funções específicas para sua 
área de atuação. Um dia, resolveu criar uma biblioteca e nomeou de minhasFuncoes.h, salvando em uma pasta 
de nome funcoes na raiz do drive C. Quando foi incluir, usou: 
Resposta: #include "c:\funcoes\ minhasFuncoes.h" 
 
 A função scanf utiliza qual operador para a entrada de dados: 
Resposta: Endereço 
 
 
 
 
 
 
 
 
 
 Marque abaixo a instrução que permite parar uma execução dentro de um switch. 
Resposta: break 
 
 João foi realizar uma prova que tinha uma questão com o trecho abaixo e pedia para assinalar a opção 
que explicava a finalidade da estrutura while nele. 
 
int num; 
puts("\nNumero de ... algarismos:"); 
scanf("%d", &num); 
while (num < 100 || num > 999) 
{ 
puts("\nNumero FORA do Intervalo"); 
puts("\nNumero de ... algarismos:"); 
scanf("%d", &num); 
} 
 
 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 ", ?); 
 
Resposta: Tamanho é 6 e para exibir a terceira matricula usaria matriculas[2] 
 
 Para declararmos uma matriz inteira n de 5 linhas e 4 colunas, fazemos: 
Resposta: int n[5] [4]; 
 
 Função em C onde são colocados todos os comandos e outras funções que desejamos que sejam 
executadas 
Resposta: main() 
 
 A função fgets(): 
Resposta: lê uma linha inteira de uma vez. 
 
 A função _________ funciona como a função scanf(), porém, ao invés de ler os dados de teclado, estes 
dados são lidos de um arquivo. 
Resposta: fscanf()

Outros materiais