用下列语句定义a,b,c,然后执行b=a、c='b'+b,则b,c的值是().long a=0xffffff; int b; char c;A:0ffffff 和0x61B:-1和98C:-1和97D:指向同一地址求解释

来源:学生作业学帮网 编辑:学帮网 时间:2024/05/16 14:16:59

用下列语句定义a,b,c,然后执行b=a、c='b'+b,则b,c的值是().
long a=0xffffff;
int b; char c;
A:0ffffff 和0x61
B:-1和98
C:-1和97
D:指向同一地址
求解释

如果用gcc的编译器,结果选A,
long 和int 一样都是4个字节,因此用int的b = c;结果还是0xffffff,而用只有1个字节的char型数据c等于'b' + b时相当于只取b的后两位,又因为是有符号的char,因此0xFF就是-1,因此C = 'b' + (-1) 就是 ‘a’,也就是0x61.
如果将long换做long long 结果就大不一样了,因为sizeof(long long) = 8占用8个字节,结果将另外分析了.
#include
#include
#include
int main()
{
long a=0xffffff;
int b;
char c;
b = a;
c = 'b' + b;
printf("%d %d %d %x %x %x",sizeof(long),sizeof(long long),sizeof(char),a,b,c);
return 0;
}
输出如下:
4 8 1 ffffff ffffff 61
Process returned 0 (0x0) execution time : 0.123 s
Press any key to continue.
如果换做long long 结果如下:
4 8 1 ffffff 0 ffffff
Process returned 0 (0x0) execution time : 0.139 s
Press any key to continue.

用下列语句定义a,b,c,然后执行b=a、c='b'+b,则b,c的值是()?用下列语句定义a,b,c,然后执行b=a、c='b'+b,则b,c的值是().long a=0xffffff; int b; char c;A:0ffffff 和0x61B:-1和98C:-1和97D:指向同一地址求解释 若有定义语句“(int a =25,b=14,c=19)”则下列语句的执行结果是(?)语句:if(a++ 用下列语句定义a,b,c,然后执行b=a、c='b'+b,则b,c的值是().long a=0xffffff; int b; char c;A:0ffffff 和0x61B:-1和98C:-1和97D:指向同一地址求解释 若有定义:int a=1,b=11,c=4; 则执行下列语句后,a,b,c的值分别为( ). .若有定义:int a=20,b=28,c;则执行语句c=(a^b) 若有定义:int a=10,b=9,c=8;接着顺序执行下列语句,变量b中的值是c=(a-=(b-5));c=(a%11)+(b=3); 定义int a=10,b=8,c=4;顺序执行下列语句后,变量a的值是?c=(b-=(a-4));a=(c%2)+(b-1);是1还是2? 若有定义:int a=010,b=1,c=2;接着顺序执行下列语句,变量c的值——c=(a-=(b+5));c=(a%11)+(b=1); 若有定义:inta=10,b=9,c=8;,接着顺序执行下列语句,变量b中的值为c=(a-=(b-5));c=(a%11)+(b=3); 若定义语句:int a,b,c,*p=&c;之后,接着执行下列选项中的语句,则能正确执行的语句是Ascanf(%d,a,b,c);Bscanf(%d%d%d,a,b,c);Ascanf(%d,P);Ascanf(%d,&P); 设有定义int a ,b=10;则执行语句a=b 执行下列语句后a的值为( ),b的值为( ).int a,b,c; a=b=c=1; ++a|| ++b && ++c; C语言 若有定义,int a=010,b=1,c=2;接着顺序执行下列语句后,变量c中的值是3?(C语言若有定义,int a=010,b=1,c=2;接着顺序执行下列语句后,变量c中的值是3?(why)c=(a-=(b+5));c=(a%11)+(b=1); 若有定义Int a=8,b=5,c:执行语句C=a/b+0.4后.c的值为多少 若定义:int a=8,b=5,c;执行语句c=a/b+0.4;运行后为什么c的值是1? 若有定义Int a=8,b=5,c:执行语句C=a/b+0.4后.c的值到底是1还是1.4 若有定义:int a=8,b=5,C;,执行语句C=a/b+0.4;后,c的值为 若有定义语句 int a=25,b=14,c=19,以下语句的执行结果是______if(a++