• Non ci sono risultati.

Esercizio 1 (2 punti)

N/A
N/A
Protected

Academic year: 2021

Condividi "Esercizio 1 (2 punti)"

Copied!
2
0
0

Testo completo

(1)

Università degli Studi di Udine

Corsi di laurea in Ing. Elettronica Gestionale Fondamenti di programmazione

17 novembre 2017 - Prova intermedia

Matricola ____________________________

Nome ____________________________

Cognome ____________________________

Aula ____ Fila (dalla cattedra) ____ Posto (dalla porta) ___

Esercizio 1 (2 punti)

Cosa stampa il seguente frammento di codice?

char s[10];

strcpy (s, "testo");

s[strlen(s)-2] = '\0';

printf ("%s", s);

[ ] tes [ ] test [ ] testo

[ ] testo seguito da un carattere casuale

Esercizio 2 (4 punti)

La seguente funzione cerca in una matrice di interi positivi

int m[5][10]

una coppia di celle adiacenti, in orizzontale, contenenti il medesimo valore. Si assuma che nella matrice possa esserci al massimo una coppia di elementi che soddisfi tale condizione. La funzione deve restituire il valore contenuto in tali celle o -1, se tale coppia non esiste.

Si completi la funzione.

int cerca_coppia (int m____________) {

int i, j;

for (i = 0; i < 5; i++) for (j = 0; j < 9; j++)

if (________________________) return _______;

return ______;

}

Esercizio 3 (2 punti)

Considerando un’architettura da 32 bit, quanti byte occupano i seguenti dati?

0 _____________

"0" _____________

'0' _____________

'\0' _____________

"0\n" _____________

Esercizio 4 (4 punti)

Si completi la funzione void swap_vettori (int v1[], int v2[], int dim) che scambia il contenuto dei due vettori passati come argomento, entrambi della medesima dimensione dim.

void swap_vettori(int v1[], int v2[], int dim) {

int i;

for (i = 0; i < ________; i++) swap_int (___________________);

return;

}

void swap_int (____________________) {

int t;

t = _______;

*p_a = ________;

*p_b = ________;

return;

}

Esercizio 5 (4 punti)

Un vettore di numeri reali contiene i tassi di interesse (percentuali) di un periodo di dieci anni, uno per anno.

Il calcolo dell’interesse composto di una somma richiede che per ogni anno venga calcolato l’importo disponibile all’inizio dell’anno, comprensivo degli interessi accumulati negli anni precedenti, e a tale importo venga applicato il tasso di interesse dell’anno considerato. Il valore risultante sarà l’importo di partenza per l’anno successivo.

Per esempio, se il vettore contiene i valori { 2.5, 2.3, 1.2, 0.9, 1.7, 2.2, 2.0, 1.8, 1.6, 1.1 }, l’importo iniziale (depositato all’inizio del primo anno) è pari a 100.00 euro e il numero di anni da considerare è 3, l’importo finale sarà 106.1158, ottenuto da {[100 * (1+2.5/100)]

* (1+2.3/100)} * (1+1.2/100).

La funzione

double importo_finale (double tassi[],

double importo_iniziale, int anni)

riportata nel seguito, che dovrebbe calcolare l’importo

finale applicando l’interesse composto all’importo

iniziale per il numero di anni e per i tassi di interesse

passati come argomenti, contiene diversi errori. Li si

evidenzino e li si correggano.

(2)

double importo_finale

(double tassi[];

double importo_iniziale;

int anni) {

double capitale;

int i;

importo_iniziale = capitale;

for (i = 0; i <= anni; i++) capitale = importo_iniziale * (1+tassi[i]/100);

return importo_finale;

}

Esercizio 6 (2 punti)

Alle variabili q ed r devono essere assegnati, rispattivamente, quoziente e resto della divisione intera tra le variabili intere a e b. Indicare quale delle seguenti è la coppia di istruzioni corrette.

[ ] q=a%(--b); r=a/(++b);

[ ] q=a%(++b); r=a/(--b);

[ ] q=a%b; r=a/b;

[ ] q=a/b; r=a%b;

[ ] q=a/b; r=b/a;

[ ] q=a%b; r=b%a;

______________________________________________________________________________________________

Esercizio 7 (4 punti)

Si consideri una stringa s contenente "3022". Indicare quale/i tra i seguenti frammenti di codice scrive nella variabile x il valore rappresentato dalla stringa s.

[ ] x = atoi(s);

[ ] atoi(s) = x;

[ ] sscanf(s, "%d", &x);

[ ] sscanf(x, "%d", &s);

[ ] x = (int)s;

[ ] x=0; i=0; while(*(s+i)!='\0') x=x*10+*(s+i++)-'0';

______________________________________________________________________________________________

Esercizio 8 (8 punti)

Una stringa contiene un testo in cui alcune lettere dell’alfabeto sono state sostituite da cifre numeriche.

Per esempio: "TE5T0 D1 PR0V4"

Si scriva una funzione che riceva in ingresso una stringa siffatta e restituisca, come valore di ritorno, il numero intero

rappresentato dalle sole cifre numeriche presenti nella stringa. Nell’esempio, la funzione deve restituire il valore 50104

(ottenuto estraendo le cifre evidenziate "TE5T0 D1 PR0V4" e calcolando il valore da esse rappresentato).

Riferimenti

Documenti correlati

Recesso volontario dal rapporto di lavoro dall’ 01.01.2019, con diritto alla pensione anticipata, della sig.ra Marzia Rosa SEGNI, Collaboratore Professionale Sanitario Senior

730142 (agli atti del provvedimento) e la relazione congiunta del RUP e del Referente settore Tecnico della sede di Tortona (allegata al presente provvedimento quale parte

[r]

[r]

Le priorità sono ricomprese in alcune delle azioni che il Ministro ha già avviato nel corso della sua esperienza: tutela del reddito e della qualità del lavoro, politiche

[r]

- costo personale: è stato assunto come riferimento il costo medio orario per il personale terziario, della distribuzione e dei servizi per aziende con oltre 50 dipendenti (01/2020)

E’ richiesto anche il disegno dell’estensione periodica