
关于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++呢? 展开
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++呢? 展开
3个回答
展开全部
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,然后就是后置运算符的问题,看看书
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,然后就是后置运算符的问题,看看书
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询