C语言基础语法讲解
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; }后续改进功能添加文件存储功能实现数据的持久化增加按姓名查询功能添加数据验证防止非法输入实现分页显示功能添加成绩统计功能平均分、最高分等

相关新闻

Python基础语法讲解及案例

Python基础语法讲解及案例

Python基础语法概述Python是一种解释型、高级编程语言,以其简洁易读的语法著称。以下是核心语法元素:变量与数据类型变量无需声明类型,直接赋值即可:name "Alice" age 25 height 1.68 is_student True常见数据类型&…

2026/8/4 15:00:37 阅读更多 →
西门子数控系统调试与故障排查实战

西门子数控系统调试与故障排查实战

1. 西门子数控系统调试实战指南 在工业自动化领域摸爬滚打十几年,我经手调试的西门子数控系统少说也有上百台。从早期的840D到现在的Sinumerik ONE,每次调试都像在解一道精密的多变量方程。记得有次在广东某模具厂,一台老款808D系统因为参数配…

2026/8/4 15:00:37 阅读更多 →
php基础语法与案例讲解

php基础语法与案例讲解

PHP基础语法 PHP是一种服务器端脚本语言,语法风格类似于C语言和Perl。以下是一些基础语法要点: 变量与数据类型 PHP变量以$开头,数据类型自动推断: $name "John"; // 字符串 $age 25; // 整数 $price …

2026/8/4 15:00:37 阅读更多 →

最新新闻

SpringBoot学生宿舍管理系统设计与实现

SpringBoot学生宿舍管理系统设计与实现

1. 项目概述与核心价值 这个基于SpringBoot的学生宿舍管理系统是我在指导毕业设计过程中反复打磨的典型案例,它完美解决了高校后勤管理中的三大痛点:手工登记效率低下、数据统计滞后、安全隐患难追溯。系统采用B/S架构,前端用Thymeleaf模板引…

2026/8/4 15:37:54 阅读更多 →
三步上手:xmly-downloader-qt5喜马拉雅音频批量下载完整指南

三步上手:xmly-downloader-qt5喜马拉雅音频批量下载完整指南

三步上手:xmly-downloader-qt5喜马拉雅音频批量下载完整指南 【免费下载链接】xmly-downloader-qt5 喜马拉雅FM专辑下载器. 支持VIP与付费专辑. 使用GoQt5编写(Not Qt Binding). 项目地址: https://gitcode.com/gh_mirrors/xm/xmly-downloader-qt5 喜马拉雅F…

2026/8/4 15:37:54 阅读更多 →
CQUThesis终极指南:3步快速完成重庆大学毕业论文专业排版

CQUThesis终极指南:3步快速完成重庆大学毕业论文专业排版

CQUThesis终极指南:3步快速完成重庆大学毕业论文专业排版 【免费下载链接】CQUThesis :pencil: 重庆大学毕业论文LaTeX模板---LaTeX Thesis Template for Chongqing University 项目地址: https://gitcode.com/gh_mirrors/cq/CQUThesis 还在为毕业论文格式调…

2026/8/4 15:37:54 阅读更多 →
【计算机毕业设计】基于Web的闲置电子产品交易网站的设计与实现

【计算机毕业设计】基于Web的闲置电子产品交易网站的设计与实现

1.系统介绍随着数字电子产品更新迭代速度加快,闲置电子产品积压问题日益突出,传统线下交易模式存在信息不对称、交易效率低、地域限制等痛点,难以满足用户对闲置电子产品规范化、便捷化交易的需求。在此背景下,开发一套适配Web端的…

2026/8/4 15:37:54 阅读更多 →
网络安全期刊投稿指南:从实验设计到审稿应对

网络安全期刊投稿指南:从实验设计到审稿应对

1. Cybersecurity期刊概述与核心价值 Cybersecurity作为网络空间安全领域的权威学术期刊,由Springer Nature出版集团发行,是首批专注于网络攻防技术、安全协议分析和威胁情报研究的国际性专业期刊。创刊于2018年,目前已被EI、Scopus等主流数据…

2026/8/4 15:37:54 阅读更多 →
电商平台系统是什么?从零理解电商数字化运营的核心基础设施

电商平台系统是什么?从零理解电商数字化运营的核心基础设施

"一个做线下批发做了十几年的老板,去年开始做电商——在淘宝开了一个店、抖音开了两个号。他跟我说了一句话,我觉得概括了所有传统老板转型电商的真实困境:我以前管一个仓库、十几个员工——每天早上到公司转一圈就知道今天什么情况。现…

2026/8/4 15:36:54 阅读更多 →

日新闻

AI Agent白手起家26: 使用标准事件驱动大模型实践

AI Agent白手起家26: 使用标准事件驱动大模型实践

纲要 练习目标:掌握大模型标准事件的调用回顾 LangChain 中的核心标准事件 invokestreambatchastream_eventswith_structured_output 环境准备实战代码:多种事件调用对比 同步调用与流式输出批量处理异步事件流监听结构化输出 运行说明与预期结果总结与扩…

2026/8/4 0:00:40 阅读更多 →
dealsea是什么?跨境卖家必知的美国deal站入门指南

dealsea是什么?跨境卖家必知的美国deal站入门指南

说实话,第一次听说美国这个老牌折扣网站的跨境卖家,十个有八个会问同一个问题:这个平台到底是干嘛的?我见过一个做家居出口的朋友,他在亚马逊上月销二十万美金,却从来没用过它。我给他看了首页——一屏一屏…

2026/8/4 0:01:40 阅读更多 →
清华大学重磅EST:植物自导电闪蒸焦耳热600°C/2600°C两步法!稀土超积累植物秒级转化为CeO₂-石墨烯电催化剂!

清华大学重磅EST:植物自导电闪蒸焦耳热600°C/2600°C两步法!稀土超积累植物秒级转化为CeO₂-石墨烯电催化剂!

通讯作者:邓兵、刘建国通讯单位:清华大学DOI:https://doi.org/10.1021/acs.est.6c00603研究背景稀土元素(REEs)是清洁能源技术与电子器件不可或缺的核心原料,然而传统提取方式依赖能耗高、排放大的采矿与强…

2026/8/4 0:01:40 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/4 13:24:41 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/4 11:41:39 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/4 5:26:40 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/4 13:38:24 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/4 11:09:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/4 13:38:40 阅读更多 →