void foo(int A, int B, int *C, int
*D) {
while (*D>A) { if (B<100)
(*C)= (*C)*(B-A);
else
(*C)=(*C)+(A*B);
*D=*D-A;
B=B+(*D)-50;
} }
Le risposte corrette sono riportate in grassetto:
Per ognuna delle seguenti domande indicare con una X l’unica risposta corretta:
1) Il record è:
a) Un tipo di dato strutturato formato da un predeterminato numero di campi, ciascuno dei queli può essere un tipo semplice o strutturato b) Un tipo di dato strutturato formato da un
predeterminato numero di campi tutti dello stesso tipo, semplice o strutturato
c) Il tempo minimo in cui può essere eseguito un programma
2) Un sottoprogramma di tipo Procedure ritorna al programma chiamante:
a) Un valore assegnato ad uno solo dei suoi parametri formali, detto di out
b) Un valore assegnato ad ognuno dei suoi parametri formali di out o di inout
c) Un valore assegnato al nome stesso della Procedure 3) Nel linguaggio C il tipo record:
a) E' definito tramite la parola chiave RECORD b) E' definito tramite la parola chiave RECORD seguita
dalla parola chiave FIELDS per la definizioni dei campi del record
c) Non esiste, ma è assimilabile ad una STRUCT 4) Un sottoprogramma di tipo Funzione ritorna al programma chiamante:
a) Un valore che è assegnato ad uno solo dei suoi parametri formali, detto di out
b) Un valore che è assegnato ad ognuno dei suoi parametri formali sia di in che di out
c) Un valore assegnato al nome stesso della Funzione 5) Un array monodimensionale è un tipo strutturato caratterizzato da:
a) Costruttore: sequenza; Elementi tutti dello stesso tipo;
Funzione d'accesso: per posizione
b) Costruttore: prodotto cartesiano; Elementi di tipo diverso; Funzione d'accesso: per posizione
c) Costruttore: prodotto cartesiano; Elementi tutti dello stesso tipo; Funzione d'accesso: per posizione 6) La cardinalità di un array monodimensionale indica:
a) Il numero di elementi dello array che vengono effettivamente utilizzati
b) Il numero di elementi costituenti lo array c) Il numero cardinale indicante la posizione di un
elemento nello array 7) Il programma caricatore è:
a) Un programma del software di base che effettua il caricamento in memoria centrale dei programmi che devono essere eseguiti, allocando
opportunamente le loro istruzioni ed i dati nelle locazioni di memoria.
b) Un programma per caricare i valori iniziali nelle posizioni di in un array bidimensionale
c) Un programma del software di base che effettua la registrazione su hard disk dei programmi sorgente di utente allocandoli opportunamente su tracce e settori.
8) La rappresentazione in bit del numero intero decimale 103 è:
a) 1110011 b) 1100111 c) 0111011
9) La rappresentazione in base decimale del numero esadecimale BF85 è:
a) 49013 b) 49029 c) 4929
10) La somma binaria dei due numeri binari 001101 e 101001 è:
a) 101110 b) 110101 c) 110110
11) Nell'ambito dei Sistemi Operativi (S.O.) un Processo può assumere uno dei seguenti stati:
a) In attesa, in esecuzione, terminato b) Pronto, in esecuzione, terminato c) Pronto, in esecuzione, in attesa
12) Nella seguente dichiarazione, in C, di una funcion void Pippo (int A; int *B);
i parametri formali A e B sono scambiati:
a) A per riferimento, B per valore b) A per valore, B per riferimento c) A e B per riferimento
13) Un programma C chiama la function foo, riportata nel riquadro seguente, con l'istruzione foo(X,Y,&W,&Z), dove i parametri effettivi hanno questi valori: X=20, Y=40, W=15, Z=70. Quali sono i valori di X, Y, W e Z dopo l'esecuzione della procedure?
a) X=20, Y=40 W=0, Z=10 b) X=20, Y=-20
W=0, Z=10 c) X=40, Y=20
W=10, Z=0
=========================================================================
Scrivere, producendo la necessaria documentazione, un programma che dato un array monodimensionale di interi di cardinalità 20 ed un valore di tipo intero letto in input:
(1) Determini quante volte il valore letto è presente in esso;
(2) Elimini gli elementi pari al valore letto compattando lo array.