Saída de programas C++ | Conjunto 22

Preveja a saída dos seguintes programas C++. Pergunta 1 CPP
   #include          using     namespace     std  ;   int     main  ()   {      int     a     =     b     =     c     =     0  ;      cout      < <     a      < <     '*'      < <     b      < <     '*'      < <     c  ;      return     0  ;   }   
Output:
Compile time error!  
Explicação: 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;  

Pergunta 2 CPP
   #include          using     namespace     std  ;   int     main  ()   {      for     (     ;     ;     )     cout      < <     'blank'  ;      return     0  ;   }   
Output:
Infinite Loop!  
Explicação: Como a condição de teste de inicialização e a condição de incremento/decremento estão faltando dentro do loop for, a execução será capturada em loop infinito.
Pergunta 3 CPP
   #include          using     namespace     std  ;   int     main  ()   {         int     i  ;      for     (  i  =  0  ;     i   <  3  ;     i  ++  );          cout      < <     'hello!'      < <  i  ;      return     0  ;   }   
Output:
hello!3  
Explicação: Hello!3 é o resultado porque quando o loop for é executado ele não tem nenhuma tarefa a fazer devido ao ponto e vírgula (;) presente na linha onde o loop for foi definido. O loop será executado três vezes e o valor de i se tornará 3, então o restante das instruções será executado.
Pergunta 4 CPP
   #include          using     namespace     std  ;   int     main  ()   {      int     i  ;      i     =     1     +     (  1    4    5    6    3  );      cout      < <     i  ;      return     0  ;   }   
Output:
4  
Explicação: O operador vírgula() é um operador binário que avalia o primeiro operando e descarta o resultado e depois avalia o segundo e depois retorna o valor do segundo. Aqui a associatividade do operador vírgula() é da esquerda para a direita e é fácil entender que a expressão(14563) é avaliada como 3 e então o resultado 1 + 3 é atribuído a i.
Pergunta 5 CPP
   #include          using     namespace     std  ;   int     main  ()   {      int     a     =     0       b  ;      b     =     (  a     =     50  )     +     10  ;      cout      < <     a      < <     '$'      < <     b  ;      return     0  ;   }   
Output:
50  
Explicação: A afirmação b = (a = 50) + 10; usa o conceito de atribuição incorporada. Aqui o valor 50 é atribuído à variável a e o resultado 50+10 é atribuído a b. Pergunta 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:
120  
Explicação: O C++ também pode realizar cálculos aritméticos considerando os valores ASCII dos caracteres se a operação aritmética for realizada em variáveis ​​do tipo de dados char. Aqui, neste caso, a resposta é 120, que é o valor ASCII para x.
Pergunta 7 CPP
   #include       using     namespace     std  ;   int     main  (  int     x  )   {      static     int     i     =     5  ;      if     (  --  i  )      {      cout      < <     i  ;      main  (  10  );      }      return     0  ;   }   
Output:
4321  
Explicação: Qualquer número diferente de zero em C++ é tratado como valor verdadeiro. Aqui neste código, a instrução if tende a diminuir o valor de i, mas dentro do bloco if a função main() é chamada repetidamente. Aqui, o programa parece estar em loop infinito, mas a variável i é de natureza estática e tem sua vida útil até a execução, portanto, o programa será interrompido se i se tornar 0.
Pergunta 8 CPP
   #include       using     namespace     std  ;   int     main  (  int     x  )   {      int     i     =     5  ;      if     (  --  i  )      {      cout      < <     i  ;      main  (  10  );      }      return     0  ;   }   
Output:
infinite loop  
Explicação: Qualquer número diferente de zero em C++ é tratado como valor verdadeiro. Aqui neste código, a instrução if tende a diminuir o valor de i, mas dentro do bloco de if a função main() é chamada repetidamente (todas as instruções agora serão executadas como se fosse um novo programa), portanto, a execução do programa será capturada em loop infinito, pois não há condição de encerramento. Criar questionário