C语言基础语法示例

项目概述

本项目展示了核心概念和基本编程技巧,包括变量声明、常量定义、输入输出、条件语句、循环结构等基础内容,帮助C语言初学者快速掌握基础语法。

文件说明

  • 文件名 : basic.c
  • 类型: C语言源文件
  • 功能: 展示C语言基础语法和编程结构
  • 依赖: 标准C库(stdio.h)

核心概念详解

1. 头文件包含

头文件包含是C语言程序的必要部分,用于引入外部函数库。

c 复制代码
#include <stdio.h>

说明

  • #include 是预处理指令
  • <stdio.h> 是标准输入输出库的头文件
  • 提供了 printf()scanf() 等I/O函数

2. 主函数

主函数是C程序的入口点,所有C程序都必须包含一个主函数。

c 复制代码
int main() {
    // 程序代码
    return 0;
}

说明

  • int 表示主函数返回整数类型
  • main() 是主函数名称
  • return 0; 表示程序正常结束

3. 变量与常量

变量用于存储可变数据,常量用于存储不可修改的数据。basic.c 中展示了不同类型的变量和常量声明:

c 复制代码
// 变量声明与初始化 - basic.c第6-8行
int age = 25;
float height = 1.75;
char initial = 'A';

// 常量定义 - basic.c第11行
const int MAX_AGE = 100;

说明

  • 变量需要先声明类型,然后才能使用
  • 可以在声明时直接初始化变量的值
  • const 关键字用于定义常量,一旦定义后其值不能修改
  • C语言的基本数据类型包括:
    • int: 整型,用于存储整数
    • float: 浮点型(单精度),用于存储小数
    • char: 字符型,用于存储单个字符

补充示例

c 复制代码
// 其他变量类型示例
short smallNumber = 100;
long bigNumber = 1000000;
double preciseNumber = 3.1415926535;
_Bool isTrue = 1;  // 布尔型(C99及以上)

// 无初始化的变量声明
int uninitializedVar;
float anotherVar;

4. 输出操作

basic.c 中使用 printf() 函数向控制台输出各种信息:

c 复制代码
// 输出示例 - basic.c第14-16行
printf("年龄: %d\n", age);
printf("身高: %.2f\n", height);
printf("首字母: %c\n", initial);

说明

  • printf() 是C语言标准库中的格式化输出函数
  • 使用格式化说明符来指定不同类型数据的输出格式:
    • %d: 用于输出整型数据
    • %.2f: 用于输出保留两位小数的浮点型数据
    • %c: 用于输出字符型数据
    • \n: 是转义字符,表示换行
  • 格式化说明符的数量必须与后面参数的数量和类型匹配

5. 输入操作

使用 scanf() 函数从控制台读取输入。(basic.c中未包含,补充示例)

c 复制代码
// 输入示例
int userAge;
printf("请输入您的年龄: ");
scanf("%d", &userAge);
printf("您输入的年龄是: %d\n", userAge);

说明

  • scanf() 是格式化输入函数
  • 需要提供变量的地址(使用 & 操作符)
  • printf() 使用相同的格式化说明符

6. 条件语句

条件语句用于根据条件执行不同的代码块。basic.c 中使用了if-else条件语句来判断年龄:

c 复制代码
// 条件语句 - basic.c第19-23行
if (age >= 18) {
    printf("成年人\n");
} else {
    printf("未成年人\n");
}

说明

  • if 后面跟条件表达式,用于判断条件是否成立
  • 条件为真时执行if块中的代码
  • 条件为假时执行else块中的代码
  • 条件表达式的结果为布尔值(0为假,非0为真)

补充示例

c 复制代码
// 多重条件判断
int score = 85;
if (score >= 90) {
    printf("优秀\n");
} else if (score >= 80) {
    printf("良好\n");
} else if (score >= 60) {
    printf("及格\n");
} else {
    printf("不及格\n");
}

// 嵌套条件语句
int number = 10;
if (number > 0) {
    if (number % 2 == 0) {
        printf("正偶数\n");
    } else {
        printf("正奇数\n");
    }
} else if (number < 0) {
    printf("负数\n");
} else {
    printf("零\n");
}

7. 循环语句

循环语句用于重复执行一段代码。

7.1 for循环

basic.c 中使用for循环输出0到5的数字:

c 复制代码
// 循环语句 - for循环 - basic.c第26-30行
printf("0到5的数字: ");
for (int i = 0; i <= 5; i++) {
    printf("%d ", i);
}
printf("\n");

说明

  • for循环适合已知循环次数的情况
  • 包含三个部分:
    • 初始化:int i = 0,设置循环变量的初始值
    • 条件:i <= 5,判断循环是否继续
    • 增量:i++,更新循环变量的值
  • 语法:for (初始化; 条件; 增量) { 循环体 }
7.2 while循环

basic.c 中使用while循环输出0到3的数字:

c 复制代码
// 循环语句 - while循环 - basic.c第33-39行
int count = 0;
printf("0到3的数字: ");
while (count <= 3) {
    printf("%d ", count);
    count++;
}
printf("\n");

说明

  • while循环适合未知循环次数的情况
  • 先判断条件,条件为真时执行循环体
  • 需要在循环体内更新循环变量,否则会导致无限循环
  • 语法:while (条件) { 循环体 }
7.3 do-while循环(basic.c中未包含,补充示例)

do-while循环与while循环类似,但它会先执行一次循环体,然后再判断条件:

c 复制代码
// do-while循环示例
int num = 1;
do {
    printf("%d ", num);
    num++;
} while (num <= 4);
printf("\n");

说明

  • do-while循环至少执行一次循环体,即使条件一开始就不满足
  • 先执行循环体,再判断条件是否成立
  • 条件成立时继续执行循环,否则退出循环
  • 语法:do { 循环体 } while (条件);

补充示例

c 复制代码
// 使用do-while循环实现的菜单选择
do {
    printf("\n菜单:\n");
    printf("1. 选项1\n");
    printf("2. 选项2\n");
    printf("3. 退出\n");
    printf("请选择:");
    
    int choice;
    scanf("%d", &choice);
    
    switch(choice) {
        case 1:
            printf("您选择了选项1\n");
            break;
        case 2:
            printf("您选择了选项2\n");
            break;
        case 3:
            printf("感谢使用,再见!\n");
            return 0;
        default:
            printf("无效的选择,请重新输入\n");
    }
} while (1);  // 无限循环,直到用户选择退出

basic.c完整源代码

以下是 basic.c 的完整源代码:

c 复制代码
#include <stdio.h>

// 主函数
int main() {
    // 变量声明与初始化
    int age = 25;
    float height = 1.75;
    char initial = 'A';
    
    // 常量定义
    const int MAX_AGE = 100;
    
    // 输出示例
    printf("年龄: %d\n", age);
    printf("身高: %.2f\n", height);
    printf("首字母: %c\n", initial);
    
    // 条件语句
    if (age >= 18) {
        printf("成年人\n");
    } else {
        printf("未成年人\n");
    }
    
    // 循环语句 - for循环
    printf("0到5的数字: ");
    for (int i = 0; i <= 5; i++) {
        printf("%d ", i);
    }
    printf("\n");
    
    // 循环语句 - while循环
    int count = 0;
    printf("0到3的数字: ");
    while (count <= 3) {
        printf("%d ", count);
        count++;
    }
    printf("\n");
    
    return 0;
}

编译与运行

Windows系统

  1. 确保已安装C编译器(如MinGW或Visual Studio)

  2. 打开命令提示符

  3. 导航到文件所在目录

  4. 编译代码:

    bash 复制代码
    gcc basic.c -o basic -fexec-charset=gbk
  5. 运行程序:

    bash 复制代码
    .\basic.exe

Linux/macOS系统

  1. 确保已安装GCC编译器

  2. 打开终端

  3. 导航到文件所在目录

  4. 编译代码:

    bash 复制代码
    gcc basic.c -o basic
  5. 运行程序:

    bash 复制代码
    ./basic

程序输出

运行程序后,您将看到以下输出:

复制代码
年龄: 25
身高: 1.75
首字母: A
成年人
0到5的数字: 0 1 2 3 4 5
0到3的数字: 0 1 2 3

扩展学习

1. 数据类型扩展

除了示例中展示的基本数据类型,C语言还支持以下数据类型:

c 复制代码
// 其他常用数据类型
short s = 1000;          // 短整型
long l = 1000000;        // 长整型
double d = 3.14159265;   // 双精度浮点型
_Bool b = 1;             // 布尔型(C99及以上)

2. 运算符

C语言支持多种运算符:

c 复制代码
// 算术运算符
int a = 10, b = 3;
printf("a + b = %d\n", a + b);  // 加法
printf("a - b = %d\n", a - b);  // 减法
printf("a * b = %d\n", a * b);  // 乘法
printf("a / b = %d\n", a / b);  // 除法(整数除法)
printf("a %% b = %d\n", a % b);  // 取余

// 关系运算符
printf("a > b: %d\n", a > b);   // 大于
printf("a == b: %d\n", a == b); // 等于
printf("a != b: %d\n", a != b); // 不等于

3. 数组

数组用于存储相同类型的多个元素:

c 复制代码
// 数组示例
int numbers[5] = {1, 2, 3, 4, 5};
printf("数组元素: ");
for (int i = 0; i < 5; i++) {
    printf("%d ", numbers[i]);
}
printf("\n");

学习资源

注:本示例使用C99标准,部分特性(如for循环中的变量声明)在旧版本C标准中可能不支持。

相关推荐
kiki-bf8 小时前
使用python把图片转为word
开发语言·python·word
光羽隹衡8 小时前
Python中的网络爬虫
开发语言·爬虫·python
不会写DN8 小时前
fmt 包中的所有 Print 系列函数
开发语言·后端·golang·go
法号:行颠8 小时前
Chaos-nano协作式异步操作系统(六):`Chaos-nano` 在手持式 `VOC` 检测设备上的应用
c语言·单片机·嵌入式硬件·mcu·系统架构
南棱笑笑生8 小时前
20251213给飞凌OK3588-C开发板适配Rockchip原厂的Buildroot【linux-6.1】系统时适配CTP触摸屏FT5X06
linux·c语言·开发语言·rockchip
兩尛9 小时前
高频提问部分
开发语言·后端·ruby
深蓝电商API9 小时前
企业级爬虫架构设计:任务调度、容错、重试、降重
开发语言·爬虫·ruby
芝麻开门-新起点9 小时前
第13-1章 Python地理空间开发
开发语言·python
肥大毛10 小时前
C++入门学习---结构体
开发语言·c++·学习