一、精确计算阶乘.
一个32 位整型变量无法精确表示大数的阶乘, 但一个整型数组却可表示.
算法思路: 当阶乘结果为不超过10的4次方的十进制正整数时, 可用一个整型数组( intnFactorial[4] )来依次存放阶乘的每一位数字. 比如, 5!=120可被记录为nFactorial[0]=0, nFactorial[1]= 2, nFactorial[2] = 1, nFactorial[3] = 0.
当已计算出k的阶乘, 要计算(k+1)的阶乘时, 将记录k的阶乘的数组的每一位都与(k+1)相乘, 乘积依然存在数组的对应位上. 最后, 从最低位开始, 依次向高位循环处理每个位中大于9的数. 若数大于9,则需要进位. 将数的10的倍数进到高一位上,将数的小于10的余数存在原来的位中.一直到所有位中的数都小于10为止.
(1)(6分) 按此思路, 当已知阶乘结果为一个不超过10的1000次方的十进制整数时, 写出计算正整数阶乘的完整C/C++代码.
输入: 键盘输入一个正整数
输出: 显示输入正整数的阶乘
(2)(2分) 完善代码, 实现键盘输入是否满足要求的检查功能.
(3)(2分) 写出几种测试用例.
二、 有一个浮点型数组记录了1000个浮点数(float fData[1000]).
(1)(3分) 编写C/C++代码, 求出这1000个数中最大的10个数.
(2)(3分) 写出能实现从1000亿个数中寻找最大的10个数的算法思路.
三、已知一个指向单向链表的某个非头非尾节点的指针(node* pCurrent). pCurrent 指向的地址中仅保存2个指针, 一个是指向下一个节点的Next指针(pCurrent-> Next), 另一个是指向节点本身数据的Data指针(pCurrent-> Data). 编写一个C/C++函数, 实现以下功能:
(1)(2分) 保留链表的原有顺序,在原链表中删除这个已知节点的下一个节点.
(2)(2分) 保留链表的原有顺序,在原链表中删除这个已知节点.
四、异或运算的应用.
(1) (2分) 列举异或运算的性质.
(2) (2分) 已知一个记录了1000个整数的整数型数组. 将这1000个整数打乱顺序后,只将其中的999个整数记录在另一个数组中.请利用异或运算的性质编写一个C/C++函数, 找出缺少的那一个整数.
以上试题来自网友回忆,仅供参考。
随着考研大纲发布时间的提前,2020年全国硕士研究生招生考试公告也提前发布了,2020考研时间定在了12月21、22两日,与之前预想的一样,在这个马上上就要开学的阶段,小伙伴们的复习重点应该放在整合提升和查缺补漏上了。就目前的阶段,各科真题的演练,复习速度略快的小伙伴要做到每周一次了,而复习略慢的也要半个月走一遍各科真题,如果知识点巩固尚有问题的小伙伴也可以从真题中抓重点,有侧重性的进行知识点的整合了。
跨考教育秋季集训营也应需求而开营了,更加侧重知识点整合和定向查缺补漏,在巩固拔高的阶段助以一臂之力。
小编整理了历年考研真题及答案解析,关注微信公众号:跨考考研,回复“真题”即可获得,说不定还能找到一起上自习的研友哦!