C++ 程序的输出 |第 49 组
- 以下程序的输出是什么?
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
湾2
C。 3
d. 4
e.编译错误答案:C
说明:三元运算符从右到左结合。所以表达式变成 (i = 0 ? 1 : (2 ? 3 : 4)) 其计算结果为 (i = 0 ? 1 : 3)。请注意表达式“i = 0”将 0 分配给 i 并返回 0。因此返回并打印 3。 - 以下程序的输出是什么?
CPP
#include
int main()
{
printf("%.3lf", sizeof "Geeks" / sizeof "forGeeks");
return 0;
}
- 一种。 0.000
湾1.000
C。 0.667
d.编译错误
答案:一个
说明:运算符sizeof 返回一个整数而不是双精度数。在字符串的情况下,它返回包括\ 0的字符串的长度。 “Geeks”的sizeof为6,字符串“forGeeks”的sizeof为9,从整数来看,6/9等于0。 - 以下程序的输出是什么?
CPP
#include
using std::cout;
int main()
{
cout << 5 ["GeeksforGeeks"];
return 0;
}
- 一种。极客
湾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.
- 以下程序的输出是什么?
CPP
#include
using std::cout;
int main()
{
int i = 0, j = 0;
++++j = ++++i + i++;
cout << i;
cout << j;
return 0;
}
- 一种。 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.
- 以下程序的输出是什么?
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;
}
- 一种。 123 湾124 摄氏度。 224 天。编译错误答案是:d。说明:与 ++++j 不同,语句 j++ ++;是非法的。