2013年北京邮电大学计算机ACM上机试题
大学ACM考试题目及作业答案整理

ACM作业与答案整理1、平面分割方法:设有n条封闭曲线画在平面上,而任何两条封闭曲线恰好相交于两点,且任何三条封闭曲线不相交于同一点,问这些封闭曲线把平面分割成的区域个数。
#include <iostream.h>int f(int n){if(n==1) return 2;else return f(n-1)+2*(n-1);}void main(){int n;while(1){cin>>n;cout<<f(n)<<endl;}}2、LELE的RPG难题:有排成一行的n个方格,用红(Red)、粉(Pink)、绿(Green)三色涂每个格子,每格涂一色,要求任何相邻的方格不能同色,且首尾两格也不同色.编程全部的满足要求的涂法.#include<iostream.h>int f(int n){if(n==1) return 3;else if(n==2) return 6;else return f(n-1)+f(n-2)*2;}void main(){int n;while(1){cin>>n;cout<<f(n)<<endl;}}3、北大ACM(1942)Paths on a GridTime Limit: 1000MS Memory Limit: 30000K DescriptionImagine you are attending your math lesson at school. Once again, you are bored because your teacher tells things that you already mastered years ago (this time he's explaining that (a+b)2=a2+2ab+b2). So you decide to waste your time with drawing modern art instead.Fortunately you have a piece of squared paper and you choose a rectangle of size n*m on the paper. Let's call this rectangle together with the lines it contains a grid. Starting at the lower left corner of the grid, you move your pencil to the upper right corner, taking care that it stays on the lines and moves only to the right or up. The result is shown on the left:Really a masterpiece, isn't it? Repeating the procedure one more time, you arrive with the picture shown on the right. Now you wonder: how many different works of art can you produce?InputThe input contains several testcases. Each is specified by two unsigned 32-bit integers n and m, denoting the size of the rectangle. As you can observe, the number of lines of the corresponding grid is one more in each dimension. Input is terminated by n=m=0.OutputFor each test case output on a line the number of different art works that can be generated using the procedure described above. That is, how many paths are there on a grid where each step of the path consists of moving one unit to the right orone unit up? You may safely assume that this number fits into a 32-bit unsigned integer.Sample Input5 41 10 0Sample Output1262#include<iostream>using namespace std;longlong f(long long m, long long n){if(n==0) return 1;else return f(m-1,n-1)*m/n;}int main(){longlongm,n;while(scanf("%I64d %I64d",&n,&m) &&n+m){printf("%I64d\n",f(m+n,min(m,n)));}return 0;}1、(并查集)若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系。
ACM题库完整版

#include<stdio.h> int type(int); char week[7][10]={"saturday","sunday","monday","tuesday","wednesday","thursday","friday"}; int year[2]={365,366}; int month[2][12]={31,28,31,30,31,30,31,31,30,31,30,31,31,29,31,30,31,30,31,31,30,31,30,31}; int main(void) { int days,dayofweek; int i=0,j=0; while(scanf("%d",&days)&&days!=-1) { dayofweek=days%7; for(i=2000;days>=year[type(i)];i++) days-=year[type(i)]; for(j=0;days>=month[type(i)][j];j++) days-=month[type(i)][j]; printf("%d-%02d-%02d%s\n",i,j+1,days+1,week[dayofweek]); } return 0; } int type(int m) { if(m%4!=0||(m%100==0&&m%400!=0)) return 0; else return 1; }
登山
1.题目描述 五一到了,NUIST-ACM队组织大家去登 山观光,队员们发现山上一个有N个景点, 并且决定按照顺序来浏览这些景点,即 每次所浏览景点的编号都要大于前一个 浏览景点的编号。同时队员们还有另一 个登山习惯,就是不连续浏览海拔相同 的两个景点,并且一旦开始下山,就不 再向上走了。队员们希望在满足上面条 件的同时,尽可能多的浏览景点,你能 帮他们找出最多可能浏览的景点数么? 2.输入 Line 1: N (2 <= N <= 1000) 景点数 Line 2: N个整数,每个景点的海拔 3.输出 最多能浏览的景点数 4.样例输入 8 186 186 150 200 160 130 197 220 5.样例输出 4
2013年计算机统考真题及答案解析

D. 中断 I/O 方式适用于所有外部设备,DMA 方式仅适用于快速外部设备 23. 用户在删除某文件的过程中,操作系统不可能执行的操作是 A. 删除此文件所在的目录 B. 删除与此文件关联的目录项 C. 删除与此文件对应的文件控制块 D. 释放与此文件关联的内存级冲区 24. 为支持 CD-ROM 中视频文件的快速随机播放,播放性能最好的文件数据块组织方式是 A. 连续结构 B. 链式结构 C. 直接索引结构 D. 多级索引结钩 25. 用户程序发出磁盘 I/O 请求后,系统的处理流程是:用户程序→系统调用处理程序→设备 骆动程序→中断处理程序。其中,计算数据所在磁盘的柱面号、磁头号、扇区号的程序是 A. 用户程序 B. 系统调用处理程序 C. 设备驱动程序 D. 中断处理程序 26. 若某文件系统索引结点(inode)中有直接地址项和间接地址项,则下列选项中,与单个文 件长度无关 的因素是 .. A. 索引结点的总数 B. 间接地址索引的级数 C. 地址项的个数 D. 文件块大小 27. 设系统缓冲区和用户工作区均采用单缓冲,从外设读入 1 个数据块到系统缓冲区的时间为 100,从系统缓冲区读入 1 个数据块到用户工作区的时间为 5,对用户工作区中的 1 个数据 块进行分析的时间为 90(如下图所示) 。进程从外设读入并分析 2 个数据块的最短时间是
5. 若 X 是后序线索二叉树中的叶结点,且 X 存在左兄弟结点 Y,则 X 的右线索指向的是 A. X 的父结点 B. 以 Y 为根的子树的最左下结点 C. X 的左兄弟结点 Y D. 以 Y 为根的子树的最右下结点 6. 在任意一棵非空二叉排序树 T1 中,删除某结点 v 之后形成二叉排序树 T2,再将 v 插入 T2 形 成二叉排序树 T3。下列关于 T1 与 T3 的叙述中,正确的是 I. 若 v 是 T1 的叶结点,则 T1 与 T3 不同 II. 若 v 是 T1 的叶结点,则 T1 与 T3 相同 III. 若 v 不是 T1 的叶结点,则 T1 与 T3 不同 IV. 若 v 不是 T1 的叶结点,则 T1 与 T3 相同 A. 仅 I、III B. 仅 I、IV C. 仅 II、III D. 仅 II、IV 7. 设图的邻接矩阵 A 如下所示。各顶点的度依次是 0 1 0 1 0 0 1 1 A 0 1 0 0 1 0 0 0 A. 1,2,1,2 B. 2,2,1,1 C. 3,4,2,3 D. 4,4,2,2 8. 若对如下无向图进行遍历,则下列选项中,不 是广度优先遍历序列的是 . A. h,c,a,b,d,e,g,f C. d,b,c,a,h,e,f,g B. e,a,f,g,b,h,c,d D. a,b,c,d,h,e,f,g
2013年计算机统考真题及答案解析

, pn 。若 p2 3 ,则 p3 可能取值
的个数是 B. n 2 C. n 1 D. 无法确定 A. n 3 3. 若将关键字 1,2,3,4,5,6,7 依次插入到初始为空的平衡二叉树 T 中,则 T 中平衡因 子为 0 的分支结点的个数是 A. 0 B. 1 C. 2 D. 3 4. 已知三叉树 T 中 6 个叶结点的权分别是 2,3,4,5,6,7,T 的带权(外部)路径长度最 小是 A. 27 B. 46 C. 54 D. 56
17. 假设变址寄存器 R 的内容为 1000H,指令中的形式地址为 2000 H;地址 1000H 中的内容 为 2000H,地址 2000H 中的内容为 3000H,地址 3000 H 中的内容为 4000H,则变址寻址 方式下访问到的操作数是 A. 1000H B. 2000H C. 3000H D. 4000 H 18. 某 CPU 主频为 1.03 GHz,采用 4 级指令流水线,每个流水段的执行需要 1 个时钟周期。 假定 CPU 执行了 100 条指令,在其执行过程中,没有发生任何流水线阻塞,此时流水线 的吞吐率为 A. 0.25×109 条指令/秒 B. 0.97×109 条指令/秒 C. 1.0×109 条指令/秒 D. 1.03 ×109 条指令/秒 19. 下列选项中,用于设备和设备控制器(I/O 接口)之间互连的接口标准是 A. PCI B. USB C. AGP D. PCI-Express 20. 下列选项中,用于提高 RAID 可靠性的措施有 I. 磁盘镜像 II. 条带化 III. 奇偶校验 IV. 增加 Cache 机制 A.仅 I、II B. 仅 I、III C. 仅 I、III 和 IV D. 仅 II、III 和 IV 21. 某磁盘的转速为 10 000 转/分,平均寻道时间是 6 ms,磁盘传输速率是 20 MB/s,磁盘控 制器延迟为 0.2 ms,读取一个 4 KB 的扇区所需的平均时间约为 A. 9 ms B. 9.4 ms C. 12 ms D. 12.4 ms 22. 下列关于中断 I/O 方式和 DMA 方式比较的叙述中,错误 的是 .. A. 中断 I/O 方式请求的是 CPU 处理时间,DMA 方式请求的是总线使用权 B. 中断响应发生在一条指令执行结束后,DMA 响应发生在一个总线事务完成后 C. 中断 I/O 方式下数据传送通过软件完成,DMA 方式下数据传送由硬件完成
计算机网络试卷2013-2014学年第一学期期末-包含标准答案 北京航空航天大学

北京航空航天大学2013-2014学年第一学期期末《计算机网络》考试卷(A卷)班级______________学号 _________姓名______________成绩 _________2014年12月6日班号学号姓名成绩《计算机网络》期末考试卷(A卷)注意事项:1、答案写在答题纸上,写在试卷上无效。
2、考试结束后,按各班交试卷和答题纸。
题目:一、单项选择…………………………………………………………(20 分)二、填空题…………………………………………………………(10 分)三、简答题…………………………………………………………(40 分)四、应用题…………………………………………………………(30 分)一、单项选择(共10题,每题2分,共20分)1.以太网交换机进行转发决策时使用的PDU 地址是:A、目的物理地址B、目的 IP 地址C、源物理地址D、源 IP 地址2.在 OSI 参考模型中,自下而上第一个提供端到端服务的层次是:A、数据链路层B、传输层C、会话层D、应用层3.某主机的IP为180.80.77.55,子网掩码为255.255.255.192,若该主机向其所在子网发送广播分组,则目的地址为:A、180.80.77.0 B. 180.80.77.63 C. 180.80.77.255 D. 180.80.79.2554.某网络的IP地址为192.168.5.0/24采用长子网划分,子网掩码为255.255.255.224,则每个子网内最多容纳多少台主机()A:8 B:6 C:32 D:305.下列哪一项不是组成计算机网络必须的设备A、计算机系统B、网络适配器C、传输介质D、网络打印机6.当前使用的IPv4地址是比特。
A、16B、32C、48D、1287.在传输层中使用()来唯一标识一个进程。
A、IP地址:端口号B、主机名:进程号C、MAC地址:端口号D、 IP地址:进程号8.主机甲向主机乙发送一个(SYN = 1, seq = 11220)的TCP段,期望与主机乙建立TCP连接,若主机乙接受该连接请求,则主机乙向主机甲发送的正确的TCP段可能是A.(SYN = 0, ACK = 0, seq = 11221, ack = 11221)B.(SYN = 1, ACK = 1, seq = 11220, ack = 11220)C.(SYN = 1, ACK = 1, seq = 11221, ack = 11221)D.(SYN = 0, ACK = 0, seq = 11220, ack = 11220)9.主机甲和主机乙之间已建立一个TCP连接,TCP最大段长度为1000字节,若主机甲的当前拥塞窗口为4000字节,在主机甲向主机乙连接发送2个最大段后,成功收到主机乙发送的第一段的确认段,确认段中通告的接收窗口大小为2000字节,则此时主机甲还可以向主机乙发送的最大字节数是:A:1000 B:2000 C:3000 D:400010.已知CIDR地址块172.31.128.255/18,该段地址段的广播地址是:A、172.31.191.255B、172.31.128.254C、172.31.191.254D、172.31.128.255二:填空题。
2013年上半年程序员考试真题及答案解析

全国计算机技术与软件专业技术资格(水平)考试2013年上半年程序员上午试卷(考试时间 9 : 00~11 : 30 共 150 分钟)1. 在答题卡的指定位置上正确写入你的姓名和准考证号,并用正规 2B 铅笔在你写入的准考证号下填涂准考证号。
2. 本试卷的试题中共有 75 个空格,需要全部解答,每个空格 1 分,满分75 分。
3. 每个空格对应一个序号,有 A、B、C、D 四个选项,请选择一个最恰当的选项作为解答,在答题卡相应序号下填涂该选项。
4. 解答前务必阅读例题和答题卡上的例题填涂样式及填涂注意事项。
解答时用正规 2B 铅笔正确填涂选项,如需修改,请用橡皮擦干净,否则会导致不能正确评分。
例题● 2013 年上半年全国计算机技术与软件专业技术资格(水平)考试日期是(88)月(89)日。
(88)A. 3 B. 4 C. 5 D. 6(89)A. 20 B. 21 C. 22 D. 23因为考试日期是“5 月 20 日”,故(88)选 C,(89)选 A,应在答题卡序号 88 下对 C 填涂,在序号 89 下对 A 填涂(参看答题卡)。
●在Word的编辑状态下,若要防止在段落中间出现分页符,可以通过单击鼠标右键在弹出的菜单中选择(1)命令;在“段落”对话框中,选择“换行和分页”选项卡,然后再勾选(2)。
(1)A.段落(P) B.插入符号(S) C.项目符号(B) D.编号(N)(2)A. B.C. D.●某Excel工作表如下所示,若在D1单元格中输入=$A$1+$B$1+C1,则D1的值为(3);此时,如果向垂直方向拖动填充柄至D3单元格,则D2和D3的值分别为(4)。
(3)A.34 B.36 C.39 D.54(4)A.79和99 B.69和93 C.64和60 D.79和93●(5)服务的主要作用是实现文件的上传和下载。
(5)A.Gopher B.FTP C.TelnetD.E-mail●与八进制数1706等值的十六进制数是(6)。
计算机网络项目(2013年)样题(综合)

参赛队伍编号:……………………………………………………………………竞赛说明一、注意事项:1、检查硬件设备、网线头、Console线、PC机、线缆、测线仪器以及自带的制线工具等的数量是否齐全。
2、赛场已在物理机计算机上安装好windows XP、VMware虚拟机软件和华三设备操作手册,检查电脑设备是否正常。
3、禁止携带和使用移动存储设备、运算器、通信工具及参考资料。
4、操作完成后,需要保存设备配置在指定的PC1上,并使用光盘刻录机刻录,不要关闭任何设备,不要拆动硬件的连接,不要对设备随意加密码,试卷留在考场。
5、不要损坏赛场准备的比赛所需要的竞赛设备、竞赛软件和竞赛材料等。
6、考生自己安装的所有linux系统的root密码为20132013,所有windows系统的administrator密码为空。
考生在VMware下安装的linux在创建的linux文件夹下,windows server 2003在创建的WindowSW2003文件夹下。
二、竞赛环境:软件环境:第一部分综合布线部分本次竞赛模拟给定一个比较简单既有建筑物增加网络综合布线系统工程实例,请各竞赛队按照题目要求完成下面的工程设计、安装施工和竣工资料。
全部书面竞赛作品,只能填写竞赛组编号进行识别,不得填写任何名称或者任何形式的识别性标记。
如果出现地区、校名、人名等其他任何与竞赛队有关的识别信息时,竞赛试卷和作品作废,按照零分对待,并且由大赛组委会进行处理。
图1 某既有建筑物增加网络综合布线系统模型图布线安装施工在西元网络综合布线实训装置上进行,每个竞赛队1个U区域。
具体路由请按照题目要求和图1中表示的位置。
特别注意:安装操作方法,请参考西安开元电子实业有限公司的产品说明书规定进行。
按照图1所示位置,完成FD配线子系统的线槽、线管、底盒、模块、面板的安装,同时完成布线端接。
要求横平竖直,位置正确,接缝不大于1毫米。
每个信息插座铺设1根双绞线,第1个插座模块的双绞线,端接到机柜内配线架的1、2口,其余顺序端接。
(2013年级)上机考试试卷B(C++下)

信息学院13级计算机科学基础II上机试卷B(考试时间80分钟卷面成绩100分)学号姓名机位号说明:首先在Z盘建立一个以自己的学号命名的文件夹,用于存放上交的*.CPP 文件和.dat文件,考试结束前根据机房要求,将这个文件夹传送到网络服务器上,注意:提交时只保留文件夹中的CPP文件和dat文件。
一、改错题(50分)【要求】调试程序,修改其中的语法错误及逻辑错误(共10处)。
1)只能修改、不能增加或删除整条语句。
2)请在修改行的末尾用"注释符号//+序号"表示此行修改过,如//3)3)源程序以"学号f1.cpp"命名,存入自己学号文件夹中。
【注意】一行中的多个错误算一处错误【程序说明】:name:存放影片名称numofseats:影厅座位数price:指向动态开辟的数组,数组中存放session(=4)个场次的电影票价格数:工作日白天的价格,工作日晚上的价格,双休日白天的价格,双休日晚上的价格。
程序修改正确后的最终运行结果为:60 Captain America30 40 50 5520 Frozen20 Frozen60 Captain America30 40 50 55【含错误的源程序】#include<iostream>#include<cstring>using namespace std;const int session=4;class film{string name;int numofseats;int *price;public:film(int =0,string ="\0",int *p=NULL);film(film &);~film();friend ostream operator<<(ostream out,film sobj) {cout<<sobj.numofseats<<'\t'<<<<endl;if(sobj.price){for(int i=0;i<session;i++)out<<sobj.price[i]<<'\t';out<<endl;}return out;}film operator =(film &);};film::film(int nu,string na,int p){numofseats=nu;na=name;if(!p){if(price=new int[session])for(int i=0;i<session;i++)price[i]=p[i];}else price=NULL;}film::film(film &sobj){numofseats=sobj.numofseats;name=;if(sobj.price){price=new int(session);if(price)for(int i=0;i<session;i++)price[i]=sobj.price[i];else exit(0);}else sobj.price=NULL;}film film::operator =(film &sobj){numofseats=sobj.numofseats;name=;if(price) delete price;if(sobj.price){if(price=new int[session])for(int i=0;i<session;i++)price[i]=sobj.price[i];else exit(0);}return this;}film::~film(){if(price)delete [] price;}int main(){int arr[session]={30,40,50,55};film Foriegn(60,"Captain America",arr),Cartoon(20,"Frozen");film Interest(Cartoon);cout<<Foriegn<<Cartoon<<Interest;Interest=Foriegn;cout<<Interest;return 0;}二、编程题(50分)【注意】源程序以“学号f2.cpp”命名,存入自己学号文件夹。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
D 最小距离查询
Accept:2 Submit:433
Time Limit:1000MS Memory Limit:65536KB Description
给定一个由小写字母a到z组成的字符串S,其中第i个字符为S[i](下标从0开始)。
你需要完成下面两个操作:
1.INSERT c
其中c是一个待输入的字符。
你需要在字符串的末尾添加这个字符。
保证输入的字符同样是a到z之间的一个小写字母。
2.QUERY x
其中x是一个输入的整数下标。
对于这个询问,你需要回答在S当中和S[x]相等且与x最近的距离。
输入保证x在当前字符串中合法。
例如S = "abcaba",如果我们操作:
INSERT a
则在S的末端加一个字符a,S变成"abcabaa"。
接下来操作
QUERY 0
由于S[0] = a,在S中出现的离他最近的a在下标为3的位置上,距离为3 - 0 = 3。
因此应当输出3。
接下来,如果
QUERY 4
S[4] = b,S中离它最近的b出现在下标为1处,距离为4 - 1 = 3。
同样应当输出3。
给定初始字符串S和若干操作,对于每个QUERY,你需要求出相应的距离。
InputFormat
输入的第一行是一个正整数T(T≤20),表示测试数据的组数。
每组输入数据的第一行是一个初始串S。
第二行是一个正整数m(1≤m≤100000),表示总共操作的数量。
接下来m行,每行表示一个操作。
操作的格式如上所述。
数据保证在任何情况下,S的长度不会超过100000。
OutputFormat
对于每个QUERY,输出所求的最小距离。
如果S中其它位置都不存在和它相同的字符,输出-1。
SampleInput
2
axb
3
INSERT a
QUERY 0
QUERY 1
explore
3
INSERT r
QUERY 7
QUERY 1
SampleOutput
3
-1
2
-1
Hint
由于输入数据较大,C/C++中推荐使用scanf进行读入以获得更快的读入速度。
同时请注意算法复杂度。
submit Discuss
C 中序遍历序列
Accept:155 Submit:502
Time Limit:1000MS Memory Limit:65536KB
Description
给出一个序列,判断该序列是不是某二叉搜索树的中序遍历序列,如果是输出"Yes",否则输出"No"。
一颗带权二叉树是一颗二叉搜索树(二叉排序树),当且仅当对于任意一个节点,他的左子树中的所有权值小于当前节点的权值,且它的右子树中的所有权值均大于当前节点的权值。
Input Format
第一行T(T/leq10)代表数据组数。
每组数据包括两行:
第一行为一个整数N($1/leq x /leq 400),表示序列的长度。
第二行包含N个整数,表示这个这个序列,序列中的数的x范围为($1/leq x/leq 100000)。
OutPut Format
每组数据,如果是二叉搜索树的中序遍历序列输出"Yes",否则输出"No"。
Input
2
4
1 2 3 4
4
1 3
2 4
OutPut
Yes
No
submit Discuss
B 统计节点个数
Accept:88 Submit:547
Time Limit:1000MS Memory Limit:65536KB
Description
给出一棵有向树,一共有N(1<N≤1000)个节点,如果一个节点的度(入度+出度)不小于它所有儿子以及它父亲的度(如果存在父亲或儿子),那么我们称这个节点为p节点,现在你的任务是统计p节点的个数。
InputFormat
第一行为数据组数T(1≤T≤100)。
每组数据第一行为N表示树的节点数。
后面为N−1行,每行两个数x,y(0≤x,y<N),代表y 是x的儿子节点。
OutputFormat
每组数据输出一行,为一个整数,代表这棵树上p节点的个数。
SampleInput
2
5
0 1
1 2
2 3
3 4
3
0 2
0 1
SampleOutput
3
1
Hint
第一组的p节点为1,2,3;第二组的p节点为0。
submit Discuss
A 日期
Accept:207 Submit:852
Time Limit:1000MS Memory Limit:65536KB
Description
请你计算出第X年Y月Z日是第X年的第几天。
其中,1月1日是第一天,1月2日是第二天,以此类推。
计算时请注意闰年的影响。
对于非整百年,年数能整除4是闰年,否则不是闰年;对于整百年,年数能整除400是闰年,否则不是闰年。
如1900年和1901年不是闰年,而2000年和2004年是闰年。
InputFormat
第一行有一个整数T($T\leq100$),表示一共有T组数据需要你处理。
接下来一共有T行,每行是一个如下格式的字符串:X:Y:Z,表示你需要计算第X年Y月Z日是第X年的第几天。
其中X是一个大于0,小于2100的整数。
保证字符串的格式都是合法的,字符串所表示的日期也都是存在的。
OutputFormat
对于每组数据,你需要输出一个整数,表示所求得的结果。
SampleInput
2
2013:4:12
112:4:12
SampleOutput
102
103
submit Discuss。