2000 – 13

Sia dichiarato un array int a[10]; Cosa succede all’esecuzione del seguente codice: for (i=0; i<=10; i++)    a[i]=2; Tutto l’array viene inizializzato al valore 2. Si superano i limiti dell’array. L’errore viene segnalato in fase di compilazione. Si superano i limiti dell’array. L’errore viene segnalato all’esecuzione del codice. Si superano i limiti dell’array. L’errore non … Leggi tutto

2000 – 12

Sia definita la seguente funzione: int cond(){ return cond(); } Cosa succede all’istruzione if((a > 0) && cond()) printf(“ciao”); al variare di a? Cosa succede all’istruzione if(cond() && (a > 0)) printf(“ciao”); al variare di a? Soluzione: Se a

2000 – 11

Sia data una variabile dichiarata come char c; Ipotizzando che essa contenga un carattere compreso tra ‘0’ e ‘9’, come si trasferisce in una variabile intera v il valore decimale della cifra rappresentata da c? v=atoi(c); v=(int)c; v=c-‘0′; v=c; Soluzione: c. Osserva atoi() si applica alle stringhe restituisce il codice ASCII: 48, 49, … c-‘0’ = … Leggi tutto

2000 – 10

Cosa fa il seguente frammento di programma? int i=0; while(i < 50)    if(i%2) printf("%d", i);       i++; Soluzione: va in loop e non stampa nulla. Indentando il codice diventa tutto più chiaro int i=0; while(i < 50)    if(i%2) printf("%d", i); i++; Il ciclo while() va in loop perché l'indice i non cambia... ... Leggi tutto

2000 – 9

La variabile dichiarata come char d[N][M]; è … un vettore di N stringhe di lunghezza M-1 un vettore di M stringhe di lunghezza N una matrice NxM di stringhe una matrice NxM di stringhe lunghe un carattere ciascuna. Soluzione: a. Osserva … char d[M][N]; char* d[N][M]; char d[N][M][2];

2000 – 8

Qual è il ciclo corretto per trovare l’indice del primo elemento negativo in un vettore dichiarato come float v[MAX]? while(i < MAX) { if(v[i] >= 0) i++; } while(v[i] >= 0 && i < MAX) i++; while(i < MAX || v[i] < 0) i++; while(i < MAX && v[i] >= 0.0) i++; Soluzione: d. Infatti … Leggi tutto

2000 – 7

Siano a e b due stringhe char a[N], b[N]; Cosa fa il seguente frammento di programma? for(i=0; a[i] != ‘\0′; i++)     b[i]=a[i]; b[i]=’\0′; Soluzione: copia la stringa a nella stringa b. Il ciclo for() copia gli elementi di a in b finché non raggiunge ‘\0’, il carattere di fine stringa, che viene comunque copiato nella riga successiva (alla … Leggi tutto

2000 – 6

Sia dato il seguente frammento di codice: int a, b; …. if(a > 0) if(b > 0) printf(“ok”); else printf(“ok”); Discutere l’effetto dell’esecuzione di tale istruzione al variare di a e b. Soluzione: Se a > 0 allora stampa ok Indentando il codice diventa tutto più chiaro… int a, b; …. if(a > 0) if(b > … Leggi tutto

2000 – 5

Il codice C di seguito riportato è relativo a quello di un sottoprogramma copstr() che consente di copiare una stringa t in una stringa s. void copstr(char *s, X1) {    while ((*s=X2) != ‘X3’)    {       X4;       t++;    } } Determinare gli elementi X1: … X2: … … Leggi tutto

2000 – 4

Determinare T e X in modo tale che il programma renda uguali a 0 gli elementi delle due diagonali di una matrice quadrata A di nxn interi. for (i=0; i < n; i=i+1) {    A[i][T] = 0;    A[i][X] = 0; } Ad esempio A = {{1, 2, 3, 4}, {2, 3, 4, 5}, ... Leggi tutto