Linguagem C_Exercicios Propostos Solucao_1

Page 1


Linguagem C 25.ª Edição Atualizada e Aumentada

FCA Editora (c) 2025

1

EXERCÍCIOS PROPOSTOS – SOLUÇÃO

1.1 A função main()

1.2 Com um ponto e vírgula ( ; ).

1.3 Com chavetas {...}.

1.4 Não. A função printf não é uma instrução da linguagem, mas uma função que pode ser utilizada na linguagem porque é fornecida como extra nas bibliotecas que acompanham o compilador da linguagem. É por ser um extra que tem de se colocar a linha #include <stdio.h> no início do código.

1.5 Para adicionar um conjunto de facilidades (funções) de leitura e escrita.

1.6 Cabeçalhos de funções (headers ).

1.7 Header files

1.8 Porque não se usou qualquer função de input/output

1.9 Sim, pois uma string é composta por carateres a apresentar. Não importa se são maiúsculas ou minúsculas, pois numa string todos são carateres, que são apresentados tal como forem escritos.

1.10 stdio = st and ard i nput/output

1.11

1.11.1 main() está escrito com letra maiúscula (Main ).

1.11.2 Faltam os parênteses ( ) à função main

1.11.3 A função print não faz parte da linguagem C, nem é disponibilizada nas funções de input/output standards. Devia usar printf

NOTA

Neste caso, o erro detetado será um erro de linkagem, e não de compilação, uma vez que o programa obedece à sintaxe da linguagem. O linker – ld –, ao tentar encontrar o código relativo à função print (e não printf), não o vai encontrar (nem no programa, nem nas bibliotecas da própria linguagem), sendo, portanto, incapaz de gerar o executável final.

$ make teste teste.c: In function ‘main’: teste.c:8:3: warning: implicit declaration of function ‘print’; did you mean ‘printf’? [-Wimplicit-function-declaration] 8 | print("Hello World");

| ^~~~~ | printf /usr/bin/ld: /tmp/ccHV3O9a.o: in function `main': teste.c:(.text+0x15): undefined reference to `print' collect2: error: ld returned 1 exit status make: *** [<builtin>: teste] Error 1

1.11.4 A invocação de qualquer função em C deve ser realizada com apenas um conjunto de parênteses.

1.11.5 O comentário inicial devia terminar com o símbolo */, e não outra vez com o símbolo /*

1.11.6 Não são permitidos comentários dentro de comentários.

1.11.7 A string Hello World tem de estar escrita entre aspas "Hello World " .

1.11.8 Falta um ; a seguir ao printf

1.11.9 Falta um # antes do include. Deveria ser #include <stdio.h>

1.11.10 As strings em C são delimitadas por "aspas", e não por 'plicas'

1.12 d) Sempre que o programador ache necessário ou conveniente.

1.13 d) Executado à mesma velocidade, pois os comentários são simplesmente ignorados pelo compilador, não havendo qualquer reflexo deles em tempo de execução.

1.14 As seguintes afirmações são verdadeiras. Os comentários… b) Podem ocupar várias linhas.

d) Podem começar por /* e terminar com */

e) Não têm qualquer influência na velocidade de execução de um programa.

g) Quando começam com o símbolo //, não necessitam de terminar com qualquer delimitador final.

1.15

1: #include <stdio.h>

2: int main(void)

3: {

4: printf("Bem-vindos ao /Mundo\\ da programação em \"C\"\n");

5: return 0;

6: }

1.16

1: #include <stdio.h>

2: int main(void)

3: {

4: printf(" *\n ***\n*****\n /|\\\n");

5: return 0;

6: }

1.17

1: #include <stdio.h>

2: int main(void)

3: {

4: printf("Total\t=\t100%%\n");

PROG0109.C
PROG0110.C

5: printf("IVA\t=\t23%%\n");

6: printf("IRS\t=\t11%%\n");

7: printf("--------------------\n");

8: printf("Liq.\t=\t66%%\n"); 9: 10: return 0; 11: } PROG0111.C

1.18 A diferença entre fazer printf ("ola") e puts ("ola") reside no facto de a função puts ( put string ) colocar automaticamente um newline a seguir à string que enviarmos para escrever. Deste modo, puts ("ola") é equivalente a printf ("ola\n").

Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.