C++Primer第五版 1.2节练习(解答)



练习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.41.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;
 } 



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值