N 诺 DreamJudge 题库:输入 “学校名称” 即可筛选该校历年机试真题,题目均在考纲范围内,按难度自动排序。还可搭配《计算机考研机试攻略》刷题,书中题目可通过题号直接在题库中查找。

上机题目难度较为简单,考核形式不是系统在线判题,需要在IDE里写完整代码再提交文件到服务器,由老师手改打分。

语言是C/C++,IDE有codeblocks(推荐)、devcpp、vs等。

软院是2个小时4个题,24是从15个题中任选4个作答,25不确定改没改,但是题目和计院一样NOJ原题命中率直线下降。

计院25年是3小时8个题,变化很大只有一道是学校OJ题库的原题,不像往年NOJ原题较多。

因为是手改打分,所以注释很重要,不会做的题目把思路和代码框架写一写也会给分,只要写了就不会是0分。

建议重点学习《机试攻略》前3章内容+5.1-5.3+6.1+8.1-8.2,这样性价比最高,把easy题刷熟练就没问题。

参考代码

  1. while True:
  2. try:
  3. a=input()
  4. if (len(a) != 18):
  5. print("ID Wrong")
  6. continue
  7. arr1=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]
  8. sum=0
  9. for i in range(17):
  10. sum +=arr1[i]*int(a[i])
  11. sum %= 11
  12. sum = (12-sum)%11
  13. if sum==10 and a[17]=='X':
  14. print("ID Corrent")
  15. elif sum==int(a[17]):
  16. print("ID Corrent")
  17. else:
  18. print("ID Wrong")
  19. except:
  20. exit()
  1. #include <iostream>
  2. #include <string>
  3. #include <cctype>
  4. using namespace std;
  5. int main() {
  6. string id;
  7. // 权值
  8. int weight[17] = {7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
  9. // 校验码映射:余数0~10 对应的字符
  10. char checkCode[11] = {'1','0','X','9','8','7','6','5','4','3','2'};
  11. while (cin >> id) {
  12. // 1. 长度必须为18
  13. if (id.length() != 18) {
  14. cout << "ID Wrong" << endl;
  15. continue;
  16. }
  17. // 2. 检查前17位是否全为数字
  18. bool valid = true;
  19. long long sum = 0;
  20. for (int i = 0; i < 17; i++) {
  21. if (!isdigit(id[i])) {
  22. valid = false;
  23. break;
  24. }
  25. sum += (id[i] - '0') * weight[i];
  26. }
  27. if (!valid) {
  28. cout << "ID Wrong" << endl;
  29. continue;
  30. }
  31. // 3. 处理第18位:转为大写(兼容小写x)
  32. char last = id[17];
  33. if (last == 'x' || last == 'X') {
  34. last = 'X'; // 统一为大写
  35. } else if (!isdigit(last)) {
  36. cout << "ID Wrong" << endl;
  37. continue;
  38. }
  39. // 4. 计算校验位
  40. int mod = sum % 11;
  41. char expected = checkCode[mod];
  42. // 5. 比较
  43. if (last == expected) {
  44. cout << "ID Corrent" << endl; // 注意:题目拼写是 Corrent(不是 Correct)
  45. } else {
  46. cout << "ID Wrong" << endl;
  47. }
  48. }
  49. return 0;
  50. }

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐