C语言概述与基本程序结构

对应教学日历:讲次 1(3月5日)+ 实验一(讲次 4,3月19日)


一、程序设计基本概念

  • 程序:为解决某一问题而设计的计算机指令序列
  • 程序设计:分析问题 → 设计算法 → 编写代码 → 调试运行 → 维护更新
  • 算法:解决问题的步骤描述,具有有穷性、确定性、可行性、输入、输出五大特性
  • C语言特点
    • 结构化程序设计语言(顺序、选择、循环三种基本结构)
    • 兼具高级语言的可读性和低级语言的效率
    • 丰富的数据类型和运算符
    • 支持指针操作,可直接访问内存
    • 可移植性好

二、C程序的基本结构

#include <stdio.h>        // 预处理指令:包含标准输入输出头文件
int main()                // 主函数——程序执行的入口
{
    printf("Hello World!\n");  // 语句
    return 0;                  // 返回操作系统
}

结构要点

组成部分说明
#include <stdio.h>预处理指令,引入标准库函数声明
int main()主函数,C程序有且仅有一个main函数
{ }函数体边界,成对出现
printf(...)标准输出函数,在 stdio.h 中声明
return 0;程序正常结束,返回给操作系统
;每条语句以分号结尾

注释

// 单行注释(C99标准)
 
/*
   多行注释
   可跨越多行
*/

三、C语言的编译与运行

源程序(.c) → 编译(compiler) → 目标文件(.obj/.o) → 链接(linker) → 可执行文件(.exe)
  • 编译:将 C 源代码翻译为机器指令(目标代码),检查语法错误
  • 链接:将多个目标文件和库函数合并为可执行文件
  • 常见开发环境:Visual Studio Code + MinGW/GCC、Dev-C++、Code::Blocks

四、预处理指令

# 开头,在编译前由预处理器处理:

指令格式作用
#include#include <stdio.h>#include "myheader.h"包含头文件(<> 系统路径,"" 当前目录)
#define#define PI 3.14159宏定义(符号常量),编译前文本替换

注意#define 宏定义不是语句,末尾不加分号,它只是编译前的文本替换

五、C语言字符集与标识符

  • 字符集:大小写英文字母、数字、特殊符号(+ - * / = < > ; , . ( ) [ ] { } # 等)
  • 标识符命名规则
    • 由字母、数字、下划线组成
    • 首字符必须是字母或下划线(不能是数字)
    • 区分大小写nameName 是不同的标识符)
    • 不能使用 C 语言关键字(如 int, if, while, return 等)

作业示例

ex1-2:第一个C程序——Hello World

#include<stdio.h>
int main()
{
    printf("Hello World!\n");
    return 0;
}

要点

  • #include<stdio.h> 两种写法等价("stdio.h" 也是合法的)
  • \n 是换行符(转义字符)
  • printf 函数用于屏幕输出

ex1-3-1:另一个简单输出

#include<stdio.h>
int main()
{
    printf("Nice to meet you!\n");
    return 0;
}

ex1-4:格式化输出——自我介绍

#include<stdio.h>
int main()
{
    printf("\n\n\tIntroduce yourself\n\n");
    printf("\t******************\n");
    printf("\tI am a student!\n");
    printf("\t******************\n");
    return 0;
}

要点

  • \t 是水平制表符(Tab)
  • 连续多个 \n 产生空行效果
  • 利用字符图案实现简单图形输出

作业重点

  • C程序由一个且仅有一个 main 函数构成,程序从 main 开始执行
  • #include 引入头文件,#define 定义符号常量——都不加分号
  • printf 输出字符串,转义字符 \n(换行)、\t(制表)
  • 每条语句以 ; 结尾
  • C语言区分大小写,标识符不能以数字开头