龙空技术网

C语言的整数都不一定弄明白

计算机科学技术 803

前言:

现在我们对“c语言unsigned什么意思”大约比较着重,大家都想要知道一些“c语言unsigned什么意思”的相关资讯。那么小编也在网摘上收集了一些关于“c语言unsigned什么意思””的相关知识,希望你们能喜欢,你们快快来学习一下吧!

搞了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 << 0

A.对于所有的x数都是已定义行为

B.对于部分的数值是已定义行为

C.所有的x值都是未定义行为

10.假设x为一个int类型变量,表达式1 << 1

A.对于所有的x值都是已定义行为

B.对于部分的数值是已定义行为

C.所有的x值都是未定义行为

11.假设x为一个int类型变量,表达式x << 31

A.对于所有的x值都是已定义行为

B.对于部分的数值是已定义行为

C.所有的x值都是未定义行为

12.假设x为一个int类型变量,表达式x << 32

A.对于所有的x值都是已定义行为

B.对于部分的数值是已定义行为

C.所有的x值都是未定义行为

13.假设x为一个short类型变量,表达式x << 29

A.对于所有的x值都是已定义行为

B.对于部分的数值是已定义行为

C.所有的x值都是未定义行为

14.假设x为一个unsigned类型变量,表达式x << 31

A.对于所有的x值都是已定义行为

B.对于部分的数值是已定义行为

C.所有的x值都是未定义行为

15.假设x为一个unsigned short类型变量,表达式x << 31

A.对于所有的x值都是已定义行为

B.对于部分的数值是已定义行为

C.所有的x值都是未定义行为

16.假设x为一个int类型变量,表达式x + 1

A.对于所有的x值都是已定义行为

B.对于部分的数值是已定义行为

C.所有的x值都是未定义行为

17.假设x为一个int类型变量,表达式x -1+ 1

A.对于所有的x值都是已定义行为

B.对于部分的数值是已定义行为

C.所有的x值都是未定义行为

18.假设x为一个int类型变量,表达式(short)x+ 1

A.对于所有的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

详细解释:

标签: #c语言unsigned什么意思