C++ 程序的输出 |第 44 组
C++ 输出
Q.1以下程序的输出是什么?
#include
using namespace std;
int main()
{
int x = 0;
x = printf("Hello World");
printf(" %d", x);
return 0;
}
选项
a) 你好世界 10
b) 你好世界 11
c) 你好世界 12
d) 你好世界 0
ans :- b
说明: printf() 返回成功写入屏幕的字符数。在这个程序中,printf() 写了 10 个字符+ 1 个空格总共 11,所以 x 是 11。
Q.2假设一个字符占 1 个字节,一个指针占 8 个字节,下面程序的输出是什么?
#include
#include
using namespace std;
int main()
{
char a[] = "Hello World";
char* p = a;
printf("%d %d %d", sizeof(a), sizeof(p), strlen(a));
return 0;
}
选项
a) 12 10 8
b) 12 4 10
c) 12 8 10
d) 12 8 11
ans :- d
解释 :
sizeof(a) :字符数组大小为 12,因为在 Hello World 中有:10 个字符、 1 个空格和 1 个 NULL。
sizeof(p) : 8 是指针的指针大小。请注意,所有指针类型在特定编译器上都采用相同的大小。
strlen(a) : 11 是字符串长度,因为长度函数不包含 NULL字符。
Q.3以下程序的输出是什么?
#include
using namespace std;
int main()
{
printf("%d", 'C' > 'A');
return 0;
}
选项
一)1
b) 0
c) 67
d) 错误
ans :- a
说明:此代码比较A和C的ASCII值,返回1,因为C的ASCII值大于A的ASCII值。
Q.4以下程序的输出是什么?
#include
using namespace std;
int main()
{
for (int i = 1; i <= 10; i++) {
int k = i & (i << 1);
if (k)
printf("%d, ", i);
}
}
选项
a) 1, 2, 4, 5, 8, 9
b) 3、6、7
c) 0
d) 这些都不是
Ans :b
说明:该程序基本上打印所有在二进制表示中没有连续 1 的数字(小于或等于 10)。详情请参阅这篇文章。