gabarito

56
GABARITO ESTUDO DIRIGIDO DE LINGUAGEM C 14ª e 15ª EDIÇÃO - CÓD. 8879 AUTOR: JOSÉ AUGUSTO N. G. MANZANO

Upload: sandro-barbosa

Post on 19-Nov-2015

4 views

Category:

Documents


0 download

DESCRIPTION

Linguagem c.

TRANSCRIPT

  • GABARITO

    ESTUDO DIRIGIDO DE LINGUAGEM C 14 e 15 EDIO - CD. 8879

    AUTOR: JOS AUGUSTO N. G. MANZANO

  • 1

    Prezado(a) Educador(a)

    O material apresentado contm as respostas dos exerccios de fixao do livro Estudo Dirigido de Linguagem C.

    As respostas so fornecidas genericamente no sentido de atender a soluo de certo problema do ponto de vista algortmico, servindo como ponto de auxlio ao seu trabalho. So respostas indicadas sem a pretenso de serem as nicas ou as melhores, sendo apenas algumas possveis.

    Sugere-se a leitura dos livros Estudo Dirigido de Algoritmos e Algoritmos: Lgica para o Desenvolvimento de Programao de Computadores, que abordam alguns pontos adicionais importantes.

    O conjunto de exerccios apresentado em mdia suficiente para a fixao dos detalhes de uso da linguagem de programao de computadores na mente do educando.

    Espero, com isso, facilitar ao colega ministrar a base de conhecimentos sobre a programao de computadores.

    Atenciosamente,

    Jos Augusto N. G. Manzano

  • 2 Estudo Dirigido de Linguagem C

    Captulo 3

    Exerccio A /* CAP03EX_A - Capitulo 3 - Exercicio A */ #include int main(void) { int A, B, C, D; int S1, S2, S3, S4, S5, S6; int M1, M2, M3, M4, M5, M6; printf("Informe um valor para a variavel A: "); scanf("%d", &A); printf("Informe um valor para a variavel B: "); scanf("%d", &B); printf("Informe um valor para a variavel C: "); scanf("%d", &C); printf("Informe um valor para a variavel D: "); scanf("%d", &D); S1 = A + B; S2 = A + C; S3 = A + D; S4 = B + C; S5 = B + D; S6 = C + D; M1 = A * B; M2 = A * C; M3 = A * D; M4 = B * C; M5 = B * D; M6 = C * D; printf("\n"); printf("\nA + B = %d", S1); printf("\nA + C = %d", S2); printf("\nA + D = %d", S3); printf("\nB + C = %d", S4); printf("\nB + D = %d", S5); printf("\nC + D = %d", S6); printf("\n"); printf("\nA * B = %d", M1); printf("\nA * C = %d", M2); printf("\nA * D = %d", M3); printf("\nB * C = %d", M4); printf("\nB * D = %d", M5); printf("\nC * D = %d", M6); return 0; }

  • 3

    Exerccio B /* CAP03EX_B - Capitulo 3 - Exercicio B */ #include int main(void) { float TEMPO, VELOCIDADE, DISTANCIA, LITROS_USADOS; printf("Informe o tempo gasto na viagem ..........: "); scanf("%f", &TEMPO); printf("Informe a velocidade media do percurso ...: "); scanf("%f", &VELOCIDADE); DISTANCIA = TEMPO * VELOCIDADE; LITROS_USADOS = DISTANCIA / 12; printf("\n"); printf("\nTempo de viagem ....: %10.2f", TEMPO); printf("\nVelocidade media ...: %10.2f", VELOCIDADE); printf("\nDistancia ..........: %10.2f", DISTANCIA); printf("\nLitros usados ......: %10.2f", LITROS_USADOS); return 0; }

    Exerccio C /* CAP03EX_C - Capitulo 3 - Exercicio C */ #include int main(void) { float C, F; printf("Informe a temperatura em graus Celcius ..: "); scanf("%f", &C); F = (9 * C + 160) / 5; printf("\n"); printf("\nTemperatura em graus Fahrenheit .........: %10.2f", F); return 0; }

  • 4 Estudo Dirigido de Linguagem C

    Exerccio D /* CAP03EX_D - Capitulo 3 - Exercicio D */ #include int main(void) { float F, C; printf("Informe a temperatura em graus Fahrenheit ..: "); scanf("%f", &F); C = ((F - 32) * 5) / 9; printf("\n"); printf("\nTemperatura em graus Celcius ...............: %10.2f", C); return 0; }

    Exerccio E /* CAP03EX_E - Capitulo 3 - Exercicio E */ #include int main(void) { float R, A, V; printf("Informe o valor do raio ....: "); scanf("%f", &R); printf("Informe o valor do altura ..: "); scanf("%f", &A); V = 3.14159 * R * R * A; printf("\n"); printf("\nVolume .....................: %10.2f", V); return 0; }

    Exerccio F /* CAP03EX_F - Capitulo 3 - Exercicio F */ #include int main(void) { int A, B, X;

  • 5

    printf("Informe o valor da variavel A: "); scanf("%d", &A); printf("Informe o valor da variavel B: "); scanf("%d", &B); X = A; A = B; B = X; printf("\n"); printf("\nAgora a variavel A esta com o valor %d", A); printf("\nAgora a variavel B esta com o valor %d", B); return 0; }

    Captulo 4

    Exerccio A /* CAP04EX_A - Capitulo 4 - Exercicio A */ #include int main(void) { int A, B, C, X; printf("Informe o valor da variavel A: "); scanf("%d", &A); printf("Informe o valor da variavel B: "); scanf("%d", &B); printf("Informe o valor da variavel C: "); scanf("%d", &C); if (A > B) { X = A; A = B; B = X; } if (A > C) { X = A; A = C; C = X; } if (B > C) { X = B; B = C; C = X; } printf("\n"); printf("\nAgora a variavel A esta com o valor %d", A); printf("\nAgora a variavel B esta com o valor %d", B); printf("\nAgora a variavel B esta com o valor %d", C); return 0; }

  • 6 Estudo Dirigido de Linguagem C

    Exerccio B /* CAP04EX_B - Capitulo 4 - Exercicio B */ #include #include int main(void) { float A, B, C, DELTA, X, X1, X2; printf("Informe o valor da variavel A: "); scanf("%f", &A); printf("Informe o valor da variavel B: "); scanf("%f", &B); printf("Informe o valor da variavel C: "); scanf("%f", &C); if (A != 0 && B != 0 && C != 0) { DELTA = pow(B, 2) - 4 * A * C; if (DELTA == 0) { X = -B / (2 * A); printf("\nX = %10.2f", X); } else if (DELTA > 0) { X1 = (-B + sqrt(DELTA)) / (2 * A); X2 = (-B - sqrt(DELTA)) / (2 * A); printf("\nX1 = %10.2f", X1); printf("\nX2 = %10.2f", X2); } else printf("\nNao existem raizes reais"); } else printf("\nNao e uma equacao completa de segundo grau"); return 0; }

    Exerccio C /* CAP04EX_C - Capitulo 4 - Exercicio C */ #include #include int main(void) { float N1, N2, N3, N4, MD; printf("Informe A Nota 1: "); scanf("%f", &N1); printf("Informe A Nota 2: "); scanf("%f", &N2); printf("Informe A Nota 3: "); scanf("%f", &N3); printf("Informe A Nota 4: "); scanf("%f", &N4); MD = (N1 + N2 + N3 + N4) / 4;

  • 7

    if (MD >= 5) printf("\nAprovado com media %10.2f", MD); else printf("\nReprovado com media %10.2f", MD); return 0; }

    Exerccio D /* CAP04EX_D - Capitulo 4 - Exercicio D */ #include #include int main(void) { float N1, N2, N3, N4, MD1, EX, MD2; printf("Informe a Nota 1 ..: "); scanf("%f", &N1); printf("Informe a Nota 2 ..: "); scanf("%f", &N2); printf("Informe a Nota 3 ..: "); scanf("%f", &N3); printf("Informe a Nota 4 ..: "); scanf("%f", &N4); MD1 = (N1 + N2 + N3 + N4) / 4; if (MD1 >= 7) printf("\nAprovado com media %10.2f", MD1); else { printf("Informe o Exame ...: "); scanf("%f", &EX); MD2 = (MD1 + EX) / 2; if (MD2 >= 5) printf("\nAprovado em exame com media %10.2f", MD2); else printf("\nReprovado com media %10.2f", MD2); } return 0; }

    Exerccio E /* CAP04EX_E - Capitulo 4 - Exercicio E */ #include #include int main(void) { int A, B, DIF; printf("Informe um valor para a variavel A: "); scanf("%d", &A);

  • 8 Estudo Dirigido de Linguagem C

    printf("Informe um valor para a variavel B: "); scanf("%d", &B); if (A > B) DIF = A - B; else DIF = B - A; printf("\nA difrenca dos valores equivale a %d", DIF); return 0; }

    Captulo 5

    Exerccio A - do...while /* CAP05EX_A_DWH - Capitulo 5 - Exercicio A com do...while */ #include #include int main(void) { int I, R; I = 0; do { R = I % 2; // ha casos em que podera usar a expressao R = I - 2 * (I / 2); if (R != 0) printf("%d\n", I); I++; } while (I

  • 9

    R = I % 2; // ha casos em que podera usar a expressao R = I - 2 * (I / 2); if (R != 0) printf("%d\n", I); } return 0; }

    Exerccio A - while /* CAP05EX_A_WHI - Capitulo 5 - Exercicio A com while */ #include #include int main(void) { int I, R; I = 0; while (I

  • 10 Estudo Dirigido de Linguagem C

    Exerccio B - for() /* CAP05EX_B_FOR - Capitulo 5 - Exercicio B com for */ #include #include int main(void) { int S, I; S = 0; for (I = 1; I

  • 11

    printf("Tabuada de qual numero? "); scanf("%d", &N); I = 1; do { R = N * I; printf("%2d X %2d = %3d\n", N, I, R); I++; } while (I

  • 12 Estudo Dirigido de Linguagem C

    R = I % 4; // ha casos em que podera usar a expressao R = I - 4 * (I / 4); if (R == 0) printf("%d\n", I); I++; } while (I < 200); return 0; }

    Exerccio D - for() /* CAP05EX_D_FOR - Capitulo 5 - Exercicio D com for */ #include #include int main(void) { int I, R; for (I = 1; I < 200; I++) { R = I % 4; // ha casos em que podera usar a expressao R = I - 4 * (I / 4); if (R == 0) printf("%d\n", I); } return 0; }

    Exerccio D - while /* CAP05EX_D_WHI - Capitulo 5 - Exercicio D com while */ #include #include int main(void) { int I, R; I = 1; while (I < 200) { R = I % 4; // ha casos em que podera usar a expressao R = I - 4 * (I / 4); if (R == 0) printf("%d\n", I); I++; } return 0; }

  • 13

    Exerccio E - do...while /* CAP05EX_E_DWH - Capitulo 5 - Exercicio E com do...while */ #include #include int main(void) { int I, R; I = 15; do { R = I * I; printf("%d\n", R); I++; } while (I

  • 14 Estudo Dirigido de Linguagem C

    I = 15; while (I

  • 15

    Exerccio F - while /* CAP05EX_F_WHI - Capitulo 5 - Exercicio F com while */ #include #include int main(void) { int I, P; P = 1; I = 0; while (I

  • 16 Estudo Dirigido de Linguagem C

    Exerccio G - for() /* CAP05EX_G_FOR - Capitulo 5 - Exercicio G com for */ #include #include int main(void) { int N, I, ATUAL, ANTERIOR, PROXIMO; printf("Qual termo Fibonacci: "); scanf("%d", &N); ANTERIOR = 0; ATUAL = 1; for (I = 1; I

  • 17

    Captulo 6

    Exerccio 1A /* CAP06EX1_A - Capitulo 6 - Exercicio 1A */ #include int main(void) { int A[10], I; /* Entrada de dados */ for (I = 0; I

  • 18 Estudo Dirigido de Linguagem C

    Exerccio 1C /* CAP06EX1_C - Capitulo 6 - Exercicio 1C */ #include int main(void) { int A[15], B[15], I, J; /* Entrada de dados */ for (I = 0; I

  • 19

    C[I] = A[I] - B[I]; /* Saida de dados */ for (I = 0; I

  • 20 Estudo Dirigido de Linguagem C

    /* Entrada de dados - Matriz A */ for (I = 0; I

  • 21

    Exerccio 1H /* CAP06EX1_H - Capitulo 6 - Exercicio 1H */ #include int main(void) { int A[20], B[20], I; /* Entrada de dados */ for (I = 0; I

  • 22 Estudo Dirigido de Linguagem C

    } } /* Processamento */ for (I = 0; I

  • 23

    printf("\nColuna ..: %d\n", I + 1); for (J = 0; J

  • 24 Estudo Dirigido de Linguagem C

    scanf("%d", &A[I]); } /* Processamento */ for (I = 0; I

  • 25

    { C[I][0] = A[I] * 2; C[I][1] = B[I] - 5; } /* Saida dos dados */ printf("\nResultados\n"); for (I = 0; I

  • 26 Estudo Dirigido de Linguagem C

    printf("\nResultados\n"); for (I = 0; I

  • 27

    { printf("\nColuna ..: %d\n", I + 1); for (J = 0; J

  • 28 Estudo Dirigido de Linguagem C

    Exerccio 3B /* CAP06EX3_B - Capitulo 6 - Exercicio 3B */ #include int main(void) { int A[8], B[8], I, J, X, ACHA, PESQ; char RESP; printf("Classificacao de elementos numericos\n\n"); /* Entrada de dados */ for (I = 0; I

  • 29

    printf("%d nao foi localizado", PESQ); printf("\n\nContinua? [S]IM/[N]AO + : "); fflush(stdin); RESP = getchar(); } return 0; }

    Exerccio 3C /* CAP06EX3_C - Capitulo 6 - Exercicio 3C */ #include int main(void) { int A[15], B[15], I, J, X; printf("Classificacao de elementos numericos\n\n"); /* Entrada de dados */ for (I = 0; I

  • 30 Estudo Dirigido de Linguagem C

    Exerccio 3D /* CAP06EX3_D - Capitulo 6 - Exercicio 3D */ #include int main(void) { float A[12], B[12], C[12], NUMERO, X; int I, J; printf("Classificacao de elementos numericos\n\n"); /* Entrada de dados - Matriz A */ for (I = 0; I

  • 31

    C[I] = C[J]; C[J] = X; } /* Apresentacao dos dados */ printf("\n\n"); for (I = 0; I

  • 32 Estudo Dirigido de Linguagem C

    /* Apresentacao dos nomes */ printf("\n"); for (I = 0; I

  • 33

    Exerccio 3G /* CAP06EX3_G - Capitulo 6 - Exercicio 3G */ #include int main(void) { float A[18], B[18], PESQ, NUMERO; int I, ACHA; char RESP; printf("Classificacao de elementos numericos\n\n"); /* Entrada de dados */ for (I = 0; I

  • 34 Estudo Dirigido de Linguagem C

    Exerccio 3H /* CAP06EX3_H - Capitulo 6 - Exercicio 3H */ #include #include int main(void) { int I, J; char A[10][40], B[10][40]; printf("Listagem de nomes\n\n"); /* Entrada dos dados */ for (I = 0; I

  • 35

    printf("\n"); printf("[1] - Cadastro\n"); printf("[2] - Classificacao\n"); printf("[3] - Pesquisa\n"); printf("[4] - Listagem\n"); printf("[5] - Fim de programa\n"); printf("\n"); printf("Escolha um opcao: "); scanf("%d", &OPCAO); if (OPCAO < 1 || OPCAO > 5) printf("\n\nOpcao invalida - tente novamente\n\n"); if (OPCAO != 5) { if (OPCAO == 1) { for (I = 0; I

  • 36 Estudo Dirigido de Linguagem C

    printf("\n"); printf("%s", PESSOA[I].NOME); printf("%s", PESSOA[I].ENDERECO); printf("%s", PESSOA[I].TELEFONE); printf("\n"); } else printf("%s nao foi localizado", PESQ); printf("\n\nContinua? [S]IM/[N]AO + : "); fflush(stdin); RESP = getchar(); } } if (OPCAO == 4) { printf("\n"); printf("Listagem de Dados\n"); printf("\n"); for (I = 0; I

  • 37

    int I, SOMA; SOMA = 0; for (I = 1; I

  • 38 Estudo Dirigido de Linguagem C

    } int fibonacci(int N) { int I, ATUAL, ANTERIOR, PROXIMO; ANTERIOR = 0; ATUAL = 1; for (I = 1; I

  • 39

    Exerccio 1C /* CAP07EX1C - Captulo 7 - Exercicio 1C */ #include int A[10], B[10], C[20]; int matriz_A(void); int matriz_B(void); int juncao_C(void); int mostra_C(void); int main(void) { printf("Juncao de elementos numericos\n\n"); matriz_A(); matriz_B(); juncao_C(); mostra_C(); return 0; } /* Entrada matriz A */ int matriz_A(void) { int I; for (I = 0; I

  • 40 Estudo Dirigido de Linguagem C

    /* Mostra C */ int mostra_C(void) { int I; printf("\n\n"); for (I = 0; I

  • 41

    getchar() + scanf("Enter"); return 0; } int prestacao(float V, float TX, float T) { float P = V + (V * (TX/100) * T); printf("\nResultado = %10.2f\n", P); return 0; }

    Exerccio 1E - Passagem de Parmetro por Referncia /* CAP07EX1E_R - Captulo 7 - Exercicio 1E - Pass. Par. por Referencia */ #include int potencia(int BASE, int EXPOENTE); int main(void) { int BASE, EXPOENTE, P; char TECLA; printf("\n\nCalculo de Potencia\n\n"); printf("Entre com a base .......: "); fflush(stdin); scanf("%d", &BASE); printf("Entre com o expoente ...: "); fflush(stdin); scanf("%d", &EXPOENTE); P = potencia(BASE, EXPOENTE); printf("\nResultado = %d\n", P); printf("\nTecle para finalizar: "); getchar() + scanf("Enter"); return 0; } int potencia(int BASE, int EXPOENTE) { int P, I; P = 1; for(I = 1; I

  • 42 Estudo Dirigido de Linguagem C

    printf("\nTecle para finalizar: "); getchar() + scanf("Enter"); return 0; } int potencia(int BASE, int EXPOENTE) { int P, I; P = 1; for(I = 1; I

  • 43

    int ordena_A(void) { float X; int I, J; for (I = 0; I

  • 44 Estudo Dirigido de Linguagem C

    if (C[I] < C[J]) { X = C[I]; C[I] = C[J]; C[J] = X; } return 0; } /* Mostra C */ int mostra_C(void) { int I; printf("\n\n"); for (I = 0; I

  • 45

    printf("Escolha um opcao: "); scanf("%d", &OPCAO); if (OPCAO != 6) { switch (OPCAO) { case 1 : cadastro(); break; case 2 : consulta(); break; case 3 : alteracao(); break; case 4 : remocao(); break; case 5 : listagem(); break; default : printf("Opcao invalida - Tecle "); getchar() + scanf("Enter"); break; } } } return 0; } int cadastro(void) { int I; for (I = 0; I

  • 46 Estudo Dirigido de Linguagem C

    printf("\n"); } else printf("%s nao foi localizado", PESQ); printf("\n\nContinua rotina de consulta? [S]IM/[N]AO + : "); fflush(stdin); RESP = getchar(); } return 0; } int alteracao(void) { char RESP, PESQ[40]; int ACHA, I; printf("\n"); printf("Alteracao de Dados\n"); printf("\n"); RESP = 'S'; while (RESP == 'S' || RESP == 's') { printf("\nEntre o nome a ser alterado: "); fflush(stdin); fgets(PESQ, 40, stdin); I = 0; ACHA = 0; while (I

  • 47

    int ACHA, I; printf("\n"); printf("Remocao de Dados\n"); printf("\n"); RESP = 'S'; while (RESP == 'S' || RESP == 's') { printf("\nEntre o nome a ser removido: "); fflush(stdin); fgets(PESQ, 40, stdin); I = 0; ACHA = 0; while (I

  • 48 Estudo Dirigido de Linguagem C

    Exerccio 3 /* CAP07EX3 - Captulo 7 - Exercicio 3 */ #include struct CAD_ALUNO { char NOME[41]; float NOTA[4]; }; struct CAD_ALUNO ALUNO[18]; int cadastrar(void); int consultar(void); int alterar(void); int aprovados(void); int reprovados(void); int main(void) { int OPCAO, I, J; OPCAO = 0; while (OPCAO != 6) { printf("\n\n"); printf("Agenda Escolar\n"); printf("\n"); printf("[1] - Cadastrar\n"); printf("[2] - Consultar\n"); printf("[3] - Alterar\n"); printf("[4] - Aprovados\n"); printf("[5] - Reprovados\n"); printf("[6] - Fim de programa\n"); printf("\n"); printf("Escolha um opcao: "); scanf("%d", &OPCAO); if (OPCAO != 6) { switch (OPCAO) { case 1 : cadastrar(); break; case 2 : consultar(); break; case 3 : alterar(); break; case 4 : aprovados(); break; case 5 : reprovados(); break; default : printf("Opcao invalida - Tecle "); getchar() + scanf("Enter"); break; } } } return 0; } int cadastrar(void) { int I, J; float NOTA_ALU;

  • 49

    for (J = 0; J

  • 50 Estudo Dirigido de Linguagem C

    float NOTA_ALU; printf("\n"); printf("Alteracao de Dados\n"); printf("\n"); RESP = 'S'; while (RESP == 'S' || RESP == 's') { printf("Entre o nome do registro a ser alterado: "); fflush(stdin); fgets(PESQ, 41, stdin); I = 0; ACHA = 0; while (I

  • 51

    return 0; } int reprovados(void) { int I, J; float NOTA_ALU, SOMA_NT, MEDIA; printf("\n"); printf("Alunos Reprovados\n"); printf("\n"); for (I = 0; I

  • 52 Estudo Dirigido de Linguagem C

    FILE *PTRARQ; PTRARQ = fopen("CAP08AB.DBC", "rb"); fread(A, sizeof(A), 1, PTRARQ); SOMA = 0; I = 0; while (I

  • 53

    PTRARQ = fopen("CAP08D.DBC", "wb"); printf("\nInforme dados da matriz A\n"); for (I = 0; I

  • 54 Estudo Dirigido de Linguagem C

    while (I

  • 55

    PTRARQ2 = fopen("ARQ2.DBC", "wb"); for (I = 0; I