21xrx.com
2024-11-05 17:28:38 Tuesday
登录
文章检索 我的文章 写文章
C++第五章作业题答案——吕凤
2023-07-01 10:29:05 深夜i     --     --
C++ 第五章 作业题 答案 吕凤

本文将介绍C++第五章作业题的答案,答案由吕凤提供。

第一题:


int x=10;

int y=20;

int z=++x||++y;//x和y的值分别为多少?

答案:x=11,y=20。

分析:由于++x先自加再赋值,所以x的值变为11,然后因为11为真,后面的++y就不需要执行了,所以y的值依旧是20。

第二题:


int x=10;

int y=20;

int z=x++&&++y;//x和y的值分别为多少?

答案:x=11,y=21。

分析:由于x++是先赋值再自加,所以此时的x仍为10,然后10为真,所以会执行++y,使得y的值变为21。

第三题:


char a=0xb6,b=0xbc,c=0xc3;

cout<<a<<","<<b<<","<<c<<endl;

答案:输出:¶,¼,Ã。

分析:这里的三个数分别是十六进制的0xb6、0xbc、0xc3,分别对应着GB2312中的“¶”、“¼”、“Ô。

第四题:


unsigned int a=0xfffffffd;

int b=0x00000007;

int c=a+b;

cout<<c<<endl;

答案:输出:6。

分析:因为a的类型是unsigned int,所以它的值为4294967293,b的值为7,所以它们相加得到4294967300,但是由于数据类型的限制,它们的和被截断为int,所以最终结果为6。

第五题:


int a=0x00000008;

int b=0xfffffff8;

cout<<(a>>2)<<endl;

cout<<(b>>2)<<endl;

答案:输出:2,-2。

分析:由于a的值为8,二进制表示为0000 1000,右移两位得到0000 0010,即2;而b的值为-8,二进制表示为1111 1000,右移两位得到1111 1110,即-2。

文章作者:AI智能助手

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复