C语言基础语法概述C语言是一种通用的、过程式的编程语言广泛应用于系统编程、嵌入式开发等领域。其基础语法包括数据类型、运算符、控制结构、函数、数组、指针等。整型数据类型C语言中的整型数据类型用于存储整数包括有符号和无符号类型int基本整型通常占4字节具体取决于编译器范围约为-2,147,483,648到2,147,483,647。short短整型通常占2字节范围-32,768到32,767。long长整型通常占4或8字节范围更大。long longC99引入至少8字节范围至少-9,223,372,036,854,775,808到9,223,372,036,854,775,807。**unsigned**变体如unsigned int仅表示非负数范围0到4,294,967,2954字节时。浮点型数据类型用于存储小数或科学计数法表示的数值float单精度浮点通常占4字节精度约6-7位小数。double双精度浮点通常占8字节精度约15-16位小数。long double扩展精度大小和精度取决于实现可能10字节或更多。字符型数据类型char占1字节存储ASCII字符或小整数-128到127或0到255。unsigned char范围0到255。示例代码#include stdio.h int main() { int a 42; float b 3.14f; char c A; printf(int: %d, float: %.2f, char: %c\n, a, b, c); return 0; }注意事项类型大小可通过sizeof运算符验证如sizeof(int)。C99/C11标准引入了stdint.h提供固定宽度类型如int32_t。选择类型时需考虑数值范围和内存效率。数据类型与变量声明C语言支持多种基本数据类型包括整型、浮点型、字符型等。变量声明需指定类型和名称。int age 25; // 整型变量 float salary 5000.75; // 浮点型变量 char grade A; // 字符型变量运算符C语言支持算术、关系、逻辑、位运算等多种运算符。int a 10, b 20; int sum a b; // 算术运算 int isEqual (a b); // 关系运算 int logicalAnd (a 5 b 30); // 逻辑运算控制结构控制结构包括条件语句和循环语句用于控制程序流程。条件语句if-elseint num 10; if (num 0) { printf(Positive number); } else if (num 0) { printf(Negative number); } else { printf(Zero); }循环语句for、while、do-whilefor (int i 0; i 5; i) { printf(%d\n, i); // 输出0到4 } int j 0; while (j 5) { printf(%d\n, j); // 输出0到4 j; } int k 0; do { printf(%d\n, k); // 输出0到4 k; } while (k 5);函数函数是C语言的基本模块用于封装代码逻辑。函数包括返回类型、名称、参数和函数体。int add(int a, int b) { return a b; } int main() { int result add(3, 4); // 调用函数 printf(Sum: %d\n, result); return 0; }数组数组用于存储相同类型的多个元素通过索引访问。int numbers[5] {1, 2, 3, 4, 5}; // 声明并初始化数组 for (int i 0; i 5; i) { printf(%d , numbers[i]); // 输出数组元素 }指针指针是C语言的核心概念用于直接操作内存地址。int var 10; int *ptr var; // 指针指向var的地址 printf(Value: %d\n, *ptr); // 通过指针访问值结构体结构体用于组合不同类型的数据。struct Student { char name[50]; int age; float marks; }; struct Student s1 {Alice, 20, 85.5}; printf(Name: %s, Age: %d\n, s1.name, s1.age);文件操作C语言通过文件指针实现文件的读写操作。FILE *file fopen(example.txt, w); if (file ! NULL) { fprintf(file, Hello, World!); fclose(file); }动态内存分配使用malloc和free实现动态内存管理。int *arr (int *)malloc(5 * sizeof(int)); // 分配内存 if (arr ! NULL) { for (int i 0; i 5; i) { arr[i] i 1; } free(arr); // 释放内存 }预处理器指令预处理器指令用于宏定义、条件编译等。#define PI 3.14159 // 宏定义 #ifdef PI printf(PI is defined\n); #endif学生成绩管理系统C语言实现的学生成绩管理系统示例代码包含基本功能如添加、查询、修改和删除学生信息。功能概述添加学生信息学号、姓名、成绩显示所有学生信息按学号查询学生信息修改学生信息删除学生信息按成绩排序数据结构定义#include stdio.h #include stdlib.h #include string.h #define MAX_STUDENTS 100 typedef struct { int id; char name[50]; float score; } Student;主菜单界面void displayMenu() { printf(\n学生成绩管理系统\n); printf(1. 添加学生信息\n); printf(2. 显示所有学生\n); printf(3. 查找学生\n); printf(4. 修改学生信息\n); printf(5. 删除学生信息\n); printf(6. 成绩排序\n); printf(0. 退出\n); printf(请输入选择: ); }添加学生信息void addStudent(Student students[], int *count) { if (*count MAX_STUDENTS) { printf(学生数量已达上限!\n); return; } Student s; printf(输入学号: ); scanf(%d, s.id); printf(输入姓名: ); scanf(%s, s.name); printf(输入成绩: ); scanf(%f, s.score); students[*count] s; (*count); printf(添加成功!\n); }显示所有学生void displayAllStudents(Student students[], int count) { if (count 0) { printf(没有学生记录!\n); return; } printf(学号\t姓名\t成绩\n); for (int i 0; i count; i) { printf(%d\t%s\t%.2f\n, students[i].id, students[i].name, students[i].score); } }按学号查找学生int findStudentById(Student students[], int count, int id) { for (int i 0; i count; i) { if (students[i].id id) { return i; } } return -1; } void searchStudent(Student students[], int count) { int id; printf(输入要查找的学号: ); scanf(%d, id); int index findStudentById(students, count, id); if (index ! -1) { printf(学号\t姓名\t成绩\n); printf(%d\t%s\t%.2f\n, students[index].id, students[index].name, students[index].score); } else { printf(未找到该学生!\n); } }修改学生信息void modifyStudent(Student students[], int count) { int id; printf(输入要修改的学号: ); scanf(%d, id); int index findStudentById(students, count, id); if (index ! -1) { printf(当前信息: %d\t%s\t%.2f\n, students[index].id, students[index].name, students[index].score); printf(输入新姓名: ); scanf(%s, students[index].name); printf(输入新成绩: ); scanf(%f, students[index].score); printf(修改成功!\n); } else { printf(未找到该学生!\n); } }删除学生信息void deleteStudent(Student students[], int *count) { int id; printf(输入要删除的学号: ); scanf(%d, id); int index findStudentById(students, *count, id); if (index ! -1) { for (int i index; i *count - 1; i) { students[i] students[i 1]; } (*count)--; printf(删除成功!\n); } else { printf(未找到该学生!\n); } }成绩排序int compareScores(const void *a, const void *b) { Student *s1 (Student *)a; Student *s2 (Student *)b; return (s2-score s1-score) ? 1 : -1; } void sortStudents(Student students[], int count) { qsort(students, count, sizeof(Student), compareScores); printf(按成绩排序完成!\n); }主函数int main() { Student students[MAX_STUDENTS]; int count 0; int choice; while (1) { displayMenu(); scanf(%d, choice); switch (choice) { case 1: addStudent(students, count); break; case 2: displayAllStudents(students, count); break; case 3: searchStudent(students, count); break; case 4: modifyStudent(students, count); break; case 5: deleteStudent(students, count); break; case 6: sortStudents(students, count); break; case 0: printf(感谢使用!\n); exit(0); default: printf(无效选择!\n); } } return 0; }后续改进功能添加文件存储功能实现数据的持久化增加按姓名查询功能添加数据验证防止非法输入实现分页显示功能添加成绩统计功能平均分、最高分等