TP27-6-2011

Componente Teórico-Pártica Linguagem C e JavaScript Programação de Computadores II MIEGI * UMinho

Pedro Pimenta Jun. 2011

Componente Teórico-Prática da prova final da Unidade Curricular de Programação de Computadores II, curso de MIEGI, edição do ano lectivo 2010/11. Leia atentamente as perguntas, e responda com atenção ao que lhe é perguntado. O controlo da duração da prova é da sua responsabilidade - não exceda 80 minutos!
Top of Form

1. A figura seguinte representa o conjunto das várias etapas e processos que se podem definir na actividade a

que, genericamente, se chama “programar” - descreva os processos “A” , “C” e “F”, detalhando os principais objectivos e dificuldades que lhe estão associados.

[Resposta livre]

2. O excerto seguinte é de programa escrito para ler dados de um ficheiro texto (DDP-i.txt) sobre nomes de
pontos (máx. 100 pontos) e respectivas coordenadas num sistema OXY. Assinale as afirmações verdadeiras:

Para que este excerto possa compilar correctamente, é necessário antecedê-lo de #include <conio.h> Para que este excerto possa compilar correctamente, é necessário antecedê-lo de #include <stdlib.h> Para que este excerto possa compilar correctamente, é necessário antecedê-lo de #include <string.h> Para que este excerto possa compilar correctamente, é necessário antecedê-lo de #include <time.h> a instrução ´fi=fopen("DDP-i.txt", "w");´ é compatível com o propósito do programa; a instrução ´fi=fopen("DDP-i.txt", "w");´ não é compatível com o propósito do programa;

3. O excerto seguinte é de programa escrito para ler dados de um ficheiro texto (DDP-i.txt) sobre nomes de
pontos (máx. 100 pontos) e respectivas coordenadas num sistema OXY. Assinale as afirmações verdadeiras:

a ordem das instruções das linhas 45 a 48 é compatível com a estrutura do ficheiro de dados (texto, número, número, texto, número, número, etc...) a ordem das instruções das linhas 45 a 48 não é compatível com a estrutura do ficheiro de dados (texto, número, número, texto, número, número, etc...) Os mesmos resultados se obteriam se a instrução ´fscanf(fi, "%f\n", & ponto[i].y);´ (linha 48) fosse substituída por ´fscanf(fi, "%f\n", & ponto[i++].y);´ e a linha 50 fosse apagada; Os mesmos resultados se obteriam se a instrução ´fscanf(fi, "%f\n", & ponto[i].y);´ (linha 48) fosse substituída por ´fscanf(fi, "%f\n", & ponto[++i].y);´ e a linha 50 fosse apagada; A instrução da linha 52 está correctamente escrita; A instrução da linha 52 está incorrecta - deveria ser ´fclose(*fi);´ (como na linha 40)

4. A figura abaixo mostra
• • um formulário, construído em HTLM, que contextualiza (entrada de dados / saída de resultados) uma script, em Javascript, para a determinação de Combinações simples, e um excerto dessa script.

Assinale as afirmações correctas:

A função cf (linhas 8 a 13) implementa o cálculo do factorial do valor da variável (´n´) recebido como parâmetro; A função cf (linhas 8 a 13) implementa a determinação dos divisores do valor da variável (´n´) recebido como parâmetro; Os mesmos resultados, para a função cf(), seriam obtidos se o ciclo for (linha 11) fosse escrito ´for (i=2; i<=n; i++) nf*=i;´ Os mesmos resultados, para a função cf(), seriam obtidos se o ciclo for (linha 11) fosse escrito ´for (i=2; i< n; i++) nf*=i;´ Para cumprir o indicado no enunciado, o formulário mostrado na figura abaixo deve chamar a função cf() - e, só depois, a função cnpp(). Para cumprir o indicado no enunciado, o formulário mostrado na figura abaixo só deve chamar, directamente, a função cnpp().

5. O excerto seguinte é de programa escrito para ler dados de um ficheiro texto (DDP-i.txt) sobre nomes de
pontos (máx. 100 pontos) e respectivas coordenadas num sistema OXY. Assinale as afirmações verdadeiras:

o tipo de variável ´info´, definido na linha 31, é compatível com a informação a armazenar (nome do ponto e respectivas coordenadas num sistema OXY) o tipo de variável ´info´, definido na linha 31, não é compatível com a informação a armazenar (nome do ponto e respectivas coordenadas num sistema OXY) a dimensão do vector ponto (linha 35) é compatível com o enunciado do problema; a dimensão do vector ponto (linha 35) não é compatível com o enunciado do problema; as instruções fscanf() (linhas 47 e 48) estão incorrectamente escritas - o formato correcto seria ´fscanf("%f\n", & ponto[i].x, fi);´ a instrução ´FILE fi;´ (linha 40) está incorrectamente escrita - a sintaxe correcta seria ´FILE *fi;´

6. A figura mostra um formulário, construído em HTLM, que contextualiza (entrada de dados / saída de

resultados) uma script, em Javascript, para a determinação do primeiro número primo de um array , e um excerto dessa script. Assinale as afirmações correctas:

Uma vez que a variável ´nd´ é inicializada na linha 23 (nd=0;), a linha 18 (nd=-1;) poderia ser apagada (ou comentada); a instrução ´s.Close();´ (linha 32) permite fechar a janela do browser em que está a correr o programa em Javascript; a instrução ´s.Close();´ (linha 32) permite fechar o ficheiro associado à variável ´s´ em instruções anteriores (não visíveis nesta imagem); a instrução ´uf.primo.value=´ (...) refere-se, provavelmente, à actualização do valor (value) de um elemento chamado ´primo´ (indicado em laranja na figura), de um formulário referido por ´uf´ A(s) instrução de actualização de uf.primo.value=... têm que ser executadas antes de s.Close(); na instrução ´uf.primo.value=v[--i];´, o operador unário ´--i´ está a ser bem utilizado para corrigir o último ´i=i+1;´ executado;

7. O programa seguinte foi escrito para i) dada uma string (cadeia de caracteres) pelo teclado, imprimir a

mesma sequência de caracteres mas "ao contrário" ("oirártnoc oa"), substituindo as vogais minúsculas por vogais maiúsculas. Exemplo: string de entrada:"Programação de Computadores II" string de saída :"II sErOdAtUpmOC Ed OãçAmArgOrP" Assinale as afirmações verdadeiras:

Para que o programa faça o que é pedido no enunciado, a linha 22 deverá ser "for (i=c; i>=0; i--)"; Para que o programa faça o que é pedido no enunciado, a linha 22 deverá ser "for (i=0; i< c; i--)"; A instrução "switch" (linha 23) está correctamente escrita; A instrução "switch" (linha 23) está incorrecta - deveria ser "select case texto[i]" as instruções "texto[i]=..." (linhas 24 a 28) estão todas incorrectas - deveria ser "strcpy(texto[i], ...);" as linhas 24 a 28 estão todas incompletas - no final de cada uma das linhas deveria estar a instrução "break;"

8. O programa seguinte foi escrito para determinar, de um conjunto de 200 valores inteiros, aleatórios, entre 1

(inclusivé) e 1000 (inclusivé) i) quantos são ímpares; ii) qual a soma dos elementos pares; e escrever para o ficheiro "rp2.txt"; iii) todos os valores pares, iv) quantos valores ímpares há no conjunto inicial e v) qual a soma dos valores pares do conjunto original Assinale as afirmações verdadeiras:

Para que este programa compile correctamente, será necessário antecedê-lo de #include <math.h> Para que este programa compile correctamente, será necessário antecedê-lo de #include <conio.h> Para que este programa compile correctamente, será necessário antecedê-lo de #include <stdlib.h> Para que este programa compile correctamente, será necessário antecedê-lo de #include <stdio.h> O ciclo "for(i=0; i<200;i++)" (linha 16) gera 200 valores, como especificado no propósito do enunciado; O ciclo "for(i=0; i<200;i++)" (linha 16) só gera 199 valores, e não satisfaz o propósito do enunciado;

9. A figura mostra
• • um formulário, construído em HTLM, que contextualiza (entrada de dados / saída de resultados) e o correspondente código HTML.

Assinale as afirmações correctas:

o formulário está correctamente estruturado (inicia com <form...> e termina com </form>) o formulário está incompleto, porque não especifica que função será invocada para realizar o cálculo pretendido. o código apresentado está errado, porque a acção ´ ´ (linha 40) refere uma função com o nome ´cnpp´ mas existe um campo com esse nome (linha 43); o código está correcto - a acção ´ ´ (linha 40) refere uma função com o nome ´cnpp´, que não se confunde com o campo com o mesmo nome (linha 43); o código apresentado cria uma tabela com quatro colunas, e não com duas como está indicado na figura; o código apresentado cria uma tabela com duas colunas, como indicado na figura;

10. O excerto seguinte é de um programa que pretende determinar se três valores, inteiros, introduzidos pelo
Utilizador, podem ser os comprimentos dos lados de um triângulo rectângulo. Assinale as afirmações verdadeiras:

Para que este excerto possa ser compilado, será necessário incluir a biblioteca stdio (#include <stdio.h>); Para que este excerto possa ser compilado, será necessário incluir a biblioteca conio (#include <conio.h>); Para que este excerto possa ser compilado, será necessário incluir a biblioteca stdlib (#include <stdlib.h>); Para que este excerto possa ser compilado, será necessário incluir a biblioteca math (#include <math.h>); O teste da linha 31 está incorrecto - para o programa funcionar correctamente, deveria ser: "if(pow(c,2)!=pow(a,2)+pow(b,2))" (!=, e não ==); Outra forma, equivalente, de escrever o teste da linha 23 é: if(a^2==b^2+c^2);

11. O excerto seguinte é de um programa que pretende simular 10 lançamentos de dois dados, de face
numeradas de 1 a 6, e, por análise dos resultados, imprimir: 1. o valor da soma (dos valores obtidos nos dois dados) em cada um dos lançamentos; 2. após os 10 lançamentos, imprimir o menor e o maior valor (soma) obtido; Assinale as afirmações verdadeiras:

a instrução "srand ( (unsigned)time(NULL) );" (linha 16) tem como efeito prático que o programa produza a mesma simulação sempre que é executado; o propósito da utilização de "srand ( (unsigned)time(NULL) );" (linha 16 neste programa seria igualmente atingido se a instrução fosse colocada na linha 29, antes da impressão do "maior" e do "menor"; O programa cumpriria igualmente o enunciado se os dois "if"s (linhas 26 e 27) fossem escritos antes do "printf" da linha 24; os "ifs" das linhas 24 e 25 não cumprem o propósito pretendido - deveria antes ser: if (soma < maior) maior=soma; if (soma > menor) menor=soma; O formato de escrita das variáveis "maior" e "menor" (linhas 30 e 31) deviam incluir um caracter depois da vírgula ("%2.1d") porque os valores calculados podem ter erros de arredondamento. Para as gamas de valores que irão ser manipulados neste programa, teria sido mais adequado escolher variáveis float em vez de int (linha 14);

12. O programa seguinte foi escrito para determinar, de um conjunto de 200 valores inteiros, aleatórios, entre 1

(inclusivé) e 1000 (inclusivé) i) quantos são ímpares; ii) qual a soma dos elementos pares; e escrever para o ficheiro "rp2.txt"; iii) todos os valores pares, iv) quantos valores ímpares há no conjunto inicial e v) qual a soma dos valores pares do conjunto original Assinale as afirmações verdadeiras:

Se as variáveis "ki" e "soma" fossem inicializadas na linha 13 (int x[200], ki=0, soma=0, i;), as linhas 20 e 21 poderiam ser apagadas, que o funcionamento do programa não seria alterado; As variáveis "ki" e "soma" podem ser inicializadas na linha 13 (int x[200], ki=0, soma=0, i;), mas têm que ser re-inicializadas nas linhas 20 e 21 por causa do ciclo for das linhas 16-18; O bloco "if" das linhas 26 a 32 contabiliza / conta os valores pares e calcula a soma dos valores ímpares, satisfazendo o enunciado; Uma forma de melhorar o funcionamento deste programa seria alterar a linha 26 para if (x[i]%2==1) Uma forma de melhorar o funcionamento deste programa seria alterar a linha 26 para if (x[i]%2!=0) Uma forma de melhorar o funcionamento deste programa seria alterar a linha 26 para if (x[i]%2>0)

13. O excerto seguinte é de programa escrito para i) ler dados de um ficheiro texto (DFA-i.txt) sobre um

conjunto de automóveis (marca, cilindrada, matrícula, País de registo, Ano de Registo) e ii) armazenar esses dados num array de registos (variáveis heterogéneas). Assinale as afirmações verdadeiras:

A instrução "while (!feof(fi))" (linha 34) está incorrecta - deveria ser "while (feof(fi))"; A instrução "while (!feof(fi))" (linha 34) está incorrecta - deveria ser "while (FEOF(fi))"; A instrução "while (!feof(fi))" (linha 34) está correctamente escrita; a instrução "i++" da linha 46 poderia ser substituída por "++i;" que não se alteraria o funcionamento nem os resultados do programa; a instrução "i++" da linha 46 deveria estar colocada mais abaixo, depois da "}" da linha 48; se a instrução "i++" da linha 46 fosse colocada mais abaixo, depois da "}" da linha 48, o programa não funcionaria correctamente;

14. O programa seguinte pretende i) ler valores (inteiros, positivos) de um ficheiro texto (nav.txt) e, ii) para
cada valor lido, calcular a soma dos seus divisores (incluindo o 1 e excluindo o próprio número), e iii) determinar se o número lido é reduzido, perfeito ou abundante, de acordo com a seguinte convenção: se a soma dos divisores > número, o número é abundante se a soma dos divisores = número, o número é perfeito se a soma dos divisores < número, o número é reduzido e iv) escrever, para um outro ficheiro, de nome a definir pelo utilizador do programa, a classificação acima definida para cada um dos valores lidos. Assinale as afirmações verdadeiras:

Para que este programa compile correctamente, necessita de #include <stdlib.h> Para que este programa compile correctamente, necessita de #include <file.h> Para que este programa compile correctamente, necessita de #include <math.h> A linha 26 - int j, d, sd, i; char nf[20]; - provocará um erro de compilação - a declaração "char nf[20];" deverá ser colocada noutra linha de " int j, d, sd, i;" A linha 27 está errada - deveria ser FILE fv, fr; A linha 27 está errada - deveria ser FILE *fv, *fr;

15. O programa seguinte pretende i) ler valores (inteiros, positivos) de um ficheiro texto (nav.txt) e, ii) para
cada valor lido, calcular a soma dos seus divisores (incluindo o 1 e excluindo o próprio número), e iii) determinar se o número lido é reduzido, perfeito ou abundante, de acordo com a seguinte convenção: se a soma dos divisores > número, o número é abundante se a soma dos divisores = número, o número é perfeito se a soma dos divisores < número, o número é reduzido e iv) escrever, para um outro ficheiro, de nome a definir pelo utilizador

do programa, a classificação acima definida para cada um dos valores lidos. Assinale as afirmações verdadeiras:

Para o programa funcionar correctamente, a instrução da linha 33 deveria ser "while (feof(fv))" Para o programa funcionar correctamente, a instrução da linha 33 deveria ser "while (!feof(fv))" Para o programa funcionar correctamente, a instrução da linha 33 deveria ser "while (!feof(*fv));" Para o programa funcionar correctamente, a instrução da linha 33 poderia ser, indistintamente, "while (!feof(fv));" ou "while (feof(fv))"; A instrução "fscanf("%d", &i);" está incorrecta - deveria ser "fgets("%d", &i);" A instrução "fscanf("%d", &i);" está incorrecta - deveria ser "fscanf(fv, "%d", &i);"

16. O programa seguinte foi escrito para i) dada uma string (cadeia de caracteres) pelo teclado, imprimir a

mesma sequência de caracteres mas "ao contrário" ("oirártnoc oa"), substituindo as vogais minúsculas por vogais maiúsculas. Exemplo: string de entrada:"Programação de Computadores II" string de saída :"II sErOdAtUpmOC Ed OãçAmArgOrP"

Assinale as afirmações verdadeiras:

Para o programa compilar correctamente, não é necessário o #include <stdlib.h> Para o programa compilar correctamente, não é necessário o #include <math.h> Para o programa compilar correctamente, não é necessário o #include <conio.h> Para o programa compilar correctamente, não é necessário o #include <string.h> Para o programa compilar correctamente, não é necessário o #include <stdio.h> Para o programa compilar correctamente, não é necessário o #include <time.h>

17. O programa seguinte pretende calcular o factorial de um número (inteiro, positivo) dado pelo Utilizador
através do teclado. Assinale as afirmações verdadeiras:

Para que este programa possa compilar correctamente, deve ser acrescentada a linha #include <math.h> Para que este programa possa compilar correctamente, deve ser acrescentada a linha #include <conio.h> A declaração de variáveis "long x, fx;" (linha 12) está correcta; Os formatos de entrada/ saída (linhas 14 e 23) deveriam ser "%ld" e não "%d" A condição "while" (linha 19) tem que ser re-escrita para "while(x>1)" ou "while(x>=2)" para que o cálculo do factorial se efectue correctamente; A instrução "fx*=--x;" (linha 20) pode ser modificada para "fx=fx*x" sem que o funcionamento do programa sofra alterações; Passando a instrução "printf" da linha 16 para a linha 22 (depois das instruções das linhas 18-21) obter-se-iam os mesmos resultados; As instruções das linhas 18-21 poderiam ser escritas fx=x; while (x>2) fx*=--x; que os resultados do programa seriam os mesmos.

18. O excerto da figura é de um programa que pretende simular 10 lançamentos de dois dados, de face

numeradas de 1 a 6, e, por análise dos resultados, imprimir o menor e o maior valor (soma) obtido. Assinale as afirmações verdadeiras:

Este excerto está escrito em linguagem C; Este excerto está escrito em linguagem Javascript; Não é possível afirmar, só por este excerto, se está o programa está escrito em C ou Javascript; a expressão ´1+Math.floor(Math.random()*6);´ (linhas 30 e 31) é incompatível com os objectivos do programa, porque irá gerar valores aleatórios entre 1 e 7; a expressão ´1+Math.floor(Math.random()*6);´ (linhas 30 e 31) é incompatível com os objectivos do programa, porque irá gerar valores não inteiros; O ciclo ´for (k=1; k<11; k++)´ (linha 28) está de acordo com os objectivos do programa, simulando 10 lançamentos;

19. O programa seguinte pretende calcular o factorial de um número (inteiro, positivo) dado pelo Utilizador
através do teclado. Assinale as afirmações verdadeiras:

Para que este programa possa compilar correctamente, deve ser acrescentada a linha #include <math.h>

Para que este programa possa compilar correctamente, deve ser acrescentada a linha #include <conio.h> A declaração de variáveis "long x, fx;" (linha 12) está correcta; Os formatos de entrada/ saída (linhas 14 e 23) deveriam ser "%ld" e não "%d" A condição "while" (linha 19) tem que ser re-escrita para "while(x>1)" ou "while(x>=2)" para que o cálculo do factorial se efectue correctamente; A instrução "fx*=--x;" (linha 20) pode ser modificada para "fx=fx*x" sem que o funcionamento do programa sofra alterações;

20. O excerto da figura é uma porção de código HTML que contextualiza (entrada de dados / saída de

resultados) uma script, em Javascript, para a determinação dos divisores de um número. Assinale as afirmações correctas:

O código HTML mostrado não é coerente com a imagem: a linha 69 refere <input type=text ... e na imagem, no local desse elemento, surge um botão; O código HTML mostrado não é coerente com a imagem: a linha 69 e a linha 73 referem <input type=text ... e na imagem, nos locais correspondentes, surgem dois elementos diferentes; Para se aproximar da imagem apresentada, o código HTML teria que ser diferente - na linha 69 deveria estar <input type=button ... O formulário mostrado permite invocar uma função chamada ´Primos´; O formulário mostrado permite invocar uma função chama ´primprim´; O formulário apresentado está mal formatado porque não inclui a tag <SCRIPT LANGUAGE="JavaScript"> e a correspondente tag de fim de script;

21. A figura abaixo mostra uma página HTML (exemplo) e uma função javascript que pretende determinar os
divisores de um número (incluindo a unidade e o próprio número). Assinale as afirmações verdadeiras:

A expressão ´if (d*Math.floor(ndd/d)==ndd)´ (linha 16) permite concluir se ´d´ é, ou não, múltiplo de ´ndd´; A expressão ´if (d*Math.floor(ndd/d)==ndd)´ (linha 16) permite concluir se ´ndd´ é, ou não, múltiplo de ´d´; O ciclo ´for (d=2; d< ndd; d++)´ (linha 14) está correctamente escrito, cumprindo objectivos do programa indicados no enunciado. Para cumprir o enunciado (incluindo a unidade e o próprio número), o ciclo for (linha 16) deveria estar escrito ´for (d=0; d< ndd; d++)´ Para cumprir o enunciado (incluindo a unidade e o próprio número), o ciclo for (linha 16) deveria estar escrito ´for (d=2; d<=ndd; d++)´ as linhas 12 e 17 constroem a string de divisores que, no exemplo, apresenta os valores 1, 2, 3, 4, 6, 9, etc...

22. O programa seguinte pretende calcular as Combinações (simples) de n, p a p, a partir dos valores de n e p
inseridos pelo Utilizador. Assinale as afirmações verdadeiras:

Para que o programa da figura compile correctamente, é necessário antecedê-lo de #include <conio.h> Para que o programa da figura compile correctamente, é necessário antecedê-lo de #include <stdlib.h> Para que o programa da figura compile correctamente, é necessário antecedê-lo de #include <stdio.h> Para que o programa da figura compile correctamente, é necessário antecedê-lo de #include <function.h> O programa não irá funcionar correctamente porque a variável ´n´ está duplicada na função main() e na função fact(); Para que a função fact() funcionasse correctamente, deveria terminar com ´return(fact)´ (e a variável ´nf´ deveria chamar-se ´fact´);

23. A figura mostra um formulário, construído em HTLM, que contextualiza (entrada de dados / saída de

resultados) uma script, em Javascript, para a determinação do primeiro número primo, de um conjunto de valores aleatórios, entre 27 (inclusive) e 489 (inclusive), e um excerto dessa script. Assinale as afirmações correctas:

o ciclo ´for´ da linha 12 gera, de facto, 200 valores aleatórios;

o ciclo ´for´ da linha 12 não gera 200 valores aleatórios - para isso, deveria ser ´for(i=1; i=200; i+ +)´ A instrução ´v[i]=27+Math.floor(463*Math.random());´ está incorrecta, porque gera números aleatórios entre 27 e 463; A instrução ´v[i]=27+Math.floor(463*Math.random());´ está correcta e responde ao enunciado Para gerar valores aleatórios na gama solicitada, a linha 13 deveria ter sido escrita: v[i]=27+Math.floor(Math.random()%464); Para poder utilizar o array (variável indexada) v[] (linha 13), é necessário, antes do ciclo ´for´ (linha 12), escrever ´int v[200];´

24. O excerto da figura é uma porção de código HTML que contextualiza (entrada de dados / saída de

resultados) uma script, em Javascript, para a determinação dos divisores de um número. Assinale as afirmações correctas:

O formulário apresentado está mal formatado porque não inclui a tag <SCRIPT LANGUAGE="JavaScript"> e a correspondente ; O formulário apresentado está bem formatado, já que se inicia pela tag ´<form ...´ e termina com a tag ´</form>´; O código apresentado irá definir uma tabela com duas colunas; O código apresentado irá definir uma tabela com três colunas; O código onClick=´detdiv(form1);´ (linha 43) irá invocar a função detdiv()quando o utilizador clicar um botão chamado ´N´ (linha 41); O código onClick=´detdiv(form1);´ irá invocar a função detdiv()quando o utilizador clicar o botão definido na linha 43;

25. O programa seguinte foi escrito para i) gerar um conjunto de 200 valores inteiros, aleatórios, entre 27

(inclusivé) e 489 (inclusivé), e, depois, ii) escrever para o ficheiro "pp7.txt", todos os valores desse conjunto até ao primeiro valor primo encontrado (inclusivé) Assinale as afirmações verdadeiras:

O ciclo "for" das linhas 20-21 origina valores do conjunto {27,28,...,488,489} requerida pelo enunciado; O ciclo "for" das linhas 20-21 origina valores do conjunto {27,28,...,488,490}, não cumprindo os limites do enunciado; O ciclo "for" das linhas 20-21 origina valores do conjunto {0, 1,...,462,463}, não cumprindo os limites do enunciado; Para gerar valores aleatórios entre os limites requeridos, a instrução da linha 21 deveria ser x[i]=rand()%480-27; Porque o ciclo "while ((nd!=0) && (i<200))" (linha 28) verifica o valor das variáveis "nd" e "i", não é necessário inicializar ambas nas linhas 23-24 (bastaria inicializar uma delas) O programa correria de igual modo se a variável "nd" fosse inicializada (linha 23) com o valor 2

26. O excerto seguinte é de programa escrito para i) ler dados de um ficheiro texto (DFA-i.txt) sobre um

conjunto de automóveis (marca, cilindrada, matrícula, País de registo, Ano de Registo) e ii) armazenar esses dados num array de registos (variáveis heterogéneas). Assinale as afirmações verdadeiras:

Em consequência das funções da linguagem C utilizadas neste excerto, para compilar este programa é necessário anteceder este excerto de #include <string.h> Em consequência das funções da linguagem C utilizadas neste excerto, para compilar este programa é necessário anteceder este excerto de #include <time.h> Em consequência das funções da linguagem C utilizadas neste excerto, para compilar este programa é necessário anteceder este excerto de #include <stdio.h> A instrução da linha 30 - "file *fi;" - está correcta; A instrução da linha 30 - "file *fi;" - está incorrecta - deveria ser "FILE fi"; A instrução da linha 30 - "file *fi;" - está incorrecta - deveria ser "FILE *fi";
Bottom of Form

Sign up to vote on this title
UsefulNot useful