Linux C语言基础 day3

目录

学习目标:

学习内容:

1.运算符

1.1 逻辑运算符

截断法则:

1.2 位运算符

1.3 原码,补码,反码

1.4 关系运算符

1.5 三目运算符(选择运算符)

1.6 赋值运算符

运算符优先级:

顺口溜:

2.变量

2.1 概念

2.2 格式

2.3 局部变量与全局变量的区别

3.常量

3.1 概念

3.2 分类

3.2.1 整型常量

3.2.2 浮点型常量

3.2.3 字符常量

3.2.4 字符串常量

3.2.5 标识常量

课堂练习:

课后作业:


学习目标:

  • 一周掌握c入门知识

学习内容:

1.运算符

1.1 逻辑运算符

        &&逻辑与全真则真,有

        ||逻辑或:有

        !逻辑非

例如:

截断法则
        逻辑与运算中,前边的 表达式 结果 后边 表达式 不再 执行 直接 返回 假。

        逻辑或运算中,前边的表达式结果为真,后边表达式不再执行直接返回真。

例如:

1.2 位运算符

        位运算是针对二进制而言的,但凡涉及位运算,在计算机中都会转换成二进制来参与运算,且一般位运算都是无符号数参与运算,如果用有符号数,会涉及原码反码补码转换的问题。位运算一般多用于 硬件设备的控制 和 标志位的控制 等。

        & 按位与 :按位运算 全1为1 有0为0

        | 按位或 :按位运算 有1为1 全0为0

        ^ 按位异或 :按位运算 不同为1 相同为0

        ~ 按位取反 :按位运算 1变0 0变1

        << 按位左移 :整个数据向左移动 低位补0 舍弃高位

        >> 按位右移 :整个数据向右移动 高位补0 舍弃低位

例如:

1.3 原码,补码,反码

原码补码反码
正数相同相同相同
负数相同反码+1除符号位外,其他位取反

例如:

35的补码,反码

        0000  000 0000  000 0000  000 0010  0011

-18的反码

        111 1111  1111  1111  1111  111 111 1101

-10的补码

        111 1111  1111  1111  1111  111 111 1110

35 & -18 

        0000  000 0000  000 0000  000 0010  0011

        111 1111  1111  1111  1111  111 111 1110

        0000  000 0000  000 0000  000 0010  0010 = 36

        置一公式:a|(1<<n)(注意:只有一位变化的时候才能使用)

        置零公式:a&(~(1<<n))

例如:

        想要把0100 0110 变成0101 0110,则n=4;

        想要把0100 0110 变成0100 0010,则n=2;

1.4 关系运算符

        >    >=    <    <=    ==    !=

        使用来比较大小关系的

        要特别注意:关系运算符的判断相等是两个等号,一个等号是赋值运算符

        关系运算符表达式的结果是一个 bool 类型,0 表示假 非0表示真

1.5 三目运算符(选择运算符)

        ?:

        表达式1?表达式2:表达式3

例如:

1.6 赋值运算符

运算符优先级

顺口溜

单算移关于,异或逻条赋。

        单目运算符 ~ ++ -- !

        算术运算符: * / % + -

        移位运算符 << >>

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

        位与运算符 &

        异或运算符 ^

        位或运算符 |

        逻辑运算符 && ||

        条件运算符 ?:

        赋值运算符 = += -= *= /= %=

2.变量

2.1 概念

        在整个程序运行的过程中,值允许发生变化的量。

        变量一般使用来保存数据的。

2.2 格式

        存储类型 数据类型 变量名

        int a;

        存储类型决定变量存储位置

        数据类型决定变量开辟空间大小

        变量名:遵循标识符命名规则

2.3 局部变量与全局变量的区别

局部变量全局变量
定义位置函数体内部函数体外部
初值未初始化时值随机未初始化时值为0
存储位置栈区全局区
生命周期与函数共存亡与程序共存亡
作用域作用于函数内,只在函数内可见作用于程序,可以在任何地方修改
重用性每次函数调用都会创建新的局部变量,函数调用结束后局部变量被销毁。在程序的整个运行期间只创建一次。

3.常量

3.1 概念

        在整个程序运行的过程中,值不会发生变化的量。

        常量一般是用来给变量赋值或者参与比较。

3.2 分类

3.2.1 整型常量

        前导符 输出占位符 例如

        二进制 0b 无 0b1010

        八进制 0 %o 0567

        十进制 无 %d 1314

        十六进制 0x %x 0x56EF

3.2.2 浮点型常量

        float %f 3.14

        double %lf 5.28

        指数常量 %e

3.2.3 字符常量

        %c 'm'

3.2.4 字符串常量

        %s "www.123.com"

3.2.5 标识常量

        关键字 #define 也就是我们说的宏定义

        格式:

                #define 宏名 宏值

        宏名:一般大写表示为了普通变量区分开

        注意:

                1.宏定义是在预处理阶段完成替换的。

                2.宏定义只是一个简单的无脑的替换。

        例如:

                #define STUDENT 30


课堂练习:

1.变量x和y的值相等,且为非零值,则以下选项中,结果为0的表达式是(D)

A.x||y B.x|y C.x&y D.x^y

2.以下程序升输出结果是(A)。

int main()

{

        char x=040; //100 000 

        printf("%o\n",x<<1);//1 000 000

        return 0;

}

A.100 B.80 C.64 D.32

3.设int b=2;表达式 (b>>2)/(b>>1)的值是(A)

A.0 B.2 C.4 D.8

解析:因为b=0010,b>>2=0000,b>>1=0001;所以(b>>2)/(b>>1)=0.

4.

解析:b=0110,b<<2=00011000,a^b=00011011.所以选择A.

5.

解析:由于z 的值是4,在布尔上下文中 !z的结果会是 0,y的值是3,而 !z的结果是 0,所以 3>0的结果是true。在C语言中,true可以用 1 表示。所以答案位3。

6.

A的值为多少?

解析:A=2+2+2*3+1=11,所以A的值为11。


课后作业:

1.

输出结果为(10);

解析:因为k+m=3,SQR(X)=X*X,则SQR(k+m)/SQR(k+m)=2+1*2+1/2+1*2+1=7,a/=7为a=a/7,

所以a的值为1。

2.

解析:N=5+5,k=5+5*5+5*5,k=55.所以选择C。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值