AED – Lista 1 Exercícios básicos: 1. O código a seguir é um

Propaganda
AED – Lista 1
Exercícios básicos:
1. O código a seguir é um programa válido em C. Reescreva este programa usando as regras de
indentação e boa formatação e descubra o que ele faz:
#include <stdio.h> void imprime2(int max){int
i;for(i=0;i<=max;i++){if(i%2==0){printf("%d ",i);}} printf("\n");}int main(){int
a;printf("Digite um inteiro maior que 0: ");scanf("%d",&a);imprime2(a);return 0;}
1.
Escreva um programa que imprima todos os números inteiros entre 31 e 123, inclusive, usando for.
Reescreva o programa usando while.
2.
Escreva um programa que pergunta um número real, um número inteiro e uma string de no máximo
80 caracteres e depois os imprime entre parênteses. Por exemplo, se for digitado o número 2.37, o
número 23 e a string Joao da Silva, o programa imprimirá (2.370000) (23) (Joao da Silva).
3. A respeito de funções, defina os conceitos de argumento, parâmetro e valor de retorno e dê um
exemplo.
4.
Faça o teste de mesa do fragmento de código abaixo e descubra o que é impresso no final.
int i, x = 0; for(i = 1; i != 10; i = i + 1) { if((i % 2 ==0) && (i % 3 != 0)) {x = x +i;
}} printf("%d\n", x);
Exercícios obrigatórios:
6. Faça um programa que dê os comandos abaixo:
int x = 10; printf("%d, %d, %p\n", x, sizeof(x), &x); x = 100; printf("%d, %d, %p\n", x,
sizeof(x), &x); x = 1000; printf("%d, %d, %p\n", x, sizeof(x), &x);
Explique os resultados.
7. Considere a declaração int a[20]. Suponha que sizeof(int) seja 4 e que o comando
printf("%p\n", a);
imprima 0x00000ef4. Qual o número de elementos do vetor a? Quanto espaço ele ocupa na memória?
Qual o endereço do primeiro e do último elemento em notação decimal e hexadecimal?
8. Considere a declaração double m[5][5] e suponha que sizeof(double) seja 8. Quantos elementos tem a
matriz m e quanto espaço ela ocupa na memória? Suponha que o comando
printf("%p\n", m);
AED – Lista 1
imprima 0x000001a4. Qual será o resultado do comando abaixo?
printf("%p, %p, %p, %p\n", &m[0][0], &m[0][4], &m[2][3], &m[4][4]);
1.
Faça um programa que lê 10 números inteiros digitados pelo usuário e os guarde em um vetor. Em
seguida, o programa deve procurar e imprimir o maior número digitado.
2.
Faça um programa que leia uma string de no máximo 80 caracteres digitada pelo usuário e em seguida
substitua todos os espaços por + e imprima o resultado. Por exemplo, se o usuário digitou algoritmos e
estruturas de dados o programa tem que imprimir algoritmos+e+estruturas+de+dados.
3.
Faça um programa que declara e preenche uma matriz de inteiros de 10 linhas e 10 colunas de acordo
com as seguintes regras: os elementos fora das diagonais principal e secundária devem conter a soma
do número da sua linha com o número da sua coluna, e os elementos das diagonais devem ser zero. Em
seguida, a matriz deve ser impressa.
4.
Crie um programa que lê uma matriz de inteiros 5x5 digitada pelo usuário e em seguida imprima a
diagonal principal, a diagonal secundária e as 4 bordas da matriz.
5.
Considere o código abaixo:
int i, m[4][4];
for(i = 0; i < 16;i++) {
m[i / 4][i %4] = i / 4 + i % 4 + 4;
}
printf("%d\n", m[2][3]);
Faça o teste de mesa e descubra o que o printf vai imprimir. Reescreva o programa com índices
separados de linha e coluna e um duplo laço.
14. Explique a seguinte frase: vetores e matrizes em C são estruturas de dados homogêneas,
indexadas por inteiros e fisicamente contíguas.
Exercícios de aprofundamento:
11. Escreva um programa que lê 5 linhas de texto de no máximo 80 caracteres cada e armazena estas
linhas em uma matriz de caracteres. Cada linha desta matriz deve conter uma linha de texto digitada.
Em seguida, o programa deve contar o número de caracteres e o número de palavras digitados e
imprimir o texto.
17. Crie um programa que leia 10 números reais e os armazene em um vetor. Em seguida, o programa
deve calcular a média destes números e quantos destes números estão acima da média.
16. Crie um programa que declara uma matriz de doubles 5x4 e inicializa todos os elementos com
0. Em seguida, o programa deve entrar em um laço que aceita 3 comandos: imprimir a matriz, alterar
qualquer elemento das 3 primeiras colunas ou sair. O valor dos elemento na 4 coluna deve ser sempre a
média dos elementos das três primeiras colunas na mesma linha (deve ser atualizado sempre que a
matriz for alterada).
Download