C++ programų išvestis | 22 rinkinys
Numatykite šių C++ programų išvestį. 1 klausimas CPP
2 klausimas CPP
3 klausimas CPP
4 klausimas CPP
5 klausimas CPP
7 klausimas CPP
8 klausimas CPP
#include using namespace std ; int main () { int a = b = c = 0 ; cout < < a < < '*' < < b < < '*' < < c ; return 0 ; }
Output: Compile time error!Paaiškinimas: 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;
2 klausimas CPP
#include using namespace std ; int main () { for ( ; ; ) cout < < 'blank' ; return 0 ; }
Output: Infinite Loop!Paaiškinimas: Kadangi ciklo viduje nėra inicijavimo bandymo sąlygos ir padidinimo / mažinimo sąlygos, vykdymas bus įtrauktas į begalinę kilpą.
3 klausimas CPP
#include using namespace std ; int main () { int i ; for ( i = 0 ; i < 3 ; i ++ ); cout < < 'hello!' < < i ; return 0 ; }
Output: hello!3Paaiškinimas: Hello!3 yra rezultatas, nes kai ciklas vykdomas, jis neturi atlikti jokios užduoties dėl kabliataškio (;), esančio eilutėje, kurioje buvo apibrėžta for ciklas. Ciklas bus vykdomas tris kartus, o i reikšmė taps 3, tada bus vykdomas likęs (-iai) teiginys (-ai).
4 klausimas CPP
#include using namespace std ; int main () { int i ; i = 1 + ( 1 4 5 6 3 ); cout < < i ; return 0 ; }
Output: 4Paaiškinimas: Kablelių () operatorius yra dvejetainis operatorius, kuris įvertina pirmąjį operandą ir atmeta rezultatą, tada įvertina antrąjį ir grąžina antrojo reikšmę. Čia kablelio () operatoriaus asociatyvumas yra iš kairės į dešinę ir lengvai suprantamas, kad išraiška (14563) įvertinama kaip 3, o tada rezultatas 1 + 3 priskiriamas i.
5 klausimas CPP
#include using namespace std ; int main () { int a = 0 b ; b = ( a = 50 ) + 10 ; cout < < a < < '$' < < b ; return 0 ; }
Output: 50Paaiškinimas: Teiginys b = (a = 50) + 10; vartoja įterptosios priskyrimo sąvoką. Čia kintamajam a priskiriama reikšmė 50, o b – rezultatas 50+10. 6 klausimas 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: 120Paaiškinimas: C++ taip pat gali atlikti aritmetinį skaičiavimą, atsižvelgdamas į simbolių ASCII reikšmes, jei aritmetinė operacija atliekama su char duomenų tipo kintamaisiais. Šiuo atveju atsakymas yra 120, tai yra x ASCII reikšmė.
7 klausimas CPP
#include using namespace std ; int main ( int x ) { static int i = 5 ; if ( -- i ) { cout < < i ; main ( 10 ); } return 0 ; }
Output: 4321Paaiškinimas: Bet koks skaičius, kuris nėra nulis C++ kalboje, laikomas tikrąja verte. Šiame kode if sakinys linkęs sumažinti i reikšmę, bet if bloko viduje iškviečiama funkcija main () vėl ir vėl. Atrodo, kad programa yra begaliniame cikle, tačiau kintamasis i yra statinis, jo gyvavimo laikas iki įvykdymo, todėl programa sustos, jei i taps 0.
8 klausimas CPP
#include using namespace std ; int main ( int x ) { int i = 5 ; if ( -- i ) { cout < < i ; main ( 10 ); } return 0 ; }
Output: infinite loopPaaiškinimas: Bet koks skaičius, kuris nėra nulis C++ kalboje, laikomas tikrąja verte. Šiame kode teiginys if linkęs mažinti i reikšmę, bet if bloko viduje iškviečiama funkcija main () vėl ir vėl (visi teiginiai dabar bus vykdomi taip, lyg tai būtų nauja programa), todėl programos vykdymas bus įtrauktas į begalinę kilpą, nes nėra nutraukimo sąlygos. Sukurti viktoriną