SO

A visually appealing digital illustration of a programmer working with C code on multiple monitors, surrounded by system call diagrams and memory management graphics.

Mastering C Programming and System Calls Quiz

Test your knowledge and skills in C programming and system calls with this engaging quiz! Whether you are a student, a teacher, or just someone looking to sharpen your understanding of C, this quiz covers various aspects of memory management, system calls, and process control.

  • Challenging questions across multiple topics
  • Assess your understanding of C syntax and functions
  • Gain insights into memory management practices
13 Questions3 MinutesCreated by CodingFalcon972
.............. char *a = strdup("ciao"); ..............
Se COPIA consiste nell'istruzione memcpy(p[1], p[0], sizeof(struct s));, allora le istruzioni seguenti (se eseguite) avranno un effetto non predicibile
Se COPIA consiste nell'assegnamento p[1] = p[0];, allora l'ultima istruzione scriverà c0ao c0ao c0ao c0ao
Se COPIA consiste nell'assegnamento p[0] = p[1];, allora l'ultima istruzione scriverà c0ao ciao ciao ciao
Se COPIA consiste nell'assegnamento p[1] = p[0];, allora le istruzioni seguenti (se eseguite) avranno un effetto non predicibile
Struct s { .......... } p[5]
Non è stata allocata la memoria per le 5 aree puntate dai 5 campi a
È stata allocata la memoria per 5 strutture di tipo struct s sullo heap
È stata allocata la memoria per 5 strutture di tipo struct s sullo stack delle chiamate
È stata allocata la memoria per I 100 caratteri dei 5 campi b sullo stack delle chiamate
Sudo cp -a `w hich cat` . Sudo chmod u+s cat ./cat & cat &
Entrambi I job lanciati saranno in stato di Stopped
Eseguendo il comando ps h -oruid -p `jobs -l | awk '{print $2}'` si ottengono 2 numeri diversi
Eseguendo il comando ps h -opid -p `jobs -l | awk '{print $2}'` si ottengono 2 numeri diversi
Eseguendo il comando ps h -oeuid -p `jobs -l | awk '{print $2}'` si ottengono 2 numeri diversi
Echo -n "Esecuzione in corso..." /bin/ls -la / echo "fatto"
Nessuna delle altre opzioni è corretta
Char **argv = {"/bin/ls", "-la", "/"}; printf("Esecuzione in corso..."); execv("/bin/ls", argv); printf("fatto\n");
Char **argv = {"-la", "/", 0}; printf("Esecuzione in corso..."); execv("/bin/ls", argv); printf("fatto\n");
Char **argv = {"/bin/ls", "-la", "/", 0}; printf("Esecuzione in corso..."); execv("/bin/ls", argv); printf("fatto\n");
FILE *stream = fopen("file_esistente.txt", "r"); fseek(stream, -100, SEEK_END); long pos = ftell(stream);
CUR
END
SET
Ltell
Quale delle seguenti affermazioni sulle syscall wait e waitpid è falsa?
Se una chiamata wait(&status); ha successo, il valore di status contiene, tra le altre cose, un flag che indica se il processo figlio appena terminato è terminato in modo normale
Se una chiamata wait(&status); ha successo, il valore di status contiene, tra le altre cose, l'exit status del processo figlio appena terminato
Se una chiamata wait(&status); ha successo, il valore di status contiene, tra le altre cose, il PID del processo figlio appena terminato
Se una chiamata wait(&status); ha successo, il valore di status contiene, tra le altre cose, un flag che indica se il processo figlio appena terminato è stato ucciso da un segnale
Int main() { struct s { char *a; char b[20]; } *p[5]; ... }
È stata allocata la memoria per 5 strutture di tipo struct s sullo heap
Nessuna delle altre opzioni è vera
È stata allocata la memoria per I 100 caratteri dei 5 campi b sullo stack delle chiamate
È stata allocata la memoria per 5 strutture di tipo struct s sullo stack delle chiamate
Quale dei seguenti frammenti di codice è corretto?
== , figlio padre
==, padre figlio
< e >
Tutte sbagliate
Int var = somefunction()%100; printf("%d\n%.2lf\n", var, (double)var);
*buf
Buf[7]
Free(but)
Var2 = (double)var;
#include #include #include ..... char *a = strdup("ciao"); ......
Se COPIA consiste nell'assegnamento p[1] = p[0];, allora l'ultima istruzione scriverà c0ao c0ao c0ao c0ao
Se COPIA consiste nell'istruzione memcpy(&p[1], &p[0], sizeof(struct s));, allora l'ultima istruzione scriverà c0ao ciao c0ao ciao
Se COPIA consiste nell'assegnamento p[0] = p[1];, allora l'ultima istruzione avrà un effetto non predicibile
Se COPIA consiste nell'assegnamento p[1] = p[0];, allora l'ultima istruzione scriverà c0ao ciao c0ao ciao
Ignorando eventuali memory leaks, quale dei seguenti frammenti di codice può portare ad un segmentation fault?
Char *p = malloc(10*sizeof(char)); p[1] = 'a'; free(p);
Char *p = malloc(10*sizeof(char)); p[9] = 'a'; p = NULL; p = realloc(p, 10*sizeof(char)); free(p);
Char *p = calloc(10, sizeof(char)); p[9] = 'a'; p = realloc(p, 10*sizeof(char)); free(p);
Char *p = calloc(10, sizeof(char)); p[9] = 'a'; free(p); p = realloc(p, 10*sizeof(char)); free(p);
Int var = somefunction1(); double var2 = somefunction2(); fprintf(stdout, "%d\n%lf\n", var, var2);
No linea lunga
Linea lunga .... write(1, buf, sizeof(var2) + 1);
Linea lunga ... write(1, "\n", 1);
No linea lunga
FILE *stream ....... 4567 34.56
Linea lunga e senza commenti
Qua non effettua alcuna conversione
Qua la effettua ma il buffer ....
Senza commenti
{"name":"SO", "url":"https://www.quiz-maker.com/QPREVIEW","txt":"Test your knowledge and skills in C programming and system calls with this engaging quiz! Whether you are a student, a teacher, or just someone looking to sharpen your understanding of C, this quiz covers various aspects of memory management, system calls, and process control.Challenging questions across multiple topicsAssess your understanding of C syntax and functionsGain insights into memory management practices","img":"https:/images/course7.png"}
Powered by: Quiz Maker