1 Questões de Múltipla Escolha

Documentos relacionados
INF 1620 P4 30/06/07 Questão 1 Nome:

1 Exercícios com ponteiros

INF 1620 P4-06/12/02 Questão 1 Nome:

INF 1620 P2-14/10/05 Questão 1 Nome:

INF 1620 P4-27/06/02 Questão 1 Nome:

a) Implemente uma função que retorne uma aproximação do valor de π, de acordo com a F órmula de Leibniz: ( 1)

INF 1620 P2-17/05/08 Questão 1 Nome:

INF 1620 P1-18/09/04 Questão 1 Nome:

Departamento de Informática - PUC-Rio INF 1007 Programação 2 P3 26/11/2010

INF 1620 P2-23/10/04 Questão 1 Nome:

INF 1620 P1-14/04/07 Questão 1 Nome:

INF 1620 P3-27/11/04 Questão 1 Nome:

Departamento de Informática - PUC-Rio INF 1007 Programação 2 P3 23/06/2010

CAP. IX - MANIPULAÇÃO DE ARQUIVOS Generalidades sobre Arquivos. 9.2 Abertura e Fechamento de Arquivos. Operações com arquivos:

INF 1620 P4-13/12/01 Questão 1 Nome:

1 Exercícios com ponteiros

Algoritmos e Programação

INF 1620 P1-11/04/08 Questão 1 Nome:

Estruturas de Dados. Módulo 15 - Arquivos. 2/6/2005 (c) Dept. Informática - PUC-Rio 1

INF 1620 P3-29/06/04 Questão 1 Nome:

INF 1620 P3-21/06/08 Questão 1 Nome:

Computação 2. Aula 3. Diego Addan Vetores de caracteres (strings)

Caracteres e Cadeias de Caracteres

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Prova - 23a de junho de 2008

Curso Básico de Programação Aula 11. Revisão Aula Anterior Laços de Repetição While; Do-While; For.

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Terceira Aula Prática - 10 de setembro de 2010

Computação 2. Aula 8. Profª. Fabiany Arquivos

CURSO BÁSICO DE PROGRAMAÇÃO AULA 11. Revisão Aula Anterior Vetores Cadeia de Caracteres

Computação I - C Prova /10/ Profs. Adriano Cruz e Valeria Bastos

Linguagem C: Introdução

INF 1620 P1-04/10/03 Questão 1 Nome:

Departamento de Informática - PUC-Rio INF 1007 Programação 2 P4 07/12/2010

INF 1620 P1-17/09/05 Questão 1 Nome:

INF 1620 P2-01/11/03 Questão 1 Nome:

Métodos Computacionais. Arquivos

Apêndice B. Cadeias de Caracteres (Strings)

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 29 de agosto de 2008

Linguagem C: Ponteiros - Alocação Dinâmica

Linguagem C: Arquivo-Texto

Linguagem de Programação I Vetores e Strings. Thiago Leite Francisco Barretto

Computação Informática

Programação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação

Programação de Computadores 1 Lista 2. Prof. Álvaro A. F. de Souza DECSI - ICEA - UFOP

1ª Lista de Exercícios

Lista de Exercícios para P1 INF1007 (Prog2) 15/04/2013. ATENÇÃO: O material a seguir não sofreu revisão e pode conter erros.

INF 1007 Programação II Semestre 09.2

3.1 - Funções para manipular dados de entrada e saída padrão

Ponteiros. Introdução e Alocação Dinâmica

INF 1620 P3-02/07/02 Questão 1 Nome:

Linguagem C Ficheiros Compilação Separada

Estrutura de dados 2. Ponteiro. Prof. Jesuliana N. Ulysses

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO - CAMPUS CAXIAS. Aluno (s): 01 ATIVIDADE. Revisão de Conteúdo

Ponteiros em C. Adriano Joaquim de Oliveira Cruz 21 de julho de Instituto de Matemática Departamento de Ciência da Computação UFRJ

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Introdução à Programação

INF 1620 P3-06/12/03 Questão 1 Nome:

Conhecendo a Linguagem de Programação C

Computação 2. Aula Profª. Fabiany Listas Duplamente Encadeadas

GEQ Prof. Paulo R. Coelho. Lista para prova

DAS5102 Fundamentos da Estrutura da Informação

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Sexta Aula Prática - 28 de abril de 2011

1ª versão. #include <stdio.h> #include <string.h> #include <stdlib.h> #define maxdiscos 1000

C Estruturas. Adriano Cruz 21 de julho de Instituto de Matemática Departamento de Ciência da Computação UFRJ

Transcrição:

Universidade Federal do Rio de Janeiro Centro de Ciências Matemáticas e da Natureza Instituto de Matemática Departamento de Ciência da Computação Computação para Informática - Prof. Adriano Joaquim dm Oliveira Cruz Segunda Prova - 04 de dezembro de 2006 Nome: Assinatura: 1 Questões de Múltipla Escolha Nesta parte da prova você deve resolver 10 questões de múltipla escolha. Escolha uma das cinco opções oferecidas em cada uma das questões. Observe que cada uma das questões vale 0,5 ponto. Não deixe nenhuma resposta sem marcação. 1 a Questão: Considere o seguinte programa: int d [6] = 10, 33, 47, 13, 22, 55; int i, m1, m2 ; for (i =0; i <5; i ++) i f (d[i] > d[i +1]) m1 = d[i ]; m2 = d [0]; for (i =0; i <6; i ++) i f (d[i] > m2 ) m2 = d[i ]; printf ("%d %d ", m1, m2 ); (a) 47 47 (b) 55 55 (c) 55 47 (d) 47 55 (e) 10 55 1

2 a Questão: Considere o seguinte programa: #include < string.h > char pm ( char c) i f (c >= 'A ' && c <= 'Z ') return c - 'A ' + 'a '; return c; int main (void ) char * texto = " Esta e uma pequena frase."; char *v = " aeiou "; int i = 0, j, c = 0; while ( texto [i ]) for (j = 0; j < strlen (v ); j ++ ) i f ( pm ( texto [i ]) == v[j ]) c ++; break; i ++; printf ("%d\n", c ); (a) 13 (b) 10 (c) 11 (d) 12 (e) 25 3 a Questão: Considere o seguinte programa: 1 2 #include < stdlib.h > 3 4 5 char * p1, p2 ; 6 7 p2 = malloc ( sizeof (char )); 8 p1 = p2 ; 9 * p2 = 'c '; 10 printf ("%c", * p1 ); 11 12 13 2

O gcc indicou um erro durante a compilação deste trecho de programa. Para corrigi-lo o que deve ser feito? (a) Faltou incluir uma linha após a linha 8 para alocar memória para o ponteiro p1. (b) Faltou indicar quantos caracteres o ponteiro p2 irá apontar na linha 8. (c) Incluir p2 no comando printf na linha 12. (d) Faltou colocar um asterisco antes de p2 na linha 5. (e) Nenhuma das respostas anteriores. 4 a Questão: Considere o seguinte programa: #include < string.h > int i, j; char nome [80], c; gets ( nome ); for (i =0, j= strlen ( nome ) -1; i < strlen ( nome ); i ++, j - -) c = nome [i ]; nome [i] = nome [j ]; nome [j ]= c; puts ( nome ); O que será impresso caso a cadeia de caracteres fornecida seja 87654321? (a) 87654321 (b) 43218765 (c) 18726354 (d) 67891234 (e) 12345678 5 a Questão: Considere o seguinte programa: int i, j; for (i =1; i <=5; i ++) for (j =0; j <5; j ++) i f ( j < i) printf ("%d", j ); printf ("\n" ); 3

O que será impresso por este programa? (a) 1 (b) 00000 (c) 0 (d) 01234 (e) 12345 12 11111 01 0123 1234 123 22222 012 012 123 1234 33333 0123 01 12 12345 44444 01234 0 1 6 a Questão: Considere o seguinte programa: #define TAM 8 typedef struct _PILHA int pilha [ TAM ]; int topo ; PILHA ; void inserepilha ( int valor, PILHA * p) Inserir dois comandos aqui PILHA p; p. topo = -1; inserepilha (10, &p ); inserepilha (20, &p ); printf ("%d %d\n", p. pilha [0], p. pilha [1]); Quais dois comandos devem ser incluídos no trecho indicado na listagem para que os valores 10 e 20 sejam impressos pelo programa? (a) pilha[topo] = valor; topo++; (b) topo++; pilha[topo] = valor; (c) p.topo++; p.pilha[p.topo] = valor; (d) p->pilha[p->topo] = valor; p->topo++; (e) p->topo++; p->pilha[p->topo] = valor; 4

7 a Questão: Considere o seguinte programa: int umavariavel = 10; void Funcao () umavariavel ++; void OutraFuncao ( int v) v ++; int umavariavel = 5; printf ("%d, ", umavariavel ); Funcao (); printf ("%d, ", umavariavel ); OutraFuncao ( umavariavel ); printf ("%d, ", umavariavel ); MaisUmaFuncao (& umavariavel ); printf ("%d, ", umavariavel ); void MaisUmaFuncao ( int * c) printf ("%d, ", umavariavel ); *c += 1; (a) 5, 5, 6, 10, 7, (b) 5, 5, 5, 11, 6, (c) 5, 6, 7, 10, 8, (d) 5, 5, 5, 10, 6, (e) 5, 5, 6, 11, 6, 8 a Questão: Considere o seguinte programa: #include < string.h > char * nome = " computacao "; char *p, *q; p = nome ; q = p + strlen ( nome ) - 1; while (p < q ) printf ("%c %c;", *p, *q ); p ++; q - -; 5

(a) c o;m p;u t;a c;a o; (b) c o;o a;m c;p a;u t; (c) c t;o a;m c;p a;u o; (d) u o;p a;m c;o a;c t; (e) u t;p a;m c;o a;c a; 9 a Questão: Considere o seguinte programa: int matriz [5][5]; int i, j; FILE * pa ; char * nomearquivo = " dados. txt "; i f (!( pa = fopen ( nomearquivo, "r" ))) return 1; for (i =0; i <5 ; i ++) for (j =0; j <5 ; j ++) fscanf (pa, "%d", & matriz [i ][ j ]); for (i =0; i <5; i ++) printf ("%d ", matriz [i ][ i ]); for (i =0; i <5; i ++) printf ("%d ", matriz [i ][4 - i ]); for (i =0; i <5; i ++ ) printf ("%d ", matriz [i ][ i /2]); Este programa se chama teste6.exe. Para executá-lo, o usuário digitou a seguinte linha de comando: teste6 informatica 3 7 (a) forma (b) orma (c) ormat (d) inf (e) informa 6

10 a Questão: Considere o seguinte programa: int matriz [5][5]; int i, j; FILE * pa ; char * nomearquivo = " dados. txt "; i f (!( pa = fopen ( nomearquivo, "r" ))) return 1; for (i =0; i <5 ; i ++) for (j =0; j <5 ; j ++) fscanf (pa, "%d", & matriz [i ][ j ]); for (i =0; i <5; i ++) printf ("%d ", matriz [i ][ i ]); for (i =0; i <5; i ++) printf ("%d ", matriz [i ][4 - i ]); for (i =0; i <5; i ++ ) printf ("%d ", matriz [i ][ i /2]); Este arquivo leu o seguinte arquivo de dados: 1 2 3 4 5 10 20 30 40 50 100 200 300 400 500 1000 2000 3000 4000 5000 10000 20000 30000 40000 50000 (a) 1 2 3 4 5 ; 1 20 300 4000 50000 ; 5 40 300 2000 10000 ; (b) 1 20 300 4000 50000 ; 5 4 30 300 2000; 3 30 300 3000 30000 ; (c) 1 20 300 4000 50000 ; 5 40 300 2000 10000 ; 1 10 200 2000 30000 ; (d) 1 10 100 1000 10000 ; 1 20 300 4000 50000 ; 1 1 200 2000 30000 ; (e) 1 20 300 4000 50000 ; 5 40 300 2000 10000 ; 1 10 200 1000 20000 ; 7

2 Programas Nesta seção você deverá escrever 2 programas. Cada um dos problemas vale 2.5 pontos. 1 a Problema: A maioria dos fãs de palavras cruzadas estão acostumados com anagramas, que são grupos de palavras com as mesmas letras, mas em ordem diferentes. Por exemplo: Poti, Tipo; ViDA, DiVa; AmoRA, aroma. Algumas palavras, todavia, não têm este atributo, não importa como você rearrange as letras não é possível formar outra palavra válida. Estas palavras são chamadas de ananagramas. Escreva um programa que leia uma série de pares de palavras e diga os pares que formam anagramas. Observe que palavras com uma única letra são por denições anagramas já que elas não podem ser arranjadas. Dica: Observe que anagramas são formados pelo mesmo conjunto de letras e, portanto, a freqüência de cada uma das letras é igual nas duas palavras. Entrada A entrada consiste de uma série de linhas com pares de palavras. Nenhuma palavra terá mais do que 20 caracteres que podem ser maiúsculas e/ou minúsculas. Espaços podem aparecer livremente em torno das palavras, mas pelo menos um espaço aparece entre as palavras. Observar que palavras que contém as mesmas letras mesmo que de caixas diferentes são consideradas anagramas. Por exemplo: vida e diva. A entrada termina por uma linha com dois caracteres # #, separados por pelo menos um espaço. Saída A saída consistirá de uma série de linhas informando se as palavras lidas são anagramas. Exemplo da Entrada: voo Ovo Hoje jeho pito TiPO dia noite # # Exemplo Saída: Anagramas Anagramas Anagramas Nao anagramas 8

Solução do programa 1 9

2 a Problema: Considere a estrutura denida abaixo que armazena informações sobre um robot andando em um mundo plano com origem (0,0) no canto superior esquerdo. typedef struct robot int posx, posy ; /* posicao atual do robot */ int passos ; /* passos dado pelo robot desde o início */ ROBOT ; O robot anda de acordo com ordens dada por um jogador através do teclado. O mundo é um quadrado de tamanho igual a 80 por 80, ou seja o robot não pode ir para coordenadas negativas nem maiores que 79. Uma ordem que faça o robot se mover para fora destes limites faz com que ele que parado no mesmo lugar. O membro da estrutura ROBOT chamado passos armazena quantos passos o robot realmente andou, portanto somente ordens que o façam andar aumentam o número de passos. Escreva um programa que obedeça as ordens dadas por um usuário. Uma ordem é dada pelo jogador através de caracteres que podem ser letras maiúsculas ou minúsculas. As seguintes ordens são possíveis: N: Anda na direção norte; S: Anda na direção sul; L: Anda na direção leste; O: Anda na direção oeste; Entrada A entrada consiste de várias linhas de caracteres contendo o conjunto de ordens que o robot deve obedecer. Para cada linha lida considerar que o robot começa na posição (39,39) do mundo. Nenhum conjunto pode ter mais de 80 caracteres. Os caracteres podem ser letras maiúsculas ou minúsculas. O programa termina quando um vetor de tamanho zero for lido. Saída A saída é a posição onde o robot está no momento e quantos passos ele andou. Exemplo da Entrada: NLSo SSSS NNnNNnN o vvvv vzfsn Exemplo Saída: x = 39, y = 39, passos = 4 x = 39, y = 43, passos = 4 x = 39, y = 32, passos = 7 x = 38, y = 39, passos = 1 x = 39, y = 39, passos = 0 x = 39, y = 39, passos = 2 10

Solução do programa 2 11