Test di autovalutazione 7 

Domanda 1 : 

Quale e' il codice operativo dell' istruzione Load da IND1 in R1 se IND1 vale 11001  ?

1010

1100

0100

0000

 

Domanda 2 :

Cosa fa questo algoritmo ?

1) leggere m ;   2) leggere n ;   3)  inizializza p al valore 0         4)  fintanto che n e' maggiore di  0 esegui le istruzioni a) e b) : a) p <--- p+m ;  b) n <--- n-1 ;   5)  Stampa p .

" Tradurre nel corrispondente diagramma di flusso ed in linguaggio C questo algoritmo, come esercizio "

  Calcola il prodotto tra  n-1  ed  m   e stampa il risultato 

  Calcola la differenza  m - n e stampa il risultato              

 Calcola il prodotto tra  m  ed  n   e stampa il risultato            

Calcola la divisione tra  m  ed  n  e stampa il risultato            

 

Domanda 3 :

Supponiamo che dopo aver eseguito il ciclo  : 4)  fintanto che n e' maggiore di  0 esegui le istruzioni a) e b) : a) p <--- p+m ;  b) n <--- n-1 ;   5)  Stampa p . "eseguito una volta" , abbiamo la seguente coppia di  ( p , n ) = (6,4); ci chiediamo che tipo di simulazione otteniamo da questa sequenza: 

( 6 , 4 ) (12 , 3) (18 , 2 ) (24,1) (30 , 0) e quanto e'  il valore di m .

  Calcola il prodotto tra 4 e 5 e somma 10 ed  il valore di m e' 5

  Calcola il prodotto tra 6 e 5 ed il valore di m e' 6

  Calcola la divisione tra 120 e 12 e moltiplica il risultato per 3 ed il valore di m e' 6 

  Calcola il prodotto tra p= 6 ed n = 5 ed il valore di m e' 6

 

Domanda 4 :

Se alla variabile totale di valore attualmente 2000 memorizzata nella cella di memoria di L-VALORE = 00110110 

Indirizzo

R-VALORE

………….

        …..

………….

        .….

00110110

      2000

00110111

       ……

………….

       ……

viene assegnato il valore 2001 : totale=2001; cosa accade in memoria ?

 

Viene memorizzato il nuovo valore 2001, nella cella di memoria successiva al precedente valore 2000

 Viene sovrascritto il valore 2000 con il nuovo valore 2001

Viene memorizzato il nuovo valore 2001 nella cella 00110111 e contemporaneamente cancellato il precedente valore 2000

 Viene memorizzato il valore 2001 in una nuova  locazione di memoria scelta dal compilatore e conservato il vecchio valore 2000 per ulteriori usi .

 

Domanda 5 :

Di quante variabili si ha bisogno per calcolare il massimo fra k numeri letti da Input ?

 3

  6

  4 

 5

 

Domanda  6 :

Quali fra i seguenti programmi calcola in modo corretto la somma:  fra un numero s letto da input ed il minimo fra k numeri letti da input, supponendoli di tipo intero ?

  

#include< stdio.h>

main( ){ int s , k , somma, cont=0, minimo=0;

scanf("%d", &s); scanf("%d", &k);

while ( cont < k ){  scanf("%d", &num); 

   if (num <minimo ) minimo=num;  cont= cont+1; }

somma= minimo + s ; printf("\n%d",somma);

}

 

 

#include< stdio.h>

main( ){ int s , k , num, somma, cont=0, minimo=0;

scanf("%d", &s); scanf("%d", &k);

while ( cont < k ){  scanf("%d", &num); 

   if (num <minimo ) minimo=num;  cont= cont+1; }

somma= minimo + s ; printf("\n%d",somma);

}

 

 

#include< stdio.h>

main( ){ int s , k , num, somma, cont=1, minimo=0;

scanf("%d", &s); scanf("%d", &k);

while ( cont < k ){  scanf("%d", &num); 

   if (num <minimo ) minimo=num;  cont= cont+1; }

somma= minimo + s ; printf("\n%d",somma);

}

 

  

#include< stdio.h>

main( ){ int s , k , num, somma, cont=0, minimo=0;

scanf("%d", &s); scanf("%d", &k);

while ( cont < k ){  scanf("%d", &num); 

   if (num >minimo ) minimo=num;  cont= cont+1; }

somma= minimo + s ; printf("\n%d",somma);

}

 

Domanda  7 :

Quali fra i seguenti algoritmi  stampa soltanto il numero pari moltiplicato per il valore 1000 ed il numero dispari moltiplicato per il valore 1001 e ne calcola e stampa il totale, fra 2 numeri   letti da ingresso di cui uno e' sempre pari ; ricordando che l'operazione di modulo in C si indica con il simbolo % .

for (i=1;i<3;i++) {  Leggi num ;

 se (num % 2) e' uguale zero  {nump=num ;nump = nump*1000}

altrimenti {numd= num; numd= numd*1000 } }

 3)stampa (numd+nump) ;

 

 

for (i=0;i<=2;i++) {  Leggi num ;

se (num % 2) e' uguale a zero  {numd=num ;numd = numd*1001}

altrimenti {nump= num; nump= nump*1000 } }

 3)stampa (numd+nump) ;

 

i= 1; while (i<=2) { Leggi num ;

se (num % 2) e' diverso da zero  {nump=num ;nump =nump*1000}

altrimenti {numd= num; numd= numpd1001 } }

 3)stampa (numd+nump) ;

 

for (i=1;i<3;i++) {  Leggi num;

se (num % 2) e' diverso da zero  {numd=num ;numd =numd*1000}

altrimenti {nump= num; nump= nump*1001 } }

 3)stampa( numd+nump );

 

Domanda  8 :

Cosa fa il seguente programma : 

#include<stdio.h>

 main() { int num=1 ; while (num<=15){printf("\n%d",num); num+=1;}}

se fosse num inizializzato stamperebbe i numeri da 1 a 15 sul video

stampa i numeri dispari da 1 fino a 15 sul video 

Stampa i numeri interi da 1 a 15 sul video, sulla stessa riga

Stampa i numeri interi da 1 a 15 sul video, uno per riga .

_______________________________________________________

 

                        

Risposte esatte su domande affrontate

_______________________________________________________

return to lesson 7

_______________________________________________________