Výstup programů C++ | Set 22
Předpovězte výstup následujících programů C++. Otázka 1 CPP
Otázka 2 CPP
Otázka 3 CPP
Otázka 4 CPP
Otázka 5 CPP
Otázka 7 CPP
Otázka 8 CPP
#include using namespace std ; int main () { int a = b = c = 0 ; cout < < a < < '*' < < b < < '*' < < c ; return 0 ; }
Output: Compile time error!Vysvětlení: 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;
Otázka 2 CPP
#include using namespace std ; int main () { for ( ; ; ) cout < < 'blank' ; return 0 ; }
Output: Infinite Loop!Vysvětlení: Protože ve smyčce for chybí podmínka inicializačního testu a podmínka přírůstku/snižování, provádění bude zachyceno v nekonečné smyčce.
Otázka 3 CPP
#include using namespace std ; int main () { int i ; for ( i = 0 ; i < 3 ; i ++ ); cout < < 'hello!' < < i ; return 0 ; }
Output: hello!3Vysvětlení: Hello!3 je výsledek, protože když se smyčka for spustí, nemá žádnou úlohu kvůli středníku(;) na řádku, kde byla definována smyčka for. Cyklus se provede třikrát a hodnota i bude 3, poté se provede zbytek příkazu (příkazů).
Otázka 4 CPP
#include using namespace std ; int main () { int i ; i = 1 + ( 1 4 5 6 3 ); cout < < i ; return 0 ; }
Output: 4Vysvětlení: Operátor čárka () je binární operátor, který vyhodnotí první operand a zahodí výsledek a poté vyhodnotí druhý a poté vrátí hodnotu druhého. Zde je asociativita operátoru čárka () zleva doprava a je snadné pochopit, že výraz (14563) je vyhodnocen jako 3 a výsledek 1 + 3 je přiřazen k i.
Otázka 5 CPP
#include using namespace std ; int main () { int a = 0 b ; b = ( a = 50 ) + 10 ; cout < < a < < '$' < < b ; return 0 ; }
Output: 50Vysvětlení: Výrok b = (a = 50) + 10; používá koncept vloženého přiřazení. Zde je do proměnné a přiřazena hodnota 50 a do b je přiřazen výsledek 50+10. Otázka 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: 120Vysvětlení: C++ může také provádět aritmetické výpočty s ohledem na hodnoty ASCII znaků, pokud jsou aritmetické operace prováděny s proměnnými datového typu char. Zde je v tomto případě odpověď 120, což je hodnota ASCII pro x.
Otázka 7 CPP
#include using namespace std ; int main ( int x ) { static int i = 5 ; if ( -- i ) { cout < < i ; main ( 10 ); } return 0 ; }
Output: 4321Vysvětlení: Jakékoli nenulové číslo v C++ je považováno za skutečnou hodnotu. Zde v tomto kódu má příkaz if tendenci snižovat hodnotu i, ale uvnitř bloku if je funkce main() volána znovu a znovu. Zde se program zdá být v nekonečné smyčce, ale proměnná i je ve své podstatě statická, má svou životnost až do spuštění, a proto se program zastaví, pokud se i stane 0.
Otázka 8 CPP
#include using namespace std ; int main ( int x ) { int i = 5 ; if ( -- i ) { cout < < i ; main ( 10 ); } return 0 ; }
Output: infinite loopVysvětlení: Jakékoli nenulové číslo v C++ je považováno za skutečnou hodnotu. Zde v tomto kódu má příkaz if tendenci snižovat hodnotu i, ale uvnitř bloku if je funkce main() volána znovu a znovu (všechny příkazy se nyní provedou, jako by se jednalo o nový program), takže provádění programu bude zachyceno v nekonečné smyčce, protože neexistuje žádná podmínka ukončení. Vytvořit kvíz