MCQ di C++ (Domande a Risposta Multipla)

MCQ di C++ (Domande a Risposta Multipla)

  1. Benvenuto nella pagina dei MCQ (Domande a Risposta Multipla) di C++ su MCQss.com. Qui troverai una varietà di domande relative a C++ presentate in formato a risposta multipla. Puoi cliccare su una delle opzioni di risposta per verificare se è corretta o meno.

C++ è un linguaggio di programmazione ampiamente utilizzato nello sviluppo software. Ha potenti funzionalità ed è utilizzato in diversi settori, come lo sviluppo di applicazioni, i giochi e la programmazione di sistemi.

Per imparare C++, è importante comprendere concetti fondamentali come i tipi di dati, gli operatori, le funzioni, le classi e l'ereditarietà. La conoscenza dei concetti di programmazione ad oggetti sarà utile nello sviluppo di programmi in C++.

I MCQ gratuiti di C++ su MCQss.com offrono un'ottima opportunità per ampliare le tue conoscenze e prepararti per esami e colloqui. Puoi utilizzarli per esercitarti liberamente e migliorare le tue competenze nella programmazione in C++.

1: Cosa significa Ood?

A.   Operando su oggetti nel design

B.   Design orientato agli oggetti

C.   Design eccessivamente oggettivo

D.   Database orientato agli oggetti

2: Qual è l'output del programma seguente? #include & lt; iostream & gt; int main () {double x = 1.0; per (int i = 0; i & lt; 3; ++ i) x *= 0.1; std :: cout & lt; & lt; x * 1e3 - 1; }

A.   Sempre 0.

B.   Dipende dalla doppia implementazione, di solito non esattamente zero.

C.   Sempre non 0.

3: struct a {int n; }; Aa; Qual è la visibilità di A.N?

A.   privato

B.   protetto

C.   pubblico

D.   La visibilità è definita solo per le classi.

4: std :: make_heap () converte un intervallo in un heap e std :: ording_heap () trasforma un heap in una sequenza ordinata.

A.   VERO

B.   falso

5: Se hai due diverse funzioni C ++ che hanno lo stesso nome ma tipi di parametri diversi, si chiama ...

A.   funzioni inline.

B.   funzioni ricorsive.

C.   sovraccarico di funzioni.

6: Quale delle seguenti è una dichiarazione di dichiarazione variabile valida?

A.   int a; B; C;

B.   int a, b, c;

C.   int a:

7: Le dichiarazioni C ++ sono separate da questo simbolo:

A.   Simbolo hash (#)

B.   Colon (:)

C.   Punto e virgola (;)

D.   Segno di aggiunta (+)

8: Quale delle seguenti è una dichiarazione di funzione C ++ valida che non restituisce un valore?

A.   int myFunction (int a, int b)

B.   MyFunction (int a, int b)

C.   void myfunction (int a, int b)

9: Come si dichiara una variabile intera X in C ++?

A.   dichiarare x come intero;

B.   int x;

C.   x int;

D.   int & lt; x & gt ;;

E.   x è intero;

10: Quale delle seguenti non è una struttura ad anello?

A.   fermati quando loop

B.   fare mentre loop

C.   per loop

11: Quale dei seguenti non è un tipo di dati fondamentale in C ++?

A.   CHAR

B.   Largo

C.   bool

12: Quale dei seguenti operatori di seguito consente di definire le funzioni del membro di una classe al di fuori della classe?

A.   ?

B.   ,

C.   :%

D.   ::

13: Quale dei seguenti non è un tipo primitivo C ++?

A.   int

B.   vero

C.   galleggiante

D.   Doppio

14: Quale delle seguenti affermazioni test per vedere se la somma è uguale a 10 e il totale è inferiore a 20 e, in tal caso, stampa la stringa di testo "errata".

A.   Nessuna di queste opzioni

B.   if ((Sum == 10) || (totale <20)) printf (

C.   if ((sum == 10) && (totale <20)) printf (

D.   Ctrl+alt+Del

15: Scegli la dichiarazione della funzione che si utilizzeresti se non avessi bisogno di restituire alcun valore.

A.   myfunction (vuoto)

B.   void myfunction ()

C.   myFunction ()

16: Quale delle seguenti è una parola riservata in C ++?

A.   CHAR

B.   CHAR

C.   carattere

D.   CHAR

17: Quale istruzione assegna alla variabile A l'indirizzo della variabile B?

A.   a = b;

B.   a = & b;

C.   a = *b;

18: Qual è una dichiarazione di commento valida in C ++?

A.   Entrambi

B.   / * Questo è un commento */

C.   // Questo è un commento

19: Un puntatore vuoto è un tipo speciale di puntatore che indica l'assenza di un tipo per il puntatore.

A.   VERO

B.   Falso

20: Cosa significa la seguente affermazione? const int a = 50;

A.   Il valore di A non può cambiare da 50.

B.   Il valore iniziale di A è 50 ma puoi cambiarlo.

C.   nessuna di queste

21: In C ++, è necessario iniziare un commento a riga singola

A.   un leader //.

B.   tutti questi

C.   un leader /**.

22: Qual è il valore di I dopo le seguenti istruzioni? int i (4.36);

A.   4

B.   4.36

C.   4.4

D.   5

23: Nella seguente riga di codice C ++, int foo [50]; Cosa rappresenta il numero 50?

A.   Il valore intero massimo che può essere inserito nell'array.

B.   Il valore iniziale del primo elemento array.

C.   Il numero di elementi interi che l'array deve trattenere.

24: La funzione PrintMSG non richiede alcun argomento. Scegli l'istruzione che chiama la funzione.

A.   printmsg ();

B.   void printmsg ();

C.   printmsg;

25: I costruttori possono essere sovraccarichi?

A.   SÌ

B.   NO

C.   Dipende dalla situazione.

26: Qual è un vantaggio nell'uso dei modelli C ++?

A.   Ridurre la duplicazione del codice

B.   I modelli sono tysafe

C.   tutti questi

D.   Aumenta la flessibilità del codice

27: Quale è (sono) un esempio (i) di prototipo di funzione C ++ valido?

A.   int myFunction (int a, int b);

B.   tutti questi

C.   int myFunction (int, int);

28: Le classi possono contenere variabili membri statiche che sono globali per la classe e ...

A.   nessuna di queste

B.   è possibile accedere a tutti gli oggetti della stessa classe.

C.   I loro valori cambieranno per ogni oggetto della stessa classe.

29: Cosa fa l'operatore di dimensioni (Arg)?

A.   Restituisce il valore massimo di Arg

B.   Restituisce le dimensioni nei byte di Arg

C.   Restituisce la lunghezza nei personaggi di Arg

30: Qual è la differenza tra una classe e una struttura

A.   Puoi dichiarare funzioni in una classe, non è possibile dichiarare funzioni in una struttura.

B.   Loro sono la stessa cosa.

C.   Non è possibile sovraccaricare un operatore in una struttura.

D.   I membri di una classe sono privati ​​per impostazione predefinita e i membri di una struttura sono pubblici per impostazione predefinita.

31: Vero o falso: in C ++, un commento può essere specificato solo con un principale //.

A.   VERO

B.   Falso

32: std :: vector & lt; int & gt; v (4); std :: fill (v.begin (), v.end (), 4); Qual è il contenuto di Vector V?

A.   4,4,4,4

B.   0,1,2,3

C.   4,5,6,7

D.   1,2,3,4

33: Cosa sarà 'int a =' a ';' Fare?

A.   Dichiarerà una nuova variabile A e la imposterà su 97 (supponendo una macchina che utilizza ASCII).

B.   Dichiarerà una nuova variabile A e la imposterà sul suo valore precedente.

C.   Causerà un ciclo infinito.

D.   Niente, è un errore e non si compilerà.

34: Quale dei seguenti può causare un errore di corruzione della memoria?

A.   Memoria di liberazione che è già stata liberata.

B.   Tutti questi

C.   L'uso di un indirizzo prima della memoria viene assegnato e impostato.

35: Considera questo frammento di codice: a = 25; b = & a; Cosa è ugualmente B?

A.   valore contenuto nell'indirizzo di a

B.   Indirizzo di un

C.   25

36: Quale dei seguenti non è un operatore di casting di tipo specifico nel linguaggio C ++?

A.   dinamico_cast

B.   reinterpret_cast

C.   Unknown_cast

D.   const_cast

37: Esiste un elemento della struttura nel tuo codice con unità di membro intero. Hai la seguente dichiarazione variabile: articolo * myitem;. Come accedi al valore delle unità?

A.   *(myitem.UNITS)

B.   myitem- & gt; unità

C.   myitem.UNITS

38: I tipi di dati definiti (typedef) consentono di creare ...

A.   Tipi diversi in C ++.

B.   Nomi alternativi per tipi esistenti in C ++.

39: Quale dei seguenti è un identificatore variabile valido in C ++?

A.   m_test

B.   1_str

C.   classe

40: Cosa fa la linea: #include & lt; iostream & gt; significa in un programma C ++?

A.   Dice al programma di includere i file di intestazione della libreria standard.

B.   Dice al preprocessore di includere il file standard iOStream.

C.   Dice al preprocessore di includere il file standard di iostream solo se richiesto dal programma.

41: Dato questo codice, qual è l'output? #include struct hence {virtual void muove () {std :: cout << "Shape :: move \ n"; }}; Struct Circle: Public Shape {void Move () {std :: cout << "Circle :: Move \ n"; }}; struct rettangolo: forma pubblica {void muove () {std :: cout << "rettangolo :: move \ n"; }}; int main () {Shape *s; s = new Shape (); s-> move (); s = new cerch (); s-> move (); s = nuovo rettangolo (); s-> move (); restituzione 0; }

A.   Rettangolo :: MOVE CIRCLE :: MOVE FASE :: MOVER

B.   Errore di compilazione

C.   Errore di runtime

D.   forma :: mossa forma :: mossa forma :: muovi

E.   Shape :: Move Circle :: Move Rettangolo :: MOVER

42: All'interno di una dichiarazione di classe, l'affermazione "virtual int foo () = 0;" fa cosa?

A.   Dichiara una funzione virtuale volatile.

B.   Dichiara una pura funzione virtuale.

C.   Provoca un errore del compilatore.

D.   Dichiara una funzione virtuale predefinita.

43: std :: vector & lt; int & gt; foo (5);

A.   Inizializza un vettore con 5 elementi di valore 0.

B.   Inizializza un vettore con un elemento con il valore 5.

44: Dove fa prima il compilatore cerca file.h nella seguente direttiva: #include "file.h"?

A.   In tutte le directory specificate dalla variabile dell'ambiente del percorso sulla macchina.

B.   Nelle directory predefinite in cui è configurato per cercare i file di intestazione standard

C.   La stessa directory che include il file contenente la direttiva.

45: Qual è il valore di 2--2?

A.   Niente, non è un'espressione di C ++ valida.

B.   0

C.   -2

D.   2

E.   4

46: Vero o falso: una classe che ha un metodo virtuale puro può essere istanziata.

A.   VERO

B.   Falso

47: Definire un modo diverso dall'uso della parola chiave in linea per rendere in linea una funzione

A.   La funzione deve essere definita come funzione dell'amico.

B.   La funzione deve essere definita all'interno della classe.

C.   La funzione deve essere definita al di fuori della classe.

48: Quale di questi è una differenza tra i tipi di struction e di classe?

A.   Nessuna differenza.

B.   Non ci sono eredità con le strutture. Le lezioni possono essere derivate.

C.   Le strutture consentono solo definizioni variabili. Le classi consentono anche la definizione della funzione.

D.   Le strutture hanno la privacy pubblica per impostazione predefinita, le classi utilizzano private.

49: Qual è la dimensione dell'array di caratteri che consisterebbero il valore "elhoo"?

A.   8

B.   6

C.   7

50: In C ++, qual è la differenza tra queste due dichiarazioni: void foo (); void foo (vuoto);

A.   Il secondo è illegale.

B.   Il primo è illegale.

C.   Nessuno, sono equivalenti.

D.   Uno di loro non prende valore, l'altro prende valore.

51: Quale delle seguenti regole si applica al sovraccarico dell'operatore in C ++?

A.   Entrambe le altre risposte sono corrette.

B.   Non può ridefinire il significato dei tipi integrati

C.   Non può avere argomenti predefiniti

52: Quale classe (ES) può essere utilizzata per eseguire sia input che output sui file in C ++?

A.   di Stream

B.   fstream

C.   ifstream

D.   Tutte le risposte sono corrette.

53: Qual è il tipo di dati per quanto segue: l "Hello World"?

A.   una stringa integer

B.   una stringa

C.   una stringa di carattere ampia

54: Pensando ai membri dei dati e alla memoria indirizzabile, in che modo una struttura, una classe e unione sono diversi?

A.   Nessuna differenza, a tutti e tre gli vengono assegnati la memoria in sequenza

B.   Non c'è differenza, a tutti e tre sono allocate memoria in modo casuale

C.   I membri del sindacato e dei dati di classe sono assegnati in memoria in sequenza, mentre i membri dei dati struct vengono assegnati in modo casuale la memoria

D.   I membri dei dati di struction e di classe sono assegnati in memoria in sequenza, mentre a un'unione viene assegnata la memoria in modo casuale

E.   I membri dei dati di struction e di classe sono assegnati in memoria in sequenza, mentre un'unione è allocata sufficiente memoria solo per il più grande membro dei dati

55: Quale parola chiave C ++ consente al compilatore di determinare il tipo di variabile per il valore utilizzato per inizializzarla?

A.   auto

B.   var

C.   astratto

D.   virtuale

56: int *array = new int [10]; Elimina Array;

A.   Questo codice sarà correttamente libera dalla memoria

B.   Questo codice ha un comportamento indefinito

57: Cosa fa la parola chiave "esplicita"?

A.   Impedisce di essere utilizzato un costruttore a singolo argomentazione in una conversione implicita

B.   Richiede una variabile per risiedere nella memoria principale anziché nella cache di un processore

C.   Rende obbligatoria la dichiarazione di un costruttore predefinito

58: Cos'è una funzione virtuale in C ++?

A.   Una funzione membro della classe che ti aspetti di essere ridefinita in classi derivate.

B.   Una funzione membro della classe che deve essere ridefinita in classi derivate.

C.   Una funzione membro della classe che non deve essere definita nella classe base.

59: Qual è la complessità temporale di Elimina la prima variabile in un oggetto Deque (ad es. Deque & lt; int & gt; a;)?

A.   O (n/2)

B.   O (logn)

C.   SU)

D.   O (1)

60: Supponiamo che int * a = new int [3]; Come tratteresti il ​​blocco di memoria puntato da un?

A.   Elimina un [3];

B.   elimina [] a;

C.   Elimina a;

D.   Elimina un [];

E.   elimina [3] a;

61: Quale operatore non può essere sovraccarico da una funzione membro della classe?

A.   ==

B.   ?

C.   *

D.   [

E.   ++

62: Quale delle seguenti affermazioni utilizza un'espressione Lambda?

A.   std :: regex e (" \\ b (sub) ([^]*) ");

B.   int (*meno) (int, int) = sottract;

C.   bool is_odd = [] (int n) {return n%2 == 1;};

63: Un puntatore vuoto è un tipo speciale di puntatore che indica il ...

A.   Assenza di un tipo per il puntatore.

B.   nessuna di queste

C.   Il puntatore ha un valore nullo.

64: Quale delle seguenti chiamate Method Foo () dal genitore della classe genitore della classe corrente?

A.   this-> parent-> foo ();

B.   Parent.foo ();

C.   Genitore :: foo ();

D.   Istanza del genitore; istanza.foo;

65: Uno spazio dei nomi anonimi è abituato a ...

A.   spazi dei nomi del nido

B.   Supportare le chiusure

C.   Prevenire l'accesso esterno alle dichiarazioni locali a un'unità di compilation

D.   Dichiarazioni disambiguate da altri spazi dei nomi

66: È il seguente codice C ++ legale? | char *str = "abc" + "def";

A.   NO.

B.   SÌ.

C.   Sì, ma solo se #include <string> prima.

D.   No, devi aggiungere "const" prima di "char".

67: Qual è l'intervallo di dati per un valore intero non firmato in C ++ su un sistema in cui gli INT sono 32 bit?

A.   Da 0 a 2.147.483.647

B.   Da 0 a 65.535

C.   Da 0 a 4.294.967.295

D.   Da 0 a 255

68: Come accederesti a "blu" nella classe Enum "Color"? ENUM Class Color {rosso, blu, verde};

A.   blu

B.   colore blu

C.   Colore [1]

D.   colore blu

69: I letterali di stringa possono estendersi a più di una singola riga di codice mettendo quale carattere alla fine di ogni linea incompiuta?

A.   una nuova linea (\ n)

B.   una scheda (\ t)

C.   A Backslash (\)

70: Quale delle seguenti è un potenziale effetto collaterale delle funzioni in linea?

A.   Lo standard C ++ garantisce che l'interesse non provoca effetti collaterali negativi

B.   La dimensione del segmento dello stack del programma aumenta

C.   La dimensione del binario compilato aumenta

D.   La dimensione del segmento di heap del programma aumenta

71: Che tipo di eccezioni può lanciare la seguente funzione: int myFunction (int a);?

A.   Tutto

B.   Standard

C.   Nessuno

72: Quale è teoricamente più veloce?

A.   ++ i

B.   I ++

C.   Entrambi sono ugualmente veloci.

73: Qual è il valore di x dopo il seguente codice: int x = 0; if (x = 1) {x = 2; } else {x = 1; }

A.   Il codice non si compilerà

B.   1

C.   2

D.   0

74: Qual è il valore del 10,10 % 3?

A.   1

B.   1.0

C.   3.03

D.   1.01

E.   Nessuno, questo è un mix non valido di tipi.

75: class A {int x; protetto: int y; pubblico: int z; }; Classe B: privato a {}; Qual è il livello di privacy di B :: Z?

A.   protetto

B.   pubblico

C.   B non eredita l'accesso a Z da A.

D.   privato

76: Se non fornisci costruttori per la tua classe, quali costruttori verranno creati dal compilatore?

A.   Copia costruttore

B.   Costruttore predefinito

C.   Entrambi

77: Qual è una differenza chiave tra una struttura e unione in termini di dimensioni della memoria?

A.   Un'unione è la dimensione di qualunque membro dei dati sia inizializzato mentre la dimensione di una struttura è la somma della dimensione dei membri dei dati della struttura

B.   Un'unione è la dimensione del suo più grande membro dei dati, mentre la dimensione di una struttura è la somma della dimensione dei membri dei dati della struttura

C.   Nessuna differenza; sono la somma delle dimensioni dei rispettivi membri dei dati

D.   Un sindacato ha la dimensione del suo più grande membro dei dati, mentre la dimensione di una struttura è almeno la somma della dimensione dei membri dei dati della struttura

78: Dato: Union A {int x; piccoletto; }; un var [20]; Quanti byte di memoria occupano var?

A.   Questo è un codice C ++ non valido

B.   80

C.   Dipende

D.   120

E.   4

79: Qual è l'output del seguente codice? int a = 8; per (int i = 1; i & lt; = i*3; i ++) n ++;

A.   Dipendere dall'esecuzione.

B.   Ciclo infinito.

C.   Loop finito.

D.   Tutti sono sbagliati

80: Il codice di seguito compilerà senza errore? struct c0 {int i; c0 (int x) {i = x; }}; int main () {c0 x1 (1); C0 x2 (x1); restituzione 0; }

A.   No. Il costruttore non è pubblico.

B.   No. C0 x2 (x1) restituirà l'errore.

C.   No. I tipi di strutture non hanno costruttori.

D.   SÌ.

81: Quale non è una tabella hash valida fornita da STL?

A.   hash_multiset

B.   hash_set

C.   hash_table

D.   hash_map

E.   hash_multimap

82: Dove t è un tipo: std :: vector & lt; t & gt; :: at vs std :: vector & lt; t & gt; :: operator []:

A.   AT è sempre controllato. Operatore [] non lo è.

B.   AT non è sempre controlli controllati. Operatore [] è.

C.   AT è equivalente all'operatore []

83: enum {a, b, c = b + 2}; Qual è il valore di C?

A.   4

B.   Errore di compilazione.

C.   3

D.   2

84: Qual è il tipo definito qui: typedef a (b ::*c) (d, e) const;

A.   A è definito come una funzione costante nello spazio dei nomi B che assume argomenti di tipi D ed E, restituendo un puntatore al tipo C.

B.   C è definito come un puntatore della funzione membro costante della Classe B che assume argomenti di tipi D ed E, TIPO DI RETROVO A.

C.   B è definito come una classe contenente una funzione membro costante chiamata A, prendendo argomenti di tipi D ed E, restituendo un puntatore al tipo C.

85: std :: tuple persona {"John Doe", 42}; std :: cout << std :: get <1> (persona); Qual è l'output?

A.   Errore di compilazione

B.   John Doe

C.   42

86: Qual è il codice seguente? Codice struct {Unsigned int x: 4; Insigned Int Y: 4; };

A.   Una dichiarazione struct con 2 array di int.

B.   Dichiarazione un po 'di struttura sul campo.

C.   Una struttura con l'inizializzazione in atto dei suoi membri.

D.   Codice C ++ non valido.

E.   Dichiarazione un po 'selettore.

87: Qual è la complessità garantita di std :: push_heap?

A.   O (log (n))

B.   SU)

C.   O (n^2)

D.   O (1)

88: Secondo lo standard C ++, cos'è la dimensione (vuoto)?

A.   Dipende dalla dimensione della parola del computer host.

B.   Niente, il vuoto non ha una dimensione.

C.   0

D.   1

E.   4

89: Qual è l'output del seguente programma? #include #include int main () {std :: vector int_values ​​{3}; for (auto const & vv: int_values) {std :: cout << vv; }}

A.   Nessuna di queste

B.   3

C.   333

D.   Il programma fallisce durante la compilazione

E.   000

90: int a [] {1, 2, 3}; a [[] {return 2; } ()] += 2; Qual è il valore di un [2]?

A.   3

B.   Comportamento indefinito

C.   5

D.   Errore di compilazione: attributo malformato.

E.   4

91: È possibile creare un'istanza di classe inserita in una posizione particolare in memoria?

A.   Solo da Dirty Hack con reinterpret_cast.

B.   No. È consentita solo l'allocazione sullo stack o nella memoria dinamica.

C.   Sì, il posizionamento nuovo fa questo.

92: class foo {foo () {}; }; class boo: public foo {boo (): foo () {}; }; quale standard consente la compilazione di questo codice.

A.   Nessuno, il codice non compilerà

B.   C ++ 11

C.   C ++ 03

D.   C ++ 98

E.   C ++ 0x

93: Qual è il valore di x, se sizeof (int) == 4? Unsigned int a = 0x98765432; Unsigned int x = a >> 33;

A.   0x98765432

B.   1

C.   Questo è un comportamento indefinito

D.   0

E.   0x4c3b2a19

94: Qual è l'output del seguente programma? int a, b = 3; const int & ar [] = {a, b}; ar [0] = 2; std :: cout << ar [0];

A.   3

B.   nessun output; Il programma è mal formato

C.   0

D.   2

95: std :: vector & lt; int & gt; v (10); std :: iota (v.begin (), v.end (), 10); Qual è il contenuto di Vector V?

A.   1,2,3,4,5,6,7,8,9,10

B.   10,11,12,13,14,15,16,17,18,19,20

C.   1,2,3,4,5,6,7,8,9

D.   10,11,12,13,14,15,16,17,18,19

96: Quale funzione restituisce sempre un riferimento RValue da "X", che può essere usato per indicare che l'oggetto verrà presto distrutto?

A.   std :: xvalue (x)

B.   std :: move (x)

C.   std :: shift (x)

D.   Std :: Destroy (x)

97: bool is_even (int i) {return i % 2 == 0; } int v [] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; std :: partizione (v, v + 10, is_even); Qual è il contenuto di Array V?

A.   0,1,2,3,4,5,6,7,8,9

B.   9,8,7,6,5,4,3,2,1

C.   std :: partizione () non funziona con array semplici.

D.   9,1,7,3,5,4,6,2,8,0

E.   0,8,2,6,4,5,3,7,1,9

98: class A {int x; protetto: int y; pubblico: int z; }; Classe B: Public Virtual a {}; Qual è il livello di privacy di B :: X?

A.   privato

B.   B non eredita l'accesso a x da A.

C.   pubblico

D.   protetto

99: Il valore di "(sizeof (short) == sizeof (int) && sizeof (int) == sizeof (long))" è

A.   implementazione definita

B.   Errore del compilatore

C.   falso

D.   VERO

100: Qual è l'output del seguente programma? modello void foo (u &, t &) {std :: cout << "primo"; } modello void foo (int &, const t &) {std :: cout << "secondo"; } int main () {int a; Double G = 2.; foo (a, g); restituzione 0; }

A.   Errore di compilazione: chiamata ambigua

B.   Primo

C.   secondo