C语言的输入输出和条件判断

news2024/11/9 9:59:29

目录

数据类型、运算符与表达式

1.数据类型

基本数据类型包括

取值范围

2.常量和变量

常量

变量

定义变量

变量的分类

为什么要用变量

3.输入与输出

格式输出函数printf()

打印时的输出类型

格式输入函数scanf()

4.算术运算符和算术表达式

两个单目运算符和五个双目运算符

自增/自减运算符

逗号运算符和逗号表达式

求字节运算符

sizeof运算符

strlen函数

5.getchar、getch、putchar函数

6.关系运算符与关系表达式

优先级

7.逻辑运算符与逻辑表达式

8.if语句

9.条件运算符

10.switch语句


数据类型、运算符与表达式

1.数据类型

基本数据类型包括

  • 整数类型
    • 基本整型(int)
    • 短整型(short)
    • 长整型(long)
    • 双长整型(long long)
    • 字符型(char)
    • 布尔型(bool)
  • 浮点类型
    • 单精度浮点型(float)
    • 双精度浮点型(double)

取值范围

数据类型取值范围字节
char-128~1271字节(8位)
short-32768~327672字节(16位)
int-2147483648~21474836474字节(32位)
long-2147483648~21474836474字节(32位)
long long-9223372036854775808~92233720368547758078字节(64位)
float1.175*10^-38~3.402*10^384字节(32位)
double2.225*10^-308~1.797*10^3088字节(64位)

2.常量和变量

常量

常量包括:

  • 字面常量
    • 任何类型:布尔型、整型、浮点型、字符、字符串等
  • const修饰的常量
    • const修饰普通变量,结果为定义了一个常量,但是这个常量可以通过指针修改
  • #define修饰的标识符常量
    •  定义的标识符不占内存,只是一个临时的符号,预编译后这个符号就不存在了 
    • 使用:#define MAXSIZE 100
      • 代码中所有的MAXSIZE将会被替换为100
  • 枚举常量
    • enum 枚举类型名 {常量1,常量2,常量3,.......};

变量

定义变量

int a=10;

变量的分类

变量分为:全局变量和局部变量

  1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
  2. 全局变量的生命周期是:整个程序的生命周期。

在全局变量和局部变量同时存在时,优先执行局部变量

这一段代码输出的结果是15

为什么要用变量

输入时要先定义变量,循环时也需要变量的自增或自减……

此处定义的变量i的自增可以输出一串递增的数字。

3.输入与输出

格式输出函数printf()

格式:
printf(“格式控制字符串”,输出列表);

格式控制:由双引号括起来的字符串,用于指定输出格式。

输出表列:需要输出的数据列表,彼此间用逗号分隔,可以是任意合法的表达式。

打印时的输出类型

数据类型打印类型
char%c
short%hd
int

%d(十进制)

%o(八进制)

%x(十六进制)

long%ld
long long%lld
float%f
double%lf
数据类型打印类型
无符号数(十进制)%u
字符串%s
打印一个百分号(%)%%
float类型保留两位小数(包括小数点一共五位)%5.2f
标准化指数形式输出实数(标准保留六位小数)%e

%e:

小数点前必须有而且只能有一位为非零数字

格式输入函数scanf()

格式:
scanf(“格式控制”,地址表列);

输入数据时不可指定精度,但可指定宽度

4.算术运算符和算术表达式

两个单目运算符和五个双目运算符

单目正+
单目负-
*
/
取模%
加法+
减法-
  • 按照运算符的优先级别从高到低依次执行
  • 用+、-、*、/运算的两个数中有一个是double类型,那结果也是double型,这是因为所有实数都按double型进行运算

自增/自减运算符

int a=1;

a=a+1;

printf("%d",a);

这里表示a=a+1;的语句也可以写成:

  • a+=1;
  • a++;
  • ++a;

但是a++和++a还是有区别的

int a=1;

int b=a++;

printf("%d\n",a);

printf("%d\n",b);

int c=++a;

printf("%d\n",a);

printf("%d\n",c);

逗号运算符和逗号表达式

//输出9 9 8

主要是为了更好的利用一行的空间,使得代码更加紧凑

求字节运算符

sizeof运算符

运算符sizeof用于计算数据类型所占字节数,就是计算该数据所占空间大小。单位是字节,是求字节数运算符。

对于字符串来说,是以‘/0’结尾的,sizeof运算符也会计算‘/0’

//输出8,9,6

for(int i=0; i < sizeof(str); i++{

}

strlen函数

使用时记得加头文件 #include<string.h> 

strlen()函数遇‘\0’结束

//输出3  9

5.getchar、getch、putchar函数

  1. getchar()和getch()所需要包含的头文件不同,一般是用getchar()
  2. getchar() 函数只能接收一个字符,其函数返回值就是从输入端得到的一个字符。
  3. putchar:putchar 函数打印它的参数
    	putchar(a);
    	
    	//等价 printf
    	printf("%c",a); 

6.关系运算符与关系表达式

大于>
大于等于>=
小于<
小于等于<=
不等于!=
等于==

得到的都是关系表达式的真值或者假值

优先级

优先级从小到大:

赋值运算(类似于int a=1)-->关系运算(类似于a!=b)-->算术运算(类似于a+b)

7.逻辑运算符与逻辑表达式

  逻辑运算的真假值

ab!a!ba&&ba||b

8.if语句

用法:

if (表达式1){

       语句1;

}

else if (表达式2){

       语句2;

}

else{

       语句3;

}

9.条件运算符

条件运算符(?:)是唯一一个三目运算符,可以有效减少代码量

10.switch语句

用法:

switch(表达式){
        case 常量1:语句1
        case 常量2:语句2
        default:语句n   
        break;
}

如果输入了一个switch语句中没有的常量值,就会执行default后的语句。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++设计模式_10_ Prototype 原型模式(小模式,不太常用)

Prototype 原型模式仍然属于“对象创建模式”模式的一种。前面两篇介绍的工厂方法模式和抽象工厂模式的流行程度要远大于Prototype 原型模式和builder构建器模式&#xff0c;后两种由于较为简单&#xff0c;介绍篇幅也会少一些。 文章目录 1. 动机 (Motivation)2. 代码演示Prot…

解决方案 | 法大大电子签助力融资租赁突围数字化

融资租赁作为我国非银金融市场的重要组成部分&#xff0c;具有融资和融物两方面功能&#xff0c;不仅能够拓宽市场主体的融资渠道&#xff0c;而且也是促进先进制造业、战略性新兴产业、绿色产业等领域高质量发展的重要助力。 2023年以来&#xff0c;多地相继出台了一系列鼓励…

众和策略:股票中总量和现量是什么意思?

股票商场是出资者最常用的一种出资办法之一&#xff0c;股票的价格动摇与供需联系有很大的联系。而供需联系中&#xff0c;总量和现量被广泛关注&#xff0c;它们别离指的是某一时期内的股票发行总量和现有交易量。在本文中&#xff0c;咱们将从多个角度分析股票中总量和现量的…

[每周一更]-(第68期):Excel常用函数及常用操作

日常工作&#xff0c;偶尔也会存在excel表格入库的情况&#xff0c;针对复杂的入库情况&#xff0c;一般都是代码编号&#xff0c;读文件-写db形式&#xff1b;但是有些简单就直接操作&#xff0c;但是 这些简单的入库不仅仅是直接入库&#xff0c;而是内容中有部分需要进行映射…

接口测试(jmeter和postman 接口使用)

接口测试基础知识 接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。把前端&#xff08;client&#xff09;和后端&#xff08;server&#xff09;联系起来&#xff0c;测试的重点是要检查数据的交换&#xff0c;传递和控制管理过程&#xff0c;以及系…

Keeplived安装部署(单机双机)

Keeplived官网&#xff1a;https://www.keepalived.org/download.html 一 单机安装配置: 1.上传keepalived安装包并且安装 [rootmaster1 local]# tar -zxvf keepalived-2.2.8.tar.gz [rootmaster1 local]# mv keepalived-2.2.8 keepalived [rootmaster1 local]# chown root:r…

docker安装es分词插件ik详情步骤

1.下载ik查询 根据es版本去下载对应的版本&#xff0c;游览器中输入下面下载链接 https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.7.1/elasticsearch-analysis-ik-8.7.1.zip 2.2.若有对应版本跳过&#xff0c;若没有对应版本&#xff08;比如我需…

将语义分割的标注mask转为目标检测的bbox

1. 语义分割标签 1.1 labelme工具 语义分割的标签是利用labelme工具进行标注的,标注的样式如下: 1.2 语义分割的标签样式 2. 转换语义分割的标注到目标检测的bbox 实现步骤 (1) 利用标注的json文件生成mask图片(2) 在mask图片中找到目标的bbox矩形框的左上角点和右下角点(…

TCP通信-使用线程池优化

下面的通信架构存在问题&#xff1a; 客户端与服务端的线程模型是&#xff1a; N-N的关系&#xff0c;客户端并发越多&#xff0c;系统瘫痪的越快。 引入线程池处理多个客户端消息 代码实现 public class ClientDemo1 {public static void main(String[] args) {try {Syste…

C++是不是最容易产生猪队友的编程语言之一?

C是不是最容易产生猪队友的编程语言之一&#xff1f; 猪队友不是什么编程语言产生的&#xff0c;而是其做派本身就是猪队友&#xff0c;比如说自己一知半解的东西用得飞 起&#xff0c;而且不愿意深层次去学;再比如说不愿意写单元测试&#xff0c;甚至普通的测试都懒得做。最近…

在chrom浏览器安装Vue.js devtools插件,遇到恶意扩展程序字样,附百度网盘下载链接

遇到的问题 拖拽下载好的 Vue.js devtools 插件到谷歌扩展程序&#xff0c; 百度网盘下载地址 链接&#xff1a;https://pan.baidu.com/s/1FeK6pwc2UzRUUlMFN3rW5w?pwdw361 提取码&#xff1a;w361 提示&#xff1a; 解决办法 将Vue.js devtools 插件的后缀从.crx改为.zi…

C# 文件 校验:MD5、SHA1、SHA256、SHA384、SHA512、CRC32、CRC64

文件 校验 算法:MD5、SHA1、SHA256、SHA384、SHA512、CRC32、CRC64 编程语言:C# 文件属性内容 校验算法:MD5、SHA1、SHA256、SHA384、SHA512、CRC32、CRC64。 核心代码: using System; using System.Collections.Generic; using System; using System.Text; using Syst…

提升APP的用户体验的方法

提高APP的用户体验&#xff08;User Experience&#xff0c;简称UX&#xff09;对于吸引用户、提高用户满意度和应用的成功至关重要。以下是一些方法&#xff0c;可以帮助改善APP的用户体验&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包…

K8s 概念及组件

K8s 的全称为Kubernetes&#xff0c;是一种开源的容器编排平台&#xff0c;用于自动化部署以及扩展和管理容器化的应用程序&#xff0c;它提供了一种容器编排和管理的方式&#xff0c;可以帮助开发人员更轻松的管理容器化的应用程序&#xff0c;并且提供了一种跨多个主机的自动…

内存爆炸、CPU100%问题定位

目录 一、内存爆炸相关1、关于-Xms(最小堆内存)和-Xmx(最大堆内存)2、JVM初始化时申请实际物理内存3、OutOfMemory问题排查(1) 堆内存溢出排查(2) 堆外内存溢出排查 二、CPU 100及死锁问题定位1、CPU 100问题排查(1) 找到程序对应进程号(2) 查找进程对应的线程编号(3)查看线程堆…

根据Excel表格数据去修改数据库数据

一、背景 项目上线&#xff0c;实施任务发来一份Excel表格数据 需要将供应商和生产厂商进行绑定&#xff0c;因为数据过多&#xff0c;实施人员一个个绑定时间成本过高&#xff0c;想让开发给出一个脚本。 二、操作 比如这些数据 生产厂商为A 供应商为B 以update 语句为例 …

基于Vertx实现可配置及可扩展的IOT服务

搭建框架的目标 相信写过IOT服务的伙伴应该知道&#xff0c;面对各种千奇百怪的通信协议&#xff0c;特别是16进制报文的协议&#xff0c;有些协议看的确实有点让人头疼。但这些协议中也有很多共性&#xff0c;不必针对每过协议都把一些业务无关的代码再撸一遍。 搭建这个项目主…

【Javascript】‘var‘ is used instead of ‘let‘ or ‘const‘

解决&#xff1a; 设置完之后,var 就不会再出现黄色波浪线警告

普通二维码跳转微信小程序实战

简介 服务端springboot项目,前端基于uniapp的微信小程序,要求扫描二维码之后进入到小程序指定页面,下面记录一下实现过程以及过程中遇到的问题. 实现过程 下面是成功跳转的配置截图: 首先说下二维码规则,这个地方需要填写扫描二维码之后打开的地址,这个地址在我的项目里…

Keil实现Flash升级跳转(STM32/GD32/HC32)

编写BOOT程序&#xff0c;和APP程序。 BOOT程序检查OTA参数&#xff0c;执行OTA升级&#xff0c;然后跳转到APP代码。 记录一下跳转APP需要修改得东西&#xff1a; 1、BOOT程序 修改跳转地址 先检查APP地址是否有效 然后关闭外设 反初始化 设置MSP指针&#xff0c;进行跳转 …