Introdução à Linguagem C

Exercícios 

Capítulo 1 

1)	Procurar em livros e/ou guias de referência da Linguagem C quais são as funções das seguintes bibliotecas: string.h e math.h.  Anotar o nome de todas as funções com seus respectivos tipos de retorno e seus argumentos.

2)	Dizer o que fazem as seguintes funções da biblioteca stdio.h: getchar, putc, puts.

Capítulo 2

1)	Editar o programa abaixo e fazer sua compilação. Executar o programa e dizer o que ele faz.

/* programa do Exercicio_1  capitulo_2 */
# include <stdio.h>
int main ( )
{
int 	x, y;
float 	X, Y;
printf (" \n\t Envie dois numeros inteiros \n\t ");
scanf (" %d %d ", &x, &y );
X = x;
Y = y;
printf ( "\n\t Divisão X/Y \n");
printf ( "\n\t %f \n\t %d \n\t %d \n", X/Y, x/y, x%y);
}

Para escrever os dois números pedidos pelo programa, pode-se digitar o primeiro, um espaço, digitar o segundo, e pressionar <ENTER>. Pode-se também digitar <ENTER> após cada número.

Capítulo 3

1) Editar, compilar e executar o programa abaixo.

/* programa do Exercicio_1  capitulo_3 */
# include <stdio.h>
int main ( )
{
int Dias;               
float Anos;
printf ("\n\t Entre com o número de dias: ");       
scanf ("%d", &Dias);
Anos = Dias/365.25;       
printf ("\n\n\t %d dias equivalem a %f anos.\n",Dias,Anos);
}

Dizer o que o programa faz. Explicar (comentar) o que faz cada linha. Explique porque a variável Dias é inteira e Anos é float. 

2)	Modifique o programa anterior para que sejam requisitados o dia, o mês e o ano atuais, o dia, o mês e o ano de nascimento do usuário, e então seja calculado e anunciado o número de dias vivido pelo usuário.

Capítulo 4

1)	Editar, compilar e executar o programa abaixo.

/* programa do Exercicio_1  capitulo_3 */
# include <stdio.h>
int main ( )
{
char Ch;
float x, y;
printf ("\n Envie dois números : ");
scanf ("%f %f ", &x, &y );
printf ( "\n O produto de %f e %f eh %f ", x, y, x*y );
Ch = getchar( );
printf ( "\n O quociente de %f e %f eh %f ", x, y, x/y );
printf ( "\n A tecla pressionada foi %c \n\n Fim de Programa ", Ch );
}

2)	Modifique o programa acima para que todos os números sejam impressos com quatro algarismos antes do ponto decimal e três algarismos após.

Capítulo 5

1)	Dizer o que faz o  programa abaixo.

#include<stdio.h>
main( )
{
int opção;
int valor;
printf("Converter:\n");
printf("        1: decimal para hexadecimal\n");
printf("        2: hexadecimal para decimal\n");
printf("        3: decimal para octal\n");
printf("        4: octal para decimal\n");
printf("informe a sua opção:");
scanf("%d", &opção);
if(opcao==1)  {
printf("informe um valor em decimal:");
scanf("%d", &valor);
printf("%d em hexadecimal é : %x", valor, valor);
}
if(opção==2) {
printf("informe um valor em hexadecimal:");
scanf("%x", &valor);
printf("%x em decimal é: %d", valor, valor);
}
if(opção==3){
printf("informe um valor em decimal:");
scanf("%d", &valor);
printf("%d em octal é: %o", valor, valor);
}
if(opção==4){
printf("informe um valor em octal:");
scanf("%o", &valor);
printf("%o em decimal é: %d", valor, valor);
}
}

2)	Reescrever o programa do item anterior utilizando o comando switch. Editar, compilar e executar o programa.

3)	Fazer um programa em C que identifique triângulos, conforme o algoritmo abaixo

/* Identificação de triângulos */

Início
Ler 	A, B, C   (reais, lados do triângulos)
Se   A < (B+C) e B < (A+C) e C < (A+B)       	/* verifica se é triângulo */
Então
Se 	A = B e  B = C
Então Imprima (“Triângulo Equilátero”)
Senão
Se 	A = B ou A = C ou B = C
Então Imprima (“Triângulo Isóceles”)
Senão Imprima (“Triângulo Escaleno”)
FimSe
FimSe
FimSe
Fim

4)	Modificar o programa de cálculo de PI, do capítulo 5, de forma que ele calcule a série até que encontre um termo cujo valor absoluto seja menor que 0,00001. Para isto, deverá ser usado um Loop while ou do-while. 

5)	O seno de um ângulo qualquer (dado em radianos) pode ser calculado pela série abaixo.

sen A = 

Os número que aparecem no denominador são os fatoriais dos expoentes de cada termo.
Fazer um programa em linguagem C que calcule o seno de um ângulo dado utilizando os N primeiros termos da série. O ângulo A(radianos) e o valor de N deverão ser requisitados ao usuário do programa.

6)	Reescrever o programa anterior para que o seno do ângulo seja calculado até que o módulo do último termo da série seja menor que 0,00001.

Capítulo 6

1)	Fazer um programa em Linguagem C que leia uma matriz de dimensões NxM, e calcule a sua transposta. Ao final o programa apresentará a matriz e sua transposta na tela do computador.

2)	Fazer um programa em Linguagem C que leia os nomes de 10 alunos de uma turma, e para cada aluno, 4 notas de 0 a 100%. Os nomes dos alunos serão armazenados em um vetor de strings, as notas serão armazenadas em uma matriz bidimensional. Serão calculadas as médias dos alunos, (Nota1+Nota2+Nota3+Nota4)/4, e estas serão armazenadas em um vetor. Ao final, será apresentado um relatório contendo 3 colunas: Nome do aluno, Média, Aprovação. Na coluna aprovação será colocada a letra A (aprovado) para alunos com média igual ou superior a 60, e R (reprovado) para alunos com média inferior a 60.

Capítulo 7

1)	Editar, compilar, executar e dizer o que faz o programa abaixo.

#include <stdio.h>
#include <string.h>
main( )
{
  char st1[11], st2[11], st3[21], ch ;
  int i, j;
  printf ("\n Envie uma string de ate 10 caracteres  ");
  gets(st1);
  printf ("\n Envie outra string de ate 10 caracteres  ");
  gets(st2);
  for ( i = 0; st1[i]; i++) st3[i] = st1[i];
  for ( j = 0; st2[j]; j++) st3[i+j] = st2[j];
  j = j+i;
  puts (st3);
  for ( i = j; i ; i-- )
  {
    ch = st3[i-1];
    putchar (ch);
    putchar ('\n');
  }
  puts ("\n");
}

Explique porque as strings st1 e st2 devem ter no máximo 10 caracteres se os respectivos vetores foram declarados com 11 posições.

Capítulos 8 e 9

1)	Fazer um programa em C que leia uma string de até 30 caracteres e armazene-a em uma variável Stfonte. Utilizando ponteiros, copie o conteúdo de Stfonte para uma variável Stdestino, de forma que a string fique escrita de forma inversa. Utilizando ponteiros, apresentar as strings Stfonte e Stdestino em forma de duas colunas.

2)	Refazer o programa do cálculo das médias dos alunos, capítulo 6, utilizando ponteiros para o cálculo das médias e para a apresentação dos resultados.

Capítulo 10

1)	Fazer uma função em C que concatena duas strings. Utilize o nome StrCat para esta função, para não confundir com como strcat( ) da biblioteca string.h.

2)	Editar, compilar e executar o programa abaixo.

/* cálculo da área de um círculo */

#include <stdio.h>
#include <math.h>

float area(float raio); 		/* protótipo*/

main( )
{
float r,res;
printf("Informe o raio: ");
scanf("%f", &r);
res=area(r);
printf("A área é: %f\n", res);
}
float area(float raio)
{
return 3.1415926 * pow(raio,2); 
}                             

3)	Modificar o programa anterior para calcular a área e o perímetro do círculo, e calcular o volume e a área de uma esfera de mesmo raio. Deverão ser feitas 4 funções.

4)	Modifique o programa anterior para que ele repita os cálculo para diferentes raios enviados pelo usuário. Deverá ser utilizado um loop do-while onde, ao final será perguntado ao usuário se deseja novo cálculo. O loop será repetido até que o usuário responda N (não).

5)	Fazer uma função em C que calcule o fatorial de um número passado como parâmetro.

6)	Fazer uma função em C que calcule o produto de duas matrizes A e B e retorne o resultado em outra matriz P.

Capítulo 11

1)	Fazer um programa em C que receba em sua linha de comando o nome do usuário e escreva a mensagem: "Bom dia <usuário>". Onde se lê <usuário> deverá estar escrito o nome completo do usuário. O programa deverá identificar quantos nomes foram escritos.

2)	Fazer um programa em C que calcule as raízes de uma equação de segundo grau. Os valores A, B, C da equação serão passados na linha de comando. AX2 + BX + C = 0.

Capítulo 12

1)	Fazer um programa em C para ler e armazenar em uma estrutura, os dados de uma pessoa. Os campos da estrutura DADOS serão: nome, idade, telefone, sexo (M/F).

Capítulo 13

1)	Usar a estrutura do exercício 1 do capítulo 12 para armazenar em um vetor os dados de um conjunto de 20 pessoas, que poderiam ser por exemplo os candidatos a vagas em uma  empresa.

Capítulo 14

1)	Modificar o programa do exercício 1 do capítulo 13 para armazenar os dados em arquivo. O programa deverá ter um menu de opções para trabalhar com os dados (usar o comando switch). No menu será previsto inclusão de dados, exclusão de dados, e consulta. Para cada opção deverá ser feita uma função específica. Na opção consulta, deverá ter um menu de opções: por  nome, idade, sexo. Quando for pedida uma consulta por nome, por exemplo, deverão ser apresentados todos os dados das pessoas que possuem aquele nome.