摘要:
习题5.1在下列表达式中,加入适当的圆括号以标明其计算顺序。编译该表达式并输出其值,从而检查你的回答是否正确。12 / 3 * 4 + 5 * 15 + 24 % 4 / 2【解答】加入如下所示的圆括号以标明该表达式的计算顺序: (((12 / 3) * 4) + (5 * 15)) + ((24 % 4) / 2)习题5.2计算下列表达式的值,并指出哪些结果值依赖于机器?-30 * 3 + 21 / 5-30 + 3 * 21 / 530 / 3 * 21 % 5-30 / 3 * 21 % 4【解答】各表达式的值分别为-86、-18、0、-2。其中,最后一个表达式的结果值依赖于机器,因为该 阅读全文
摘要:
习题4.1假设get_size是一个没有参数并返回int值的函数,下列哪些定义是非法的?为什么?unsigned buf_size = 1024(a) int ia[buf_size];(b) int ia[get_size()];(c) int ia[4*7-14];(d) char st[11] = "fundamental" ;【解答】(a)非法,buf_size是一个变量,不能用于定义数组的维数(维长度)。(b)非法,get_size()是函数调用,不是常量表达式,不能用于定义数组的维数(维长度)。(d)非法,存放字符串"fundamental"的数组必须有12个元素,st只有11个元 阅读全文
摘要:
习题3.1用适当的using声明,而不用std::前缀,访问标准库中的名字,重新编写2.3节的程序,计算一给定数的给定次幂的结果。【解答】#include using std::cin;using std::cout;int main(){ // 局部对象 int base, exponent; long result=1; // 读入底数和指数 cout > base >> exponent; if (exponent 0) { // 计算底数的指数次方 for (int cnt = 1; cnt #include using namespace std;int main 阅读全文
摘要:
习题2.1int、long和short类型之间有什么差别?【解答】它们的最小存储空间不同,分别为16位、32位和16位。一般而言,short类型为半个机器字(word)长,int类型为一个机器字长,而long类型为一个或两个机器字长(在32位机器中,int类型和long类型的字长通常是相同的)。因此,它们的表示范围不同。习题2.2unsigned和signed类型有什么差别?【解答】前者为无符号类型,只能表示大于或等于0的数。后者为带符号类型,可以表示正数、负数和0。习题2.3如果在某机器上short类型占16位,那么可以赋给short类型的最大数是什么?unsigned short类型的最大 阅读全文
摘要:
习题1.1查看所用的编译器文档,了解它所用的文件命名规范。编译并运行本节的main程序。【解答】一般而言,C++编译器要求待编译的程序保存在文件中。C++程序中一般涉及两类文件:头文件和源文件。大多数系统中,文件的名字由文件名和文件后缀(又称扩展名)组成。文件后缀通常表明文件的类型,如头文件的后缀可以是.h或.hpp等;源文件的后缀可以是.cc或.cpp等,具体的后缀与使用的编译器有关。通常可以通过编译器所提供的联机帮助文档了解其文件命名规范。习题1.2修改程序使其返回-1。返回值-1通常作为程序运行失败的指示器。然而,系统不同,如何(甚至是否)报告main函数运行失败也不同。重新编译并再次运 阅读全文