C语言选择题,D选项哪里错了呢?
3个回答
2014-06-03
展开全部
其实没有错,那个函数有三个返回值,
如果是相等,返回0
如果前者大于后者,那么返回的就是正数
如果后前者小于后者,那么返回的就是负数。
你的那个题目,我觉得就应该采用D的写法,这样直观,当然,B的写法是简洁的。
你这么想,如果那个题目是判断是否小于。
那是不是应该这样写:if( strcmp( a, b ) < 0 )
如果是判断是否相,是不是该这样写:if( strcmp( a, b ) == 0 )
同理,那么判断是否大于,不就是这样写:if( strcmp( a, b ) > 0 )
说白了,就是和0比较,0就是一个中间值。
代码写好后,可以简化,但是这样做了之后,虽然还是一样,但是可能和原来的理解和最终的代码是不一样的。
另外说一句:课本的习题没必要太在意,我考过计算机二级,出题的人的编写代码的能力我认为不咋地,没有谁规定代码就应该一定要怎么样,只要能达到目的,代码随便写,当然,要学会写出高质量的代码。朋友,建议多动手编程,不要总是拿笔写做程序,动手了,才会发现不足,才会领会代码的内在意义。
如果是相等,返回0
如果前者大于后者,那么返回的就是正数
如果后前者小于后者,那么返回的就是负数。
你的那个题目,我觉得就应该采用D的写法,这样直观,当然,B的写法是简洁的。
你这么想,如果那个题目是判断是否小于。
那是不是应该这样写:if( strcmp( a, b ) < 0 )
如果是判断是否相,是不是该这样写:if( strcmp( a, b ) == 0 )
同理,那么判断是否大于,不就是这样写:if( strcmp( a, b ) > 0 )
说白了,就是和0比较,0就是一个中间值。
代码写好后,可以简化,但是这样做了之后,虽然还是一样,但是可能和原来的理解和最终的代码是不一样的。
另外说一句:课本的习题没必要太在意,我考过计算机二级,出题的人的编写代码的能力我认为不咋地,没有谁规定代码就应该一定要怎么样,只要能达到目的,代码随便写,当然,要学会写出高质量的代码。朋友,建议多动手编程,不要总是拿笔写做程序,动手了,才会发现不足,才会领会代码的内在意义。
追问
嗯 谢谢了。
展开全部
我觉得这道题的正确答案就是D
A选项因为a和b都是字符串,所以不能直接比较大小;
其他三个选项都是判断strcmp的返回值
strcmp(a,b)返回值大于零说明a大于b
反之a小于或等于b,所以D正确,能够判断a是否大于b
A选项因为a和b都是字符串,所以不能直接比较大小;
其他三个选项都是判断strcmp的返回值
strcmp(a,b)返回值大于零说明a大于b
反之a小于或等于b,所以D正确,能够判断a是否大于b
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
strcmp函数本身就有大于的意义,加个大于号多此一举
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询