搞了C语言这么多年,就整数类型来说就不一定搞明白,不服的话,看看下面的几道整数测验题,以GCC/LLVM x86/x64为测试平台,今天小编就来聊一聊关于c语言小数和整数怎么分开?接下来我们就一起去研究一下吧!

c语言小数和整数怎么分开(C语言的整数都不一定弄明白)

c语言小数和整数怎么分开

搞了C语言这么多年,就整数类型来说就不一定搞明白,不服的话,看看下面的几道整数测验题,以GCC/LLVM x86/x64为测试平台。

1.表达式1 > 0的执行结果是什么?A.0 B.1 C.未定义

2.表达式1U > -1的执行结果是什么?A. 0 B.1 C. 未定义

3.表达式(unsigned short)1 > -1的执行结果是什么?A. 0 B.1 C. 未定义 D.与编译器的实现有关

4.表达式-1L > 1U分别在x86-64和x86平台上的执行结果是什么?A. 都为0 B.都为1 C.x86-64平台上为0,x86平台上为1 D.x86-64平台上为1,x86平台上为0

5.表达式SCHAR_MAX == CHAR_MAX的执行结果是什么?A.0 B.1 C.未定义

6.表达式UINT_MAX 1的执行结果是什么?A. 0 B. 1 C. INT_MAX D. UINT_MAX E.undefined

7.表达式INT_MAX 1的执行结果是什么?A. 0 B. 1 C. INT_MAX D. UNIT_MAX E. INT_MIN F.undefined

8.表达式-INT_MIN的执行结果是什么?A. 0 B.1 C.INT_MAX D.UINT_MAX E.INT_MAX F.未定义

9.假设x为一个int类型变量,表达式x << 0A.对于所有的x数都是已定义行为 B.对于部分的数值是已定义行为 C.所有的x值都是未定义行为

10.假设x为一个int类型变量,表达式1 << 1A.对于所有的x值都是已定义行为 B.对于部分的数值是已定义行为 C.所有的x值都是未定义行为

11.假设x为一个int类型变量,表达式x << 31A.对于所有的x值都是已定义行为 B.对于部分的数值是已定义行为 C.所有的x值都是未定义行为

12.假设x为一个int类型变量,表达式x << 32A.对于所有的x值都是已定义行为 B.对于部分的数值是已定义行为 C.所有的x值都是未定义行为

13.假设x为一个short类型变量,表达式x << 29A.对于所有的x值都是已定义行为 B.对于部分的数值是已定义行为 C.所有的x值都是未定义行为

14.假设x为一个unsigned类型变量,表达式x << 31A.对于所有的x值都是已定义行为 B.对于部分的数值是已定义行为 C.所有的x值都是未定义行为

15.假设x为一个unsigned short类型变量,表达式x << 31A.对于所有的x值都是已定义行为 B.对于部分的数值是已定义行为 C.所有的x值都是未定义行为

16.假设x为一个int类型变量,表达式x 1A.对于所有的x值都是已定义行为 B.对于部分的数值是已定义行为 C.所有的x值都是未定义行为

17.假设x为一个int类型变量,表达式x -1 1A.对于所有的x值都是已定义行为 B.对于部分的数值是已定义行为 C.所有的x值都是未定义行为

18.假设x为一个int类型变量,表达式(short)x 1A.对于所有的x值都是已定义行为 B.对于部分的数值是已定义行为 C.所有的x值都是未定义行为

19.假设x为一个int类型变量,表达式(short)(x 1)A.对于所有的x值都是已定义行为 B.对于部分的数值是已定义行为 C.所有的x值都是未定义行为

答案:1.B 2.A 3.B 4.C 5.B 6.A 7.F 8.F 9.B 10.B 11.B 12.C 13.B 14.A 15.B 16.B 17.B 18.A 19.B

详细解释:https://www.acepace.net/integerQuiz/

,