关于C++的基础问题求解答!!

问题可能多了点..不过我是真心诚意的想搞清楚,财富值比较低,能帮我解答的话也只有5分可以再加...求帮助啊!!1.表达式(float)2/3的值为?答案是1,这是怎么得来... 问题可能多了点..不过我是真心诚意的想搞清楚,财富值比较低,能帮我解答的话也只有5分可以再加...求帮助啊!!

1.表达式(float)2/3的值为?答案是1,这是怎么得来的?

2.关于sizeof的问题:int型长度为4,那么是不是说只要是int型的数值,比如sizeof(123456),也等于4?还有,若x为int型,y

为double型,sizeof(x*y)长度是8我可以理解,但为什么括号中的乘号*不算入长度?

3.cout后面的<<的优先级是不是高于后自增的优先级?因为我看很多题里都是这样,比如cout<<m++; 就是只输出m

4.2*2.14f+100的数据类型为什么是double?2.14f不是float型吗?

5.若m,n为整型,x为实型,ch为字符型,下列赋值语句正确的是( )
A.m+n=x B.m=ch+n C.x=(m+n)++ D.m=x%n
这道题答案是B。我想问A是不是因为实型x赋值给整型n会有精度损失的原因? B之所以对是因为ch转成ascii码运算吗? 还有C为什

么不对?这难道不算隐式转换?

6.表达式1-'\0'的值为什么是1?在ASCII表中我没找到\0这个东西,那'\0'的含义是什么?用''括住的意义是什么?

7.已知'0'的ascii码为48
char a='1',b='2';
cout<<b++<<",";
cout<<b-a<<endl;
这些执行完输出结果是50,2,能不能给我分析下这个程序?为什么有时按char计算有时按数值计算?

8.
int i=3,j=2,a;
a=(--i==j++)?--i:++j;这条语句中j的后增为什么在第二个--i执行后才执行?j++不是在括号里的吗?
书上要是有就不问了啊...
第3题我问的就是“后增”
第4题是答案给的double
第5题我看书上这部分好几遍了啊...能解释下么..
第6题我是想问\0这个我在ascii表里没找到,它是默认为1长度么?用单引号括住的意义是指它的长度么?
第7题还是不太懂...比如第一个cout输出的为什么不是2?第二个cout输出的却是3-1的结果2?
第8题我是觉得括号优先级应该最高吧,为什么不是先--i与j比较 然后j++,而是先--i与j比较,执行--i,最后j++呢?
展开
 我来答
妖刀路过
2011-12-04 · TA获得超过126个赞
知道小有建树答主
回答量:125
采纳率:100%
帮助的人:146万
展开全部
1. 答案不是1,你可以用VC验证一下,应该是0.66667
2. 对于这个问题,你可能没有理解清楚类型转换,在win32的前提下,int占4个字节,double占8哥字节,而你的x*y,调用了隐式类型转换,乘法以后的值为double型,所以sizeof以后就为8个字节

3. ++可以为前置运算或者后置,优先级有关,肯定

4,你可以用sizeof看一下这个数,4个字节,为float类型,不知道你怎么觉得它是double型的

5. 我推荐你可以用编译器去做做看,然后再看看书

6. '\0'就是字符串的结束标识符,在内存中占有一个字节,但没有任何意义,比如说“hello”,它在内存中其实占用了6个字节,因为最后面还有一个 '\0',所以它的作用在于常常来判断一个字符串是否结束

7 字符在内存中按照ascii的方式存储,所以对其进行算术运算的时候,实际上是对ascii的值进行云远

8 a=(--i==j++)?--i:++j;首先这条语言没有起到作用,因为在?前面是一个赋值运算,一直为1,然后就是后置运算符的问题,看看书
Docix
2011-12-04 · 超过11用户采纳过TA的回答
知道答主
回答量:97
采纳率:100%
帮助的人:34.8万
展开全部
第一个是强制转换类型吗。。
第二个是x和y相乘的结果的类型所占大小,不是三个字母占多少
之后同求
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-12-04
展开全部
1.是用什么格式输出的?不同格式答案不同
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式