C++ Primer 课后练习 chapter 1

文章目录

  • 1. 练习1
    • 1.1 问题描述
    • 1.2 答案
  • 2. 练习2
    • 2.1 问题描述
    • 2.2 答案
  • 3. 练习3
    • 3.1 问题描述
    • 3.2 答案
  • 4. 练习4
    • 4.1 问题描述
    • 4.2 答案
  • 5. 练习5
    • 5.1 问题描述
    • 5.2 答案
  • 6. 练习6
    • 6.1 问题描述
    • 6.2 答案
  • 7. 练习7
    • 7.1 问题描述
    • 7.2 答案
  • 8. 练习8
    • 8.1 问题描述
    • 8.2 答案
  • 9. 练习9
    • 9.1 问题描述
    • 9.2 答案
  • 10. 练习10
    • 10.1 问题描述
    • 10.2 答案
  • 11. 练习11
    • 11.1 问题描述
    • 11.2 答案
  • 12. 练习12
    • 12.1 问题描述
    • 12.2 答案
  • 13. 练习13
    • 13.1 问题描述
    • 13.2 答案
  • 14. 练习14
    • 14.1 问题描述
    • 14.2 答案
  • 15. 练习15
    • 15.1 问题描述
  • 16. 练习16
    • 16.1 问题描述
    • 16.2 答案
  • 17. 练习17
    • 17.1 问题描述
    • 17.2 答案
  • 18. 练习18
    • 18.1 问题描述
    • 18.2 答案
  • 19. 练习19
    • 19.1 问题描述
    • 19.2 答案

1. 练习1

1.1 问题描述

查阅你使用的编译器的文档,确定它所使用的文件命名约定。编译并运行 第2页的main程序。

1.2 答案

文件名约定:*.c

int main(){
	return 0;
}

2. 练习2

2.1 问题描述

改写程序,让它返回-1。返回值-1通常被当作程序错误的标识。重新编译并运行你的程序,观察你的系统如何处理main返回的错误标识。

2.2 答案

程序源码:

int main(){
	return -1;
}

运行结果:
没有任何报错。


3. 练习3

3.1 问题描述

编写程序,在标准输出上打印Hello,World。

3.2 答案

程序源码:

#include

int main(void){
	std::cout<<"Hello, World!"<

运行结果:
运行结果


4. 练习4

4.1 问题描述

我们的程序使用加法来将两个数相加,编写程序使用乘法运算符*,来打印两个数的积。

4.2 答案

程序源码:

#include

int main(void){
	std::cout<<3<<"*"<<5<<'='<<3*5<

运行结果:
运行结果


5. 练习5

5.1 问题描述

我们将所有输出操作放在 一条很长的语句中。重写程序,将每个运算对象的打印操作放在一条独立的语句中。

5.2 答案

程序源码:

#include

int main(void){
	std::cout<<3;
	std::cout<<"*";
	std::cout<<5;
	std::cout<<'=';
	std::cout<<3*5;
	std::cout<

运行结果:
运行结果


6. 练习6

6.1 问题描述

解释下面程序片段是否合法。如果程序合法它输出什么?如果不合法原因何在?应该如何修正?

std::out<<"The sum of "<

6.2 答案

不合法,后面两行少了 std::out。修改后如下:

std::out<<"The sum of "<

7. 练习7

7.1 问题描述

编译一个包含不正确的嵌套注释的程序,观察编译器返回的错误信息。

7.2 答案

程序源码:

#include

int main(void){
	std::cout<<3;
	std::cout<<"*";
	std::cout<<5;
	std::cout<<'=';
	/ 注释
	std::cout<<3*5;
	std::cout<

运行结果:
C++ Primer 课后练习 chapter 1_第1张图片


8. 练习8

8.1 问题描述

支出下列哪些输出语句是合法的(如果有的话)。预测编译这些语句会产生什么样的结果,实际编译这些语句来验证你的答案(编写一个小程序,每次将上述一条语句作为其主题,改正每个编译错误。

std::out<<"/*";
std::out<<"*/";
std::out<

8.2 答案

程序源码:

#include

int main(void){
	std::out<<"/*";
	std::out<<"*/";
	std::out<

运行结果:
C++ Primer 课后练习 chapter 1_第2张图片


9. 练习9

9.1 问题描述

编写程序,使用while循环将50到100的整数相加

9.2 答案

程序源码:

#include

int main(void){
	int i=50;
	int sum = 0;
	
	while(i<=100) sum+= i++;
	std::cout<<"50~100的和为:"<

运行结果:
运行结果


10. 练习10

10.1 问题描述

除了++运算符将运算对象的值增加1之外,还有一个递减运算符(–)实现将值减少1。编写程序,使用递减运算符在循环中按递减顺序打印10到0之间的整数。

10.2 答案

程序源码:

#include

int main(void){
	int i=11;
	int sum = 0;
	
	while(i--)std::cout<

运行结果:
运行结果


11. 练习11

11.1 问题描述

编写程序,提示用户输入两个整数,打印出这两个整数所指定的范围内的所有整数。

11.2 答案

程序源码:

#include

int main(void){
	int s,e;
	std::cout<<"请输入两个整数:";
	std::cin>>s>>e;
	
	while(s<=e)std::cout<

运行结果:
运行结果


12. 练习12

12.1 问题描述

下面的for循环完成了什么功能?sum的终值是多少

int sum = 0;
for(int i=-100;i<=100;++i)
	sum+=i;

12.2 答案

求和-100~100。sum的终值为 0。


13. 练习13

13.1 问题描述

使用 for 循环重做1.4.1节中的所有联系(第11页)。

13.2 答案

程序源码:

// 1.9
#include

int main(void){
	int sum = 0;
	
	for(int i=50;i<=100;) sum+= i++;
	std::cout<<"50~100的和为:"<

int main(void){
	for(int i=10;i>=0;i--)std::cout<

int main(void){
	int s,e;
	std::cout<<"请输入两个整数:";
	std::cin>>s>>e;
	
	for(int i=s;i<=e;++i)std::cout<

14. 练习14

14.1 问题描述

对比for与while,两种形式的优缺点

14.2 答案

for 循环清晰明了,一般 用于确定循环次数的循环
while 对于非确定循环次数的循环更方便。


15. 练习15

15.1 问题描述

编写程序,包含第14页中“再探编译”中讨论的常见错误,熟悉编译器生成的错误信息。


16. 练习16

16.1 问题描述

编写程序,从cin读取一组数,输出其和。

16.2 答案

程序源码:

#include

int main(void){
	int t;
	int sum=0;
	std::cout<<"请输入整数:";
	while(std::cin>>t)sum+=t;
	
	std::cout<

运行结果:
运行结果


17. 练习17

17.1 问题描述

如果输入的所有值都是相等的,本节的程序会输出什么?如果没有重复值输出又会怎么样?

17.2 答案

如果输入的所有值都是相等的,则输出的值会显示输出n次。
如果输入的所有值没有重复值,则每个值都会输出一次。


18. 练习18

18.1 问题描述

编译并运行本节的程序,给它输入全都相等的值。再次运行程序,输入没有重复的值。

18.2 答案

程序源码:

#include

int main(void){
	int currVal = 0,val = 0;
	
	if(std::cin >>currVal){
		int cnt=1;
		while(std::cin>>val){
			if(val == currVal)++cnt;
			else{
				std::cout<

运行结果:
C++ Primer 课后练习 chapter 1_第3张图片


19. 练习19

19.1 问题描述

修改你为1.4.1节练习1.10(第11页)所编写的程序(打印一个范围内的数),使其能处理用户输入的第一个数字比第二个数字小的情况。

19.2 答案

程序源码:

#include

int main(void){
	int s,e;
	std::cout<<"请输入两个整数:";
	std::cin>>s>>e;
	
	int t;
	if(s>e){
		t = s;
		s= e;
		e=t;
	}
	
	while(s<=e)std::cout<

运行结果:
运行结果


你可能感兴趣的:(C++,Primer,课后习题,c++,算法,开发语言)