C++Primer第五版 1.2节练习(解答)
2015-09-10 17:14
357 查看
练习1.3:
编写程序,在标准输出上打印Hello, World
练习1.4:我们的程序使用加法运算符+来将两个数相加。编写程序使用运算符“*”来打印两个数的积。
练习1.5:我们将所有输出操作放在一条很长的语句中。重写程序,将每个运算符对象的打印操作放在一条独立的语句中。
练习1.6:解释下面程序是否合法。
Std::cout<<“The sum of ” <<v1;
<< ” and ” << v2;
<< “ is ” << v1+v2 << std::endl;
如果程序是合法的,它输出什么?如果程序不合法,原因何在?应该如何修正?
答:
1.3,1.4,1.5见云盘的习题程序目录附有源码。
1.6
不合法。参考第7页输入运算符(>>)与输出运算符类似,它接受一个istream作为其左侧运算对象,接受一个对象作为其右侧运算对象。它从给定的istream读入数据,并存入给定对象中。与输出运算符类似,输入运算符返回其左侧运算对象作为其计算结果。因此
Std::cin>>v1>>v2;
与
(std::cin>>v1)>>v2;等价
由于此运算符返回其左侧运算对象,因此我们可以将一系列输入请求合并到单一语句中。
本例中的输入操作从std::cin读入两个值,并将第一个值存入v1,将第二个值存入v2。换句话说,它与std::cin>>v1;std::cin>>v2;执行结果是一样的。
因此第二行,输入运算符接受一个ostream为其左侧运算对象,接受一个对象为其右侧运算对象。从第二行开始,(<<)左侧遇见“;”分号,表示上一条语句结束,左侧运算对象为空,因此该语句不能执行,不合法。修正方法,去掉v1,v2后面的分号。
注:对于红色字体理解,就是左侧输入什么就是什么,粗略地理解。意思就是,变量最后保存什么结果,是根据左侧的输入决定的,因此同时一行写很多个输入运算符就这么理解。后续在讨论。
练习1.3:
编写程序,在标准输出上打印Hello, World
练习1.4:我们的程序使用加法运算符+来将两个数相加。编写程序使用运算符“*”来打印两个数的积。
练习1.5:我们将所有输出操作放在一条很长的语句中。重写程序,将每个运算符对象的打印操作放在一条独立的语句中。
练习1.6:解释下面程序是否合法。
Std::cout<<“The sum of ” <<v1;
<< ” and ” << v2;
<< “ is ” << v1+v2 << std::endl;
如果程序是合法的,它输出什么?如果程序不合法,原因何在?应该如何修正?
答:
1.3,1.4,1.5见云盘的习题程序目录附有源码。
1.6
不合法。参考第7页输入运算符(>>)与输出运算符类似,它接受一个istream作为其左侧运算对象,接受一个对象作为其右侧运算对象。它从给定的istream读入数据,并存入给定对象中。与输出运算符类似,输入运算符返回其左侧运算对象作为其计算结果。因此
Std::cin>>v1>>v2;
与
(std::cin>>v1)>>v2;等价
由于此运算符返回其左侧运算对象,因此我们可以将一系列输入请求合并到单一语句中。
本例中的输入操作从std::cin读入两个值,并将第一个值存入v1,将第二个值存入v2。换句话说,它与std::cin>>v1;std::cin>>v2;执行结果是一样的。
因此第二行,输入运算符接受一个ostream为其左侧运算对象,接受一个对象为其右侧运算对象。从第二行开始,(<<)左侧遇见“;”分号,表示上一条语句结束,左侧运算对象为空,因此该语句不能执行,不合法。修正方法,去掉v1,v2后面的分号。
注:对于红色字体理解,就是左侧输入什么就是什么,粗略地理解。意思就是,变量最后保存什么结果,是根据左侧的输入决定的,因此同时一行写很多个输入运算符就这么理解。后续在讨论。
/* * *2015-4-25 page 8 *练习1.3 */ #include<iostream> int main() { std::cout<<"Hello, World"<<std::endl; return 0; }
/* * *2015-4-25 page 8 *练习1.4 */ #include<iostream> int main() { std::cout<< "Enter two numbers:" << std::endl; int v1=0,v2=0; std::cin >> v1 >> v2; std::cout << "The sum of " << v1 << " and " << v2 << " is " << v1*v2 << std::endl; return 0; }
/* * *2015-4-25 page 8 *练习1.5 */ #include<iostream> int main() { std::cout << "Enter two numbers:" ; std::cout << std::endl; int v1=0; int v2=0; std::cin >> v1; std::cin >> v2; std::cout << "The sum of "; std::cout << v1; std::cout << " and "; std::cout << v2; std::cout << " is "; std::cout << v1+v2; std::cout << std::endl; return 0; }
相关文章推荐
- C++ lambda表达式
- C/C++二维数组的传参方法总结
- C++中const用法总结
- 动态数组new、allocate
- Connector/c++ 查询Mysql,出现 can't fetch because not on result set 错误
- C++函数的嵌套调用和递归调用学习教程
- C++用法的学习心得
- ☆C++学习心得
- c语言二目运算符. ->
- C++Primer第五版 第1章 开始(练习解答)
- C/C++ 笔试、面试题目大汇总(转)
- C++Primer 第五版 1.1节练习
- C++静态库与动态库(转)
- c++结构体字节对齐
- C/C++创建二维数组/指针数组
- C++ explicit
- C++成员变量的初始化顺序如果不使用初始化列表初始化,在构造函数内初始化时,此时与成员变量在构造函数中的位置有关。
- 【more effective c++读书笔记】【第5章】技术(7)——让函数根据一个以上的对象类型来决定如何虚化(2)
- 【more effective c++读书笔记】【第5章】技术(7)——让函数根据一个以上的对象类型来决定如何虚化(2)
- 命名空间