[C] 前两周的一些错误

1 。以下语句是否表示n属于[1,10]:
if ( 1<=n<=10 );
答案:错误。
解释:
c语言中if(1<=n<=10)执行过程是这样的:
先判断 1<=n ,判断结果为0(假)或1(真),然后在判断(1<=n)的整体值(0或1)是否小于等于10,结果为真。
可以执行,但并不能表示n介于1到10之间的判断。
如果要执行n介于1到10之间的判断,应表示为:if( n>=1 && n<=10 ) 。
结论,无论怎样都会执行,所以并不能表达1到10




2 写出程序的输出结果:
int i,j,k;
i=2;j=3;
k = i*j==6;
printf("%d\n", k);

答案:1
1、关系运算符比赋值运算符高,比运算符低,先算i*j==6;成立,结果为1;再赋值,结果为1
3
写出程序的输出:
int i=1;
switch ( i%3 ) {
case 0: printf("zero");
case 1: printf("one");
case 2: printf("two");
}

答案:onetwo

没有break,switch是找到  符合表达式后 就执行后面的语句不再判断了  
所以     i为0   执行case 0后的语句不再判断  所以会输出 zero one two
            类似  i为1就执行case 1后的语句了   输出 one two
switch:
        计算表达式的值。并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值