5.有以下程序段:
int a,b,c;
a=10;b=50;c=30;
if(a>b)a=b;b=c;c=a;
printf("a=%d b=%d c=%d\n",a,b,c);
程序毕慎的输出结果是()。
A.a=10 b=50 c=10 B.a=10 b=50 c=30 C.a=10 b=30 c=10 D.a=50 b=30 c=50
答案:A 我认为是手旅敬C,求教…镇带…
if(a>b) 是不成立的,后面的语句不运行!a,b,c值不变
5,6题的答案是错的。
5:c
6:e:87和6543.0000
1· 是说在执行getchar()这条语句的时候,在你没有按下回车键之前,无论你输入多少字符,程序只接受第一个输入的字符,其他输入的字符都被忽略了。
2·有符号的2进制数,最高位为1表明它是负数。你做右移操作,只能橡李影响数值的大小,不能影响数值的正负性质。所以务必要保持最高位的符号位不能变。
3·\0是字符串的结束标记,不计入到字符串的长度中。
4·只要你理解了1问题里没漏getchar()输入的特性,就知道在你摁下回车键之前,除了第一个字符有效,其他字符都是没有意义的。所以输入1234567890
5·if(a>b)a=b;b=c;c=a; 你要理解,他和if(a>b){a=b;b=c;c=a; }是不一样的。你肯定是按照后面这样理解的。实际上if(a>b)a=b;b=c;c=a; 由if控制的只有a=b,其他枯如烂的两条语句都不受if控制,无论if结果是什么,它们都会被执行。
6·正确答案应该是你说的那样。就是87和6543.000000