📜  C++ 程序的输出 |设置 45

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

C++ 程序的输出 |设置 45

Q.1这个程序的输出是什么?

CPP
#include 
using namespace std;
int main()
{
    int a = b = c = 10;
    a = b = c = 50;
    printf("%d %d %d", a, b, c);
    return 0;
}


CPP
#include 
using namespace std;
int main()
{
    double x = 28;
    int k;
    k = (int)x % 5;
    k = k << 2;
    printf("hx=%x", k);
    return 0;
}


CPP
#include 
#define square(x) x* x
#define square1(x) (x) * (x)
using namespace std;
int main()
{
    printf("%d, ", square(10 + 2));
    printf("%d", square1(10 + 2));
    return 0;
}


CPP
#include 
using namespace std;
int main()
{
    int i;
    i = 0x18 + 0110 + 11;
    printf("p= %d", i);
    return 0;
}


CPP
#include 
using namespace std;
int main()
{
    char* a = "INFO";
    a++;
    printf("%s", a);
    return 0;
}


选项
a) 50 50 50
b) 三个 Gaebage 值
c) 10 10 10
d) 编译时错误

Ans: d

说明:在这个程序中,b 和c 没有声明,我们不能直接给它们赋值,所以出现了“编译时间”错误。
Q.2这个程序的输出是什么?

CPP

#include 
using namespace std;
int main()
{
    double x = 28;
    int k;
    k = (int)x % 5;
    k = k << 2;
    printf("hx=%x", k);
    return 0;
}

选项
a) hx = a
b) hx = 12
c) hx = c
d) hx= 13

Ans: C

解释:在这段代码中,给出了一个双值模数,一个整数值,结果左移 2 位并以十六进制形式打印。
Q.3这个程序的输出是什么?



CPP

#include 
#define square(x) x* x
#define square1(x) (x) * (x)
using namespace std;
int main()
{
    printf("%d, ", square(10 + 2));
    printf("%d", square1(10 + 2));
    return 0;
}

选项
a) 144, 32
b) 32, 144
c) 100, 12
d) 12, 144

Ans: B

说明:在这个程序中,#define宏用于替换值并像这样计算它们:

10 + 2 * 10 + 2 = 32 
or (10+2)*(10+2) = 144 

Q.4这个程序的输出是什么?

CPP

#include 
using namespace std;
int main()
{
    int i;
    i = 0x18 + 0110 + 11;
    printf("p= %d", i);
    return 0;
}

选项
a) p=101
b) p=107
c) p=40
d) 错误

Ans: B

说明:在这个程序中,0x 是十六进制表示法,0 是八进制表示法,将这些值转换为十进制并相加。
Q.5这个程序的输出是什么?

CPP

#include 
using namespace std;
int main()
{
    char* a = "INFO";
    a++;
    printf("%s", a);
    return 0;
}

选项
a) 错误
b) 信息
c) 非盈利组织
d) 这些都不是

Ans: C