scanf标准函数可以从键盘得到数字并记录到存储区里,为了使用这个标准函数需要包含stdio.h这个头文件

在scanf函数调用语句里应该使用存储区的地址表示存储区;双引号里使用占位符表示存储区的类型,

在scanf函数调用语句里尽量不要写不是占位符的内容,如果用户输入的格式和程序要求的格式不同

程序就无法获得数字,可以在一条scanf函数调用语句里获得多个数字。

练习:

编写程序从键盘获得一个浮点数,把这个浮点数作为半径计算圆的周长并把结果显示在屏幕上

include<stdio.h>

int main(){

float num=0;

scanf("%g",&num);

printf("输入的值为:%g\n",num);

return 0;

}



  一个字节可以分成八段,每段可以用来记录一个0或者1,

要想把一个数字记录到一个字节里就必须首先拆分成8个0或者1,用一组0或者1表示数字的方法叫二进制,

任何一个数字既可以用十进制方式标志也可以使用二进制方式表示,计算机里只能记录用二进制表示的数字

二进制数字中每个位置有一个编号,最右边位置的编号为0,向左依次递增

二进制数字中每个数位里的1单独代表一个数字,这个数字就是2的数位次方

二进制数字中如果两个相邻数位的内容一样,则左边数位的内容是右边数位内容的2倍

二进制表示的非负数符合以上规则,二进制数字加一的时候把编号为0位置开始的连续多个1变为0

把最右边的0变为1,任何数字除以2并保留整数部分的结果相当于去掉最右边二进制数位的内容

二进制表示的非负数转换成十进制的时候,只需要把每个数位的内容单独转换然后再把转换结果求和

`0000	0011=2的1次方+2的0次方=2+1=3`

十进制表示的非负数转换成二进制的方法,不停对原始数字进行除以2并保留整数部分的操作

得到一组数字,用每个数字除以2取余得到一个数位的内容,把所有数位的内容从后向前倒序书写就得到转换结果

负数的二进制和十进制之间不能直接转换,必须借助相反数,转换过程分三步,首先计算相反数,

然后把相反数进行转换最后再次计算相反数

把二进制数字每个数位的内容变成相反数字然后再加一得到相反数的二进制。比如:

`-14

14

0000	1110

1111	0001

1111	0010(-14的二进制)
` 有符号类型的二进制数字中最左边的数位叫做符号位,他的内容可以用来判断数字是负数还是非负数。 符号位内容是0表示非负数,符号位内容是1表示数字是负数。比如: `1100 1011 0011 0100+1=0011 0101=-53` 把二进制的数字的 数位从右向左每三个分成一组,每组用一个0到7之间的数字替换 这个替换结果叫做数字的八进制表示方式。比如: `0100 1010 01 101 010 1 5 2=152(八进制)` 可以在程序里直接使用八进制方式表示数字,这种数字必须以0做开头 可以在printf函数调用语句里使用%o做占位符把数字的八进制发表示方式显示在屏幕上 把二进制数字的数位从右向左每四个数位分成一组,每组用一个字符替换(用a到f之间的字母替换10到15之间的数字) 这个替换结果叫数字的十六进制表示方法 `1100 1011 cb(十六进制)
` 可以在程序里使用十六进制方式表示数字,这种数字必须以0x做开头 可以在printf函数调用语句里使用%x或%X做占位符把数字的十六进制表示方式显示在屏幕上 用%x做占位符的手数字里的所有字母都是小写的,用%X做占位符的时候数字里的所有字母都是大写的 操作符代表了对数字的计算规则,根据操作符所需要配合的数字个数可以把操作符分为 单目操作符、双目操作符和三目操作符。 C语言里使用+、-、*和/表示加减乘除四则运算 如果参与除法计算的两个数是整数;则计算结果只保留整数部分,C语言里用%表示取余数操作, 赋值操作符用=表示,这个操作符可以把一个数字记录到一个存储区里 赋值语句可以当作数字使用,这个数字就是复制完成后左边存储区里的数字 可以在一条语句里使用多个赋值操作符,这个时候首先计算**右边**的赋值操作符 大多数双目操作符可以和赋值操作符合并成为复合赋值操作符,如:+=,/=等 复合赋值操作符也要求左边的内容可以代表存储区,右边的内容可以代表数字 复合赋值操作符把双目操作符的计算结果记录到左边的存储区里 复合赋值操作符的优先级和赋值操作符一样低 自增操作符(++)和自减操作符(--)都是单目操作符,**这两个操作符都必须和存储区配合使用** 他们可以把存储区的内容加一或减一,他们都有两种使用方法。 一种是前操作(操作符写在存储区的前面);另一种是后操作(操作符写在存储区的后面) 使用这两个操作符编写的表达式可以当作数字使用,前操作当作数字使用的时候是 修改后的数字,后操作当作数字使用的时候是修改前的数字 不要在一条语句里对同一个变量多次进行自增或自减计算 逻辑操作符用来编写逻辑表达式,逻辑表达式的结果只能是布尔值 !是一个单目逻辑操作符,它用来计算一个布尔值的相反值,这个操作符使用的时候应该写在一个布尔值的前面 双目逻辑操作符包括==(等于)、!=(不等于)、<(小于)、 >(大于)>=(大于等于)和<=(小于等于) 最多包含一个双目逻辑操作符的表达式叫做简单逻辑表达式, 这种逻辑表达式在数学里的结果和在C语言里的结果一定相同 在C语言里编写逻辑表达式的时候如果逻辑表达式里包含多个双目逻辑操作符 就必须拆分成多个简单逻辑表达式然后再合并 可以使用与(&&)和或(||)把两个逻辑表达式合并成一个如果两个逻辑表达式里有一个的结果是真 则用或(||)连接以后结果就是真,如果两个表达式里有一个的结果是假则用与(&&)连接以后结果就是假 与(&&)和或(||)都有短路特征 (如果前一个逻辑表达式的结果可以决定合并后逻辑表达式的结果就可以忽略后一个逻辑表达式) 练习:
男人身高减体重小于105算超重
女人身高减体重小于110算超重
gender(0代表女人,1代表男人)
height 身高
weight 体重
编写逻辑表达式当超重的时候得到结果为真 ```c
(gender &&(height-weight<105))||
(!gender &&(height-weight<110) )

练习:

编写程序从键盘得到一个数字,判断这个年份是不是闰年并把这个结果显示在屏幕上

如果年份数字可以被4整除但不能被100整除就是闰年

如果年份可以被400整除也是闰年

/*
*
*编写程序从键盘得到一个年份数字,判断这个年份
*是不是闰年并把结果显示在屏幕上
*如果年份数字可以被4整除但不能被100整除就是闰年
*如果年份数字可以被400整除也是闰年
*
* */
#include<stdio.h>
int main(){
int year=0;
printf("请输入一个年份:\n");
scanf("%d",&year);
int tmp=0;
tmp=(!(year%4) && year%100) || !(year%400);
printf("判断结果是%d\n",tmp);
return 0;
}

C语言数据类型、变量的输入和输出、进制转换的更多相关文章

  1. 一起talk C栗子吧(第七回:C语言实例--进制转换)

    各位看官们.大家好,从今天開始.我们讲大型章回体科技小说 :C栗子,也就是C语言实例. 闲话休提, 言归正转.让我们一起talk C栗子吧! 看官们.上一回中咱们说的是生成随机数的样例.这一回咱们说的 ...

  2. C语言 进制转换

    这个程序仅仅是由十进制转换为其他进制的过程,其转换的规则如下图所示. 我使用的思路:首先在除基的过程中用一个数组保存余数,然后在输出进制转换结果的时候倒序输出,并且在输出前判断余数是否大于10,如果大 ...

  3. 不可或缺 Windows Native (4) - C 语言: 预处理命令,输入,输出

    [源码下载] 不可或缺 Windows Native (4) - C 语言: 预处理命令,输入,输出 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 预处理命令 输入 ...

  4. Problem X: C语言习题 学生成绩输入和输出

    Problem X: C语言习题 学生成绩输入和输出 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 4722  Solved: 2284[Submit] ...

  5. YTU 2429: C语言习题 学生成绩输入和输出

    2429: C语言习题 学生成绩输入和输出 时间限制: 1 Sec  内存限制: 128 MB 提交: 1897  解决: 812 题目描述 编写一个函数print,打印一个学生的成绩数组,该数组中有 ...

  6. Java基础复习之一篇:关健字,标识符,注释,常量,进制转换,变量,数据类型,数据类型转换

    1.关健字 1.1.被Java语言赋予特定意义的单词(如:class,interface,public ,static) 1.2.全部是小写 1.3.注意事项(goto和const作为关健字保留起来) ...

  7. 2 Java基础语法(keyword,标识符,凝视,常量,进制转换,变量,数据类型,数据类型转换)

    1:keyword(掌握) (1)被Java语言赋予特定含义的单词 (2)特点: 所有小写. (3)注意事项: A:goto和const作为保留字存在. B:类似于Notepad++这种高级记事本会对 ...

  8. 大数据学习--day02(标识符、变量、数据类型、类型转换、进制转换、原码反码补码)

    标识符.变量.数据类型.类型转换.进制转换.原码反码补码 标识符: java50个关键字不能做标识符,以数字开头不能做标识符(这个老是忘记写一个类名的时候) 变量: 变量分为成员变量和局部变量,注意作 ...

  9. JAVA之旅(一)——基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算

    JAVA之旅(一)--基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算 Android老鸟重新学一遍JAVA是什么感觉?枯燥啊,乏味啊,而且归纳写博客,都 ...

  10. java se系列(二) 关键字、注释、常量、进制转换、变量、数据类型转换、运算符

    1 关键字 1.1 关键字的概述 Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名.方法名.类名.包名. 1.2 常见的关键字 备注 ...

随机推荐

  1. IPFS 解决国内 docker mirror 封锁

    IPFS 解决国内 docker mirror 封锁 内容仅用于研究,帮助开发者学习技术知识,以建设祖国 IPFS 技术是当前 Web3 的主要基建设施,提供去中心化存储,以及 libp2p 的去中心 ...

  2. JMeter While循环控制器应用之遍历获取文件参数

    While循环控制器应用之遍历获取文件参数 by: 授客 QQ:1033553122 测试环境 JMeter-5.4.1 应用 实现单线程在单次迭代内遍历获取文件参数 说明:上图仅给出关键配置信息 注 ...

  3. java面试一日一题:mysql执行delete数据真的被删除了吗

    问题:请讲下mysql执行了delete操作,数据真的被删除了吗 分析:这个问题考察对mysql底层存储的理解. 回答要点: 主要从以下几点去考虑, 1.肯定没有真正删除? 2.为什么这样设计? my ...

  4. mybatisplus实现一次多表联查+分页查询

    众所周知,mybatisplus非常好用,但是他不好用就不好用在不可以多表联查.在mybatisplusjoin中提供了联查的方法,那个参数我没看懂Orz 不过,历经千辛万苦,我通过xml终于写出来了 ...

  5. 【MySQL】查询是否连续5次失败

    场所房间表 场所编号和房间号联合唯一, 一对多关系 场所编号关联商家ID,一对一关系 CREATE TABLE `aisw_room` ( `ID` int(11) NOT NULL AUTO_INC ...

  6. 【Java】POI Excel导出 动态行合并

    一般情况: Excel导出一般都是一行一行的记录输出 . 这是Controller代码: 标题行的设置: 标题行会设置获取的结果集的字段名,数据会自动根据设置的名称匹配装填 特殊的需求: 如页面的效果 ...

  7. 【Project】原生JavaWeb工程 03 单表的业务功能

    年级表效果图样例: 可以看到主要分为以下这些功能: 功能一:展示年级列表 功能二:每个年级都具备修改和删除 功能三:添加一个年级 功能四:对多个年级选中删除,也可以全选删除,或者反选删除 功能五:根据 ...

  8. 很好用的python游戏环境(续):强化学习算法走迷宫游戏环境(导航问题 navigation):分享一个python语言的迷宫游戏环境

    相关: 很好用的python游戏环境:强化学习算法走迷宫游戏环境(导航问题 navigation):分享一个python语言的迷宫游戏环境 前文分享了一个python下的maze游戏环境,本文再给出一 ...

  9. 【转载】 TensorFlow之name_scope/variable_scope

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/u013745804/article/de ...

  10. 如何安装废弃版本的Jax —— pypi服务器上不保存的python包应该如何安装

    python的公开扩展包的存储是在网站: http://pypi.org/ 一般情况下,这是没有问题的,但是对于一些更新版本比较多的扩展包就出现了问题,因为pypi的服务器对每个项目(扩展包)都是由存 ...