📜  C++ 程序的输出 |第 49 组

📅  最后修改于: 2022-05-13 01:56:10.828000             🧑  作者: Mango

C++ 程序的输出 |第 49 组

  1. 以下程序的输出是什么?
CPP
#include 
using std::cout;
int main()
{
    int i = 0;
    cout << (i = 0 ? 1 : 2 ? 3 : 4);
    return 0;
}


CPP
#include 
int main()
{
    printf("%.3lf", sizeof "Geeks" / sizeof "forGeeks");
    return 0;
}


CPP
#include 
using std::cout;
int main()
{
    cout << 5 ["GeeksforGeeks"];
    return 0;
}


CPP
#include 
using std::cout;
int main()
{
    int i = 0, j = 0;
    ++++j = ++++i + i++;
    cout << i;
    cout << j;
    return 0;
}


CPP
#include 
using std::cout;
int main()
{
    int i = 0, j = 0, k;
    i++;
    j++ ++;
    k = (i++) + j;
    cout << i;
    cout << j;
    cout << k;
    return 0;
}


  1. 一种。 1
    湾2
    C。 3
    d. 4
    e.编译错误答案:C
    说明:三元运算符从右到左结合。所以表达式变成 (i = 0 ? 1 : (2 ? 3 : 4)) 其计算结果为 (i = 0 ? 1 : 3)。请注意表达式“i = 0”将 0 分配给 i 并返回 0。因此返回并打印 3。
  2. 以下程序的输出是什么?

CPP

#include 
int main()
{
    printf("%.3lf", sizeof "Geeks" / sizeof "forGeeks");
    return 0;
}
  1. 一种。 0.000
    湾1.000
    C。 0.667
    d.编译错误
    答案:一个
    说明:运算符sizeof 返回一个整数而不是双精度数。在字符串的情况下,它返回包括\ 0的字符串的长度。 “Geeks”的sizeof为6,字符串“forGeeks”的sizeof为9,从整数来看,6/9等于0。
  2. 以下程序的输出是什么?

CPP

#include 
using std::cout;
int main()
{
    cout << 5 ["GeeksforGeeks"];
    return 0;
}
  1. 一种。极客
    湾F
    C。对于极客
    d.编译错误
Answer : b.
Explanation: In C/C++, the statement X[Y] is identical to *(X+Y). In this case the statement is equal to *(5+"GeeksforGeeks"). The + operator is commutative, so we can write the exprasion as *("GeeksforGeeks"+5). This statement means 5th character of the string from the beginning of the string. So finally we print f.    
  1. 以下程序的输出是什么?

CPP

#include 
using std::cout;
int main()
{
    int i = 0, j = 0;
    ++++j = ++++i + i++;
    cout << i;
    cout << j;
    return 0;
}
  1. 一种。 12 湾。 34 C。 22 天。编译依赖
Answer : d
Since ++ operator does not define a sequence point, applying it multiple times on same variable in an expression causes undefined behavior.
  1. 以下程序的输出是什么?

CPP

#include 
using std::cout;
int main()
{
    int i = 0, j = 0, k;
    i++;
    j++ ++;
    k = (i++) + j;
    cout << i;
    cout << j;
    cout << k;
    return 0;
}
  1. 一种。 123 湾124 摄氏度。 224 天。编译错误答案是:d。说明:与 ++++j 不同,语句 j++ ++;是非法的。