ESAME 15-07-99 (C)
Questionario cartaceo
Rispondere alle seguenti domande:
-
Trasformare il seguente numero in base 7 nel corrispondente in base 9:
123
- Che cosa stampa il seguente programma C?
#include <stdio.h>
#include <stdlib.h>
int * x;
void F(int y)
{ int *z;
z = (int *)malloc(sizeof(int));
*z = y;
x = z;
}
main()
{ int i, w = 7;
for(i=1; i <= 5; i = i * 2){
F(i);
printf("...%d...\n",*x); };
}
-
Descrivere brevemente in modo schematico la storia di un programma C partendo
da quando viene scritto
sulla carta fino a quando il computer ritornerà i suoi risultati.
-
Completare il seguente frammento di programma C come indicato dai commenti:
#include < stdio.h>
#include < stdlib.h>
typedef struct ALB *ALBERO;
struct ALB { float ELEM;
ALBERO SINISTRO;
ALBERO DESTRO; } ;
BOOL APPARTIENE(ALBERO a, float e)
/*questa funzione controlla se e appartiene all'albero a,
cioe' se si trova in uno dei suoi nodi */
{......}
Parte laboratorio
Completare il seguente programma C come indicato dai commenti
#include <stdio.h>
/*gli elementi del tipo IMMAGINE rappresentano delle immagine a colori in modo digitale, ogni*/
/*elemento della matrice rappresenta un colore secondo un opportuno meccanismo di codifica */
#define H 5
#define L 7 /*altezza e larghezza delle immagini*/
typedef int IMMAGINE[H][L];
/* sottoprogramma che controlla se un'immagine e' a bande orizzontali */
/* per esempio quella che segue lo e' 3 3 3 3 3 3 3
3 3 3 3 3 3 3
4 4 4 4 4 4 4
2 2 2 2 2 2 2
2 2 2 2 2 2 2
mentre quest'altra non lo e' 3 3 3 3 3 3 3
3 3 3 0 3 3 3
4 4 4 4 4 4 4
2 2 2 2 2 2 2
2 2 2 2 2 2 2 */
........
/* sottoprogramma che controlla se un'immagine e' a righine verticali */
/* per esempio quella che segue lo e' 3 4 3 4 3 4 3
3 4 3 4 3 4 3
3 4 3 4 3 4 3
3 4 3 4 3 4 3
3 4 3 4 3 4 3
mentre quest'altra non lo e' 3 4 3 3 3 4 3
3 4 3 3 3 4 3
3 4 3 3 3 4 3
3 4 3 3 3 4 3
3 4 3 3 3 4 3 */
............
/* sottoprogramma che controlla se un'immagine e' a quadretti */
/* per esempio quella che segue lo e' 3 0 3 0 3 0 3
0 3 0 3 0 3 0
3 0 3 0 3 0 3
0 3 0 3 0 3 0
3 0 3 0 3 0 3
mentre quest'altra non lo e' 3 3 0 0 0 0 0
3 3 0 0 0 0 0
0 0 3 3 3 3 3
0 0 3 3 3 3 3
0 0 3 3 3 3 3 */
.............
main()
{ /* testare adeguatamente le procedure definite sopra*/
/* evitare di definire un sottoprogramma per leggere una matrice */
......
}