Puntatori e passaggio di parametri 16) Scrivere una funzione che esegua lo swap di due variabili. Come vanno passate le variabili alla funzione? 17) Scrivere una funzione che ricevuta una matrice bidimensionale di interi, ritorni il puntatore all'elemento di massimo valore. Stringhe 18) Scrivere una funzione che ricevuta una stringa, verifichi se e' palindroma, ritornando 1 in caso lo sia, 0 altrimenti. int palindroma(const char* stringa); 19) Scrivere una procedura che ricevuta una stringa, la inverta. void inverti(char* stringa); 20) Che operazione esegue la funzione seguente? void foo(const char* pa, const char* pb, char* pc) { while(*pa) *pc++ = *pa++; while(*pb) *pc++ = *pb++; *pc=0; } Specificare i requisiti richiesti ai dati di input (pa, pb e pc) perche' l'esecuzione vada a buon fine. Linea di comando 21) Scrivere un programma che prenda un numero da linea di comando e stampi il suo quadrato. Suggerimento: usare la funzione atoi per convertire una stringa in un numero (man atoi per il manuale). 22) Scrivere un programma che prenda da linea di comando tre argomenti in quest'ordine: un numero, un carattere fra +, – , * e / e un altro numero, e stampi il risultato della corrispondente operazione (o un messaggio di errore se qualcosa non va). Suggerimento: usare la funzione atoi per convertire una stringa in un numero.