vuoi
o PayPal
tutte le volte che vuoi
Campo d'azione e Collegamento
3) Il campo di azione di una variabile definisce dove la variabile può essere referenziata durante
un programma
4) Le variabili locali hanno permanenza in memoria automatica
5) Una variabile di tipo static, dichiarata all'interno di una funzione mantiene sempre il suo valore,
anche dopo l'uscita dalla funzione
6) Un identificatore di una variabile rappresenta una locazione di memoria centrale
7) In linguaggio C, una variabile dichiarata fuori e prima del main() è di tipo globale
8) Il ciclo di vita di una variabile locale, in linguaggio C va dal momento in cui la funzione è
invocata fino al ritorno al chiamante
9) In linguaggio C, lo scope di una variabile globale è l'intero file in cui è definita
10) Dato il seguente frammento di codice:(for int i=0;i<10;i++) printf("%d\n",i);,la variabile i è di
tipo locale al blocco for
22 - La ricorsione
1) Una funzione è ricorsiva se nella sua definizione richiama se stessa
2) Una funzione ricorsiva deve prevedere un caso base ed un passo induttivo
3) Il passo induttivo o ricorsivo della funzione fattotiale è return n*fatt(n-1)
4) Il prototipo di una funzione ricorsiva, in linguaggio C non è diverso da quello di una funzione
non ricorsiva
5) L'espressione Fib(n) = Fib(n-1) + Fib(n-2) rappresenta il passo induttivo della funzione ricorsiva
di Fibonacci
6) Nella definizione ricorsiva della funzione somma(x,y) che somma due numeri interi non negativi
x ed y, il passo base è se y=0 return x
7) Nella definizione ricorsiva della funzione prodotto(x,y) che restituisce il prodotto tra due interi
non negativi x ed y, il passo base è se y=0 return 0
8) Nella definizione ricorsiva della funzione potenza tra 2 interi non negativi, potenza(m,n), il
passo base è se n=0 return 1
9) Ogni chiamata ricorsiva lavora via via su un problema più piccolo fino a risolvere l'intero
problema
10) Quando il passo o caso base di una funzione ricorsiva viene risolto il risultato del caso base
viene ritornato alla chiamata dell'ultimo passo ricorsivo
23 - Ricorsione e iterazione
1) L'area Stack è una struttura dati organizzata a pila
2) Le operazioni ammesse nell'area stack sono PUSH e POP
3) Quando viene invocata una funzione, viene creato un record di attivazione
4) Quando una funzione termina, il controllo passa alla funzione chiamante
5) L’area Stack è una parte della memoria centrale (RAM) dedicata
6) La funzione di Ackermann è un classico esempio di funzione ricorsiva con ricorsione annidata
7) Il problema più grande delle funzioni ricorsive è il controllo dello spazio nell’area stack
8) Data una funzione ricorsiva ne esiste sempre una versione iterativa
9) L’operazione POP sull’area stack provoca la cancellazione di un record di attivazione
10) L’operazione PUSH sull’area stack provoca la creazione di un record di attivazione
24 - Array numerici
1) L'array è un tipo di dato strutturato
2) Un array contiene dati dello stesso tipo
3) Nello standard C89, la dimensione di un array deve essere prefissata
4) Tutti gli elementi di un array condividono un nome comune
5) Gli elementi di un arry in memoria RAM sono memorizzati in locazioni contigue
6) Per accedere ad un elemento di un vettore si deve specificare il nome e l’indice
7) Nel linguaggio C, in un array, la numerazione dell'indice parte da zero
8) Nel linguaggio C, l'istruzione 'printf( '%d', c[0] + c[1] + c[2] ); ‘ stampa la somma dei primi tre
elementi dell'array c
9) L'istruzione 'c[a+b]--' con a=0 e b=0 decrementa di una unità il primo elemento dell'array c
10) Nel linguaggio C, la dichiarazione 'int n[4] = {1, 2, 3, 4, 5 }; ', risulta errata poiché inizializzo
l'array c con più elementi del consentito
25 - Array di caratteri (Stringhe)?
1) La stringa 'mercatorum'in linguaggio C è rappresentata con un array di 11 caratteri
2) L'ultimo carattere di una stringa nel linguaggio C deve essere sempre \0’
3) L'istruzione in linguaggio C: scanf( '%s', string2 ) legge in input una stringa da tastiera
4) Nel linguaggio C, per acquisire una frase da tastiera servono più scanf
5) Nel linguaggio C l'istruzione: printf(‘%s',string1) stampa a video tutti i caratteri fino a quello
nullo (escluso)
6) Nel linguaggio C, la dichiarazione: char s[20] alloca in memoria uno spazio di 20 byte
7) Una stringa si definisce palindroma quando risulta simmetrica rispetto ai caratteri che la
compongono
8) Nel linguaggio C, l'istruzione: printf (‘%c',string1[3]) stampa a video il quarto carattere a partire
da sinistra di string1
9) Nel linguaggio C, la seguente dichiarazione: char string1[]=‘PIPPO' alloca in memoria centrale
6 byte
10) Nel linguaggio C, la seguente istruzione: p[10]=‘\0' inserisce nell'undicesimo byte della stringa
p il carattere NULL
26 - Vettori e funzioni
1) Nel linguaggio C, il metododi default di passaggio dei parametri è per valore
2) Dato il segente array in linguaggio C: int MyArray[24], la funzione MyFunction(MyArray, 24 )
può modificare l’array
3) Nel linguaggio C, il nome di un vettore rappresenta l’indirizzo di memoria centrale del primo
elemento dell’array
4) Nel linguaggio C, la funzione: int myFunction(const myArray, int dimension) non può
modificare l’array myArray passato come parametro
5) Nel linguaggio C, l'invocazione: MyFunction2(MyArray[3]), consente alla funzione invocata di
utilizzare senza modificare il quarto elemento dell'array MyArray
6) Nel linguaggio C, il passaggio per valore ad una funzione significa che la funzione lavora solo
su una copia del parametro passato
7) Nel linguaggio C, il seguente prototipo: int myFunction(int a[]) è il prototipo di una funzione che
torna un intero e lavora su un array di interi
8) Nel linguaggio C, la dichiarazione: int a[5]={1,2,3,4,5} dichiara ed inizializza un array di cinque
interi
9) Nel linguaggio C, se nella definizione di una funzione non viene dichiarato il tipo di dato
ritornato viene assegnato di default il tipo di dato int
10) Nel linguaggio C, una funzione che ha come parametro formale un array, significa che per
NON cambiarne il valore deve prima fare una copia locale dell'array e poi lavorarci
27 - Ordinamento di array
1) Ordinare un array numerico significa dare agli elementi dell'array un ordine significativo per chi
li gestisce
2) L'ordinamento di un array può essere svolto se e solo se presenta almeno due componenti, di
qualunque tipo di dato si tratti
3) Una tabella dati con più colonne, può essere ordinata per più variabili
4) Il bubble sort è unalgoritmo di ordinamento di complessità n*n
5) Dato il vettore V={7,4,2,5,8,2,3,3}, dopo due passate del bubble sort, il vettore sarà
V={2,4,5,2,3,3,7,8}
6) Dato il vettore V={8,1,2,3,4}, dopo la prima passata del bubble sort, si avrà V={1,2,3,4,8}
7) Per scambiare tra loro due variabili chiamate a e b, una sequenza corretta dello swapping è:
c=a;a=b;b=c;
8) L'algoritmo bubble sort si basa su scambi tra elementi adiacenti
9) La variabile sentinella nell'algoritmo bubble sort serve a verificare se ci sono stati scambi in
una passata
10) L'algoritmo di ordinamento bubble sort è composto da due cicli di passate uno dentro l’altro
28 - Algoritmi di ricerca
1) La verifica esistenziale consiste nel determinare se una una sequenza di elementi contiene un
valore chiave
2) L'algoritmo della verifica esistenziale si basa su una variabile Boolean
3) La verifica universale consiste nel determinare se una sequenza di elementi verifica una
determinata proprietà p
4) La verifica universale si può sempre ricondurre a una verifica esistenziale
5) Nella ricerca l'obiettivo è ricercare in una sequenza un valore chiave
6) La ricerca binaria si può effettuare solo quando la sequenza è ordinata
7) La ricerca lineare si può applicare quando la sequenza è non ordinata
8) L'algoritmo di ricerca lineare ha una complessità pari a n*n
9) L'algoritmo di ricerca binaria ha una complessità pari a log(n)
10) Dato un vettore di 50 elementi già ordinato, quanti passi deve fare al più l'algoritmo di ricerca
dicotomica per trovare il valore cercato? 6
29 - Matrici
1) Un array che usa due indici è chiamato array bidimensionale
2) Una matrice bidimensionale nel linguaggio c viene rappresentata con righe e colonne
3) Definendo table come un array intero con 3 righe e 3 colonne, esso contiene 9 elementi
4) L'istruzione in linguaggio C 'printf( '%d', b[ 0 ][ 1 ] );’ stampa a video il secondo valore della
prima riga della matrice b
5) In una matrice bidimensionale, si può anche ricavare l'array monodimensionale di una riga
della matrice
6) I valori di inizializzazione di una matrice sono raggruppati per riga tra { } più interne
7) Per default tutti gli elementi di una matrice numerica sono inizializzati al valore zero
8) Il passaggio di una matrice ad una funzione, per default, avviene per riferimento
9) Se si vuole passare una matrice per valore ad una funzione, in linguaggio C, è necessario
utilizzare l’attributo const
10) La definizione :char menuOperazioni [4][50]={ {'1) Carica array con numeri casuali'}, {'2)
Ricerca del massimo'}, {'3) Calcola la media'}, {'0) Esci dal programma'} }; rappresenta un
menu testuale
30 - Puntatori
1) Una variabile puntatore contiene un indirizzo di memoria
2) Per operazione di "deriferimento" si intende l'accesso ad una variabile tramite puntatore
3) Una variabile puntatore può puntare a qualsiasi tipo di dato
4) Un puntatore è un tipo di dato derivato
5) La dichiarazione "int *myPtr;" nel linguaggio C definisce un puntatore ad intero
6) Un puntatore si può inizializzare con il valore NULL
7) L'operatore di indirizzo "&", applicato ad un puntatore, nel linguaggio C, restituisce l'indirizzo
di memoria del suo operando
8) Nel linguaggio C, la dichiarazione "double x = yptr” non è ammissibile
9) L'operatore di deriferimento "*", nel linguaggio C, ritorna il valore contenuto nella variabile
puntata dal suo operando
10) Gli operatoei "*" e "&" sono operatori inversi
31 - Puntatori e funzioni
1) Nel linguaggio C il passaggio ad una funzione per riferimento significa che si passano
puntatori come parametri
2) Nel lnguaggio C, il passaggio per riferimento ad una funzione prevede l'utilizzo dell'operatore
‘&'
3) N