news 2026/8/7 10:57:40

c语言(输入与输出语句)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
c语言(输入与输出语句)

C语言基础

算法基础

算法的定义

广义上,为解决一个具体问题而设计的有限、可行的操作步骤集合,称为“算法”。算法的五大核心特征

有穷性、可行性、确定性、输入、输出

流程图

直观描述算法的工具

程序的三种基本结构

顺序结构

分支结构(条件结构/选择结构)

循环结构(重复结构)

​ 当型循环:先判断,后执行

​ 直到型循环:先执行,后判断

C语句

定义

C程序以函数为基本执行单元

函数的执行部分由若干条C语句构成,每条语句完成特定的操作

所有的C语句必须依赖函数存在

C程序结构

C语句分类

①控制语句:

​ 作用:控制程序的执行流程

​ 常用控制语句:if-else、switch-case、for、do-while、continue、break、return、goto(不推荐)

②函数调用语句:

​ 构成:函数调用+;

包括标准库函数调用语句和自定义函数调用语句

③表达式语句:

​ 构成:表达式+; 构成的语句。运算符+操作数/运算数 构成的式子叫做表达式。表达式自身也可以是操作数。

④空语句:

​ 构成:仅一个分号(;),无实际操作

​ 用途:作为循环体占位符、分支结构默认操作等

⑤复合语句:

​ 构成:用大括号{}括起来的若干条语句(可包含变量声明,执行语句)

​ 特点:在语法上视为一条语句;常用于循环体、分支体等需要多条语句的场景。

数据的输入与输出

输出(output):计算机向外部设备输送数据。

输入(input):外部设备向计算机输送数据。

与硬件交互的操作称为外设IO

用printf函数输出数据

printf基础语法

printf("格式化控制字符串",输出列表)

引入头文件

#include<stdio.h>

注意:格式控制字符串格式化符(%d)需要与输出列表的变量/常量/表达式类型、数量一一对应。

格式控制字符串构成:

①格式说明符:由% + 特定字符组成,指定输出数据的类型和格式。(printf中的%f兼容float和double,scanf中%f必须对应float,%lf必须对应double)

②普通字符:直接原样输出的说明性文字、符号

输出列表要求:

可包含常量、变量、表达式。

输出列表的个数必须与格式化说明符的个数一致。

输出数据的格式化精细化控制

整型数据的格式控制

核心格式:%[标志] [宽度] 类型,标志可选,宽度为非负整数m

常用标志:

-:左对齐(默认右对齐)

0:不足宽度时用0填充(默认用空格填充)

+:强制显示正负号(正数显示+,负数显示-)

宽度m的规则:

若实际数据位数<m:按对齐方式填充(空格或0)

若实际数据位数> =m:忽略宽度,按实际位数输出

字符型与字符串型的格式控制

①字符型(%mc, %-mc)

格式规则与整型一致,m为输出宽度。

②字符串型(%ms, %-ms, %m.ns, %-m.ns)

核心格式%[标志] [宽度]. [截取长度]s

关键参数:

m:输出总宽度

n:截取字符串的前n个字符(n>字符串长度,则全部输出)

标志规则:

-:左对齐(默认右对齐)

无标志:不足宽度时使用空格填充

浮点型数据的格式控制

核心是总宽度m小数/尾数位n

三种形式:

格式控制语法说明
十进制形式%[标志] m.nf/%[标志] -m.nfm:总宽度n:保留的小数位数(四舍五入)
指数形式%[标志] m.ne/%[标志] -m.nem:总宽度n:保留的尾数位数
自动适配形式%g/%G自动选择较短格式,同时去除无意义的末尾0和多余小数点

用scanf函数输入数据

scanf基础语法

scanf("格式化控制字符串",地址列表);

引入头文件

#include<stdio.h>

变量除了拥有变量名外,还拥有其在内存的编号,这个编号称为内存地址。(两种访问方式:通过变量名/通过地址)

核心注意事项

1.地址列表必须是内存地址,不能直接传变量、常量、表达式

​ 普通变量:通过&变量名获取地址

​ 字符串数组:数组名本身就是首地址,无需加&

2.格式控制字符串的规则:

​ 格式说明符需要与输入数据类型、地址列表顺序一一对应。

​ 若格式控制字符串 中包含普通字符(如逗号、短横线、文字),输入时必须在对应位置输入相同字符。

输入分隔规则:多个数据可以通过空格、Tab、回车键任意一个进行分隔。

1.带普通字符的格式控制

scanf("%d,%d",&a,&b);//输入格式:3,4scanf("%d-%d-%d");//输入格式:2026-8-3scanf("%d年%d月%d日")//输入格式:2026年8月3日

%c会读取输入缓冲区中的所有字符(包括空格、Tab、\n),视为有效输入。

2.数值型数据的输入与结束条件:

输入整型(%d/%u等),浮点型(%f/%lf),遇到非法字符(字母、符号等)视为输入结束。

3.无符号类型的输入:

推荐用%u,匹配unsigned int,避免符号位错误;若用%d可能因为符号位解析错误导致溢出。

%*3d跳过三列

补充格式说明符

%n:统计已读取的字符个数;

输入输出缓冲区

​ 概念:是内存中专门用于暂存输入/输出数据的区域,本质是“数据中转站”

输入数据流向:外部设备(键盘)→输入缓冲区→程序(变量/数组)

输出数据流向:程序→输出缓冲区→外部设备(显示屏)

寄存器->内存->磁盘

清理缓冲区代码:

while(getchar()!='\n');
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/7 10:56:21

MySQL复合查询优化与实战技巧

1. MySQL复合查询核心概念解析 复合查询是MySQL数据库操作中的高级技巧&#xff0c;它允许我们将多个简单查询组合成一个更复杂的查询语句。在实际业务场景中&#xff0c;我们经常需要从多个角度分析数据&#xff0c;这时候复合查询就能发挥巨大作用。 我处理过的一个电商系统…

作者头像 李华
网站建设 2026/8/7 10:56:14

分布式温度监控系统架构设计:从传感器到告警的实战解析

1. 项目概述&#xff1a;从单点到集群的温度监控演进 做设备监控或者环境监测的朋友&#xff0c;对温度数据采集肯定不陌生。早年我参与过一个大型机房的温湿度监控项目&#xff0c;最初就是用几个独立的传感器加一个本地采集器&#xff0c;数据存在单机数据库里。机房规模小的…

作者头像 李华
网站建设 2026/8/7 10:55:06

SpringSecurity核心配置与高级安全实践指南

1. SpringSecurity核心配置解析 SpringSecurity作为Java生态中最主流的权限框架&#xff0c;其配置体系一直是开发者从入门到精通的必经之路。我经历过从早期XML配置到如今全注解驱动的完整演进过程&#xff0c;今天就来拆解这套配置体系的核心脉络。 提示&#xff1a;SpringS…

作者头像 李华
网站建设 2026/8/7 10:53:26

RT-Thread AT组件驱动ESP8266:从原理到实战的嵌入式Wi-Fi开发指南

1. 项目概述&#xff1a;为什么选择AT组件连接ESP8266&#xff1f; 在嵌入式开发领域&#xff0c;尤其是基于RT-Thread这类实时操作系统的项目中&#xff0c;Wi-Fi模块的集成是一个高频需求。ESP8266以其极高的性价比和成熟的生态&#xff0c;成为了无数开发者的首选。然而&…

作者头像 李华
网站建设 2026/8/7 10:52:48

Python爬虫实战:豆瓣电影TOP250数据采集与反爬策略详解

1. 项目概述与核心价值 豆瓣电影TOP250榜单&#xff0c;对于任何一个对电影感兴趣的人来说&#xff0c;都是一个绕不开的“宝藏片单”。它不仅是影迷的观影指南&#xff0c;更是数据分析、内容运营乃至学术研究的重要数据源。这个项目&#xff0c;就是通过技术手段&#xff0c;…

作者头像 李华
网站建设 2026/8/7 10:51:54

快速找回7z/Zip/Rar加密压缩包密码:开源工具终极指南

快速找回7z/Zip/Rar加密压缩包密码&#xff1a;开源工具终极指南 【免费下载链接】ArchivePasswordTestTool 利用7zip测试压缩包的功能 对加密压缩包进行自动化测试密码 项目地址: https://gitcode.com/gh_mirrors/ar/ArchivePasswordTestTool 你是否曾因忘记加密压缩包…

作者头像 李华