请各位帮我看下这几个c语言的考试题 谢谢~

来源:百度知道 编辑:UC知道 时间:2024/06/29 20:57:06
(1)int a=10,b=1,c=2;
if(b<c==1) a++; else a--;
printf ("%i\n",a);
(2)char c=2; int a=10;
if (isdigit(c)) a++; else a--; printf ("%i\n",a);
(3). x=a>b?c>d?a:b:c; 这个怎么理解啊

(1)int a=10,b=1,c=2; //定义3个常量a,b,c
if(b<c==1) a++; else a--;
printf ("%i\n",a); //如果b<c且b等于1,a自加1;否则a自减1,所以答案是a自加1,结果是11

3.x=a>b?c>d?a:b:c; 这个怎么理解啊
//如果a>b和c>d的结果确定,那么比较其大小,把结果存入x中,如果是a>b,c>d成立,
那么可以改写成a?c?a:b:c,结果是比较a和c的大小,如果a>c,存a入x,否则c,当然还有很多其他选择啦,就看你输入的数字a,b,c的大小而定了

1、输出11 主要考察运算符优先级问题。“<”优先级大于“==”,所以先判断B是否小于C(1小于2,成立则B<C就为1),1又等于1成立则(b<c==1)为1,满足if语句,运行a++(a自加1)。所以最后输出11

我可是还没有见过C语言有%i输出的,因该是%d吧

2、isdigit(c)作用是“判断字符c是否为数字,当c为数字0-9时,返回非零值,否则返回零”。这里c为数字返回非0值,if条件成立运行“a++”else语句不成立不运行。 最后输出11

3、x=a>b?c>d?a:b:c; 要记住在C语言的运算符当中赋值运算符(=)优先级最低。 语句等价于“x=a>b?(c>d?a:b):c; 例x=a>b?b:c; 当a大于b成立,选b的值赋给x,否则选c的值赋给x。

(1)int 代表整数赋值。就是把10的值赋给a,现在a就代表10,b、c同样。
如果(if语句)b比c小并且b等于1 a=a+1 如果不是 a=a-1
if语句中判断相等用两个等号,不相等就是‘!=’
(2)char代表字符(字母数字和符号)。c=2就是c='2' 但是这个时候c是不等于2的。isdigit(c)判断是否为数字。如果是,a=a+a,不是a=a-1,printf打印。那个是%