1、运行下列程序,分析其输出的结果是什么?
#include <stdio.h>
void main() {
int a, b, c, d;
a = 2147483647;
b = a + 1;
c = -2147483648;
d = c - 1;
printf("%d,%d\n", a, b);
printf("%d,%d\n", c, d);
}
代码如下:
#include <stdio.h>
void main() {
int a, b, c, d;
a = 2147483647;
b = a + 1;
c = -2147483648;
d = c - 1;
printf("%d,%d\n", a, b);
printf("%d,%d\n", c, d);
}
代码运行结果:
2、若将命令改为b=a+2;d=c-2;运行的结果是什么呢?
代码如下:
#include <stdio.h>
void main() {
int a, b, c, d;
a = 2147483647;
b = a + 2;
c = -2147483648;
d = c - 2;
printf("%d,%d\n", a, b);
printf("%d,%d\n", c, d);
}
代码运行结果:
3、将最后两条命令改为printf(“%x,%x\n”,a,b); printf(“%x,%x\n”,c,d);;输出的结果是什么呢?
代码如下:
#include <stdio.h>
void main() {
int a, b, c, d;
a = 2147483647;
b = a + 2;
c = -2147483648;
d = c - 2;
printf("% x, % x\n", a, b);
printf("% x, % x\n", c, d);
}
代码运行结果: