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