上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 16 下一页
2018年8月9日
摘要: 4.36:假定 i 是int类型,d是double类型,书写表达式 i*=d 使其执行整数类型的乘法而非浮点类型的乘法。 Ans:i*=static_cast<int>(d); 4.37:用命名的强制类型转换改写下列旧式的转换语句。 int i; double d; const string *ps 阅读全文
posted @ 2018-08-09 20:42 linlh 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 4.34:根据本节给出的变量定义,说明在下面的表达式中将发生什么样的类型转换: a) if (fval) b)dval =fval + ival; c) dval + ival * cval; 需要注意每种运算符遵循的是左结合律还是右结合律。 Ans:a) float类型会转换成bool类型; b) 阅读全文
posted @ 2018-08-09 18:10 linlh 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 4.31:本节的程序使用了前置版本的递增运算符和递减运算符,解释为什么要用前置版本而不用后置版本。要想使用后置版本的递增递减运算符需要做哪些改动?使用后置版本重写本节的程序。 Ans:根据情况而定,若使用后置版本,那么如果只是使用运算对象的原始值而不需要使用递增后的值,那么后置版本就会继续递增运算对 阅读全文
posted @ 2018-08-09 14:55 linlh 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 1、函数调用也是一种特殊的运算符,对运算对象的个数不作限制。 2、几元运算符,是基于作用的对象的数量。 3、不同类型的运算对象进行运算,可能会出现类型转换,一般情况下小整数类型会被转换成较大的整数类型,当然,还可能有其他情况的类型。 4、重载运算符的优先级和结合律是无法改变的,但是可以改变运算对象的 阅读全文
posted @ 2018-08-09 14:55 linlh 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 4.29:推断下面代码的输出结果并说明理由。实际运行这段程序,结果和你想象的一样吗?如果不一样,为什么? int x[10]; int *p=x; cout<< sizeof(x)/sizeof(*x)<<endl; cout<<sizeof(p)/sizeof(*p)<<endl; Ans:第一条 阅读全文
posted @ 2018-08-09 10:26 linlh 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 4.25:如果一台机器上的int占32位,char占8位,用的是Latin-1字符集,其中字符 ‘ q ’的二进制形式是01110001,那么表达式~‘ q ’<<6的值是什么? Ans:-7296,由于C++规定整数按照补码的形式进行存储,所以应该移位完后再进行求其补码得到的 4.26:在本节关于 阅读全文
posted @ 2018-08-09 09:41 linlh 阅读(167) 评论(0) 推荐(0) 编辑
2018年8月8日
摘要: 1、计算机的字符集有三种 单字节字符集(SBCS)、多字节字符集(MBCS)、宽字节字符集(Unicode字符集)。计算机的每个字符都要使用一个编码表示,每个字符集使用哪一种编码则是由所采用的字符集所决定。 单字节字符集:它的所有字符都只有一个字节的长度。具体实现有:ASCII字符集和扩展ASCII 阅读全文
posted @ 2018-08-08 21:41 linlh 阅读(595) 评论(0) 推荐(0) 编辑
摘要: 4.22:本节的示例程序将成绩划分为high pass、pass和fail三种,扩展该程序使其进一步将60分到75分之间的成绩设定为low pass。要求程序包含两个版本:一个版本只使用条件运算符:另外一个版本使用1个或多个if语句。哪个版本的程序更容易理解呢?为什么? Ans:由于将需要将分数划分 阅读全文
posted @ 2018-08-08 17:24 linlh 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 4.20:假设iter的类型是vector<string>::iterator,说明下面的表达式是否合法。如果合法,表达式的含义是什么?如果不合法,错在何处? (a) *iter++; (b) (*iter)++; (c)*iter.empty(); (d) iter->empty(); (e) + 阅读全文
posted @ 2018-08-08 12:07 linlh 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 4.17:说明前置递增运算符和后置递增运算符的区别。 Ans:两者的作用对象都是左值运算对象,前者是将运算对象本身作为左值返回,就是将运算对象先递增再返回,后者是将运算对象的原始值的副本拷贝一份作为右值返回,实际上是先将运算对象返回,再让它递增。 4.18:如果132页那个输出vector对象元素的 阅读全文
posted @ 2018-08-08 11:40 linlh 阅读(81) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 16 下一页