一.设计一个银行账户类,其中包括以下内容,并用字符界面模拟存款和取款过程。
1、账户信息 账户、姓名、开户时间、身份证号码等
2、存款方法
3、取款方法
4、其他方法,如“查询余额”和“显示账号”等
二.怎样用递归算法写一个将二进制转换为十进制的程序?
三.迭代求方程组的解
四.编写函数,完成 n*n 矩阵的转置操作,矩阵各元素随机生成。
五:编写程序:计算π的近似值,π的计算公式为:
π=2×(2×2/1×3)×(4×4/3×5)×(6×6/5×7)×……[2n×2n/(2n-1)×(2n+1)]
注:分别输出当 n 为 10、100、1000 时的计算结果,n 值由键盘输入。
内蒙古大学计算机学院 2013 年复试真题回忆版
一。简答题(6 选 4)
1.已知一个有向图如右下图所示,请分别写出从顶点 a 出发进行深度优先遍历(DFS)和广度
优先遍历(BFS)所得到的顶点序列及生成树(林)。(要求:有多个顶点可供选择时,序号小的
优先。)
2.一组数 《90,70,30,50,40,10,20》,将其由小到大排序,写出构造成的堆。
3.一组数 《90,70,30,50,40,10,20》,分别对应 A,B,C,D,E,F,G 的频度,请构造哈夫
曼编码,如果接受端要接受此编码,需要具备什么条件!
4.M 个数据,假设存储在数组中,要查找其前 K 个最大的数,k<
二。算法题
1.模拟操作系统的 LRU 算法,设计数据结构,并算法实现。
2.一棵树,要求你将所有的叶子结点练成一串,前一叶子结点的右链域指向下一叶子结点
的左链域,设根指针为 R,写出实现算法
3.图采用邻接矩阵表示时,其具体的深度优先遍历算法实现。
内蒙古大学计算机 2014 年复试回忆版真题
1、写出程序运行结果(三个还算简单函数)。
2、找出程序中五个语法或逻辑错误并改错(原程序的 bug 远超五个)。
3、(算法)填空题(五个空)大意是:给定一个秤砣质量的数组,能否使用这些
秤砣秤出某个质量的大小。
4、编程题:给定平面十个点的坐标,求相互距离中的最小值。
5、编程题:给定输入文件与输出文件,读取输入文件中每行的有限个整数,输
出该行最大最小值到输出文件。
内蒙古大学计算机 2015 年复试回忆版真题
1、谓词命题证明
研究生都是统考或是推免生,所有推免生本科课程一点学的好,并非所有研究生
本科课程都学得好,那么研究生中存在统考生。
2、是一个群,a,b 属于 G,a。b=a*x*b,x 属于 G;证明也是群;
3、简述面向对象的思想和方法,属性,类,事件,事件处理的概念;
4、用递归求 f(n)=f(n-1)+f(n-2) n>2;n=1 时 f(n)=1;n=2 时 f(n)=1;
5、键盘上输入若干个数字,按递减排序,并写入文件中,输入在屏幕上;
6、在 Windows 下实现多线程并互斥,主线程休眠 2 秒,次线程休眠 1 秒;
第一题是 斐波那契数列
第二题是字符串中统计数字个数并输出。
第三题:16 进制数转换成 8 进制 要求输入输出是字符串。
第四题:给定一组数 前后分成两半 各有序,要求排序输出。
第五题是 迷宫问题 找最短的路径。
1. 从键盘输入一组正整数,按-1 结束。判断是否有序,若有序输出 YES,否则
2. 判断回文。输入一个序列,是回文输出 YES,否则输出 NO。如:1,121,12121
3. 输入两个字符串 str1 和 str2,,将 str2 倒序,和 str1 连接后输出。
4. 输入 M,N(M 表示几进制数,N 表示将要转换的几进制数)。输入数 A,将 M
进制的 A 转化为 N 进制数后输出。若进制 M>10,可用 a,b,c,d…代替。
5. 输入正整数 N(N<1024),将 0 到 N 内所有和 7 有关的数统计出来。(和 7 有
关表示,这个数是 7 的倍数,或含数字 7),如输入 18,则和 7 有关的数为 7,
14,17。输出结果为 3 个。
6. 输出蛇形矩阵。输入 N(N<30)
输出 NO。
等都是回文。
如输入 abc
123
输出 abc321
若输入 10,输出
10 9 7 4
8
5
1
6 3
2
输入 9,输出
9 8 6 3
7 5 2
4 1
第一题
题目
输入一组由正整数组成的数字序列,序列大小不超过 500,遇到-1 结束输入,
判断这个数字序列是否是升序。如果是升序,输出“YES”,如果不是升序,输
出“NO”。
源码
#include
using namespace std;
int main()
{
int a[600] = {0};
int i;
for(i=0;i<600;i++){
//输入数字序列
cin>>a[i];
if(a[i]==-1)
break;
}
for(i=1;i<600;i++){
//判断是否升序
if(a[i]==-1)
break;
if(a[i]<=a[i-1])
break;
}
if(a[i]==-1)
//输出判断结果
cout<<"YES"<
个例子,如果输入的 n 是 20,那么 20 以内与 7 有关的数便是:7、14、17,
最终输出结果是 3。
源码
#include
using namespace std;
int getAnswer(int n)
//计算与 7 有关的数字个数
{
int i,cnt=0;
for(i=1;i<=n;i++){
//循环 n 以内的所有数
if(i%7==0)
//如果当前数是 7 的倍数,计数+1
cnt++;
else{
int t = i;
while(t){
if(t%10==7){
//如果当前数的某一位是 7,计数+1
cnt++;
break;
}
t/=10;
}
}
}
return cnt;
}
int main()
{
}
int n;
cin>>n;
cout<
第三题
题目
输入一个正整数,判断这个数是否是“回文数”。所谓“回文数”,便是正着念
和反着念都一样的数。比如,1、11、121、1221、12321,都是回文数。如果
这个输入的数是回文数,那么输出“YES”,如果不是回文数,输出“NO”。
源码
#include
#include
using namespace std;
int isHuiwen(char num[])
//判断是否是回文数
{
int i,len = strlen(num);
for(i=0;i