分数构成
学期开始就告知大家,本课程最终成绩由平时成绩(2次机考),期中考试、和期末考试组成。
其中:平时成绩占40%、期中考试占20%、期末考试占40%。这个比例不变。
- 平时成绩,由两次机考构成(原本计划4次机考,后受疫情影响合并成2次),每次按排名计分,两次的平均分即为平时成绩的分。
- 排名转换百分制:第1名100分,后续名次的分计算方法:
s[i] = s[i - 1] - (i < 10 ? 0.1 : (i < 25 ? 0.2 : (i < 35 ? 0.3 : (i < 45 ? 0.4 : (i < 50 ? 0.5 : (i < 60 ? 0.6 : 0.8))))));
- 允许并列,最后的分会取整。
- 及格线的划定:第一次机考100分,第二次机考120分。低于及格线不按排名记得分,而是以机考分数除以2计分。
- 排名转换百分制:第1名100分,后续名次的分计算方法:
- 期中考试成绩,按卷面得分计(实际作了适当调整)。
- 期末考试成绩,按卷面得分计。
试卷分析
总则,我也是和大家同时看到试卷的。经分析所考内容均在课堂上讲过,因此,没有白送分的题。
下面简单分析一下这次期末试卷。
1,a),现代计算机为啥采用二进制。b),整数1和字符1。
简单、可靠。其实我也不知道“标准答案”,说得有理即可的分。
一个是数值、一个是编码。也可以说存储字节数不同。
2,float相等比较,为什么不用==
差值足够小就算相等,理由是float表示的不精确性。
3,von Neumann体系结构,ALU
就算所谓的5大部件,ALU是算术逻辑单元。很无聊的题,你学会什么了?
如何把大脑里做计算的方式拆开成几个部件以及这些部件如何协同完成计算任务,这才有意义。
4,循环结构中消除continue和break语句。
自己在本站找找吧。有很多方法可以实现同样的循环功能,只要对/基本对就行。
5,fibonacci函数,递归和迭代实现。
还有比这样更简单的编程作业吗?英文单词王老师都给翻译了。再不会,你肯定没来上课,或者上课时根本不听讲。
另外,上课时,我特地强调fib函数并不适合用递归求解,非常低效。虽然,原理上可以递归实现。
6,打印数组中所有unique元素
就是指出现一次的那些数组元素,原则上每个元素都得和其他元素比较一遍。需要注意的是累计相同个数时需要考虑自己和自己比较也算一次。
7,判断谁是murder?
条件都给定了,结论就一个。虽然直接给答案也能的分,显然不会给满分啦。
循环就是假定某人是murder,然后判断几句话的真假,如果真话数和题意符合,则该人即为murder。
其实,这样的题并不适合做编程题,适合写一个逻辑判断式。
8,设计一个结构体存储考试信息,并按降序打印不及格的信息
题目要求必须实现,比如,结构体设计,不能用一堆数组,打印不及格的信息,所以需要挑出总分60一下的考生,降序打印,必须排序啰。有了这些,输出就简单了。输入没要求,那就随便。
============
以上是这次期末试卷的分析,从某种意义上说,题面描述不是很严密,这样,大家可以自行作出一些合理的假设。