2
2
2
2021
TEMPO: 75 minuti
INDIRIZZO e-mail per la consegna: rzizza@unisa.it
Cognome: Nome:
Matricola: Firma:
Svolgere gli esercizi giustificando ogni risposta. Alle risposte corrette ma non giustificate sarà
assegnato un punteggio di poco superiore allo zero.
1
Esercizio 2 Descrivere il significato della seguente funzione e cosa viene stampato dal main.
int f (char s[], char t[]) {
char *s1=s;
char *t1=t;
for (; *s1 !=’\0’; s1++)
f o r (t1=t; *t1!=’\0’; t1++)
i f (*s1==*t1) return s1-s;
return -1;
}
int main(void) {
char a[]="natale";
char b[]="studio";
char c[]="sempre";
char d[]="vita";
2
Esercizio 3 Si consideri il seguente codice.
#include <stdio.h>
#include <stdlib.h>
Il codice non viene compilato correttamente. Qual è l’errore? Come correggerlo? Una volta
corretto, cosa viene stampato se da linea di comando vengono passati 3 e 5.
3
Esercizio 4 Il seguente programma presenta un errore. Indicare qual è, come correggerlo e
una volta corretto indicare cosa viene stampato, spiegando il significato della funzione.
#include <stdio.h>
int main(void) {
char *s="pinna";
f(s,1,5);
printf("%s\n", s);
return 0 ;
}
4
Esercizio 5 Il seguente programma presenta due errori. Dopo averli individuati, indicare
come correggerli e cosa stampa il programma, motivando la risposta.
#include <stdio.h>
#define N 10
int main(void){
int array[] = {10,21,3,24,5};
int i, x=*array;
5
BRUTTA COPIA
6
BRUTTA COPIA