• Non ci sono risultati.

Esercizio 1 (5 punti) Si scriva la funzione

N/A
N/A
Protected

Academic year: 2021

Condividi "Esercizio 1 (5 punti) Si scriva la funzione"

Copied!
2
0
0

Testo completo

(1)

Università degli Studi di Udine

Corsi di laurea in Ing. Elettronica Gestionale Fondamenti di programmazione

16 novembre 2018 - Prova intermedia

Matricola ____________________________

Nome ____________________________

Cognome ____________________________

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

Esercizio 1 (5 punti)

Si scriva la funzione int quanti_divisibili (int v[], int dim, int divisore) che restituisce il numero di valori contenuti nel vettore v[] che sono divisibili per divisore.

Esercizio 2 (5 punti)

Il vettore int primi[N] (dove N è una costante predefinita) contiene i primi N numeri primi a partire da 2. Un secondo vettore, di nome valori, la cui dimensione è contenuta nella variabile n_valori, contiene un insieme di numeri interi.

Si scriva la funzione

conta_divisibili (int primi[], int valori[], int n_valori, int contatori[])

che scrive in ciascun elemento del vettore contatori (anch’esso di dimensione N) quanti elementi del vettore valori sono divisibili per il numero primo presente nella corrispondente posizione del vettore primi.

Per esempio, se il vettore primi contiene i valori { 2, 3, 5, 7, 9 } e il vettore valori { 4, 12, 14, 11 } (e quindi n_valori vale 4), al termine della funzione il vettore contatori dovrà contenere { 3, 1, 0, 1, 0 }, in quanto 3 valori sono divisibili per 2 (indice 0), 1 valore è divisibile per 3 (indice 1), nessun valore è divisibile per 5 (indice 2), ecc.

Esercizio 3 (4 punti)

La seguente funzione esegue una ricerca lineare in un vettore di stringhe per convertire il nome di un mese nel numero corrispondente. La funzione deve restituire -1 se il nome del mese è errato (non presente). La si completi.

int converti_mese_da_nome_a_numero (char nome_mese[]) {

char nomi_mesi[13][16] = { "", "gennaio", "febbraio", "marzo", "aprile", "maggio", "giugno", "luglio", "agosto", "settembre", "ottobre", "novembre", "dicembre" };

int i = 1;

while (_______________)

}

(2)

Esercizio 4 (3 punti)

Cosa stampa il seguente segmento di codice?

int a; char s[10];

a = 15; strcpy (s, "testo\n");

printf ("%d %d %d %d %d %c",

a/6, a%6, a/30, a%30, strlen(s), s[2]);

Esercizio 5 (3 punti)

char s[10], ch1, ch2;

printf ("inserisci i dati qui -->");

ch1 = getchar();

scanf ("%s", s);

ch2 = getchar();

printf (">%c< >%s< >%c<", ch1, s, ch2);

L’esecuzione del segmento di codice sopra riportato stampa la richiesta dei dati di ingresso (“inserisci i dati qui -->”) a cui l’utente ha risposto inserendo “100 100 100” (si veda l’esempio di seguito). Cosa avrà stampato in uscita il programma?

inserisci i dati qui -->100 100 100

Esercizio 6 (2 punti)

Scrivere la dimensione in byte delle seguenti costanti e variabili:

char s[3] ____

int a ____

'\0' ____

char ch ____

'0' ____

"1" ____

"23" ____

"" ____

Esercizio 7 (2 punti) La seguente istruzione

while (0);

[ ] è un ciclo infinito [ ] non esegue nulla

[ ] contiene un errore sintattico [ ] contiene un errore lessicale [ ] è rifiutata dal compilatore

Esercizio 8 (2 punti)

Un programmatore distratto doveva scrivere

if (a == l)” (“elle”) e invece ha scritto

if (a = l)” (“uno”, con un solo uguale):

a = 5;

if (a = 1) b = a++;

Che valori assumono, di conseguenza, le variabili a e b al termine dell’esecuzione di questo frammento di codice?

[ ] 2 e 1 [ ] entrambe 2

[ ] a=5 e b un valore casuale in quanto non inizializzata

[ ] 6 e 5 [ ] entrambe 6

Esercizio 9 (4 punti)

Si scriva una funzione che riceva come argomento by reference una data (in forma numerica: giorno, mese e anno) e la modifichi nel primo gennaio dell’anno successivo. Per esempio, se la data ricevuta è { 16, 11, 2018 }, essa deve essere modificata in { 1, 1, 2019 }.

Risposta:

Risposta:

Riferimenti

Documenti correlati

Queste prova ` e stata fatta sia per verificare come cambiano i parametri di macchina al variare del numero di barriere sia per mostrare le potenzialit` a del software che permette

[r]

[r]

Sui vettori delle coordinate di un vettore di R 2 rispetto alle basi di R 2... In particolare, si

Ora, un punto che partendo da O si sposta prima nel punto di coordinate v1 , v2 , 0 e poi si sposta di v3 unita’ nella direzione dell’asse z, descrive i due cateti di un

Quando occorra pensare un vettore come matrice, esso sara’ pensato come

[r]

Si scriva la funzione int trova_massimi (int valori[], int indici_massimi[]) che scrive nel vettore indici_massimi gli indici del vettore valori dove sono