本帖最后由 45gfg9 于 2020-3-16 15:15 编辑
Prev: None
Next: C++Ⅱ:条件与循环
索引贴
答案帖
Prev: None
Next: C++Ⅱ:条件与循环
1 什么是C++
1.1 欢迎来到C++
C++是一种多用途的编程语言。
C++用于创建电脑程序。像任何艺术软件,音乐播放器甚至是视频游戏!
Part题:
C++是一个:
A. 电影制作程序
B. 多用途编程语言
C. 客户端脚本语言
2 Hello World!
2.1 你的第一个C++程序(一)
一个C++程序是由一套命令或语句集合而成。
下面的例子输出"Hello world!"。
```cpp
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world!";
return 0;
}
```
让我们一节一节看。
```cpp
#include <iostream>
```
C++提供了大量的文件头 ,每个都包含了程序需要的信息。这个单独的程序需要文件头<iostream>.
在一行中最开始的井号 (#)是编译器最先运行的语句。在这个例子中,#include告诉预处理器包含<iostream>头文件。
Part题:
补全空格以包含<iostream>。
```cpp
#include <________>
```
2.2 你的第一个C++程序(二)
C++编译器忽略空白行。
通常的,空行用于增强代码的可读性与改进结构。
```cpp
using namespace std;
```
在这里,using namespace std;这一行告诉编译器使用std(标准 )命名空间。
Part题:
补全下面代码以使用std命名空间。
```cpp
#include <iostream>
_____namespace___;
```
2.3 主函数
程序的执行从主函数开始,int main()。
```cpp
int main()
{
cout << "Hello world!";
return 0;
}
```
花括号 { } 表明了函数的首尾,也可以称作函数的主体。在括号内的语句定义了函数的行为。
Part题:
一个C++程序的起点是?
A. 第一行
B. <iostream>
C. main函数
2.4 你的第一个C++程序(三)
下一行,cout << "Hello world!"; 将"Hello world!"显示在屏幕上。
```cpp
cout << "Hello world!";
```
在C++中,流 用于输入输出操作。
在大多数程序环境中,默认的标准输出目标是屏幕。在C++中,cout是一个用来访问它的流对象。
cout和插入运算符一起应用。插入运算符"<<"会将它后面的数据插入到它前面的流的末尾。
Ps. 这里的分号必须是半角字符,不能是全角字符(汉字字符)。
Part题:
每条语句都必须结尾于:
A. 点( . )
B. 分号( ; )
C. 冒号( : )
D. 逗号( , )
2.5 语句
一个代码块 是由一套语句结合起来的,以左右花括号为界限。
举个例子:
```cpp
{
cout << "Hello world!";
return 0;
}
```
Part题:
填空以将"Hello, world!"输出在屏幕上:
```cpp
____<< "Hello, world!";
```
2.6 返回
程序的最后一节是return返回语句。return 0;这一行结束了main()函数而且将0返回给调用者。一个非0的数(通常是1)意味着非正常的结束。
```cpp
return 0;
```
Part题:
重新排列下面的代码以组建一个C++程序。
```cpp
1. using namespace std;
2. #include <iostream>
3. cout << "妙啊!"; return 0;
4. }
5. int main() {
```
3 工具
3.1 获取工具(一)
你需要下面两个组件来编写C++程序。
1.集成开发环境 (IDE):提供了写代码的工具。任何文本编辑器都可以成为一个IDE。
2.编译器 :将代码编译为最终的可执行文件。
有大量的编译器可供使用。最多使用且免费的编译器是GNU C/C++编译器。
有大量C++的IDE和编译器可供使用。我们将使用一款免费的工具:Code::Blocks,它包含了一个IDE和一个编译器,而且适用于Windows,Linux和MacOS。
你需要到http://www.codeblocks.org/下载Code::Blocks,点击Downloads链接,然后选择"Download the binary release"。
选择你的操作系统并下载安装程序,它包含了C++编译器(在Windows下,它的名字里有mingw。)
Part题:
你需要下面哪两个工具来编写和编译C++程序?
A. 网页浏览器
B. IDE
C. 编译器
D. Excel
3.2 获取工具(二)
为了创建一个项目,打开Code::Blocks并点击"Create a new project"(或者File->New->Project)。
会出现一个窗口让你选择模版,在这里我们选Console application,之后点击Go。

跟着指引,确认你选择的编程语言是C++。
为你的项目命名并且选择一个文件夹来保存。

确认你勾选了Compiler,然后点Finish。
GNU GCC是支持Code::Blocks的众多编译器中常用的一个。
在左侧的侧边栏里,展开Sources。你会看见你的项目和源文件。Code::Blocks会自动创建main.cpp文件,是一个基本的Hello World程序(C++中源代码的后缀名是.cpp)。
(Ps. 原文中写的是.cpp .cp .c 但.cp没见过 .c是C语言的源文件来着= = 在这里只写.cpp吧,感谢#17指正)

点击工具栏中的"Build and Run"图标来编译和运行程序。

命令行窗口会出现并显示程序的输出。

恭喜!你刚刚编译并运行了你的第一个C++程序!
Part题:
哪个是C++的编译器?
A. CodeBlocks
B. GNU GCC
C. 命令行
D. GAC
4 输出
4.1 你的第一个C++程序(四)
你可以在cout后面跟上多段文字。
```cpp
cout << "This " << "is " << "awesome!";
```
输出:

Part题:
补全空格来输出"我爱C++":
```cpp
____ << "我爱C++"_
```
4.2 新的一行
cout运算不会输出文字的后面自动换行。
要使cout输出两行的一种方法是使用endl关键词,于是你可以换行。
```cpp
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world!" << endl;
cout << "I love programming!";
return 0;
}
```
endl将光标移到下一行来输出第二行文字。

Part题:
哪个关键词能够输出另一行文字?
A. #include
B. startl
C. return
D. endl
4.3 新的几行(一)
换行符\n可以视作endl的另一种形式。
反斜杠(\)被称作转义符 ,表明一个"特殊"的符号。
举个例子:
```cpp
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world! \n";
cout << "I love programming!";
return 0;
}
```
输出:

Part题:
下面哪个符号表示换行(endl的另一种形式)?
A. \s
B. \n
C. \r
4.4 新的几行(二)
两个换行符放在一起表明两次换行,也就会产生一个空行。
```cpp
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world! \n\n";
cout << "I love programming!";
return 0;
}
```
结果:

Part题:
填空以输出"你好"和"世界",中间以空行隔开。
```cpp
____ << "你好 __\n";
cout __ "世界";
```
4.5 更多的新行
你可以使用一个单独的cout语句输出你的程序需要的任意数量的空行。
```cpp
#include <iostream>
using namespace std;
int main()
{
cout << " Hello \n world! \n I \n love \n programming!";
return 0;
}
```
输出:

Part题:
填空以输出"I love C++",每个单词占据一行。
```cpp
cout << "I __ love __ C++";
```
5 注释
5.1 单行注释
注释 是你可以写进C++代码中的解释性的句子,用来解释这些代码是做什么的。
编译器会忽略注释中出现的任何东西,所以在结果中不会出现关于注释的任何东西。
开始于双斜杠(//)的注释称作单行注释。这两个斜杠告诉编译器去忽略它们之后跟的任何东西,直到这一行结束。
举个例子:
```cpp
#include <iostream>
using namespace std;
int main()
{
// 输出 "Hello world"
cout << "Hello world!";
return 0;
}
```
当上面的代码被编译时编译器会忽略// 输出 "Hello world"这句。结果看起来应该是这样的:

Part题:
下面哪个表示单行注释?
A. //单行注释
B. ##单行注释
C. **单行注释
5.2 多行注释
需要占据多行的注释以/*开始,以*/结束。
你可以将它们放在一行,或者在它们之间插入一行或几行。
```cpp
/* 这是一条注释 */
/* C++的注释
可以放在几行
*/
```
Part题:
在C++中创建一块注释(多行注释):
```cpp
__ 这是C++中的
多行注释 __
```
5.3 应用注释
你可以在任何地方创建一条注释,而且可以在代码中创建任意数量的注释。
在以/*和*/标记的注释中,//没有特殊含义,反之亦然。这允许你在注释里"嵌套"注释。
```cpp
/* 怎样输出Hello world!的注释
cout << "Hello world!"; // 输出Hello world!
*/
```
Part题:
下面哪个句子是正确的?
A. 单行注释以*(星号)开始
B. 注释被编译器忽略
C. 注释也用来迷惑程序员
6 变量
6.1 变量(一)
创建一个变量 使用内存空间,或是说内存中储存值的空间。编译器需要你表明每个你声明的变量的类型。
C++内部提供一些可以供用户使用的数据类型 。
整型 ,一种数据类型,可以储存大量的值。要声明一个整型值,使用关键词int。
C++要求你规定每个你声明的变量的类型 和标识符 。
标识符是一个变量、函数、类、模块,或是其他任何用户定义的东西。一个标识符以字母(A-Z或a-z)或下划线(_)开头,后面可以跟额外的字母、下划线和数字(0-9)。
举个例子,下面声明一个叫做myVariable的整型变量:
```cpp
int myVariable = 10;
```
Part题:
表示整型的关键词是?
```cpp
___
```
6.2 变量(二)
现在让我们给一个变量赋值并输出它。
```cpp
#include <iostream>
using namespace std;
int main()
{
int myVariable = 10;
cout << myVariable;
return 0;
}
//输出10
```
Part题:
假设你有一个变量叫var。补全代码以输出它的值。
```cpp
____ << var;
```
6.3 变量(三)
变量必须在使用之前就被声明。如果你需要多个同一类型的变量,你可以在一条语句内创建它们,用逗号隔开。
```cpp
int a, b;
// 声明两个int变量
```
变量可以被赋值,也可以被用于运算。
举个例子,我们创建另一个叫sum的变量,将前面的两个变量加在一起。
```cpp
int a = 30;
int b = 15;
int sum = a + b;
// 现在sum的值为45
```
Part题:
填空以声明变量var等于a+b:
```cpp
int ___ = a _ b
```
6.4 变量(四)
让我们来写一个可以计算和输出两个变量的程序。
```cpp
#include <iostream>
using namespace std;
int main()
{
int a = 30;
int b = 12;
int sum = a + b;
cout << sum;
return 0;
}
//输出42
```
Part题:
下面哪两个关于C++中变量的句子是正确的?
A. 变量必须在使用之前就被声明
B. 变量是预处理指令
C. 变量没有名字
D. 变量必须规定数据类型
7 运用变量
7.1 声明变量
你可以选择在声明变量的时候就给它赋值,或者你也可以选择先声明变量,以后再给它赋值。
你也可以改变一个变量的值。
几个例子:
```cpp
int a;
int b = 42;
a = 10;
b = 3;
```
Part题:
填空来声明一个整型变量,并给它赋值7:
```cpp
___ a;
a _ 7;
```
7.2 用户输入
用cin与提取运算符(>>)组合,可以让用户输入一个值。提取运算符后面跟的变量会包含提取的数据。
下面这个例子展示了如何接受用户输入,并存在变量num中:
```cpp
int num;
cin >> num;
```
Part题:
cin的用途是什么?
A. 从用户取得信息(数据)
B. 输出变量的值
C. 包含头文件
7.3 接受用户输入(一)
下面的程序提示用户输入一个数字,并存储在变量a中:
```cpp
#include <iostream>
using namespace std;
int main()
{
int a;
cout << "请输入一个数 \n";
cin >> a;
return 0;
}
```
程序运行时,会显示消息"请输入一个数",然后等着用户输入一个数且按下回车,或换行。
输入的数存在变量a中。
Part题:
补全代码,使它接受一个数字并存在变量a中:
```cpp
___ >> a;
```
7.4 接受用户输入(二)
你可以在程序中的多处接受用户输入:
```cpp
#include <iostream>
using namespace std;
int main()
{
int a, b;
cout << "输入一个数 \n";
cin >> a;
cout << "输入另一个数 \n";
cin >> b;
return 0;
}
```
Part题:
填空以声明一个整型变量var,输入一个值,并存储在变量var中。
```cpp
int var;
____ << "请输入一个值 \n";
___ >> var;
```
7.5 接受用户输入(三)
让我们创建一个接受两个数的程序,并输出它们的和。
```cpp
#include <iostream>
using namespace std;
int main()
{
int a, b;
int sum;
cout << "输入一个数 \n";
cin >> a;
cout << "输入另一个数 \n";
cin >> b;
sum = a + b;
cout << "和为:" << sum << endl;
return 0;
}
```
Part题:
补全代码以声明一个名为sum的变量,给它赋值21 + 7,然后输出它的值。
```cpp
int sum;
___ = 21 + 7;
____ << "sum等于"<< ___ << endl;
```
8 更多关于变量的东西
8.1 变量(五)
指定数据类型只需要一次,在变量被声明之时。
在那之后,不用指定数据类型就可以使用变量。
```cpp
int a;
a = 10;
```
Part题:
一个变量的数据类型应该被提及几次?
A. 当输出变量的值时
B. 只一次:当声明变量时
C. 每个变量被用到的地方
D. 当用cin输入变量的值时
8.2 变量(六)
只要你需要,一个变量的值在程序中可以被改变很多次。
举个例子:
```cpp
int a = 100;
a = 50;
cout << a;
// 输出50
```
Part题:
补全代码以声明变量b,并把a的值赋给b,然后向屏幕输出它们的和。
```cpp
int a = 15;
int b = _;
cout << a _ b << endl;
```
9 基础算数
9.1 算术运算符
C++支持这些算术运算符。

加法运算符将它的运算数加起来。
```cpp
int x = 40 + 60;
cout << x;
// 输出100
```
Part题:
填空,声明一个变量x,给它赋值4 + 6,然后将它输出到屏幕。
```cpp
int _;
x = 4 + 6;
____ << x __ endl;
```
9.2 减法
减法运算符从第一个运算数中减去另一个运算数。
```cpp
int x = 100 - 60;
cout << x;
// 输出40
```
Part题:
补全代码,使其输出12。
```cpp
int x = 24;
int y;
y = _ - 12;
cout << _ << endl;
```
9.3 乘法
乘法运算符将它的运算数相乘。
```cpp
int x = 5 * 6;
cout << x;
// 输出30
```
Part题:
C++中哪个符号用来将变量相乘?
A. +
B. *
C. %
D. x
9.4 除法
除法运算符用第一个运算数除以第二个运算。为了返回一个整型值,余数会被舍弃。
例子:
```cpp
int x = 10 / 3;
cout << x;
// 输出3
```
如果一个或两个运算数都是浮点值,除法操作符会执行浮点除法。
Part题:
填空以声明一个变量x,并给它赋值81除以3。
```cpp
int _ = 81 _ 3;
cout << x;
```
9.5 取模
取模运算符 (%) 也就是我们所知的取余运算符,因为它会返回整型除法的余数。
举个例子:
```cpp
int x = 25 % 7;
cout << x;
// 输出4
```
Part题:
哪个运算符用来确定余数?
A. *
B. +
C. %
9.6 运算优先级(一)
运算优先级确定在一个表达式中的运算分为几部分,那会影响一个表达式是如何计算的。某些运算符比其他运算符优先级更高;举个例子,乘法运算符比加法运算符有更高的优先级。
举例:
```cpp
int x = 5+2*2;
cout << x;
// 输出9
```
上面的程序先计算2*2,然后将结果加上5。
和在数学中一样,用圆括号改变运算优先级。
```cpp
int x = (5 + 2) *2;
cout << x;
// 输出14
```
Part题:
填上括号使x的值为14。
```cpp
int x = _ 4 + 3 _ * 2;
cout << x;
```
9.7 运算优先级(二)
圆括号强制运算有更高的优先级。如果括号里还有括号,最内括号中的表达式会先被计算。
Part题:
下面哪两个关于算术运算符的语句是正确的?
A. 加法在乘法之前完成
B. 括号第一,然后是乘除法
C. 减法最先完成
D. 乘法在加法之前完成
10 赋值与自增运算符
10.1 赋值运算符(一)
简单的赋值 运算符 (=) 将右边的值赋给左边。
C++提供了速记运算符,让你可以同时运算和赋值。
举个例子:
```cpp
int x = 10;
x += 4; // 等同于 x = x + 4
x -= 5; // 等同于 x = x - 5
```
Part题:
x = x + 10的另一种形式是?
A. x -= 9;
B. x = y +10;
C. x += 10;
10.2 赋值运算符(二)
一样的速记格式对乘法、除法和取模运算都适用。
```cpp
x *= 3; // 等同于 x = x * 3
x /= 2; // 等同于 x = x / 2
x %= 4; // 等同于 x = x % 4
```
Part题:
补全代码,用 /= 运算符把x除以5。
```cpp
int x = 10;
x _= _;
```
10.3 自增运算符(一)
自增 运算符用来将一个整型值加1,而且是一个常用的C++运算符。
```cpp
x++; // 等同于 x = x + 1
```
Part题:
和x++有相同意思的是:
A. x = x - 4;
B. x = x + 1;
C. x /= 17;
10.4 自增运算符(二)
举个例子:
```cpp
int x = 11;
x++;
cout << x;
// 输出12
```
填空以用 ++ 运算符将x的值增加并输出其值到屏幕。
```cpp
int x = 20;
x __;
cout << _ << endl;
```
10.5 自增运算符(三)
自增运算符有两种形式,前缀和后缀。
```cpp
++x; // 前缀
x++; // 后缀
```
前缀先增加数值,然后做表达式。
后缀先做表达式,然后增加数值。
前缀的例子:
```cpp
x = 5;
y = ++x;
// x为6,y为6
```
后缀的例子:
```cpp
x = 5;
y = x++;
// x为6,y为5
```
Part题:
++x 和 x++ 的区别在哪?(多选)
A. x++先使用x的值,再将它自增
B. ++x先使用x的值,再将它自增
C. x++先将x自增,再使用它的值
D. ++x先将x自增,再使用它的值
10.6 自减运算符
自减 运算符 (--) 和自增运算符原理一样,但它将值减1,而不是加1。
```cpp
--x; // 前缀
x--; // 后缀
```
Part题:
请在代码中用 -- 运算符将x的值自减。
```cpp
int x = 20;
x __;
```
章末检测
1. 请补全代码以在屏幕上输出"我爱C++"。
```cpp
#_______ <iostream>
_____ namespace std;
___ main()
{
cout << "我爱C++" <<endl;
______ 0;
}
```
2. 请补全代码使其声明两个int类型的变量,并将它们的和输出到屏幕。
```cpp
int x = 4;
___ y = 7;
int sum = x _ y;
cout<< "sum等于" << ___ << endl;
```
3. 在每个C++程序中:(多选)
A. 每个变量都必须有它的数据类型
B. 必须至少有两个已声明的变量
C. 必须有一个叫做main的函数
D. 变量的名字不是x就是y
4. 请补全代码使其输出x除以y的值。
```cpp
int x = 81;
int y = 3;
____ << x _ y << endl;
```
5. 下面代码的输出是什么?
```cpp
int a=3;
int b=2;
b=a++;
cout<<++b;
```
Prev: None
Next: C++Ⅱ:条件与循环
2021.12 数据,可能有更多内容
索引贴
答案帖
Prev: None
Next: C++Ⅱ:条件与循环
1 什么是C++
1.1 欢迎来到C++
C++是一种多用途的编程语言。
C++用于创建电脑程序。像任何艺术软件,音乐播放器甚至是视频游戏!
C++由C衍生而来,且广泛基于C。
Part题:
C++是一个:
A. 电影制作程序
B. 多用途编程语言
C. 客户端脚本语言
2 Hello World!
2.1 你的第一个C++程序(一)
一个C++程序是由一套命令或语句集合而成。
下面的例子输出"Hello world!"。
```cpp
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world!";
return 0;
}
```
让我们一节一节看。
```cpp
#include <iostream>
```
C++提供了大量的
在一行中最开始的井号 (#)是编译器最先运行的语句。在这个例子中,#include告诉预处理器包含<iostream>头文件。
<iostream>定义了标准流对象,用于输入与输出数据。
Part题:
补全空格以包含<iostream>。
```cpp
#include <________>
```
2.2 你的第一个C++程序(二)
C++编译器忽略空白行。
通常的,空行用于增强代码的可读性与改进结构。
空的地方,例如一些空格、制表符和一些空行,同样会被忽略。尽管它是用于增强程序的可读性。
```cpp
using namespace std;
```
在这里,using namespace std;这一行告诉编译器使用std(
std命名空间包含了C++标准资源的特性。
Part题:
补全下面代码以使用std命名空间。
```cpp
#include <iostream>
_____namespace___;
```
2.3 主函数
程序的执行从主函数开始,int main()。
```cpp
int main()
{
cout << "Hello world!";
return 0;
}
```
花括号 { } 表明了函数的首尾,也可以称作函数的主体。在括号内的语句定义了函数的行为。
main()是每个C++程序的入口,与程序产生的效果无关。
Part题:
一个C++程序的起点是?
A. 第一行
B. <iostream>
C. main函数
2.4 你的第一个C++程序(三)
下一行,cout << "Hello world!"; 将"Hello world!"显示在屏幕上。
```cpp
cout << "Hello world!";
```
在C++中,
在大多数程序环境中,默认的标准输出目标是屏幕。在C++中,cout是一个用来访问它的流对象。
cout和插入运算符一起应用。插入运算符"<<"会将它后面的数据插入到它前面的流的末尾。
在C++中,分号标志着一条语句的结束。每条语句都必须以分号结尾。这表示一条逻辑表达式的结束。
Ps. 这里的分号必须是半角字符,不能是全角字符(汉字字符)。
Part题:
每条语句都必须结尾于:
A. 点( . )
B. 分号( ; )
C. 冒号( : )
D. 逗号( , )
2.5 语句
一个
举个例子:
```cpp
{
cout << "Hello world!";
return 0;
}
```
你可以在一行内放置多个语句,只要你记得每个语句都以分号结尾。不这样做会导致错误。
Part题:
填空以将"Hello, world!"输出在屏幕上:
```cpp
____<< "Hello, world!";
```
2.6 返回
程序的最后一节是return返回语句。return 0;这一行结束了main()函数而且将0返回给调用者。一个非0的数(通常是1)意味着非正常的结束。
```cpp
return 0;
```
如果程序中没有return语句,C++编译器会在main()函数的最后隐式插入"return 0;"。
Part题:
重新排列下面的代码以组建一个C++程序。
```cpp
1. using namespace std;
2. #include <iostream>
3. cout << "妙啊!"; return 0;
4. }
5. int main() {
```
3 工具
3.1 获取工具(一)
你需要下面两个组件来编写C++程序。
1.
2.
有大量的编译器可供使用。最多使用且免费的编译器是GNU C/C++编译器。
有大量C++的IDE和编译器可供使用。我们将使用一款免费的工具:Code::Blocks,它包含了一个IDE和一个编译器,而且适用于Windows,Linux和MacOS。
你需要到http://www.codeblocks.org/下载Code::Blocks,点击Downloads链接,然后选择"Download the binary release"。
选择你的操作系统并下载安装程序,它包含了C++编译器(在Windows下,它的名字里有mingw。)
确保你下载了包含编译器的版本。
Part题:
你需要下面哪两个工具来编写和编译C++程序?
A. 网页浏览器
B. IDE
C. 编译器
D. Excel
3.2 获取工具(二)
为了创建一个项目,打开Code::Blocks并点击"Create a new project"(或者File->New->Project)。
会出现一个窗口让你选择模版,在这里我们选Console application,之后点击Go。
跟着指引,确认你选择的编程语言是C++。
为你的项目命名并且选择一个文件夹来保存。
确认你勾选了Compiler,然后点Finish。
GNU GCC是支持Code::Blocks的众多编译器中常用的一个。
在左侧的侧边栏里,展开Sources。你会看见你的项目和源文件。Code::Blocks会自动创建main.cpp文件,是一个基本的Hello World程序(C++中源代码的后缀名是.cpp)。
(Ps. 原文中写的是.cpp .cp .c 但.cp没见过 .c是C语言的源文件来着= = 在这里只写.cpp吧,感谢#17指正)
点击工具栏中的"Build and Run"图标来编译和运行程序。
命令行窗口会出现并显示程序的输出。
恭喜!你刚刚编译并运行了你的第一个C++程序!
Part题:
哪个是C++的编译器?
A. CodeBlocks
B. GNU GCC
C. 命令行
D. GAC
4 输出
4.1 你的第一个C++程序(四)
你可以在cout后面跟上多段文字。
```cpp
cout << "This " << "is " << "awesome!";
```
输出:
Part题:
补全空格来输出"我爱C++":
```cpp
____ << "我爱C++"_
```
4.2 新的一行
cout运算不会输出文字的后面自动换行。
要使cout输出两行的一种方法是使用endl关键词,于是你可以换行。
```cpp
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world!" << endl;
cout << "I love programming!";
return 0;
}
```
endl将光标移到下一行来输出第二行文字。
Part题:
哪个关键词能够输出另一行文字?
A. #include
B. startl
C. return
D. endl
4.3 新的几行(一)
换行符\n可以视作endl的另一种形式。
反斜杠(\)被称作
举个例子:
```cpp
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world! \n";
cout << "I love programming!";
return 0;
}
```
输出:
Part题:
下面哪个符号表示换行(endl的另一种形式)?
A. \s
B. \n
C. \r
4.4 新的几行(二)
两个换行符放在一起表明两次换行,也就会产生一个空行。
```cpp
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world! \n\n";
cout << "I love programming!";
return 0;
}
```
结果:
Part题:
填空以输出"你好"和"世界",中间以空行隔开。
```cpp
____ << "你好 __\n";
cout __ "世界";
```
4.5 更多的新行
你可以使用一个单独的cout语句输出你的程序需要的任意数量的空行。
```cpp
#include <iostream>
using namespace std;
int main()
{
cout << " Hello \n world! \n I \n love \n programming!";
return 0;
}
```
输出:
Part题:
填空以输出"I love C++",每个单词占据一行。
```cpp
cout << "I __ love __ C++";
```
5 注释
5.1 单行注释
编译器会忽略注释中出现的任何东西,所以在结果中不会出现关于注释的任何东西。
开始于双斜杠(//)的注释称作单行注释。这两个斜杠告诉编译器去忽略它们之后跟的任何东西,直到这一行结束。
举个例子:
```cpp
#include <iostream>
using namespace std;
int main()
{
// 输出 "Hello world"
cout << "Hello world!";
return 0;
}
```
当上面的代码被编译时编译器会忽略// 输出 "Hello world"这句。结果看起来应该是这样的:
Part题:
下面哪个表示单行注释?
A. //单行注释
B. ##单行注释
C. **单行注释
5.2 多行注释
需要占据多行的注释以/*开始,以*/结束。
你可以将它们放在一行,或者在它们之间插入一行或几行。
```cpp
/* 这是一条注释 */
/* C++的注释
可以放在几行
*/
```
如果你写错了一段代码,不要急着删掉。将它放进多行注释中,等你找到正确写法后再删掉。
Part题:
在C++中创建一块注释(多行注释):
```cpp
__ 这是C++中的
多行注释 __
```
5.3 应用注释
你可以在任何地方创建一条注释,而且可以在代码中创建任意数量的注释。
在以/*和*/标记的注释中,//没有特殊含义,反之亦然。这允许你在注释里"嵌套"注释。
```cpp
/* 怎样输出Hello world!的注释
cout << "Hello world!"; // 输出Hello world!
*/
```
在你的程序中添加注释是个好习惯。它能够让你和其他阅读代码的人对代码有更清楚的了解。
Part题:
下面哪个句子是正确的?
A. 单行注释以*(星号)开始
B. 注释被编译器忽略
C. 注释也用来迷惑程序员
6 变量
6.1 变量(一)
创建一个
C++内部提供一些可以供用户使用的
C++要求你规定每个你声明的变量的
标识符是一个变量、函数、类、模块,或是其他任何用户定义的东西。一个标识符以字母(A-Z或a-z)或下划线(_)开头,后面可以跟额外的字母、下划线和数字(0-9)。
举个例子,下面声明一个叫做myVariable的整型变量:
```cpp
int myVariable = 10;
```
不同的操作系统可以为同一数据类型保留不同大小的内存。
Part题:
表示整型的关键词是?
```cpp
___
```
6.2 变量(二)
现在让我们给一个变量赋值并输出它。
```cpp
#include <iostream>
using namespace std;
int main()
{
int myVariable = 10;
cout << myVariable;
return 0;
}
//输出10
```
C++是大小写敏感 的,所以myVariable和myvariable是两个不同的标识符。
Part题:
假设你有一个变量叫var。补全代码以输出它的值。
```cpp
____ << var;
```
6.3 变量(三)
变量必须在使用之前就被声明。如果你需要多个同一类型的变量,你可以在一条语句内创建它们,用逗号隔开。
```cpp
int a, b;
// 声明两个int变量
```
变量可以被赋值,也可以被用于运算。
举个例子,我们创建另一个叫sum的变量,将前面的两个变量加在一起。
```cpp
int a = 30;
int b = 15;
int sum = a + b;
// 现在sum的值为45
```
用"+"运算符将两个数字相加。
Part题:
填空以声明变量var等于a+b:
```cpp
int ___ = a _ b
```
6.4 变量(四)
让我们来写一个可以计算和输出两个变量的程序。
```cpp
#include <iostream>
using namespace std;
int main()
{
int a = 30;
int b = 12;
int sum = a + b;
cout << sum;
return 0;
}
//输出42
```
始终记住,变量在使用之前必须规定名称和数据类型。
Part题:
下面哪两个关于C++中变量的句子是正确的?
A. 变量必须在使用之前就被声明
B. 变量是预处理指令
C. 变量没有名字
D. 变量必须规定数据类型
7 运用变量
7.1 声明变量
你可以选择在声明变量的时候就给它赋值,或者你也可以选择先声明变量,以后再给它赋值。
你也可以改变一个变量的值。
几个例子:
```cpp
int a;
int b = 42;
a = 10;
b = 3;
```
你只能给一个规定了数据类型的变量赋值。
Part题:
填空来声明一个整型变量,并给它赋值7:
```cpp
___ a;
a _ 7;
```
7.2 用户输入
用cin与提取运算符(>>)组合,可以让用户输入一个值。提取运算符后面跟的变量会包含提取的数据。
下面这个例子展示了如何接受用户输入,并存在变量num中:
```cpp
int num;
cin >> num;
```
就像cout,cin也可以连接多个提取运算符,所以在一个语句中可以接受多个输入:cin >> a >> b;
Part题:
cin的用途是什么?
A. 从用户取得信息(数据)
B. 输出变量的值
C. 包含头文件
7.3 接受用户输入(一)
下面的程序提示用户输入一个数字,并存储在变量a中:
```cpp
#include <iostream>
using namespace std;
int main()
{
int a;
cout << "请输入一个数 \n";
cin >> a;
return 0;
}
```
程序运行时,会显示消息"请输入一个数",然后等着用户输入一个数且按下回车,或换行。
输入的数存在变量a中。
当用户需要输入数时,程序会一直等着用户输入数。
Part题:
补全代码,使它接受一个数字并存在变量a中:
```cpp
___ >> a;
```
7.4 接受用户输入(二)
你可以在程序中的多处接受用户输入:
```cpp
#include <iostream>
using namespace std;
int main()
{
int a, b;
cout << "输入一个数 \n";
cin >> a;
cout << "输入另一个数 \n";
cin >> b;
return 0;
}
```
Part题:
填空以声明一个整型变量var,输入一个值,并存储在变量var中。
```cpp
int var;
____ << "请输入一个值 \n";
___ >> var;
```
7.5 接受用户输入(三)
让我们创建一个接受两个数的程序,并输出它们的和。
```cpp
#include <iostream>
using namespace std;
int main()
{
int a, b;
int sum;
cout << "输入一个数 \n";
cin >> a;
cout << "输入另一个数 \n";
cin >> b;
sum = a + b;
cout << "和为:" << sum << endl;
return 0;
}
```
Part题:
补全代码以声明一个名为sum的变量,给它赋值21 + 7,然后输出它的值。
```cpp
int sum;
___ = 21 + 7;
____ << "sum等于"<< ___ << endl;
```
8 更多关于变量的东西
8.1 变量(五)
指定数据类型只需要一次,在变量被声明之时。
在那之后,不用指定数据类型就可以使用变量。
```cpp
int a;
a = 10;
```
指定一个变量的数据类型不止一次会导致产生语法错误。
Part题:
一个变量的数据类型应该被提及几次?
A. 当输出变量的值时
B. 只一次:当声明变量时
C. 每个变量被用到的地方
D. 当用cin输入变量的值时
8.2 变量(六)
只要你需要,一个变量的值在程序中可以被改变很多次。
举个例子:
```cpp
int a = 100;
a = 50;
cout << a;
// 输出50
```
Part题:
补全代码以声明变量b,并把a的值赋给b,然后向屏幕输出它们的和。
```cpp
int a = 15;
int b = _;
cout << a _ b << endl;
```
9 基础算数
9.1 算术运算符
C++支持这些算术运算符。
运算 |
符号 |
形式 |
加法 |
+ |
x + y |
减法 |
- |
x - y |
乘法 |
* |
x * y |
除法 |
/ |
x / y |
取模 |
% |
x % y |
加法运算符将它的运算数加起来。
```cpp
int x = 40 + 60;
cout << x;
// 输出100
```
Part题:
填空,声明一个变量x,给它赋值4 + 6,然后将它输出到屏幕。
```cpp
int _;
x = 4 + 6;
____ << x __ endl;
```
9.2 减法
减法运算符从第一个运算数中减去另一个运算数。
```cpp
int x = 100 - 60;
cout << x;
// 输出40
```
Part题:
补全代码,使其输出12。
```cpp
int x = 24;
int y;
y = _ - 12;
cout << _ << endl;
```
9.3 乘法
乘法运算符将它的运算数相乘。
```cpp
int x = 5 * 6;
cout << x;
// 输出30
```
Part题:
C++中哪个符号用来将变量相乘?
A. +
B. *
C. %
D. x
9.4 除法
除法运算符用第一个运算数除以第二个运算。为了返回一个整型值,余数会被舍弃。
例子:
```cpp
int x = 10 / 3;
cout << x;
// 输出3
```
如果一个或两个运算数都是浮点值,除法操作符会执行浮点除法。
除以0会导致你的程序崩溃。
Part题:
填空以声明一个变量x,并给它赋值81除以3。
```cpp
int _ = 81 _ 3;
cout << x;
```
9.5 取模
取模运算符 (%) 也就是我们所知的取余运算符,因为它会返回整型除法的余数。
举个例子:
```cpp
int x = 25 % 7;
cout << x;
// 输出4
```
Part题:
哪个运算符用来确定余数?
A. *
B. +
C. %
9.6 运算优先级(一)
运算优先级确定在一个表达式中的运算分为几部分,那会影响一个表达式是如何计算的。某些运算符比其他运算符优先级更高;举个例子,乘法运算符比加法运算符有更高的优先级。
举例:
```cpp
int x = 5+2*2;
cout << x;
// 输出9
```
上面的程序先计算2*2,然后将结果加上5。
和在数学中一样,用圆括号改变运算优先级。
```cpp
int x = (5 + 2) *2;
cout << x;
// 输出14
```
Part题:
填上括号使x的值为14。
```cpp
int x = _ 4 + 3 _ * 2;
cout << x;
```
9.7 运算优先级(二)
圆括号强制运算有更高的优先级。如果括号里还有括号,最内括号中的表达式会先被计算。
如果括号内没有表达式,乘法类(乘法,除法,取模)运算符会优先于加法类(加法,减法)运算符。
Part题:
下面哪两个关于算术运算符的语句是正确的?
A. 加法在乘法之前完成
B. 括号第一,然后是乘除法
C. 减法最先完成
D. 乘法在加法之前完成
10 赋值与自增运算符
10.1 赋值运算符(一)
简单的
C++提供了速记运算符,让你可以同时运算和赋值。
举个例子:
```cpp
int x = 10;
x += 4; // 等同于 x = x + 4
x -= 5; // 等同于 x = x - 5
```
Part题:
x = x + 10的另一种形式是?
A. x -= 9;
B. x = y +10;
C. x += 10;
10.2 赋值运算符(二)
一样的速记格式对乘法、除法和取模运算都适用。
```cpp
x *= 3; // 等同于 x = x * 3
x /= 2; // 等同于 x = x / 2
x %= 4; // 等同于 x = x % 4
```
Part题:
补全代码,用 /= 运算符把x除以5。
```cpp
int x = 10;
x _= _;
```
10.3 自增运算符(一)
```cpp
x++; // 等同于 x = x + 1
```
Part题:
和x++有相同意思的是:
A. x = x - 4;
B. x = x + 1;
C. x /= 17;
10.4 自增运算符(二)
举个例子:
```cpp
int x = 11;
x++;
cout << x;
// 输出12
```
填空以用 ++ 运算符将x的值增加并输出其值到屏幕。
```cpp
int x = 20;
x __;
cout << _ << endl;
```
10.5 自增运算符(三)
自增运算符有两种形式,前缀和后缀。
```cpp
++x; // 前缀
x++; // 后缀
```
前缀先增加数值,然后做表达式。
后缀先做表达式,然后增加数值。
前缀的例子:
```cpp
x = 5;
y = ++x;
// x为6,y为6
```
后缀的例子:
```cpp
x = 5;
y = x++;
// x为6,y为5
```
前缀的例子先将x自增,再将它赋给y。
后缀的例子先将x的值赋给y,再将x自增。
后缀的例子先将x的值赋给y,再将x自增。
Part题:
++x 和 x++ 的区别在哪?(多选)
A. x++先使用x的值,再将它自增
B. ++x先使用x的值,再将它自增
C. x++先将x自增,再使用它的值
D. ++x先将x自增,再使用它的值
10.6 自减运算符
```cpp
--x; // 前缀
x--; // 后缀
```
自减运算符 (--) 与自增运算符用法相同。
Part题:
请在代码中用 -- 运算符将x的值自减。
```cpp
int x = 20;
x __;
```
章末检测
1. 请补全代码以在屏幕上输出"我爱C++"。
```cpp
#_______ <iostream>
_____ namespace std;
___ main()
{
cout << "我爱C++" <<endl;
______ 0;
}
```
2. 请补全代码使其声明两个int类型的变量,并将它们的和输出到屏幕。
```cpp
int x = 4;
___ y = 7;
int sum = x _ y;
cout<< "sum等于" << ___ << endl;
```
3. 在每个C++程序中:(多选)
A. 每个变量都必须有它的数据类型
B. 必须至少有两个已声明的变量
C. 必须有一个叫做main的函数
D. 变量的名字不是x就是y
4. 请补全代码使其输出x除以y的值。
```cpp
int x = 81;
int y = 3;
____ << x _ y << endl;
```
5. 下面代码的输出是什么?
```cpp
int a=3;
int b=2;
b=a++;
cout<<++b;
```
本帖最后由 姚氏帅哥 于 2017-6-17 21:15 编辑
3.1节Part题令我震惊
我就想问我不可以用文本文档写,用电脑来运行吗
就算必须用IDE写,编译器对应的也应该是“编译”好吗
这个c++希望楼主接下去,您是第三位mcbbs接c++坑的
而您的教程是我在mcbbs迄今看到最好的
我这边正在写c++模板的教程,不知道楼主感不感兴趣
at大佬@langyo_v3
(langyo你去通知一下之前那一位,叫他不想更就不更了蛤)
3.1节Part题令我震惊
我就想问我不可以用文本文档写,用电脑来运行吗
就算必须用IDE写,编译器对应的也应该是“编译”好吗
这个c++希望楼主接下去,您是第三位mcbbs接c++坑的
而您的教程是我在mcbbs迄今看到最好的
我这边正在写c++模板的教程,不知道楼主感不感兴趣
at大佬@langyo_v3
(langyo你去通知一下之前那一位,叫他不想更就不更了蛤)
姚氏帅哥 发表于 2017-6-17 18:37
3.1节Part题令我震惊
我就想问我不可以用文本文档写,用电脑来运行吗
就算必须用IDE写,编译器对应的也应该 ...
劳资看见你头像啦蛤蛤蛤蛤蛤蛤蛤蛤蛤

原来只是翻译搬运。。。
但是就像我说的那个地方不能这么翻译,希望修改
所以dalao你本人到底会不会呀,会的话多交流啊
但是就像我说的那个地方不能这么翻译,希望修改
所以dalao你本人到底会不会呀,会的话多交流啊
vc++/g++路过
Visual Studio这玩意能用吗?
nextMC 发表于 2017-6-24 09:02
Visual Studio这玩意能用吗?
可以...就是我不会用
姚氏帅哥 发表于 2017-6-17 18:37
3.1节Part题令我震惊
我就想问我不可以用文本文档写,用电脑来运行吗
就算必须用IDE写,编译器对应的也应该 ...
今天看到这里。
实在是没太多精力更了,忙于开服hhh
姚氏帅哥 发表于 2017-6-17 18:37
3.1节Part题令我震惊
我就想问我不可以用文本文档写,用电脑来运行吗
就算必须用IDE写,编译器对应的也应该 ...
模板教程在哪
顶个热水袋 发表于 2017-8-2 16:31
模板教程在哪
还没有完成,敬请期待
姚氏帅哥 发表于 2017-8-3 13:06
还没有完成,敬请期待
我去,才看见是6月份的回帖
万年老鸽终于把第一章更完了!!
可以再加一下printf输出以及gets,getline,scanf输入
隔壁老吕 发表于 2018-7-28 17:58
可以再加一下printf输出以及gets,getline,scanf输入
emmmm...因为这篇教程只是搬运汉化,原教程中只写了关于cout和cin的输入输出,对printf scanf这些完全没有提及...
(个人感觉,printf和scanf是在原版C语言中的输入输出操作...在C++中有了更新的cin和cout,也就用cin和cout执行输入输出了...只是个人思路,如有错误求纠正qwq)