Utgang av C++-programmer | Sett 22
Forutsi produksjonen av følgende C++-programmer. Spørsmål 1 CPP
Spørsmål 2 CPP
Spørsmål 3 CPP
Spørsmål 4 CPP
Spørsmål 5 CPP
Spørsmål 7 CPP
Spørsmål 8 CPP
#include using namespace std ; int main () { int a = b = c = 0 ; cout < < a < < '*' < < b < < '*' < < c ; return 0 ; }
Output: Compile time error!Forklaring: A chained statement cannot be used to initialize variables at the time of declaration. Hence the statement a = b = c = 0; is an illegal statement. However following way a legal syntax and can be used in C++ or C.
int abc; a = b = c = 0;
Spørsmål 2 CPP
#include using namespace std ; int main () { for ( ; ; ) cout < < 'blank' ; return 0 ; }
Output: Infinite Loop!Forklaring: Siden initialiseringstesttilstanden og inkrement/dekrementbetingelsen mangler inne for loop, vil utførelsen bli fanget i uendelig loop.
Spørsmål 3 CPP
#include using namespace std ; int main () { int i ; for ( i = 0 ; i < 3 ; i ++ ); cout < < 'hello!' < < i ; return 0 ; }
Output: hello!3Forklaring: Hello!3 er resultatet fordi når for loop kjøres, har den ingen oppgave å gjøre på grunn av semikolon(;) som er tilstede på linjen der for loop er definert. Løkken vil kjøre tre ganger og verdien av i blir 3, deretter vil resten av setningen(e) kjøres.
Spørsmål 4 CPP
#include using namespace std ; int main () { int i ; i = 1 + ( 1 4 5 6 3 ); cout < < i ; return 0 ; }
Output: 4Forklaring: Komma-operatoren () er en binær operator som evaluerer den første operanden og forkaster resultatet og deretter evaluerer den andre og returnerer deretter verdien av andre. Her er assosiativiteten til komma ()-operatoren fra venstre til høyre og det er lett å forstå at uttrykket(14563) vurderes til å være 3, og deretter blir resultatet 1 + 3 tilordnet i.
Spørsmål 5 CPP
#include using namespace std ; int main () { int a = 0 b ; b = ( a = 50 ) + 10 ; cout < < a < < '$' < < b ; return 0 ; }
Output: 50Forklaring: Utsagnet b = (a = 50) + 10; bruker begrepet embedded assignment. Her tildeles verdien 50 til variabel a og resultatet 50+10 tilordnes b. Spørsmål 6 CPP
#include using namespace std ; int main () { char a = 30 b = 40 c = 10 ; char d = ( a * b ) / c ; cout < < int ( d ); return 0 ; }
Output: 120Forklaring: C++ kan også utføre aritmetiske beregninger med tanke på ASCII-verdiene til tegn hvis den aritmetiske operasjonen utføres på variabler av char-datatypen. Her i dette tilfellet er svaret 120 som er ASCII-verdien for x.
Spørsmål 7 CPP
#include using namespace std ; int main ( int x ) { static int i = 5 ; if ( -- i ) { cout < < i ; main ( 10 ); } return 0 ; }
Output: 4321Forklaring: Ethvert tall som ikke er null i C++ blir behandlet som sann verdi. Her i denne koden har if-setningen en tendens til å redusere verdien av i, men innenfor blokken til if main()-funksjonen kalles opp igjen og igjen. Her ser programmet ut til å være i uendelig sløyfe, men variabelen i er statisk av natur, den har sin levetid til utførelse, og derfor vil programmet stoppe hvis i blir 0.
Spørsmål 8 CPP
#include using namespace std ; int main ( int x ) { int i = 5 ; if ( -- i ) { cout < < i ; main ( 10 ); } return 0 ; }
Output: infinite loopForklaring: Ethvert tall som ikke er null i C++ blir behandlet som sann verdi. Her i denne koden har if-setningen en tendens til å redusere verdien av i, men innenfor blokken til if main()-funksjonen kalles opp igjen og igjen (alle setningene vil nå kjøres som om det er et nytt program), og derfor vil programkjøringen bli fanget i uendelig sløyfe siden det ikke er noen termineringsbetingelse. Lag quiz