本篇是《C++ Primer》(第5版)第1章的习题练习9~16题的答案。
练习9:编写程序,使用while循环将50到100的整数相加。
#include <iostream>
int main()
{
int sum = 0;
int i = 50;
while(i <= 100)
{
sum = sum + i;
++i;
}
std::cout << "sum =======" << sum;
return 0;
}
练习10:除了++运算对象的值增加1之外,还有一个递减运算符(——)实现将值减少1.编写程序,使用递减运算符在循环中按递减顺序打印出10到0之间的整数。
#include <iostream>
int main()
{
int i = 10;
while(i >= 0)
{
std::cout << "i=========" << i << std::endl;
i--;
}
return 0;
}
练习11:编写程序,提示用户输入两个整数,打印这两个整数所指定的范围内的所有整数。
#include <iostream>
int main()
{
int param1 = 0;
int param2 = 0;
std::cout << "请输入param1和param2的值:" << std::endl;
std::cin >> param1 >> param2;
std::cout << "param1 到 param2之间的整数为:" << std::endl;
if(param1 > param2)
{
while(param1 >= param2)
{
std::cout << param1 << std::endl;
param1--;
}
}
else
{
while(param1 <= param2)
{
std::cout << param1 << std::endl;
param1++;
}
}
return 0;
}
练习12:下面的for循环完成了什么功能?sum的终值 是多少?
int sum = 0;
for(int i = -100; i <= 100; ++i)
sum += i;
完成-100到100之间所有数的和。
#include <iostream>
int main()
{
int sum = 0;
for(int i = -100; i <= 100; ++i)
{
sum += i;
}
std::cout << "sum==========" << sum << std::endl;
return 0;
}
练习13:使用for循环重做1.4.1节中的所有练习(第11页)。
#include <iostream>
int main()
{
int sum = 0;
for(int val = 1; val <= 10; ++val)
{
sum += val;
}
std::cout << "sum of 1 to 10 inclusive is " << sum << std::endl;
return 0;
}
练习14:对比for循环和 while循环,两种形式的优缺点各是什么?
解答:
在循环次数已知的情况下,for循环的形式显得更为简洁。而循环次数无法预知时,用while循环实现更适合。用特定条件控制循环是否执行,循环体中执行的语句可能导致循环判定条件发生变化。
练习15:编写程序,包含第14页”再控编译“中讨论的常见错误。熟悉编译器生成的错误信息。
练习16:编写程序,从cin读取一组数,输出其和。
#include <iostream>
int main()
{
int value;
int sum = 0;
std::cout << "请输入value的值:" << std::endl;
while(std::cin >> value)
{
sum += value;
}
std::cout << "sum ======================== " << sum << std::endl;
return 0;
}