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

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

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)。详情请参阅这篇文章。