作业帮 > 综合 > 作业

1、以下程序的输出结果是( ).

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/08 17:04:21
1、以下程序的输出结果是( ).
#include
void main(void)
{ int a = 5,b = 4,c = 6,d;
printf(“%d\n”,d=a>b?(a>c?a:c):b);
}
A) 5 B) 4 C) 6 D) 不确定
2、以下程序的输出结果是( ).
void main(void)
{ int a = 4,b = 5,c = 0,d;
d = a && b || c;
printf(“%d\n”,d);
}
A) 1 B) 0 C) 非0的数 D) –1
3、以下程序的输出结果是( ).
#include
int f(void)
{ static int i = 0;
int s =1;
s += i;
i++;
return (s);
}
void main(void)
{
int i,a = 0;
for (i=0; i
注:谢谢您的信任,我是昨天做了那10多题的网友,第一,我也在学习C++,所以想帮帮您,第二,我也在验证我的知识,扩充我的知识,所以来看看.如有错误,请指出,大家共同进步……
【1】选(C)
printf(“%d\n”,d=a>b?(a>c?a:c):b);这一句判断的语法是,括号优先级最高,这查表或者自己都可以记住的,由于括号的优先级最高,先看括号内容(a>c?a:c),显然是a与c的大小判断,(a>c?a:c)它的意思是a>c吗?如果大于,则取冒号前面的项,如果小于则取冒号后面的项(等于的话算作不大于).有a等于5,b等于4,c等于6可知,c是大于a的,那么(a>c?a:c)的结果是6,取的是c.然后再看(d=a>b?(a>c?a:c):b)简化成(d=a>b?6:b),由于赋值符号=符号的出现,那么显然是说明a>b?6:b这个语句的结果最后要赋值给d,那么相同原理,a大于b,因此取6(即冒号前面的项).所以d=6
【2】选(A)
d = !a && !b || !c;要明确“非”符号的最高的逻辑算符.因此刚刚的语句可以看作是d = (!a )&&( !b )||( !c).再明确的是&&和||两个符号是,是至左而右进行处理的.它这句语法的意思是,非a与非b是且关系么?如果得到结果再与非c看看或关系的结果,再最终得出结果.显然非a是0,之前说过,只要是非零就是真,在编译器里面是这么定义的,书本上则不然,只是因为编译器的缘故,我们才认为非零就是真,非b也是0,非c是1.非a与非b且的结果是1,然后1再和非c的1去得到或关系,最终结果是1.
【3】选(C)
先看主函数main(),void main(void) {int i,a = 0;for (i=0; i