C1-01 程序设计入门
C++ 程序框架、输出语句与基本图形
学习目标:认识 C++ 程序的基本结构;掌握
cout输出数字、字符、字符串和算式的方法;能够使用多条输出语句打印基本图形;养成英文输入法、样例核对和主动排错的编程习惯。
一、C++ 程序基本框架
任何一个 C++ 程序都套在下面这个“骨架”里。先记住骨架,再往 main 函数中填入具体内容。
1. 通用代码框架(背下来)
#include <iostream> // 1. 包含头文件
using namespace std; // 2. 使用标准命名空间
int main() { // 3. 主函数,程序从这里开始
// 在这里写你的代码
return 0; // 4. 正常结束,返回 0
}
2. 逐行解释
| 行 | 代码 | 作用 |
|---|---|---|
| 1 | #include <iostream> |
引入输入输出库,cout、cin、endl 都在里面。没有这一行,cout 无法使用。 |
| 2 | using namespace std; |
声明使用标准命名空间。这样可以直接写 cout,否则需要写成 std::cout。 |
| 3 | int main() { |
主函数,是程序执行的入口,所有代码都从这里开始运行。 |
| 4 | { ... } |
花括号内部是程序主体。C++ 中每条普通语句通常以英文分号 ; 结尾。 |
| 5 | return 0; |
告诉系统程序已经正常结束,返回值为 0。 |
| 6 | // 单行注释 |
双斜线 // 后面的内容是注释,用来补充说明,不会被程序执行。 |
3. 最小程序:输出一句话
把程序框架填满,就是一个能够运行的 C++ 程序:
#include <iostream>
using namespace std;
int main() {
cout << "hello,world!" << endl;
return 0;
}
运行结果(屏幕显示):
hello,world!
二、cout 输出语句
1. cout 基本语法
cout 是“标准输出流”对象,<< 叫作“插入运算符”(insertion operator,也叫流插入符)。
读法: 把 << 右边的内容送进左边的 cout,最终显示在屏幕上。
cout << 要输出的内容;
要点:
- 每条
cout语句以英文分号;结尾。 <<的方向是向左,可以理解为“内容流向屏幕”。cout与<<之间可以有空格,习惯写成cout <<。
2. 输出换行
常见的换行写法有两种:
cout << "第一行" << endl; // endl:结束当前行(end line)
cout << "第二行" << "\n"; // \n:换行符
cout << "第三行\n"; // 也可以写在字符串末尾
| 写法 | 含义 | 特点 |
|---|---|---|
endl |
换到下一行 | 会刷新输出缓冲区,速度略慢 |
\n |
换行符 | 只换行不刷新,速度更快 |
3. 输出一个数
数字不加引号,直接写在 cout 后面:
cout << 42 << endl; // 输出:42
cout << 2024 << endl; // 输出:2024
cout << 3.14 << endl; // 输出:3.14(小数)
4. 输出一个字符
单个字符使用英文单引号 ' ' 括起来。单引号中只能放一个字符:
cout << '+' << endl; // 输出:+
cout << '!' << endl; // 输出:!
cout << '#' << endl; // 输出:#
5. 输出一个字符串
字符串使用英文双引号 " " 括起来,双引号中可以放多个字符:
cout << "Hello" << endl; // 输出:Hello
cout << "信息学奥赛" << endl; // 输出:信息学奥赛
cout << "3+4" << endl; // 输出:3+4(原样输出,不计算)
关键区别: 双引号里的内容会原样输出。写成
"3+4"时,输出的是字符 3、+、4,而不是数字 7。
6. 输出算式的结果
数字和运算符不加引号,cout 会先计算,再输出结果:
cout << 3 + 4 << endl; // 输出:7(先计算 3+4=7)
cout << 10 - 3 << endl; // 输出:7
cout << 6 * 7 << endl; // 输出:42(* 表示乘法)
cout << 15 / 4 << endl; // 输出:3(整数除法,只取商)
cout << 14 % 4 << endl; // 输出:2(% 表示求余数)
易错点:
15 / 4在 C++ 中是整数除以整数,结果为 3,不是 3.75。若要得到小数,可以写成15.0 / 4。
7. 输出多个内容:链式 <<
一条 cout 语句可以使用多个 << 连接不同内容:
cout << "a" << "b" << "c" << endl; // 输出:abc
cout << 1 << 2 << 3 << endl; // 输出:123,不是 6
cout << "数学" << 3 + 4 << endl; // 输出:数学7
理解: 每个 << 都把右边的一项送入 cout。多项内容之间默认没有空格,会紧挨着输出。
8. 字符串与数字混合输出
这是最常用的写法:使用 << 把字符串、算式和数字拼成一句话。
cout << "3 + 4 = " << 3 + 4 << endl;
// 输出:3 + 4 = 7
拆解:
"3 + 4 = "是字符串,原样输出;等号两侧的空格也是字符串的一部分。3 + 4是算式,先计算得到 7,再输出 7。endl负责换行。
更多例子:
cout << "小明今年 " << 12 << " 岁。" << "\n";
// 输出:小明今年 12 岁。
cout << "长 = " << 5
<< ",宽 = " << 3
<< ",面积 = " << 5 * 3 << "\n";
// 输出:长 = 5,宽 = 3,面积 = 15
三、输出基本图形
图形打印的核心思路: 把图形拆成“一行一行”的内容,每行使用一个 cout 输出,并在行末换行。
1. 正方形(3×3)
目标图形:
***
***
***
代码:
#include <iostream>
using namespace std;
int main() {
cout << "***" << endl;
cout << "***" << endl;
cout << "***" << endl;
return 0;
}
2. 直角三角形(左对齐)
目标图形:
*
**
***
****
代码:
#include <iostream>
using namespace std;
int main() {
cout << "*" << endl;
cout << "**" << endl;
cout << "***" << endl;
cout << "****" << endl;
return 0;
}
3. 等腰三角形(居中)
目标图形(4 行):
*
***
*****
*******
思路:每一行都由“若干空格 + 若干星号”组成,空格直接写在字符串中。
#include <iostream>
using namespace std;
int main() {
cout << " *" << endl; // 3 个空格 + 1 个星号
cout << " ***" << endl; // 2 个空格 + 3 个星号
cout << " *****" << endl; // 1 个空格 + 5 个星号
cout << "*******" << endl; // 0 个空格 + 7 个星号
return 0;
}
技巧: 数清楚每行“空格数 + 星号数”。星号每行增加 2 个,空格每行减少 1 个,图形就能保持居中。
4. 打印矩形边框(空心正方形)
目标图形(4×4 边框):
****
* *
* *
****
代码:
#include <iostream>
using namespace std;
int main() {
cout << "****" << endl;
cout << "* *" << endl; // 1 个星号 + 2 个空格 + 1 个星号
cout << "* *" << endl;
cout << "****" << endl;
return 0;
}
四、常见错误与注意事项
以下问题是初学者最常遇到的坑,可能导致编译错误或输出错误。
| 编号 | 错误 | 后果 | 改正 |
|---|---|---|---|
| E1 | 使用中文分号 ; |
编译错误,可能出现大量难以理解的提示 | 使用英文半角分号 ; |
| E2 | 使用中文引号 “ ” |
字符串无法正确识别,编译错误 | 使用英文双引号 " " |
| E3 | 漏写分号 ; |
编译错误,常见提示为 expected ; |
每条普通语句末尾补上 ; |
| E4 | 引号不配对 | 编译错误,常见提示为 missing terminating | 先输入成对引号,再在中间填写内容 |
| E5 | 漏写 #include <iostream> |
cout 未声明 |
保留框架第一行 |
| E6 | 漏写 using namespace std; |
cout 不在当前作用域 |
保留框架第二行,或写成 std::cout |
| E7 | 把 << 写成 >> |
运算符方向错误,可能导致编译错误 | << 用于输出,>> 用于输入 |
| E8 | 给算式加引号,如 "3+4" |
输出 3+4,而不是 7 |
要计算就不要加引号 |
| E9 | 想计算却把算式写进字符串 | 内容只会被原样输出 | 把算式放在引号外 |
| E10 | 把 main 拼写成 mian |
链接错误,找不到程序入口 | 仔细检查 main 的拼写 |
输入法提醒
写代码时一律使用英文输入法和半角标点。 中文标点(;“” ())与英文标点(; "" ())外形相似,但含义完全不同,是新手最常见的错误来源之一。