有关c语言二级考试的答题规范问题!!!学霸大神们帮帮忙!
为什么填空题和改错题只要和答案不一样就算错??!!。这如何能保证一模一样呢,比如有一步骤,我填的i=10*i,标准答案是i=i*10,结果评分系统算我错,程序运行没有任何...
为什么填空题和改错题只要和答案不一样就算错??!!。这如何能保证一模一样呢,比如有一步骤,我填的i=10*i,标准答案是i=i*10,结果评分系统算我错,程序运行没有任何问题,然后比如改错题
原来是for(i=1;i<N;i++),标准答案改为小于等于,我把1改为了0,这道题里,i唯一的作用就是运算次数的,对最终输出没有任何影响,结果评分系统又算我错,醉了啊!!!,这程序运行没问题,还能不给分,这是多蛋疼的事情啊,泪奔。。。。。。。 展开
原来是for(i=1;i<N;i++),标准答案改为小于等于,我把1改为了0,这道题里,i唯一的作用就是运算次数的,对最终输出没有任何影响,结果评分系统又算我错,醉了啊!!!,这程序运行没问题,还能不给分,这是多蛋疼的事情啊,泪奔。。。。。。。 展开
2个回答
展开全部
看你的描述我也觉得蛋疼。。。不是你的错。。。系统有问题。。。
关于第一个:
i=i*10;
i=10*i;
两个在本质上是没有区别的,但是要知道运算符有缩写形式,也就是
i*=10;
等价于
i=i*10;
我也不知道算不算规范,但是因为这个缩写形式的存在,一般我们都把被省略的变量写在前面,然后如果是负数的话一般把数字写前面:
i=-10*i;
虽然我也不知道为什么大家都这样写。。。大概是习惯之类。。。Orz
关于这个顺序问题,我觉得你搞清楚所有操作符的优先级之后应该就没有什么问题了,正常人写程序的时候因为不清楚优先级会用很多多余的括号,但是考题的答案里是肯定没有多余括号的。
然后第二个:
正常情况下,初始化语句不应该动,因为虽然这个题里改了0是对的,但万一循环里面用到了变量i一改就错了。。。
碰到循环语句改错,优先改符号,然后才是数字什么的。另外for循环里的第三个语句一般写成后缀式,也就是第一个:
i++; //后缀式
++i; //前缀式
虽然两个的效果是一样的。。。
我的对策是。。遇到这种评分系统错误。。就把答案给背下来吧。。虽然比较脑残。。。Orz
追问
恩,也对,就把答案背下来吧,无奈了。。。。刚才又碰见一个恶心的答案,答案是
a[n-i-1],我写的是a[n-1-i],然后评分算我不对,我猜测是把字母写在数字前面,可能就是答案所谓的标准吧。。。。。。
追答
话说模拟的评分系统跟真正考试的评分系统不一样,如果是真正考试的话,像这样交换位置导致答案不同也会判对的。。。当然保险起见还是跟标准答案一样吧。。。Orz。。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询