习题选讲:C语言的数据类型、运算符及表达式

1.求下列表达式的值:

(1)-2+4*5-6

先算乘除再算加减。结果12

(2)3+7%5-6

先算乘除再算加减。整型结果-1

(3)x=1,y=z=4,(z>=y)?x:0

括号内4>=4为真,结果取x,即1

(4)x=1,y=z=4,(x<=y<=z)?1:0

括号内两个关系运算符,它们优先级相同,所以从左往右计算。首先1<=4为真,取1;接着1<=4为真;最后结果取1

(5)x=2,y=3,z=4,x<y?y++:x++

判断条件2<3为真,取y,结果为3。之后y才自增变为4,但4不是该表达式的值了。

(6)x=2,y=3,z=4,z+=(x<y?y++:x++)

括号内为条件表达式,判断条件2<3为真,取y,条件表达式的值为3;z+=3即z=z+3结果为7

(7)x=2,y=3,z=4,z+=(x<y?++y:++x)

条件判读为真取++y即4,最后表达式的值为8

2.用条件表达式取三个数中的最大者

//因为一个条件表达式只有一次判断,所以这里需要嵌套

3.写出下面程序的输出结果:

(1)

#include<stdio.h>
int main()
{
    int x=2,y,z;
    x*=y=z=3;
    printf("%d\n",x);
    x=y=2;
    z+=(x++)-(++y);
    printf("z=%d,x=%d\n",z,x);
    return 0;
}

(2)

#include<stdio.h>
int main()
{
    int x=10,y=1,z=1;
    x=y==z;
    printf("x=%d\n",x);
    x=!x>=(y==z);
    printf("x=%d\n",x);
    return 0;
}

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值