第二周 数据计算实现与顺序程序设计(一)

看课件的时候,没有真的很用心去听,有点急于求成,求量不求质,没有真正的思考,具体该如何解决的!

没有指定详细的计划,每天的收获很少,学习能力有待提高

第二章 数据计算实现与顺序结构程序设计

2.1 算术运算的C程序实现 + - * / %
2.2 关系运算的C程序实现 >、 >=、 <、 <=
2.3 逻辑运算的C程序实现 && || !
2.4 位运算的C程序实现 & | ^
2.5 几种很个别的运算 , () []
2.6 混合运算及数据类型转换
2.7 一个顺序结构程序实例

通过这一章学习,我们能够该知道

  • C程序中都可以实现什么计算
  • 这些计算解决什么实际问题
  • 用C程序实现这些计算的思维方式
  • 简单计算问题的顺序结构程序设计

2.1 算术运算的C程序实现

算术运算-整数相除
算术运算-求余
算术运算-复合运算的作用
算术运算-自增与自减运算
数学算式的C语言表达-算术运算优先级

2.1算术运算(C程序中的算术表达)

程序设计语言的基本规则包括

  • 常量:在程序运行期间,其值会发生变化的
  • 变量:在程序运行期间,其值不变的量
  • 运算符
  • 表达式
  • 函数

    计算一元二次方程

讨论1:查看d的值是否>=0?

讨论2:如果a,b,c为整型,结果如何?

整数相除结果只取整数,小数部分丢失,造成后续运算结果错误(编辑器检查不出这个错误)(出现问题,但又不易查到)
1.0/3:浮点型与整型相除的时候,编译器会先把整数型转化为浮点型

讨论3:如果x1,x2为实型,结果如何?

关于实型和整形数据的在说明

基于计算机的计算思维的一个重要方面:
1. 计算机的基本存储原理
2. 存储资源的合理使用
3. 实说有效位:单精度7位
4. 实数不是精确数,将产生累计误差

整型
实型
字符型
字符串

超出表示范围的数机器如何处理?

实型数的分辨率:
最小正数:10-38 小于该数时处理为0 下溢
最大正数;10-38 大于该数时提示出错 上溢

  1. 实型数在计算机内部都按指数形式存放
  2. 实型数在运算器中都按双精度计算
  3. 内存的存储精度取决于对变量的定义
  4. 数的有效位限制在最后输出时是按存储结构和输出格式确定的

输出格式造成的计算错误

讨论:如果scanf()中使用了(“%4.2f“,&a);结果如何?

scanf()不可以指定数据格式 ”%4.2f”指定了将导致语言系统的不理解,造成原始数据错误。 注意:编译器的错误引导

有些错误编译器不告诉你,错了你都不知道你错啦

算数运算 – 小结

  1. 运算依赖正确的C语言表达式实现
    1. 整数相除可能得到实型结果,自动丢弃小数部分
    2. scanf()不可以指定数据格“%m.nf”(不允许规定精度,可以指定域宽)

求余运算

求余运算:a % b a除以b取余数
作用:能整除吗?
例如:一组数X中能被3整除的数有哪些?
判断方法:X%3为0吗?

main()
{
    printf("%d,%d,%d,%d\n",13%2,-13%2,247%-58,-66%-15);
}

说明: 求余运算符的对象必须是整数 为什么?

得分

自增、自减运算

变量自身加(减)1(自增自减运算)

i++;++i 等价于 i = i+1
i–;–i 等价于 i = i -1

i=3;printf("%d",i++);
i=3;printf("%d",++i);

输出原来的值3,之后I的值变为4;
i 的值先变为4,之后再输出4;

  • 求余多用于判断整除问题
  • 自增自减于用于计数,控制循环
  • 复合运算只是为了简化程序代码

关系运算的C程序实现

关系比较问题与C语言关系表达式

算数式 关系运算符   算数式
  关系运算符 >   >=  <  <=  !=   ==

关系运算符的优先级高于赋值,低于算术
关系运算符的优先级低于算数运算

例子: a == x >= 90

比较运算符高于 恒等于运算符

例子: int i =2,j=7,a;
a=i+j%4!=0
a 的值?

算术运算符 的取模运算符的优先级高于 加法的优先级 算术运算的优先级高于关系运算符

a = 18>5>1<1<1/2
a的值?

我的理解是:
算数运算符的优先级高于关系运算符
1/2 == 0;
同级之间的关系运算符根据其结合方向
18>5吗? 假的 false 0
0>1 吗?假的 false 0
0 < 1吗?真的 ture 1
1 <0 吗?假的 false 0
a = 0;

a = 18 > 5 +1 <1 < 1/2

算术运算符的优先级高于比较运算符的

例子 x=10,y=2;表达式x-5<= x+y的值
答案:1真(true)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值