Buscar

QUESTIONÁRIO UNIDADE VI (2017/2)

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

Prévia do material em texto

QUESTIONÁRIO UNIDADE VI (2017/02) – LINGUAGEM E TÉCNICAS DE PROGRAMAÇÃO
Pergunta 1
Analise o programa abaixo e assinale a alternativa correta:
#include<stdio.h>
void incr_vetor (int *v, int tam){
	int i;
	for (i = 0; i < tam; i++)
		v[i]++;
}
int main()
{
 int a[]={1,3,5};
 incr_vetor(a, 3);
 printf("%d %d %d\n", a[0], a[1], a[2]);
 system("pause");
 return 0;
}
Resposta: a. 2 4 6
Pergunta 2
A função abaixo (trecho de um programa) deveria trocar os valores entre duas variáveis, mas possui um erro.
void troca (int *i, int *j)
{
 int *temp;
 *temp = *i;
 *i = *j;
 *j + *temp;
}
A alternativa que identifica o erro é:
Resposta: d. A variável “temp” não precisava ser um ponteiro.
Pergunta 3
O programa abaixo deveria identificar entre duas palavras qual vem antes no dicionário:
#include<stdio.h>
#include<string.h>
int main()
{
 char *a, *b;
 *a = "abacate";
 *b = "uva";
 if(strcmp(a,b)<0)
 printf("%s vem antes de %s no dicionario", a,b);
 else
 printf("%s vem depois de %s no dicionario", a,b);
 printf("\n");
 system("pause");
 return 0;
}
A alternativa que identifica o erro é:
Resposta: c. As variáveis “a” e “b” não precisavam ser ponteiros na atribuição de valores.
Pergunta 4
Dado o programa abaixo e considerando as entradas 0, 1 e 5; qual será a saída apresentada para cada entrada respectivamente?
#include<stdio.h>
int f1(int n)
{
 if(n==0)
 return 1;
 else
 return(n*f1(n-1));
}
int main()
{
 int a,b;
 printf("Digite um valor inteiro:");
 scanf("%d", &a);
 b=f1(a);
 printf("%d\n", b);
 system("pause");
 return 0;
}
Resposta: c. 1, 1, 120.
Pergunta 5
Dado o programa abaixo e considerando as entradas 0, 1 e 5; qual será a saída apresentada para cada entrada respectivamente?
#include<stdio.h>
int f2(int n)
{
 if(n==0)
 printf(“Zero”);
 else
{
 printf(“%d”, n);
 f2(n-1);
}
}
int main()
{
 int a,b;
 printf("Digite um valor inteiro:");
 scanf("%d", &a);
 f2(a);
 system("pause");
 return 0;
}
Resposta: e. Zero, 1Zero, 54321Zero.
Pergunta 6
Dado o programa abaixo e considerando as entradas 0, 1 e 5; qual será a saída apresentada para cada entrada respectivamente?
#include<stdio.h>
int func(int n)
{
 if(n==0)
 return (0);
 return(n+func(n-1));
}
int main()
{
 int a,b;
 printf("Digite um valor inteiro:");
 scanf("%d", &a);
 b=func(a);
 printf("%d\n", b);
 system("pause");
 return 0;
}
Resposta: a. 0, 1, 15
Pergunta 7
Dado o programa abaixo e considerando as entradas 0, 1 e 5; qual será a saída apresentada para cada entrada respectivamente?
#include<stdio.h>
int func(int n)
{
 if(n==0)
 return (0);
 return(3*n+func(n-1));
}
int main()
{
 int a,b;
 printf("Digite um valor inteiro:");
 scanf("%d", &a);
 b=func(a);
 printf("%d\n", b);
 system("pause");
 return 0;
}
Resposta: b. 0, 3, 9
Pergunta 8
Analise a função caracteres e identifique a alternativa que melhor descreve a tarefa executada por ela.
char *caracteres(char *s1, char *s2){
 int i,j,w,n=0, encontrado;
 char *s3;
 for(i=0; s1[i]!='\0'; i++){
 for(j=0; s1[j]!='\0'; j++){
 if(s1[i]==s2[j]){
 n++;
 break;
 }
 }
 }
 s3 = malloc((n+1)*sizeof(char));
 n=0;
 for(i=0; s1[i]!='\0'; i++){
 for(j=0; s1[j]!='\0'; j++){
 if(s1[i]==s2[j]){
 encontrado=0;
 for(w=0; w<n; w++){
 encontrado=1;
 break;
 }
 }
 if(encontrado==0){
 s3[n]=s1[i];
 n++;
 break;
 }
 }
 }
 }
 s3[n]='\0';
 return s3;
}
Resposta: c. Lê duas cadeias s1 e s2 e retorna uma nova cadeia s3 que contem todos os caracteres que aparecem em s1 e s2.
Pergunta 9
O programa abaixo deve receber uma string de caracteres e uma letra. Possuir uma função que devolve um vetor de inteiros contendo as posições (índices no vetor da string) onde a letra foi encontrada e um inteiro contendo o tamanho do vetor criado (total de letras iguais encontradas).
#include<stdio.h>
#include<stdlib.h>
int *acha_caractere(char *str, char c, int +pn){
 int i=0, n=0, *indices=0;
 for(i=0; str[i]!='\0', i++){
 if(str[i]==c){
 n++
 }
 }
 ____________________________________________
 for(i=0,n=0;str[i]!='\0';i++){
 if(str[i]==c){
 indices[n]=i;
 n++;
 }
 }
 *pn=n;
 return indices;
}
int main(){
 int *indices=0, n=0, i;
 char *frase = "Universidade Paulista";
 _____________________________________________
 for (i=0; i<n; i++){
 printf("%d ", indices[i]);
 }
 return 0;
}
Para que o programa execute corretamente sua tarefa, devemos preencher a linha 11 e a linha 25, respectivamente, conforme a alternativa: 
Resposta: a. índices=(int *) malloc(n*sizeof(int));
	 Índices = acha_caractere(frase, ‘a’, &n);
Pergunta 10
Ao declarar um vetor, para dimensiona-lo, é necessário saber de antemão quantos elementos deveriam compo-lo. Temos de prever o numero máximo de elementos no vetor durante o processo da codificação.
Com base nesses dados, avalie as afirmações seguintes:
I – o pré-dimensionamento do vetor é um fator que limita a programação
II – podemos superdimensionar o vetor, pois nunca estamos sujeitos a ter falta de memoria
III – podemos reservar a memoria, istoé, solicitar ao programa que aloque dinamicamente um espaço na memoria durante sua execução
É correto apenas o que se afirma em:
Resposta: e. I e III apenas

Outros materiais