C语言program如何编写与运行?

99ANYc3cd6
预计阅读时长 16 分钟
位置: 首页 C语言 正文

C 语言程序的基本结构

一个最简单的 C 语言程序,无论它做什么,都必须遵循一个基本结构,我们可以把它想象成一篇文章,需要有标题、正文和结尾。

c语言 program
(图片来源网络,侵删)
// 1. 预处理指令
#include <stdio.h> // 标准输入输出库
// 2. 主函数 - 程序的入口点
int main() {
    // 3. 变量声明
    int number = 10;
    // 4. 代码/语句
    printf("Hello, World!\n"); // 打印文本到屏幕
    printf("The number is: %d\n", number); // 打印变量值
    // 5. 返回值 - 表示程序正常结束
    return 0;
}

结构详解:

  1. 预处理指令

    • 以 开头,在编译之前由预处理器处理。
    • #include <stdio.h> 是最常见的指令,它的意思是“将标准输入输出库 stdio.h 文件的内容包含进来”,这个库提供了像 printf() (打印) 和 scanf() (输入) 这样的函数,没有它,我们就无法在屏幕上显示信息。
  2. 主函数 int main()

    • 这是 程序的入口点,当你运行一个 C 程序时,操作系统会从这里开始执行代码。
    • int 表示这个函数执行完毕后会返回一个整数值。return 0; 表示程序成功执行并正常退出,返回非零值通常表示程序遇到了错误。
    • 即使你的程序再复杂,也必须有一个 main 函数。
  3. 变量声明

    • 在使用一个变量之前,必须先声明它,这就像告诉编译器:“我要用一个叫 number 的东西,它是一个整数类型 (int)。”
    • int number = 10; 声明了一个整型变量 number,并给它赋初值为 10
  4. 代码/语句

    c语言 program
    (图片来源网络,侵删)
    • 这是程序的核心逻辑部分,由一条条语句组成。
    • 每条语句必须以 分号 () 这是 C 语言的语法规则。
    • printf() 是一个函数,用于格式化输出。"Hello, World!\n" 是要打印的字符串。\n 是一个转义字符,代表“换行”。
    • "%d" 是一个格式说明符,它告诉 printf() 函数,在这里要打印一个整数 (d 代表 decimal),后面的 number 变量会被替换到 %d 的位置。
  5. 返回值 return 0;

    • 结束 main 函数,并向操作系统返回 0,表示程序成功运行。

核心概念详解

数据类型

C 语言是强类型语言,每个变量都有特定的类型。

类型 关键字 描述 示例
整型 int 存储整数 ( 10, -5, 0) int age = 25;
浮点型 float 单精度浮点数 (小数) float price = 19.99;
双精度浮点型 double 双精度浮点数 (精度更高) double pi = 3.14159;
字符型 char 存储单个字符 char grade = 'A';
布尔型 _Bool (或 stdbool.h 中的 bool) 存储真 (true) 或假 (false) _Bool isPassed = 1;

运算符

用于执行各种操作。

  • 算术运算符: (加), (减), (乘), (除), (取模)
  • 赋值运算符: (赋值), , , , (复合赋值)
  • 关系运算符: (等于), (不等于), >, <, >=, <= (结果为 1 或 0)
  • 逻辑运算符: && (与), (或), (非)

控制流

控制程序的执行顺序。

  • if-else 语句: 进行条件判断。

    int score = 85;
    if (score >= 60) {
        printf("及格了!\n");
    } else {
        printf("不及格.\n");
    }
  • for 循环: 用于重复执行代码,通常用于已知循环次数的情况。

    // 打印 1 到 5
    for (int i = 1; i <= 5; i++) {
        printf("%d ", i);
    }
  • while 循环: 用于重复执行代码,通常用于未知循环次数,但满足某个条件的情况。

    int count = 0;
    while (count < 3) {
        printf("Count is: %d\n", count);
        count++; // 别忘了更新条件,否则会死循环
    }

一个更完整的 C 语言程序示例

这个程序将结合上面提到的所有概念:变量、输入、计算、判断和循环。

目标:编写一个程序,让用户输入一个数字,然后判断这个数字是奇数还是偶数,并打印出 1 到该数字之间的所有偶数。

// 1. 包含必要的库
#include <stdio.h>
// 2. 主函数
int main() {
    // 3. 声明变量
    int userNumber;
    int i; // 用于循环的计数器
    // 4. 获取用户输入
    printf("请输入一个正整数: ");
    scanf("%d", &userNumber);
    // 5. 验证输入的有效性
    if (userNumber <= 0) {
        printf("错误:请输入一个正整数,\n");
        return 1; // 返回非零值表示程序因错误而退出
    }
    // 6. 判断奇偶并输出结果
    if (userNumber % 2 == 0) {
        printf("%d 是一个偶数,\n", userNumber);
    } else {
        printf("%d 是一个奇数,\n", userNumber);
    }
    // 7. 使用 for 循环打印 1 到 userNumber 之间的所有偶数
    printf("1 到 %d 之间的所有偶数是:\n", userNumber);
    for (i = 1; i <= userNumber; i++) {
        if (i % 2 == 0) { // i 能被 2 整除,就是偶数
            printf("%d ", i);
        }
    }
    printf("\n"); // 最后打印一个换行符,使输出更整洁
    // 8. 程序正常结束
    return 0;
}

代码解析:

  1. #include <stdio.h>: 仍然需要,因为我们要用 printfscanf
  2. 变量声明: userNumber 用来存储用户输入的数字,i 是循环计数器。
  3. printf("请输入一个正整数: ");: 提示用户输入。
  4. scanf("%d", &userNumber);: 从键盘读取一个整数,并存入 userNumber 变量。
    • &userNumber 中的 &取地址运算符scanf 函数需要知道把读到的数据存放到哪个变量的内存地址中,所以必须提供 &
  5. if (userNumber <= 0): 检查用户输入是否合法(必须是正整数)。
  6. if (userNumber % 2 == 0): 使用取模运算符 来判断奇偶,如果余数为 0,就是偶数。
  7. for 循环: 从 1 遍历到 userNumber
  8. if (i % 2 == 0): 在循环内部,检查当前的数字 i 是否为偶数,如果是,就打印它。
  9. return 0;: 程序成功执行完毕。

如何编译和运行 C 程序?

你需要一个 C 编译器,最常用的是 GCC (GNU Compiler Collection)

  1. 保存代码: 将上面的完整示例代码保存为一个文件,program.c
  2. 打开终端/命令行:
    • 在 Windows 上,你可以使用 PowerShell, Command Prompt 或 Git Bash。
    • 在 macOS 或 Linux 上,直接打开 Terminal。
  3. 编译代码: 在终端中,使用 gcc 命令来编译 .c 文件。
    gcc program.c -o program
    • gcc: 调用 GCC 编译器。
    • program.c: 你的源代码文件。
    • -o program: 指定输出的可执行文件名为 program,如果不写 -o,默认会生成一个名为 a.out (Linux/macOS) 或 a.exe (Windows) 的文件。
  4. 运行程序: 编译成功后,会生成一个可执行文件,运行它:
    • 在 Linux/macOS 上:
      ./program
    • 在 Windows 上:
      program.exe

      或者直接输入 program (.exe 后缀被系统关联)。

运行示例:

$ gcc program.c -o program
$ ./program
请输入一个正整数: 12
12 是一个偶数。
1 到 12 之间的所有偶数是:
2 4 6 8 10 12 

C 语言程序的核心就是围绕 函数变量 构建的。main 函数是程序的起点,通过变量存储数据,通过控制流(if, for, while)改变执行顺序,通过库函数(如 printf)与外界交互,掌握好这些基础,你就可以开始构建更复杂的程序了。

-- 展开阅读全文 --
头像
dede网站后缀乱码,如何解决?
« 上一篇 04-22
C语言中如何计算某天是星期几?
下一篇 » 04-22

相关文章

取消
微信二维码
支付宝二维码

目录[+]