10. 下面程序的运行结果是 A 。 main() { int a,b; a=32767; b=a+1; printf("a=%d,b=%d",a,b); }

10. 下面程序的运行结果是 A 。
main()
{
int a,b;
a=32767;
b=a+1;
printf("a=%d,b=%d\n",a,b);
}
A)a=32767,b=-32768 B)a=32767,b=32768
C)a=32767,b=1 D)运行出错

我做这题时卷子写的答案也是A,我当时认为的解释是:int的取值范围是-32768~32767,但是,我在C环境下运行的结果却是 a=32767,b=32768
很是郁闷!求解
温馨提示:内容为网友见解,仅供参考
无其他回答

...{ int a,b; a=32767; b=a+1; printf("a=%d,b=%d",a,b); }_百度知...
include main(){ long a,b;a=32767;b=a+1;printf("a=%d,b=%d\\n",a,b);} 这个a当为二进制时就超过了.所以你要改变类型.

...main() { int a,b; a=32767; b=a+1; printf("%d,%d\\n",a,b...
int main(){ short a,b;a=32767;b=a+1;printf("%d,%d\\n",a,b);return 0;} 这样就会变成-32768了,int 能表示的范围就是2的32次方,short才是32767

main() { long int a,b; a=32767; b=a+1; printf("%d,%d",a,b);getc...
也就是说long int取值范围为负2的16次方到2的16次方减1(正数从0开始到n-1),当a=32767是就是long int的最大大值,二进制表示为1111111111111111十六个一,当程序加一时,就变成17位(最左一位为1,其余位为0),

...main() { short a,b; a=32767; b=a+1; printf("%...
原理:没什么很深奥的原理,就是简单的定义赋值

main () { int a,b,c; a=32767; b=a+1; c=a+2; printf("%d, %d...
在16位TC下32767,-32768,-32767 在32位VC下32767,32768,32769

...main() { short a,b,c; int d; a=32767; b=a+1; c=0177777; d=01777...
short在32位系统中占2字节长度,也就是有16位。只能表达-32768~32767共计65536个数字。32767(D) = 0111 1111(B),加上1后为1000 0000(B),由于是有符号数据,所以第一位只表示符号,根据补码规则,数据为-32768 int在32位系统中占4字节长度,也就是有32位。可以表达-2147483648~2147483647共...

c语言:int a;a=32767;printf(%d,a);则输出是
printf(%d,a)是一条错误的语句 printf的第一个参数是一个字符串 int printf(const char *format, ...);所以printf(%d,a)是错误的 编译器是无法编译的 正确的应该是 printf("%d",a);程序申明一个变量a 然后将32767赋值给变量a 所以打印出来的结果是32767 但你的这个打印的语句是错误的 ...

c语言怎么将变量b改成long型?
int main(){ int a,b;a=32767;b=a+1;printf("%d,%ld\\n",a,(long)(a+1));return 0;} 这样不知道行不行,我这没有TC:include<stdio.h> int main(){ int a,b;a=32767;b=a+1;printf("%d,%ld\\n",a,(long)b);\/*输出的第二项为强制转换类型函数的返回值*\/ return 0;} ...

main() { unsingned a=32768; int b; b=a; printf("b=%d\\n",b); }...
说的差不多 int b=32768;由于某些系统中int的最大值是32767,最小值是-32768,所以你这样一用,只能从-32768到32767给你选一个对应的数,而-32768和32768关于65536同余,同余在计算机里面也可以理解为相等。

C语言:int a=32767,b …结果多少?
1000 0000 0000 0000 第一位为正负位,其计算结果为把所有位数全部变成相反的,然后加上一(此时第一个1变成了0,把它当作正数)也就是0111 1111 1111 1111 增加1为 1000 0000 0000 0000 结果就是-32768.如果在VC中,int占用四个字节,所以结果为32768。前缀自增(自减)操作是先自增,然后传递...

相似回答