15、阅读以下C代码,思考出该输入怎样的数据使程序输出结果为 Right!!!
#include<stdio.h>
#include<math.h>
int main()
{
int number;
scanf("%d",&number);
number = abs(number);
number += 1024;
if(number < 1024){
printf("Rigth!!!");
return 0;
}
printf("Wrong!!!");
return 0;
}
(10分)
请在此处输入答案
16、阅读以下函数,输入一个int范围内[-2147483648,2147483647] ,即[-2^{31},2^{31}-1]的数据,试问输入数据为多少使得函数输出结果为 Rigth!!!
函数说明:
定义函数:int abs (int j); 函数说明:abs(j)用来计算参数$j$ 的绝对值,然后将结果返回。 返回值:返回参数$j$ 的绝对值结果
#include<stdio.h>
#include<math.h>
int main()
{
int number;
scanf("%d",&number);
number = abs(number);
number += 1024;
if(number < 1024){
printf("Rigth!!!");
return 0;
}
printf("Wrong!!!");
return 0;
}
(10分)
请在此处输入答案
17、在 C/C++中,int 和 float 都是 4 字节,32 个比特。因此,对于任意连续的$32$个比特,可能表示某一个整数,也可能表示某一个浮点数。因此就存在某个浮点数在内存中存储的比特与某个整数的比特一致。
求一个 float 型小数,使得它与 int 型整数 s= 1127398111(十六进制0x4332badf)在内存中的比特分布完全一致(不是值一致)!求出这个值。 (10分)
1 输入 2147483647
15、由于取了绝对值,因此只能靠int型溢出才能形成负数,且又不能直接是负数,因此输入值为0x7FFFFFFF到0x7FFFFFFF-1023之间。这样在加上1024之后,int型溢出成为负数。也可以输入相应范围的负数,abs后是正数