目录:第一章总结
- 一、总结
- 二、复习题
- 1. C++程序的模块叫什么?
- 2. 下面的预处理器编译指令的功能是什么?
- 3. 下面的语句的功能是什么?
- 4. 什么语句可以用来输出“hello,world!",然后开始新的一行?
- 5. 什么语句可以用来创建名为cheeses的整形变量?
- 6. 什么语句可以用来将值32赋给变量cheeses?
- 7. 什么语句可以用来将从键盘输入的值读入变量cheeses中?
- 8. 什么语句可以用来输出"we have x varieties of cheeses",其中x是变量cheeses的当前值。
- 9. 下面的函数原型指出了关于函数的哪些信息?
- 10. 定义函数值,什么情况下不必使用关键字return?
- 11. 假设你编写的main函数包含如下代码,而编译器指出cout是一个未知的标识符,导致这种问题的原因很可能是什么?指出3种修复这种问题的方法。
一、总结
C++程序由一个或多个被称为函数的模块组成。程序从main( )函数(全部小写)开始执行,因此该函数必不可少。
函数由函数头和函数体组成。
-
函数头指出函数的返回值(如果有的话)的类型和函数期望通过参数传递给它的信息的类型。
-
函数体由一系列位于花括号({})中的C++语句组成。
有多种类型的C++语句,包括下述6种:
-
声明语句:定义函数中使用的变量的名称和类型
-
赋值语句:使用赋值运算符(=)给变量赋值
-
消息语句:将消息发送给对象,激发某种行动
-
函数调用:执行函数。被调用的函数执行完毕后,程序返回到函数调用语句后面的语句
-
函数原型:声明函数的返回类型、函数接受的参数数量和类型
-
返回语句:将一个值从被调用的函数那里返回到调用函数中
类是用户定义的数据类型规范,它详细描述了如何表示信息以及可对数据执行的操作。对象是根据类规范创建的实体,就像简单变量是根据数据类型描述创建的实体一样。
C++提供了两个用于处理输入和输出的预定义对象(cin和cout),它们是istream和ostream类的实例,这两个类是在iostream文件中定义的。
为ostream类定义的插入运算符(<<)使得将数据插入到输出流成为可能;
为istream类定义的抽取运算符(>>)能够从输入流中抽取信息。
cin和cout都是智能对象,能够根据程序上下文自动将信息从一种形式转换为另一种形式。
C++可以使用大量的C库函数。要使用库函数,应当包含提供该函数原型的头文件。
二、复习题
1. C++程序的模块叫什么?
C++程序设计中的模块的主要形式是函数。
函数是由多条语句组合而成的能够实现特定功能的代码模块。函数的主要作用是在程序设计过程中实现特定功能的代码的重用,提高编程的效率和可维护性。当程序员需要反复使用相同功能的代码时,可以首先声明一个函数,将这部分代码定义为一个函数,最后通过调用该函数就可以重复执行函数的特定功能,而不用多次重复编写相同的代码来实现的类似的功能。
2. 下面的预处理器编译指令的功能是什么?
#include <iostream>
#include预处理器指令的主要功能是在编译器进行源代码的编译过程之前,添加或者替换相应的预编译指令,从而使得用户源代码中调用的系统预定义函数和各种标识符能够正确地被编译器识别和编译。
#include <iostream>
表示的含义是将#iostream头文件添加到当前源代码中,iostream头文件主要包含了系统的标准输入、输出函数以及数据的声明和定义。
3. 下面的语句的功能是什么?
using namespace std;
using预编译器指令的主要功能是表明当前源代码文件中使用的名称空间std。
名称空间是C++语言中为了解决编写大型程序时,多个厂商的独立C++代码在标识符命名过程中可能会发生冲突的一个解决方案。
不同供应商的代码模块都有自己的名称空间,用户在使用这个模块时也需要明确标准自己使用的是哪一个厂商的代码模块。using预编译指令就是实现这个功能的语句。
4. 什么语句可以用来输出“hello,world!",然后开始新的一行?
C++中输出到屏幕是通过cout和重定向符号<<实现的,输出的短语是字符串,应当使用双引号将字符串括起来,这里使用以下的语句。
cout << "hello,world!";
C++语言中字符串的输出是从左到右的,在当前行末尾自动换行,如果想要手动开始新的一行,需要使用换行符,换行符可以使用字符”\n“,也可以使用C++中的控制符endl来表示,其中两者的用法略有区别:
-
字符”\n“需要嵌入字符串
-
endl需要单独使用重定向符来表示
如:
cout << "hello,world!\n";
等价于:
cout << "hello,world!" << endl;
其中cout和endl两个标识符都是定义在std这个名称空间中的,因此在使用时需要加using预编译指令。
5. 什么语句可以用来创建名为cheeses的整形变量?
变量是C++语言中用符号标识计算机存储区域内特定单元的一种方式。通过变量程序可以进行指定类型数据的访问和存储。C++中变量的声明和定义需要首先确定变量的名称,变量的命名应当符合C++标准中标识符的命名规范。
本题中明确变量名为cheeses,其次变量的定义需要指明变量的数据类型,C++表示整形的关键字为int。
因此该语句为:
int cheeses;
6. 什么语句可以用来将值32赋给变量cheeses?
对指定变量进行数据存储应当使用赋值语句,赋值语句中的核心运算符是赋值运算符(=)。
赋值语句中待写入数据的变量在赋值运算符左侧,待写入数据在赋值运算符右侧,且左右两侧应当保证类型相同。
本题应当保证cheeses是整型变量。语句末尾应当有分号。因此,该赋值语句为:
cheeses = 32;
7. 什么语句可以用来将从键盘输入的值读入变量cheeses中?
C++中通过系统标准输入\输出进行数据的输出和读取,读取使用cin对象和插入运算符(>>)符号。把标准输入数据读入变量cheeses中的语句为:
cin >> cheeses;
8. 什么语句可以用来输出"we have x varieties of cheeses",其中x是变量cheeses的当前值。
C++中的标准输出操作可以通过cout对象来实现。cout对象可以通过多个输出插入运算符(<<)连接,实现输出数据的拼接,因此当需要使用多组数据统一输出时可以使用多个插入运算符组合输出语句,这里使用以下语句。
cout << "we have " << cheeses << " varieties of cheeses" << endl;
此外,我们在程序中也可以拆分多条输出信息,使用多个cout对象分别输出。标准输出中除非输出换行符,或者当前行信息已满,否则多个cout对象的输出也在同一行内,例如,下面的语句等价于上一条语句:
cout << "we have ";
cout << cheeses;
cout << " varieties of cheeses";
cout << endl;
9. 下面的函数原型指出了关于函数的哪些信息?
int froop(double t);
void rattle(int n);
int prunt(void);
C++函数原型主要包含三方面的内容,分别是函数名、参数值和返回值,因此三个函数的主要信息如下:
-
第一个函数原型表明函数名为froop;函数的返回值是整型;函数有一个参数,参数的数据类型是double;
-
第二个函数原型表明函数名为rattle;函数没有返回值;该函数有一个参数,参数的数据类型是整型;
-
第三个函数原型表明函数名为prunt;函数的返回值是整型;函数没有参数。
10. 定义函数值,什么情况下不必使用关键字return?
return关键字表示函数返回语句,通常情况下当函数执行到第一条return语句时,函数就结束运行并且将return后的变量值返回给函数调用者。主调函数继续执行调用函数之后的下一条语句。通常当函数返回值为空(void)时,可以不需要return语句,函数的语句会依次执行到函数体的最后一条语句。
11. 假设你编写的main函数包含如下代码,而编译器指出cout是一个未知的标识符,导致这种问题的原因很可能是什么?指出3种修复这种问题的方法。
cout << "please enter your PIN:";
cout 是C++预定义的一个标准输出对象,当调用该对象进行标准输入/输出操作时,可以使用预编译指令using将该名称空间预编译到当前源代码中。
此外,也可以对cout对象的名称空间进行限制,即表明cout所在的名称空间,这样编译器就可以正确识别、查找到该对象的定义并使用它进行输入、输出操作。因此可以使用如下三种方法进行声明:
- 使用预编译器指令声明:
using namespace std;
- 使用using声明,仅声明cout的名称空间,cin,endl等其他对象需要再次声明
using std::endl;
- 直接指明使用std::前缀表明了cout所在的名称空间
std::cout << "please enter your PIN:";