跳转至

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 的拼写

输入法提醒

写代码时一律使用英文输入法和半角标点。 中文标点(;“” ())与英文标点(; "" ())外形相似,但含义完全不同,是新手最常见的错误来源之一。