首页 > 试题广场 >

在执行以下程序时,为使输出结果为:t=4,则给 a 和 b

[单选题]
在执行以下程序时,为使输出结果为:t=4,则给a和b输入的值应满足的条件是()
int main(void) {
    int a,b,s,t;
    scanf("%d,%d",&a,&b);
    s = 1; 
    t = 1; 
    if(a > 0) s = s + 1;
    if(a > b) t = s + t;
    else if(a == b) t = 5;
    else t = 2 * s;
    printf("t=%d\n",t);
    return 0;
}

  • a>b
  • a<b<0
  • 0<a<b
  • 0>a>b
难得看到一个没人写解析的
经过s = 1; t = 1; if(a > 0) s = s + 1;之后,s等于1或者2
这是看下目的逻辑分支
首先排除 else if(a == b) t = 5;
再看if(a > b) t = s + t;
结合前面s等于1或者2,此分支t等于2或者3,也排除
只可能是else t = 2 * s;此时要保证s为2
要第一个判断满足a > 0,且之后a == b 和 a > b都为假
得到0<a<b
发表于 2018-11-14 14:25:26 回复(1)
这程序写的跟屎一样
发表于 2021-06-15 00:24:08 回复(0)
a>0,s=2,b>a,t=4???????????????
发表于 2019-11-05 21:39:49 回复(1)
题库上面大部分条件语句相关的都没有花括号,代码特别不规范,很难看懂条件是否嵌套
发表于 2022-08-25 10:00:57 回复(0)
实际上应该只需要a>0且a!=b就行了吧
发表于 2022-03-25 20:44:04 回复(1)