c++基本数据类型和计算(二)习题讲解

1.【单选题】

int a {1000},b;

b=a<<2;

b=?

A. 1000

B. 2000

C. 4000

解析: b=a<<2;属于位运算。在二进制下,向左移动两位,相当于乘以2的二次方。所以b  = 4000,选C。

2.【单选题】

int a {1000},b;

b=a>>2;

b=?

A. 250

B. 2000

C. 4000

解析:这题和第一题类似,向右移动两位,相当于除以2的2次方,所以b = 250,选A。

3.【单选题】

unsigned int a {0x2838};

a&=0xFF00;

a = ?

A. 2800

B. 0x2800

C. 0

解析:a&=0xFF00; 解释为:将a的初始值0x2838f(二进制表示为0010 1000 0011 1000 1111)与0xFF00(二进制表示为1111 1111 0000 0000)进行位与操作。

        位与操作的规则是:只有当两个相应的二进制位都为1时,结果位才为1。否则,结果位为0。因此,执行完a &= 0xFF00;后,a的值将是0x2800,选B。
 

4.【单选题】

char a{'A'};

char b;

b=2+a++;

std::cout<<b;

控制台显示的内容是?

A. C

B. B

C. A

解析:首先,字符a被初始化为字符'A',在ASCII编码中,'A'的值是65。 b = 2 + a++; a是后置递增,结果b等于67,代表字符为 C,所以选A。

5.【单选题】

int a{10},b{1},c;

c=b+++a;

c=? 

A. 10

B. 11

C. 12

解析:c=b+++a; 考察了运算符的优先级。有两种写法,c = b++ + a , c = b + ++a,但是后置递增的优先级要大于前置递增,所以为 c = b++ + a; 结果c = 11,选B。

6.【单选题】

int a {10};

a = a << 2 + 1;

a = ?

A. 41

B. 21

C. 80

解析:a = a << 2 + 1; 考察了运算符的优先级,加号的优先级要大于位移运算符,所以a = a << 2 + 1; 为 a = a << 3; 向左移3位,等于 10 乘以 2的3次方位80,选C。

7.【单选题】

auto a {100.0};

std::cout << typeid(a).name();

控制台显示的是?

A.double

B.float

C.int

解析:答案选A。float类型后缀要加f字符。

8.【单选题】

std::cout<<(int)'A,;控制台显示内容是?

A. 65

B.A

C.B

解析:在ASCII编码中,'A'的值是65,所以选A。

9.【单选题】

int a {255};

std::cout<<std::hex;

std::cout<<a;

控制台显示内容是?

A.255

B.FF

C.0xFF

解析:std::cout<<std::hex;表示整数 a 的值(255)会以十六进制的形式输出。在十六进制中,255 表示为 ff。所以,答案选B。

10.【单选题】

int a;

std::cin>>std::oct;

std::cin>>a;

用户输入了10

a=?

A. 8

B. 10

C.16

解析:std::cin>>std::oct;表示输入形式为八进制10,此时a  = 8,答案为A。

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值