Buscar

N2 TEC PROGRAMAÇÃO

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

NOTA: 10 
PERGUNTA 1 
Em C standard , uma das funções usadas para a impressão de conteúdo na tela é o printf . Tal 
comando permite adequar a impressão ao tipo e ao formato da informação a ser exibida. 
Suponha que o usuário deseja realizar uma impressão no seguinte formato: 
 
 
“Valor da média = 3.21 - valor do caracter 'A' na tabela ASCII = 65 (hexa= 41)” 
Supondo que existam as seguintes variáveis instanciadas: 
float media=3.21043891; 
carac = 'A'; 
Preencha os espaços do comando com os formatos corretos: 
printf(“Valor da média = __ - valor do caracter '__' na tabela ASCII = __ (hexa= 
__)”,media,carac,carac,carac); 
Agora assinale a alternativa que contenha as marcações corretas. 
 
.%.2d ; %c ; %d; %x. 
 
.%.2f ; %c ; %d; %d. 
 
.%.2f ; %d ; %d; %x. 
 
.%.2f ; %c ; %d; %x. 
 
.%.2f ; %c ; %c; %c. 
1 pontos 
 
PERGUNTA 2 
Na interface das funções, podemos encontrar as variáveis passadas por valor e as variáveis 
passadas por referência. Para essa questão, analise as afirmativas abaixo: 
 
I – Na passagem por valor, as modificações realizadas internamente à função não impactam 
sobre o valor da variável na origem da chamada da função. 
II – Na passagem por referência, qualquer alteração dentro da função, automaticamente altera 
o valor da variável na origem pois ambas possuem o mesmo endereço de memória. 
III – No código: “ func(int a , float *b)”, a variável “ a” é passada por referência enquanto que a 
variável “ b” é passada por valor. 
IV – Para realizar modificações ou acessar o conteúdo de variáveis passadas por referência, 
deve-se usar variável precedida pelo sinal “ &” para indicar o seu conteúdo. Por exemplo, na 
função “ func(int a , float *b)”, para se instanciar a variável “ b”, dentro do código, usaremos, 
por exemplo: “ &b = 5;”. 
 
Escolha a alternativa abaixo que você julgue ser a correta: 
 
.Apenas as afirmativas II e II estão corretas. 
 
.Apenas a afirmativa III é falsa. 
 
.Apenas as afirmativas III e IV são corretas. 
 
.Todas as afirmativas são corretas. 
 
. Apenas a afirmativa IV é falsa. 
1 pontos 
 
PERGUNTA 3 
Para a manipulação de arquivos temos que, inicialmente, realizar a instanciação do ponteiro 
do arquivo por intermédio da operação de abertura. Para tanto, usa-se a função “ fopen()” 
passando como parâmetros o nome físico do arquivo e o modo de abertura. Para essa 
questão, suponha que o programa em questão, tenha em seu código, as seguintes linhas: 
if(! fread (&item,sizeof(tipo_do_item),1,arq)) 
return -1; 
... 
if(! fwrite (&item,sizeof(tipo_do_item),1,arq)) 
return -2; 
... 
Levando em conta as linhas de código acima, o fato de que o arquivo binário deve existir 
previamente e as suas informações deverão ser mantidas, selecione a opção que contém a 
forma de abertura adequada. 
 
. arq=fopen("arq.dat","a+"); . 
 
. arq=fopen("arq.dat","w+"); . 
 
. arq=fopen("arq.dat","wb+"); . 
 
. arq=fopen("arq.dat","r+"); . 
 
. arq=fopen("arq.dat","rb+"); . 
1 pontos 
 
PERGUNTA 4 
Sobre um ponteiro, além as operações de instanciação, podem ser realizadas operações 
aritméticas, como a soma e a subtração. Aplicar operações de soma ou subtração implicam no 
deslocamento do ponteiro. Para essa questão, suponha o seguinte código: 
 
 
#include <stdio.h> 
#include <string.h> 
#include <stdlib.h> 
 
 
int main() 
{ 
int i=0,max; 
char *charvet; 
charvet=(char *)malloc(10*sizeof(char)); 
if(charvet==NULL) 
{ 
printf("Erro de alocacao.\n"); 
return 0; 
} 
strcpy(charvet,"abcdefgh"); 
max=strlen(charvet); 
for(;i<max; i++) 
{ 
if(i%2) 
printf("%c ",*charvet); 
charvet++; 
} 
free(charvet); 
return 0; 
} 
 
 
Assinale a alternativa que apresenta os valores impressos pela função “ printf ”. 
 
.a b c d e f g h. 
 
.a c e g. 
 
.b d. 
 
b d f h. 
 
.a c. 
1 pontos 
 
PERGUNTA 5 
Uma alocação dinâmica de memória consiste em alocar uma certa região de memória para 
receber informações de um certo tamanho que poderá variar ao longo do processamento do 
programa. Para essa questão, enumere as linhas de código a seguir de modo a representar a 
sequência correta que deverá ser programada: 1 para a primeira linha de código que deverá 
ocorrer, 2 para a segunda e assim por diante: 
 
 
( ) vetor = (int *) malloc(sizeof(int)); 
( ) int *vetor; 
( ) free(vetor); 
( ) if(vetor==NULL) 
return; 
( ) *(vetor+i) = 5; 
 
 
Assinale a alternativa que apresenta a sequência correta. 
 
2, 4, 5, 3, 1. 
 
2, 1, 3, 5, 4. 
 
1, 2, 3, 4, 5. 
 
2, 1, 5, 3, 4. 
 
2, 3, 5, 1, 4. 
1 pontos 
 
PERGUNTA 6 
Na linguagem de programação C, podemos encontrar dois tipos básicos de arquivos: os 
arquivos binários e os arquivos texto. A forma de diferenciação, em relação à manipulação, 
consiste no uso de formas de abertura e funções específicas. Para essa questão, assinale, nas 
afirmativas abaixo, com (B) caso relacione-se aos arquivos binários e, com (T) caso relacione-se 
aos arquivos textuais. 
( ) Para manipular o arquivo, usa-se as funções “ fread()” e “ fwrite()”. 
( ) É totalmente legível caso seja aberto em editores de texto do tipo “bloco de notas”. 
( ) Por exemplo, uma informação numérica, ocupa neste tipo de arquivo, uma quantidade de 
bytes compatível com a quantidade de dígitos de seu valor. 
( ) Neste tipo de arquivo, tende-se a gastar menos espaço de armazenamento pois cada 
variável gasta exatamente o seu tamanho ocupado na memória principal; valor do retorno da 
função “ sizeof()”. 
Assinale a alternativa que apresente a sequência correta. 
 
B, T, T, B. 
 
T, B, B, T. 
 
B, T, B, T. 
 
T, B, T, B. 
 
B, B, T, B. 
1 pontos 
 
PERGUNTA 7 
Recursividade é uma técnica que permite a escrita de códigos de forma mais sucinta porém faz 
uso de forma mais massivo da pilha de memória. Para essa questão, analise o código a seguir: 
 
#include <stdio.h> 
 
int f(int a, int b) 
 { 
 if(!b)return a; 
 return f(b, a % b); 
 } 
 
int main() 
{ 
 int x=3, y=10; 
 printf("%d",f(x,y)); 
} 
 
Escolha a opção correta: 
 
.O código calcula o MDC (Máximo Divisor Comum) usando o algoritmo de Euclides. 
 
.O código calcula o MMC (Mínimo Múltiplo Comum) usando o método da fatoração. 
 
.O código calcula a mediana entre os dois números. 
 
.O código calcula o número de arranjos estatísticos de Ax,y. 
 
.O código calcula o número de combinações estatísticas de xCy. 
1 pontos 
 
PERGUNTA 8 
Em algumas situações, como inversão de vetores, surge a necessidade de implementar uma 
função que realiza a troca de dois elementos entre si, ou seja, o elemento “ vet[i] ” recebe o 
valor de “ vet[j] ” e “ vet[j] ” recebe o valor de “ vet[i] ”. Sendo assim, pode-se codificar uma 
função que realizará exatamente essa permuta. Para essa questão, considere o código 
apresentado a seguir: 
 
 
#include <stdio.h> 
#include <string.h> 
 
void swap(char __c1, char __c2) 
{ 
 char tmp; 
 tmp = __c1; 
 __c1 = __c2; 
 __c2 = tmp; 
} 
 
void Ordena(char str[]) 
{ 
 for(int i=0; i < strlen(str)-1; i++) 
 for(int j=i+1; j < strlen(str); j++) 
 if(str[i]>str[j]) swap(__str[i],__str[j]); 
} 
 
int main() 
{ 
 char str[11]="icbjdgfeah"; 
 printf("Vetor original: %s\n",str); 
 Ordena(str); 
 printf("Vetor ordenado: %s\n",str); 
 return 0; 
} 
 
Assinale a opção abaixo que contenha os elementos para preencher as lacunas (nas opções 
abaixo, o símbolo ”_” significa deixar a lacuna sem preenchimento): 
 
. & ; & ; * ; * ; * ; * ; & ; & . 
 
. * ; * ; * ; * ; * ; * ; & ; & . 
 
. * ; * ; _ ; _ ; _ ; _ ; & ; & . 
 
. * ; * ; * ; * ; * ; * ; _ ; _ . 
 
. _ ; _ ; _ ; _ ; _ ; _ ; _ ; _ . 
1 pontos 
 
PERGUNTA 9 
Na computação, existem várias formas de representação numérica, dentre as quais, podemos 
citar as representações decimal, hexadecimal, octal e binária. Para realizar a conversão, por 
exemplo, de um valorformatado na base decimal para uma base K , basta realizar divisões 
sucessivas por K e coletar o último quociente e todos os restos das divisões em ordem inversa. 
Suponha a necessidade de criar uma função recursiva para a conversão de um número na base 
decimal para a representação binária (base 2). Para essa questão, suponha o trecho a seguir: 
 
#include <stdio.h> 
 
void Dec2Bin(int n) 
{ 
 if(__) printf("%d",n); 
 else 
 { 
 ___; 
 ___; 
 } 
} 
 
int main() 
{ 
 
 Dec2Bin(14); 
 return 0; 
} 
 
Assinale a opção abaixo que contenha os trechos de código para preencher as lacunas: 
 
. n<2 ; printf("%d",n%2) ; Dec2Bin(n / 2) . 
 
. n<2 ; Dec2Bin(n / 2) ; printf("%d",n%2) . 
 
. n==0 ; Dec2Bin(n / 2) ; printf("%d",n%2) . 
 
. n<2 ; Dec2Bin(n % 2) ; printf("%d",n/2) . 
 
. n<2 ; printf("%d",n/2) ; Dec2Bin(n % 2) . 
1 pontos 
 
PERGUNTA 10 
Denomina-se como matriz esparsa aquela que a quantidade de elementos não nulos é mínima. 
Sendo assim, para economia de recursos de memória, aloca-se apenas os campos que 
possuem valores representativos. Para essa questão, analise as afirmativas abaixo e classifique 
com “S” aquelas que podem contribuir para a implementação de matriz esparsa e, com “N”, 
aquelas que não podem. 
 
 
( ) Podemos implementar matriz esparsa como uma matriz de ponteiro para ponteiro. Cada 
linha de ponteiros aponta para um vetor de ponteiros, onde cada célula é uma estrutura 
composta pelos campos: valor e número da coluna. 
( ) A matriz NxM é representada por um vetor com N*M células, onde cada célula é um 
registro composto pelos campos: linha, coluna e valor. 
( ) A matriz é formada por uma estrutura estática, independentemente do número de 
elementos nulos. 
( ) A matriz esparsa pode ser representada por uma matriz de ponteiro para ponteiro onde 
cada linha aponta para uma coluna alocada dinamicamente cujo tamanho é em função da 
quantidade dos elementos não nulos. 
 
 
Assinale a alternativa que apresenta a sequência que você considera correta. 
 
S, S, N, S. 
 
N, S, S, N. 
 
S, N, N, S. 
 
N, S, N, S. 
 
S, N, S, N.

Outros materiais