找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1746|回复: 0
打印 上一主题 下一主题
收起左侧

二级C易错部分

[复制链接]
跳转到指定楼层
楼主
ID:262 发表于 2014-10-21 14:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.
#include<stdio.h>
void main()
{
int a=5,b=4,c=3,d;
d=(a>b>c);
printf("%d\n",d);
}
输出什么?

答:
0
(a>b>c)
=>(a>b)>c
=>(5>4)>3
=>1>3
=>0


2.
#include <stdio.h>
main( )
{
int a = –1, b = 4, k;
k=(+ + a <0) && !(b––< 0) ;
printf(“%d,%d,%d\n”,k,a,b) ;
}

答:
输出:0,0,4
k=(++a<0)&&!(b--<0);
表达式中,首先计算(++a<0)&&!(b--<0);在逻辑与运算中,如果前面表达式为true,才去进行&&后面的运算,现在(++a<0)为false,所以不进行后面的(b--<0).
运算结果只对a进行了一次自加就把值赋给了k,k = false = 0;
所以输出0,0,4。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表