day03-C语言之运算符I

前言

        在进入vi之前,按Crtl+Shift+T可以将窗口并列为两个窗口。

        同时,按Alt键,和1、2  即可进行页面切换。这样做方便了避免重复多次进入vi。

一、(补充day02)字符型数据

        

  •         \b中退格是指将光标退格

二、变量初始化

int i = 1234 ;

        在给i开辟空间时,同时把1234写入空间。

三、各类数值型数据间混合运算

3.1 各类数值的转换

        两种转换方式,分别为隐式转换和显式转换。

  • 隐式转换:低级别的数据类型会被隐含的转换为高级别数据类型(编译器自动转换)
  • 显示转换(也称强制类型转换):如,
    int i=2;
    (double) i;

    3.2 小练习

        printf函数输出浮点型时会保留小数点后6位有效数字,如果其后还有数则四舍五入考虑是否进位。那么,如何避免printf进行四舍五入呢?

  • 思路:1.首先,将所得数*1000000并转换为int型        此步使得直接取小数点后6位,第7位直接略去

                  2.再将其转换double型,再除以1000000        或        直接除以1000000.0

  • 实现:

四、算术运算符与算术表达式

4.1 算术运算符

        %有以下注意点:

  • 要求操作数数据类型为整型或与整型相兼容的数据类型
  • 最终符号由左操作数决定
  • 右操作数不能为零
  • 最终结果一定小于右操作数

4.2 算术表达式

        算术运算符与操作数形成算术表达式。(任何表达式都有数据类型)

4.3 自增、自减运算符

  • 当编译器发现前置++时,对i值进行改变
  • 当编译器发现后置++时,编译器创造临时变量复制i原有值,成为i++,但i值已经改变

4.4 小练习

练习1:在100道题中随机抽取10道,如何实现?

  • 思路:1.如何获得随机数:随机数引入#include<stdlib.h>,使用random函数,srandom函数

                                           引入#include<time.h>,使用time函数

                   2.使题目在0~99之间,使用%

  • 实现:

图4.1 代码展示

图4.2 结果展示

练习2:若不取前50道题,再随机抽取如何实现?

  • 思路:1.基本问题已经解决

                   2.l%100的范围为[0,99]        则l%50的范围为[0,49],其后再加50,可得[50,99]

  • 实现:

图4.3 代码展示

图4.4 结果展示

五、赋值运算符与赋值表达式

5.1 赋值运算符

        赋值运算符的优先级位于14,若同时出现多种赋值运算符,则考虑其结合方向,此处运算符结合方向为自右向左。

lvalue(左值)rvalue(右值)
能放在赋值运算符左边只能放在赋值运算符的右边,不能放在赋值运算符的左边
变量常量
locatiable可定位readable可读

        关键词const:定义前加const,变为只读变量,不能对值进行修改,如,

  • const int i
  • int const i

        #define N 100 给100起别名为N

5.2 类型转换

情况1:double = int

double d;

int i = 1234;

d = i;

无严重错误
情况2:int = double

double d = 123.456;

int i;

i = d;

小数部分截断
情况3:short = int

short s;

int i = 12345678;

s = i;

高位截断
情况4:long = signed short

int i;

short s;

s = 12345;

i = s;

符号位扩展(空位根据短数据类型的符号位填充)
情况5:long = unsigned short

int i;

unsigned short s;

s = 12345;

i =s;

补零扩展

情况6:

%d        有符号十进制

%u        无符号十进制

unsigned u;

u = -1;

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

printf("%u\n",u);

六、心得体会

        知识点较为繁琐,需多复习多练习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值