Si potrebbe lavorare a ritroso attraverso un processo di eliminazione:
1) Puoi finire con una divisione per zero? Non probabile Se b è 0, l'ultima espressione è 0, e se non è 0, non otterresti una divisione per zero.
2) È possibile fornire un numero errato di argomenti e arresti anomali all'accesso all'array? Non proprio a causa del precedente controllo argc
3) Se i tuoi argomenti non si traducono in un numero, atoi dovrebbe restituire un valore numerico. Penso che questo faccia parte delle specifiche della libreria e quindi non sia aperto alla variazione di implementazione, ma potrei sbagliarmi.
Quindi non vedo come ci si fermerebbe qui.
L'unica cosa che mi piace di questa domanda è la divisione per parte zero: controlla che tu capisca l'operatore?: E che 0 è un falso. Non mi piace la parte di atoi senza darti accesso a un manuale di riferimento. Dovevo controllare i documenti per essere sicuro.
Il potenziale per un underflow/overflow è troppo difficile IMHO. È bello se stai intervistando per un ingegnere della sicurezza del software, ma non chiederò un candidato entry level o anche solo per un lavoro di programmazione standard. Se provieni da altre lingue (ad esempio, Python), è particolarmente difficile.
Aggiornamento: ho eseguito una ricerca online su diversi riferimenti e sembra che atoi debba restituire 0 in caso di input errato. Ad esempio, da MSDN:
Ciascuna funzione restituisce il valore int prodotto interpretando l'ingresso caratteri come un numero. Il valore restituito è 0 per atoi e _wtoi, se l'ingresso non può essere convertito in un valore di quel tipo.
@Stacker: Nessuna idea, sembra una domanda da intervista demenziale. – Quixotic
Immagino che non sia possibile ... – Kasturi
Ricevo un cookie se rispondo correttamente? Se ti hanno chiesto questo in un'intervista, spero che non ti offrano il lavoro. Se lo fanno, corri. –