Part A. 内容清单
2.1 进入C++
- main()函数
- C++注释
- C++预处理器
- 头文件名
- 名称空间
- cout & cin
- C++源代码的格式化
2.2 C++语句
- 声明语句和变量
- 赋值语句
- 利用cout进行拼接
2.3 其他C++语句
- 使用cin
- 使用cout
- 类简介
2.4 函数
- 有返回值的函数
- 函数变体
- 自定义函数
- 自定义有返回值的函数
- 在多函数程序中使用命名空间(using命令放在全局-所有函数可用 / 放在局部-仅当前函数可用)
Part B. 问题引入
1)C++程序的模块叫什么?
答:函数
解析:C++程序由一个或多个被称为函数的模块组成
2)#include <iostream> 预处理器编译指令是做什么用的?
答:
- #include编译指令使iostream文件内容和源代码文件内容一同发送至编译器
- 将iostream文件和源代码文件一起组合成一个复合文件(iostream文件内容取代程序中的代码行#include <iostream>),供下一阶段编译使用
解析:
① 预处理器的概念
- C++和C一样,也使用一个预处理器,该程序在主编译之前对源文件进行处理
- 预处理器处理以 # 开头的编译指令
- 该预处理器在编译程序时自动运行
- 其他功能的预处理器:有些翻译器会将C++转换为C程序,他们也是预处理器,但在本书中不做讨论
② iostream 文件
- 功能:iostream 文件用于程序与外部世界的通信,开头两个字母 io 即I/O,I表示输入(进入程序的信息),O表示输出(从程序中发送出去的信息),C++的I/O方案涉及iostream文件中多个定义,为了使用 cin 和 cout 来输入/输出信息,我们的程序需要这些iostream文件中定义
③ #include <iostream> 的含义
- #include编译指令使iostream文件内容和源代码文件内容一同发送至编译器
- 实际上,iostream文件内容将取代程序中的代码行#include <iostream>,原始文件没有被修改,而是将源代码和iostream组合成一个复合文件,编译的下一阶段将使用该文件
3)using namespace std; 是做什么用的?
答:using namespace std; 是名称空间(namespace)的编译指令,它使得命名空间std中所有名称都可用,并使得iostream中的定义对该程序可用
解析:
名称空间的概念
① 为什么需要namespace
名称空间使得编写大型程序、使多个厂商现有的代码组合起来的程序更容易,例如A、B公司都有wanda()函数,这时可以用 A::wanda() 和 B::wanda() 加以区分
② namespace的几种表示方法(以 std 为例)
a)使得一个命名空间中所有名称都可用
using namespace std;b)使得一个命名空间中部分名称可用
using std::cout; // 名称 cout 可用
using std::cin; // 名称 cin 可用
using std::endl; // 名称 endl 可用c)不使用命名空间
std::cout << "Hello world" << std::endl;4)什么语句可以用来打印 "hello, world" 然后开始新的一行?
代码:
std::cout << "Hello world" << std::endl;5)什么语句可以用来创建名为cheeses的整数变量?
代码:
int cheeses = 0; // 初始化为06)什么语句可以用来将32赋值给变量cheese?
代码:
cheeses = 32;7)什么语句可以用来将从键盘输入的值读入变量cheeses中?
代码:
std::cin >> cheeses;8)什么语句可以用来打印 we have X varieties of cheeese,其中X变量是变量cheeses的当前值
代码:
std::cout << "we have " << cheeses << " varieties of cheeese" << std::endl;9)下面的函数原型指出了关于函数的那些信息?
函数原型:
int froop(double t);
void rattle(int n);
int prune(void);答:
int froop(double t);
- 函数名:froop
- 输出的数据类型:int
- 输入的数据类型:double
void rattle(int n);
- 函数名:rattle
- 输出的数据类型:void(无输出)
- 输入的数据类型:int
int prune(void);
- 函数名:prune
- 输出的数据类型:int
- 输入的数据类型:void(无输入参数)
10)定义函数时,在什么情况下不必使用关键字return?
答:在返回值为void类型的函数中
P.S. 对于新版的C++编译器,main函数不写return 0;也是可以的,编译器会自己加一个,但是为了养成好习惯,还是建议加上return 0;
** 参考:main函数里不写return 0,会怎么样?
11)假设main()函数包含如下代码:cout << "Please enter your PIN:"; 而编译器指出cout是一个未知标识符,导致这种问题的原因很可能是什么?并指出三种修复方法
答:
a)原因:未使用命名空间std
b)修复方法:
① 不使用命名空间std
std::cout << "Please enter your PIN:";② 仅使用std::cout
using std::cout;
cout << "Please enter your PIN:";③ 使用命名空间std
using namespace std;
cout << "Please enter your PIN:";Part C. 编程练习
第二章入门级别的编程对于我来说太简单了,就先不写了,有需要答案的评论区留言,没需要我就不写了哈= =
版权声明:本文为onion23原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。