#3:C语言复习:运算符和逻辑函数;

C语言中主要的运算符:

  

1 算术运算符:
      用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。

2.关系运算符
      用于比较运算。包括大于(>)、小于(<)、等于(==)、 大于等于(>=)、小于等于(<=)和不等于(!=)六种。

3.逻辑运算符
      用于逻辑运算。包括与(&&)、或(||)、非(!)三种。

4.位操作运算符
      参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。

5.赋值运算符
      用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类。

6.条件运算符
      这是一个三目运算符,用于条件求值(?:)。

7.逗号运算符
      用于把若干表达式组合成一个表达式(,)。

8.指针运算符
      用于取内容(*)和取地址(&)二种运算。

9.求字节数运算符
      用于计算数据类型所占的字节数(sizeof)。

10.特殊运算符
      有括号(),下标[],成员(→,.,->)等几种。

例一:

关系表示符

void main()
{
	int i=1,k=2,j=3;
	printf("%d\n",k==j-1==i);		//	计算时根据左结合性,先计算k==j-1,结果为1,在计算1==i,成立,输出1.但不符合数学规则。
}


注意,运算符在C语言中具有左结合性;


例二:

逻辑表达式

void main()
{
	int i=1,j=2,k=3;
	float x=300000,y=0.85;
	printf("%d,%d\n",x||(i=5)&&j-3,i<j&&x<y);		//	优先级	!	>	&&	>	||
													//	0.5<	x	<	2.0	的结果永远为真
													//	exp1	&&	exp2	只有exp1为真才计算exp2
													//	exp1	||	exp2	只有exp1为假才计算exp2
}


例三:

if 判断语句        排列大小    从小到大    经典交换a,b语句

void main()
{
	float a,b,c,t;
	printf("请输入三个排列大小的数:\n");
	scanf("%f%f%f",&a,&b,&c);
	if(a>b)
		{
			t=a;
			a=b;
			b=t;
		}
	if(a>c)
		{
			t=a;
			a=c;
			c=t;
		}
	if(b>c)
		{
			t=b;
			b=c;
			c=t;
		}
	printf("%5.2f,%5.2f,%5.2f\n",a,b,c);
}


例四:

三目运算符 (a>b)?    a:b

void main()
{
	int x,y;
	scanf("%d%d",&x,&y);
	printf("%c\n",x?'a':'b');			//			各表达式之间的类型可以不同	此时条件表达式的值的类型为二者中较高的类型
	printf("%f\n\n",x>y?1:1.5);
}	


         第一个表达式为真输出表达式二,否则输出表达式三


                    1.            赋值运算符   <<    条件运算符    <<  关系运算符
                    2.            结合方式自右向左    即
                            a>b?a:c>d?c:d        等价于        a>b?a:(c>d?c:d)


例五:

switch语句

void main()
{
	int a;
	printf("请输入一个1-5の数:\n");
	scanf("%d",&a);
	switch (a)
	{
		case 1: printf("Monday\n");
		case 2:	printf("Tuesday\n");
		case 3:	printf("Wednesday\n");
		case 4:	printf("Friday\n");
		case 5:	printf("Friday\n");
		default: printf("error\n");		//		会执行满足条件之后的所有语句!!!!!!!!需要加入break语句。。
	}
}


例六:

对整数的各数字位进行分解

输入一个不多于四位数的正整数,求出该数是几位数,并逆序打印出:

void main()
{
	int a,x1,x2,x3,x4;		//		x1,x2,x3,x4代表个、百、……位
	printf("请输入一个数:\n");
	scanf("%d",&a);
	x1=a%10;
	x2=a/10%10;
	x3=a/100%10;
	x4=a/1000%10;			//		k=x/10的(n-1)次方%10	n为第n位		k为第n位上的数字
	if(x4!=0) printf("四位数:%d%d%d%d\n",x1,x2,x3,x4);
	else if(x3!=0) printf("三位数:%d%d%d\n",x1,x2,x3);
	else if(x2!=0) printf("两位数:%d%d\n",x1,x2);
	else printf("一位数:%d\n",x1);						
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值