C语言第二次课笔记

一.变量的补充

1.浮点数的除法

两个数进行除运算
如果其中全是整数,除法相当于整除(即没有小数)
若其中有浮点数,结果就是准确的

2.自动类型转换

1.什么是自动类型转换

硬件不能将 char 型( 1 字节)数据与 int 型( 2 或 4 字节)数据直接参与运算;由于存储方式的不同(整型使用的是原,反,补,码进行存储,浮点型使用的是IEEE754标准进行存储),也不能将 int 型数据与 float 型数据直接参与运算。

在C语言中,一个表达式出现不同类型间的混合运算,较低类型将自动向较高类型转换即占的字节少的会向占字节数多的数据转换。

2.自动类型转换常见规则

1.当 char、short 出现在表达式中参与运算时,一般将其自动转换为 int 类型。
(记得char要加‘ ’)
2.当操作数中含有浮点型数据(float 或 double)时,所有操作数都将转换为 double 型。(选择题)
3.
在这里插入图片描述

3.赋值时变量类型不同

1.精度改变
会将右边的类型转换为左边的类型(与赋值相反),可能使右边的数据精度增加,也可能使精度降低(即最终结果存为等号左边的变量类型
eg 增高精度 单变双
在这里插入图片描述

eg 降低精度 如整型被浮点型赋值,小数点后的数会被省略
在这里插入图片描述
程序出错
右值超出左值类型范围时,结果可能毫无意义
在这里插入图片描述

4.强制转换:

#include <stdio.h>
int main(){
	int sum=(int)10.2+(int)1.2+(int)5.3;
	printf("%d",sum);	
}

二.表达式计算

概念

表达式是一运算符和算子的组合, 用来计算一个值
算子:指参与运算的值,可能是常数,也可能是变量,还可能是一个返回值

运算符

自增,自减:
a++: a=a+1
a–: a=a-1
二元运算符
+=,-=,*=,%=
a+=a: a=a+a;
a * =a: a=a * a
关系运算符(二元运算符)
【<、 > 、<=、 >=、 ==、 !=】
逻辑运算符(二元运算符)
【&&(逻辑与)、||(逻辑或)】

运算符的优先级
有拿不稳的地方就加括号,括号的优先级是在第一梯度

三.判断

1. 如果if 否则else

2. 逻辑判断优先级

1.从左向右进行判断

在这里插入图片描述
显示错误的原因:比较6>5>4,是从左向右开始判断,首先6>5正确,结果则为1,之后就变为1与4比较即显示为1>4,结果为错,所以输出为错误。

2.==和!=优先级比其他符号低
在这里插入图片描述
判断(5 > 3 == 6 > 4),根据优先级先判断5>3, 6>4.都是正确的,所以结果都为1,变为1=1,所以最终输出正确。

四.分支

与运算&&可以转换为if嵌套的形式

级联else if在这里插入图片描述
switch case
在这里插入图片描述

五. 循环

本质:多次执行同一条语句

while循环
当条件满足时,不 断地重复循环体内的语句。

while ( 循环条件 ) //循坏条件成立(值为1),就一直执行循环内的语句
{  
    语句
}

do while 循环

do{
     <循环语句>
}while(<循环条件>);//先开始循环语句一次,若结果满足循环条件再开始第二次循环

两种循环的区别
do-while循环和while循环很像,区别是do while 在 循环体执行结束的时候才来判断条件。即无论如何,循环都会执行至少一 遍,然后再判断条件。

求整数的位数

#include <stdio.h>
int main(){
  int x,n;
  scanf("%d",&x);
  while ( x > 0 ) {   
	x /= 10;
	n++;
  }
printf("%d",n);
}

循环的调试
选中一行后,点击√符号,然后再控制台输入后进行调试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值