7/3作业

[1]运算符

1.1 逻辑运算符

&&   逻辑与:全真则真,一假则假

||      逻辑或:一真则真,全假则假

!       逻辑非:非真则假,非假则真

0为假 1为真

printf("%d\n",2>3); //0

printf("%d\n",22>3);//1

printf("%d\n",12>3&&8<6); //0

printf("%d\n",12>3||8<6); //1

printf("%d\n",12>3 && !(8<6)); //1

printf("%d\n",!1);//0

0为假 非0值为真

printf("%d\n",81&&10); //1

截断法则

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

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

练习:

#include <stdio.h>

int main()

{

int a=5,b=6,c=7,d=8,m=2,n=2;

(m=a>b)&&(n=c>d);

printf("%d %d",m,n); //0 2

}

0    2

2

1.2 位运算符

二进制数 0 1

&       |      ^     ~     <<     >>

&  位与:全1则1,有0则0

|   位或:有1则1,全0则0

^   异或:相同为0,不同为1

~   取反:1为0,0为1

练习:

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

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

D

实现两个变量值的交换:

int a=12,b=10;

1)

int temp=0;

temp=a;

a=b;

b=temp;

printf("%d %d\n",a,b);

2)

a=a^b;//0110==6

b=a^b;//0110 1010 1100=12

a=a^b;//0110 1100 1010=10

printf("%d %d\n",a,b);

计算机中,整数以二进制的补码形式存储,计算的

原码、反码、补码

原码

反码

补码

正数

相同

相同

相同

负数

相同

除符号位外,其他按位取反

反码+1

int 4字节=32位 1字节=8位

符号位:最左边 0正数 1负数

12:

0000 0000 0000 0000 0000 0000 0000 1100

-12原码:

1000 0000 0000 0000 0000 0000 0000 1100

-12反码

 1111 1111 1111 1111 1111 1111 1111 0011

-12补码

  1111 1111 1111 1111 1111 1111 1111 0100

~取反1-->0   0-->1

int a=7;

int c=~a;

printf("%d\n",c);//-8

<<   左移

左移n位右边n0

6*2^2=24

>>  右移

右移n位,最右边舍弃

6/2^2=1

-6/2^2=-2

置一公式:

a|(1<<n)

a=13  n=2

1101

0010

1111

置零公式:

a&(~(1<<n))

练习:

以下程序升输出结果是()。
int main()
{
char x=040;		
printf("%o\n",x<<1);
return 0;
}
A.100  	   	B.80  	C.64   	 D.32

A

B

52

1.3关系运算符

 >      >=     <     <=    ==   !=

==等于   =赋值

2~9      x>2&&x<9

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

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

单目运算符:

~     ++   --   !

1.5赋值运算符

=   +=    -=     *=      /=     %=

a-=5;  //a=a-5;

1.6运算符优先级

单目  算术 移位  关系  位与  异或 位或  逻辑  条件 赋值

口诀:单 异或

练习

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

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

A

A

3

标点符号

,   ;   []  {}   ()

分隔符

空格   tab   \n

[2]变量

程序运行过程中会发生变化

格式:

存储类型   数据类型  变量名

                    int              x

存储类型:存储位置

数据类型:空间大小

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

名字字节大小取值范围
int整型4
char字符型1
short短整型2
long长整型8
float单精度浮点型4
double双精度浮点型8

打印字节数:

printf("%ld\n",sizeof( ));

局部变量和全局变量的区别:

局部变量全局变量
定义位置函数体内部函数体外部
初值未初始化值是随机值未初始化,值是0
存储位置栈区全局区
生命周期同当前函数共存亡同程序共存亡
作用域当前函数体内部整个程序

[3]常量

程序运行过程不变

3.1整型常量

八进制  十进制  十六进制

3.2字符常量

字符   由''包裹一个字符

字符串 由‘’包裹由'\0'结束

3.3浮点型常量

   float     double

3.4标识常量

宏定义:

#define   宏名   常量值

宏名:一般大写和普通变量区分

注意:先原样替换,再计算值

#include<stdio.h>
#define N 2
#define M N+2
#define NUM 2+M*3+1
int main()
{
int x;	
printf("%d  %d\n",x,NUM);
return 0;
}

11

作业

  1. 梳理笔记

1

  • 23
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值