01-01-4

1、字符的大小写转换

对应的代码:

D:\Book\数据类型与运算符\数据类型与运算符\5、字符的大小写转换

int main()
{
    char c = 'a';//现在是小写字母a,要变为大写字母A。虽然赋值是字符a,但是本质上是将该字符对应的ASCII值放到该变量中
    c = c - 32;//由于c中放的是字符对应的ASCII值,所以字符的加减运算,本质就是对应的ASCII值间的加减运算,小写字母的ASCII值比大写字母的ASCII大32
    printf("%c", c);//将c中的数据以字符的格式输出
    return 0;
}

2、字符串常量

用双引号引起,内部有一个或多个字符的数据,就是字符串常量。如:”nihao123.45“

计算机中,字符串虽然是一串字符,但是仍将其拆分,每一个字符占用一个字节空间。对于用双引号引起的字符串,最后会多一个结束符\0,其仍然占用一个字节的空间。所以,对于双引号引起的字符串,占用的字节空间数会比看到的字符个数多一个。

字符在内存中,会以其对应的ASCII值进行存储。字符\0的ASCII值还是0。所以:'\0'=0。

对应代码

3、除法

整型除法

只有两个操作数都是整型时,才能进行整型除法

浮点型除法

只要有一个操作数时浮点型时,进行的就是浮点型除法

浮点型除法的小数部分,是在产生结果的同时产生,而不是放入浮点型变量后才产生的。

本次代码

D:\Book\数据类型与运算符\数据类型与运算符\6、混合运算

int main()
{
    int i = 5;
    float j = i / 2;//i是整型,2也是整型,两个整型进行除法运算,得到的还是整型数据,i/2得到的结果是2,将2放到浮点型变量中,最后在按照浮点型格式输出,所以会输出2.000 000.浮点型默认小数点后有6位
    printf("%f\n", j);
    float k = (float)i / 2;//此时将i强制转换为float类型,此时进行的是浮点型运算,所以得到的结果为2.5,将其存放到浮点型变量k中,最后按照浮点型变量打印,所以得到2.500 000
    printf("%f\n",k);//注意,浮点型除法计算结束后,得到的数据的小数点后就有6位小数。6位小数不是在放到浮点型变量中时产生的,而是得到浮点型数据时产生的。
    float m = i / 2.0;//总结,如果要进行浮点型除法,两个操作数中,至少有一个变量是浮点型才能进行浮点型的除法。即除法的结果才会有小数产生
    printf("%f\n", m);
    return 0;
}

4、输入输出函数

printf():输出到黑窗口,输出到了标准输出

scanf():读取的是标准输入

A.scanf()

a.scanf()的定义:

int scanf(const char* format, ...)

该函数的返回值是一个整数,表示读取数据成功的个数。

...:表示可变参数,即参数的个数必须与前面的format字符串中的%的数目保持一致。

format:表示该位置放置的是字符串,如:”%d%f%c“等。

b.scanf()的原理

例一:连续使用scanf()不阻塞的问题

从黑窗口,输入10,这个10,就会被放到标准输入缓冲区。在黑窗口中再输入回车换行符,会将这个回车换行符,也放到标准输入缓冲区中。此时的标准输入缓冲区中的数据为10\n。

缓冲区中的数据,都是以字符的形式存在。当执行scanf("%d",&i)时,%d:表示需要读取数据作为整型变量使用。此时就会将标准输入缓冲区中的10这两个字符,转换为10这个整型,并将这个整型数据放到对应变量i中。

scanf()会将缓冲区中的字符转换为需要的类型,在放到对应变量中。

注意:标准输入缓冲区中的\n符号,会促使scanf()读取缓冲区中的字符,并将其转换为所需的类型数据。

当10被scanf()读取后,缓冲区中还有一个\n符号。

只有当缓冲区为空时,scanf()才能起到阻塞的作用。

本次代码:
int main()
{//输入10\n
    int i;
    char c;
    scanf("%d", &i);
    printf("i=%d", i);//此时i读取的是10
    scanf("%c", &c);
    printf("c=%c", c);//此时c读取的是换行符
    return 0;
}

例二:弥补scanf()不阻塞的问题
本次代码
int main()
{
    int i,j;
    char c;
    scanf("%d", &i);
    printf("i=%d", i);
    scanf("%j", &j);
    printf("j=%d", j);
    return 0;
}
说明

此时输入10\n,此时会由于第二个scanf()阻塞程序,进而可以继续输入。

虽然此时的缓冲区没有清空,但是依然可以读取。

原因是:当scanf()读取整型、浮点型、字符串(整型、浮点、字符串)时,会自动清除前面遗留的换行符、空格符号,直接匹配有效数据。

读取字符型,不会清除前面遗留的换行、空格。因为是读取字符,所以每个符号都会读取。

本次代码:

D:\Book\数据类型与运算符\数据类型与运算符\7、scanf读取标准输入缓冲区的原理

5、scanf()一次读取两个整型数

scanf()一次读取多个数据

代码不加空格:

输入:10 空格 3

10被第一个%d读取

空格被第二个%d读取,后面的3直接被第二个%d匹配

代码加空格

当编写代码存在空格时,输入时的空格就会自动匹配到代码中的空格处。

本次代码:

D:\Book\数据类型与运算符\数据类型与运算符\8、scanf读取两个整型数

6、判断闰年

闰年可以 被400整除 或者 被4整除且不能被100整除

本次代码

D:\Book\数据类型与运算符\数据类型与运算符\9、判断闰年

int main()
{
    int year;
    scanf("%d", &year);
    if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0)
    {
        printf("是闰年\n");
    }
    else
    {
        printf("不是闰年\n");
    }
    return 0;
}

参考视频

链接:https://pan.baidu.com/s/1nsJ6a15dqRoye00i3EJsKg?pwd=q5ei 
提取码:q5ei

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/608576.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

QAnything 在mac M2 上纯python环境安装使用体验(避坑指南)

这是一篇mac m2本地纯python环境安装 qanything的文章。安装并不顺利,官方提供的模型无法在本地跑。 这篇文章记录了,使用xinference来部署本地模型,并利用openAi的通用接口的方式,可以正常使用。 记录了遇到的所有的问题&#xf…

新手做抖音小店,卖什么最容易出单?抖音必爆类目来了!

哈喽!我是电商月月 新手做抖音小店没有经验,也不了解市场需求,最好奇的就是:卖什么商品最容易出单,还在犹豫的朋友可以看看这五种类目,在2024年下半年必定火爆一次 一.生活电器类 天气炎热&a…

正点原子Linux学习笔记(六)在 LCD 上显示 jpeg 图像

在 LCD 上显示 jpeg 图像 20.1 JPEG 简介20.2 libjpeg 简介20.3 libjpeg 移植下载源码包编译源码安装目录下的文件夹介绍移植到开发板 20.4 libjpeg 使用说明错误处理创建解码对象设置数据源读取 jpeg 文件的头信息设置解码处理参数开始解码读取数据结束解码释放/销毁解码对象 …

30分钟彻底了解Flutter整个渲染流程(超详细)

30分钟彻底了解Flutter整个渲染流程[超详细] 从运行第一行代码出发WidgetsFlutterBinding初始化了一堆娃 三个中流砥柱SchedulerBindingRendererBindingWidgetsBinding 申请Vsync流程下发Vsync承接Vsync 从运行第一行代码出发 void main() {runApp(const MyApp()); }void runA…

卡码网模拟笔试题第十六期 |

A、构造二阶行列式 数字不大&#xff0c;直接四重循环暴力枚举 #include <iostream> using namespace std;int main() {int x;cin >> x;for (int i 1; i < 20; i) {for (int j 1; j < 20;j) {for (int x1 1;x1 < 20;x1) {for (int y 1;y<20;y){if…

2023-2024年家电行业报告合集(精选51份)

家电行业报告/方案&#xff08;精选51份&#xff09; 2023-2024年 报告来源&#xff1a;2023-2024年家电行业报告合集&#xff08;精选51份&#xff09; 【以下是资料目录】 空气炸锅出海品牌策划创意全案【家电出海】【品牌全案】 卡萨帝潮流消费品生活家电音乐节活动方案…

44.乐理基础-音符的组合方式-附点

内容参考于&#xff1a; 三分钟音乐社 首先如下图&#xff0c;是之前的音符&#xff0c;但是它不全&#xff0c;比如想要一个三拍的音符改怎样表示&#xff1f; 在简谱中三拍&#xff0c;在以四分音符为一拍的情况下&#xff0c;在后面加两根横线就可以了&#xff0c;称为附点…

山东齐鲁文化名人颜廷利:教育的本质区别重点是什么

教育的本质区别重点是‘方式’&#xff0c; 现在的教育却成为了一种‘形式’&#xff1b; 教育的核心价值关键载于‘实践’&#xff0c; 当前我们的教育观念却变成了消耗‘时间’&#xff1b; ‘读书’的原则在于‘堵疏’&#xff0c;作为汉语‘堵疏’一词&#xff0c;顾名思义…

亚马逊是如何铺设多个IP账号实现销量大卖的?

一、针对亚马逊平台机制&#xff0c;如何转变思路&#xff1f; 众所周知&#xff0c;一个亚马逊卖家只能够开一个账号&#xff0c;一家店铺&#xff0c;这是亚马逊平台明确规定的。平台如此严格限定&#xff0c;为的就是保护卖家&#xff0c;防止卖家重复铺货销售相同的产品&a…

多线程学习Day07

共享模型之不可变 从一个日期转换的问题开始 Slf4j(topic "c.Test1") public class Test1 {public static void main(String[] args) {SimpleDateFormat sdf new SimpleDateFormat("yyyy-MM-dd");for (int i 0; i < 10; i) {new Thread(() -> {…

使用GitLab自带的CI/CD功能在本地部署.Net8项目(二)

前置内容&#xff1a; 通过Docker Compose部署GitLab和GitLab Runner&#xff08;一&#xff09; 目录 一、创建代码仓库 二、创建GitLabRunner 三、注册Runner 四、配置Runner&#xff0c;绑定宿主Docker 五、创建.Net8WebApi项目进行测试 六、总结 一、创建代码仓库 …

Qt---项目的创建及运行

一、创建第一个Qt程序 1. 点击创建项目后&#xff0c;选择项目路径以及给项目起名称 名称&#xff1a;不能有中文、不能有空格 路径&#xff1a;不能有中文路径 2. 默认创建有窗口类myWidget&#xff0c;基类有三种选择&#xff1a;QWidget、QMainWindow、QDialog 3. m…

【C++11】线程库 | 互斥量 | 原子性操作 | 条件变量

文章目录 一、线程库 - thread1. 线程对象的构造方式无参构造带可变参数包的构造移动构造 2. thread类的成员函数thread::detach()thread::get_id()thread::join()thread::joinable() 线程函数参数的问题 二、互斥量库 - mutex标准库提供的四种互斥锁1. std::mutex2. std::recu…

【Ubuntu18.04+melodic】抓取环境设置

UR5_gripper_camera_gazebo&#xff08;无moveit&#xff09; 视频讲解 B站-我要一米八了-抓取不止&#xff01;Ubuntu 18.04下UR5机械臂搭建Gazebo环境&#xff5c;开源分享 运行步骤 1.创建工作空间 catkin_make2.激活环境变量 source devel/setup.bash3.1 rviz下查看模…

Oracle 修改数据库的字符集

Oracle 修改数据库的字符集 alter system enable restricted session; alter database "cata" character set ZHS16CGB231280; alter database "cata" national character set ZHS16CGB231280; alter system enable restricted session; alter database…

使用动态种子的DGA:DNS流量中的意外行为

Akamai研究人员最近在域名系统&#xff08;DNS&#xff09;流量数据中观察到&#xff1a;使用动态种子的域名生成算法&#xff08;Domain Generation Algorithm&#xff0c;DGA&#xff09;的实际行为&#xff0c;与对算法进行逆向工程推测的预期行为之间存在一些差异。也就是说…

C++ 基础 输入输出

一 C 的基本IO 系统中的预定义流对象cin和cout: 输入流&#xff1a;cin处理标准输入&#xff0c;即键盘输入&#xff1b; 输出流&#xff1a;cout处理标准输出&#xff0c;即屏幕输出&#xff1b; 流&#xff1a;从某种IO设备上读入或写出的字符系列 使用cin、cout这两个流对…

在Ubuntu上安装Anaconda之后,启动失败

为了方便管理Pythonu环境&#xff0c;在Ubuntu的Docker容器中安装了Anaconda&#xff0c;安装完成&#xff0c;启动时出现如下错误&#xff1a; conda activate xxx usage: conda [-h] [--no-plugins] [-V] COMMAND ... conda: error: argument COMMAND: invalid choice: acti…

Linux的基础IO:文件描述符 重定向本质

目录 前言 文件操作的系统调用接口 open函数 close函数 write函数 read函数 注意事项 文件描述符-fd 小补充 重定向 文件描述符的分配原则 系统调用接口-dup2 缓冲区 缓冲区的刷新策略 对于“2”的理解 小补充 前言 在Linux中一切皆文件&#xff0c;打开文件…

springcloud服务间调用 feign 的使用

引入依赖包 <!-- 服务调用feign --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency>创建调用外部服务的接口 需要使用的地方注入 使用 启动类增…