山东科技大学OJ部分题目记答案
山东科技大学OJ部分题目记问题详解
//////////Problem D: 货币兑换Description给出人民币对美元、欧元、日元的当日汇率,求给定金额的人民币能兑换成外币的金额,求给定金额的外币能兑换成人民币的金额。
要计算的外币有三种:美元、欧元、日元。
Input输入有三行。
第一行依次为美元、欧元、日元外币汇率,用空格分开。
汇率用100外币为单位,精确到小数点后4位,如668.5200表示“100美元=668.5200人民币”。
汇率浮动范围为(0,10000)。
第二行为外币金额x,第三行为人民币金额y。
x,y均为整数,且0<x,y<10000。
Output输出为两行。
第一行为金额为x的美元、欧元、日元兑换成人民币的金额,用空格分开。
第二行为金额为y的人民币兑换成美元、欧元、日元的金额,用空格分开。
所有金额精确到小数点后两位。
Sample Input668.5200 908.0685 7.985215001500Sample Output10027.80 13621.03 119.78#include <stdio.h>int main(){double i,j,k,a,b,c,d,e,f;double x,y;scanf ("%lf %lf %lf",&i,&j,&k);scanf ("%lf%lf",&x,&y);a=x/100*i;b=y/100*j;c=x/100*k;d=y*100/i;e=y*100/j;f=y*100/k;printf ("%.2lf %.2lf %.2lf\n",a,b,c);printf ("%.2lf %.2lf %.2lf\n",d,e,f);}////Problem E: 求字符的值////Description从键盘输入3个字符(不含双字节字符),分别输出每个字符的十进制值(ASCII码)、八进制值和十六进制值。
山东科技大学算法试题 (2)
山东科技大学 — 学年第 学期《算法设计与分析》考试试卷班级 姓名 学号一、设数组A 有n 个元素,需要找出其中的最大最小值。
(20分)(1) 请给出一个解决方法,并分析其复杂性。
(2) 把n 个元素等分为两组A1和A2,分别求这两组的最大值和最小值,然后分别将这两组的最大值和最小值相比较,求出全部元素的最大值和最小值。
如果A1和A2中的元素多于两个,则再用上述方法各分为两个子集。
直至子集中元素至多两个元素为止。
这是什么方法的思想?请给出该方法的算法描述,并分析其复杂性。
二、已知1()*()i i k k ij r r A a +=,k =1,2,3,4,5,6,r 1=5,r 2=10,r 3=3,r 4=12,r 5=5,r 6=50,r 7=6,求矩阵链积A 1×A 2×A 3×A 4×A 5×A 6的最佳求积顺序。
(20分) 三、对于下图使用Dijkstra 算法求由顶点a 到其他各个顶点的最短路径。
并给出求各个顶点对之间的最短路径的算法思想。
(20分)。
四、 15谜问题:在一个4×4的方格的棋盘上,将数字1到15代表的15个棋子以任意的顺序置入各方格中,空出一格。
要求通过有限次的移动,把一个给定的初始状态变成目标状态。
移动的规则是:每次只能把空格周围的四格数字(棋子)中的任意一个移入空格,从而形成一个新的状态。
为了有效的移动,设计了估值函数C 1(x),表示在结点x 的状态下,没有到达目标状态下的正确位置的棋子的个数。
(20分)请使用该估计函数,对图示的初始状态,给出使用分支限界方法转换到目标状态的搜索树。
五、设x1、x2、x3是一个三角形的三条边,而且x1+x2+x3=14。
请问有多少种不同的三角形?给出解答过程。
(20分)。
[山科]第一届山东省ACM竞赛题解
第一届山东省ACM竞赛题解A.Phone Number简单题。
n只有1000,O(n ^ 2)判断就可以了。
B.Balloons数据结构简单题,DFS求连通分量。
注意两个式子,前者表示是4个方向连通,后者表示8个方向连通。
C.Clockwise计算几何+DP。
首先要看明白顺时针和逆时针的定义,其实按正常的理解就可以,但要注意三点共线的情况,例如下标为a<b<c 的三点构成的角180度算作顺时针,0度算作逆时针。
顺逆时针用叉积和点积判断就可以。
删掉最少点,也就是保留最多点,我们考虑顺时针的情况(逆时针相同),考虑保留下来的最后一条线段,它和它的前一条线段要构成顺时针的角才可以,所以我们使用dp[i][j](i > j)来表示最后一条线段是i,j所能保留下来的最大的珠子数,dp[i][j] = max(dp[j][k] + 1)(j > k,i、j、k 三点构成顺时针角),复杂度O(n^3)D.Shopping简单题。
最大值-最小值的二倍就是答案。
E.Emergency图论,Flody算法。
Q有100000之大,每次求两点间距离必然超时。
但是可以发现图只有300个顶点,我们只在新的顶点被标记时更新两点间的距离,分析可以发现我们可以先更新从此标记点到另外点的最短距离,再更新从另外点到此标记点的最短距离,最后再更新经过此标记点的最短距离就可以了,复杂度O(n^2),总共可能有n次标记,故总复杂度O(n^3),其它查询在O(1)内就能完成。
另外要注意的是会有重边和自环,求最短路,重边保留最小的,自环去掉就可以了。
F.Fairy tale模拟题。
读懂题目,跟着题目模拟就可以了。
需要注意的就是geometrical distance是两点间的直线距离,我理解为行和列差值的和错了一次。
定义一个状态结构,然后定义<操作符,用set判重,可以简化操作,尽量用数组存方位信息,而不是IF-ELSE。
山东科技大学OJ集锦
(1-2)Description计算两整数x和y(0<x,y<1000)的和、差、积、商、余数、x的平方和y的三次方。
Input输入只有一行,格式见sample。
Output输出为多行,按顺序每行输出x,y的和、差、积、商、余数、x的平方和y的三次方,格式见sampleSample Inputx = 11, y = 3Sample Outputx + y : 14x - y : 8x * y : 33x / y quotient: 3, remainder: 2x ^ 2 : 121y ^ 3 : 27HINT注意输入输出格式。
了解C语言整数除法运算符的特点,并且没有求幂的运算符#include <stdio.h>int main(){int x,y;0<x<1000,0<y<1000;scanf("x = %d, y = %d",&x,&y);printf("x + y : %d\n",x+y);printf("x - y : %d\n",x-y);printf("x * y : %d\n",x*y);printf("x / y quotient: %d, remainder: %d\n",x/y,x%y);printf("x ^ 2 : %d\n",x*x);printf("y ^ 3 : %d\n",y*y*y);return 0;}(1-3)Description从键盘输入圆的半径,求圆的面积和周长,圆周率取3.14。
Input输入一个浮点型数据,有效数字不会超过十进制的6位。
Output输出为两行。
第一行为圆的面积,第二行为圆的周长,格式见sample。
Sample Input3Sample OutputArea: 28.260000Perimeter: 18.840000HINT了解浮点类型的输入、输出和算术运算符#include <stdio.h>#define P 3.14int main(){float r,s,c;scanf("%f",&r);s=P*r*r;c=2*r*P;printf("Area: %f\n",s);printf("Perimeter: %f\n",c);return 0;}(1-4)Description求3个数的平均值。
山东科技大学机械原理历年真题及详细答案
山东科技人学2009年招收硕士学位研究生入学考试机械®理试卷・、(15分)分别计算图1所示两个平面机构的自由度.♦千少7-2^- …、,渤》 I/ZZ1图】"二—tf 己&各科仟的尺寸方:/刖= 24zn/n •心=78zwn T Ig = 48ff7w • / = 100* ;并知原动件1以等角速度® = 10“〃/$ 沿逆时针方向回转•试用图解法求机构在0( =60・时构件2. 3的角速度和角加 速度。
解 豆用砒4押伽郦以 孤3 3 / 〃阻(林A勺松二衣(再二必丄BP =2% 二必必列吆二S*伕冲呀 fr图241D3 I ?(b) 4T6L(a二2卜汩« I內二1£I三.(20分)图3所示的轮系中.已知*齿轮齿数:為《£=35"I =Z ;=31・ Zj=z ;u97・试求该轮系的伎动比A”及方向.W 、(20分)图4所示•现欲设讣 枚链四杆机构・设已知摇杆CQ 的长度为 {■O = 75mm .疔稈速度变化系数K-1.5,机架/(0的长度为口《10(加/«, 二吨机架阿的夹角为卩=4亍•试求關柄的氏®/站和连杆的 —' r C 克为忙如4 \ 十1 L 乩一Sg = 4A 1^2R / / DD 〃///〃〃〃////〃//// A 图4"1 "岭"j Suh 丄]lTmn\ I rrl I////ZZZZ/Ipmn\1777ZW77]Q 轴做齡'27 -Jk 二辿则心_沏S?乜〃 (9乘矽卒■ 梓绍/址叶曲一4 »F?7W 厉 Mr" 一一5;3・丁图3扌h 化”产盂?= 〃4匸摇杆的F 个极恨位 长度fflC-/1/2 二 云二左 凶二九N 旦 2 6Uf me 纽2A^〉r»h«m 处gGft 砂7《cU 二m2沪%s 如.=皿271»彷二淞I旭二dr 如四久4 dsa 二戻eH Z 寸比 五、(20分)试设计一对外呛合的渐开线标准宜齿圆柱齿轮传动•耍求传动比Q42=-,女装中心距"=78刃册・若根抵强度的需如 取模数m ・3mm ・采J 耿标准齿形,齿顶髙系数";=1, 齿轮的分度19宜径、基圆直径.a' = 80/w«时,试求两齿轮的噹合角爭试确定这对齿轮的齿数z 「%并计算出大 、齿顶圆<径和齿根圆直翁 若安装中Q 字为久解' n, ______ __________ 才六.(15分)设一対心宜动尖顶推杆盘形凸顾丙雅杆W 礎 h = 16力切• "Sis 运动角①=120・。
山东科技大学——十套数据结构试题及答案
数据结构试卷(一)1. 栈和队列的共同特点是()。
A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2. 用链接方式存储的队列,在进行插入运算时().A. 仅修改头指针B. 头、尾指针都要修改C.仅修改尾指针D.头、尾指针可能都要修改3. 以下数据结构中哪一个是非线性结构? ()A.队列B.栈C.线性表D.二叉树4. 设有一个二维数组A[m][ n],假设 A[0][0]存放位置在644(io ),A[2][2]存放位置在676(i0),每个元素占一个空间, 问A[3][3](10)存放在什么位置?脚注(10)表示用10进制 表示。
A. O (1)B. O (n )C. O (1og 2n )D. O (n2) 9. 对于线性表(7, 34, 55, 25, 64, 46, 20, 10)进行散列存储时,若选用 H (K )=K %9作为散列函数,则散列地址为 1的元素有( )个, A . 1 B . 2 C . 3 D . 410. 设有6个结点的无向图,该图至少应有 ()条边才能确保是一个连通图。
A.5B.6C.7D.8二、填空题(每空 1分,共26分) 1. 通常从四个方面评价算法的质量: ___________ 、 _________ 、 __________ 和 __________。
2. 一个算法的时间复杂度为 (n 3+n 2log 2n+14n )/n 2,其数量级表示为 _________ 。
3. 假定一棵树的广义表表示为 A ( C , D (E , F , G ), H (I , J )),则树中所含的结点数 为 ___________ 个,树的深度为 ____________ ,树的度为 _________ 。
4. 后缀算式9 2 3 +- 10 2 / -的值为 ____________ 。
中缀算式(3+4X ) -2Y/3对应的后缀算式 为 _________________________________ 。
山东科技大学OJ集锦
(1-2)Description计算两整数x和y(0<x,y<1000)的和、差、积、商、余数、x的平方和y的三次方。
Input输入只有一行,格式见sample。
Output输出为多行,按顺序每行输出x,y的和、差、积、商、余数、x的平方和y的三次方,格式见sampleSample Inputx = 11, y = 3Sample Outputx + y : 14x - y : 8x * y : 33x / y quotient: 3, remainder: 2x ^ 2 : 121y ^ 3 : 27HINT注意输入输出格式。
了解C语言整数除法运算符的特点,并且没有求幂的运算符#include <stdio.h>int main(){int x,y;0<x<1000,0<y<1000;scanf("x = %d, y = %d",&x,&y);printf("x + y : %d\n",x+y);printf("x - y : %d\n",x-y);printf("x * y : %d\n",x*y);printf("x / y quotient: %d, remainder: %d\n",x/y,x%y);printf("x ^ 2 : %d\n",x*x);printf("y ^ 3 : %d\n",y*y*y);return 0;}(1-3)Description从键盘输入圆的半径,求圆的面积和周长,圆周率取3.14。
Input输入一个浮点型数据,有效数字不会超过十进制的6位。
Output输出为两行。
第一行为圆的面积,第二行为圆的周长,格式见sample。
Sample Input3Sample OutputArea: 28.260000Perimeter: 18.840000HINT了解浮点类型的输入、输出和算术运算符#include <stdio.h>#define P 3.14int main(){float r,s,c;scanf("%f",&r);s=P*r*r;c=2*r*P;printf("Area: %f\n",s);printf("Perimeter: %f\n",c);return 0;}(1-4)Description求3个数的平均值。
山东科技大学OJ部分题目记答案
lf %.2lf %.2lf\n",a,b,c);printf ("%.2lf %.2lf %.2lf\n",d,e,f);}d %.3o %.3x\n",x,x,x);printf ("%.3d %.3o %.3x\n",y,y,y);printf ("%.3d %.3o %.3x\n",z,z,z);}Problem A: 简单的打折计算Description商店规定:消费满n元,可以打八八折。
设某件商品标价m元,输入购买的件数x,计算出需要支付的金额(单位:元),精确到分。
Input输入只有一行,三个整数m、n和x,且0<x<m<n<1000。
Output输出金额,精确到分。
Sample Input95 300 4Sample OutputHINT了解浮点型的输出控制,注意整型和浮点型混合运算过程中的数据类型转换。
#include <>int main(){int m,n,x;float s;scanf ("%d %d %d",&m,&n,&x);if (m*x>=n)s=m*x*;elses=m*x;printf ("%.2f",s);}Problem C: 水仙花数Description如果一个三位十进制数等于其各位数字的立方和,则称这个数为水仙花数。
如:13+53+33=153。
Input一个整数x,100<=x<=999。
Outputx是水仙花数,则输出“YES”,否则为“NO”。
#include <>int main(){int x,a,b,c;scanf ("%d",&x);a=x%10;b=x/10%10;c=x/100;if(a*a*a+b*b*b+c*c*c==x)printf ("YES");elseprintf ("NO");}Problem A: 多少张钞票Description客户去商店买东西时,不超过100美金的账单喜欢用现金支付。
计算机网络考试题(山东科技大学)
第一章1 网络协议的三个要素是什么?各有什么含义?一个网络协议主要有以下三个要素组成:(1)语法即数据与控制信息的结构或格式(2)语义即要发出何种控制信息,完成何种动作以及做出何种响应。
(3)同步即事件实现顺序的详细说明2.试述具有五层协议的网络体系结构特点,包括各层的主要功能?物理层:物理层的任务就是透明的传送比特流。
物理层还要确定连接电缆插头的定义及连接法。
数据链路层:数据链路层的任务是在两个相邻结点间的线路上无差错的传送以帧为单位的数据。
每一帧包括数据和必要的信息。
网络层:网络层负责为分组交换网上的不同主机提供通信服务。
运输层:运输层的任务就是负责向两个主机中进程之间的通信提供服务。
应用层:应用层直接为用户的应用进程提供服务。
3.解释以下名词:协议栈:协议套件又称为协议栈,因为它由一系列的子层组成,各层之间的关系好像一个栈。
实体:用以表示任何可发送或接收信息的硬件或软件进程。
对等层:任何两个同样的层次之间,好像将数据直接传递给对方,这就是所谓的对等层。
协议数据单元:各层的数据单元。
服务访问点:是相邻两层实体交互的逻辑接口。
客户与服务器:通信中涉及的两个应用进程。
客户是服务请求方,服务器是服务提供方。
客户-服务器方式:进程之间服务与被服务的关系第二章1.试给出数据通信系统模型并说明其主要组成构件的作用数据通信系统可划分为三大部分:源系统(1)源点:产生要传输数据的信源设备;(2)发送器:将源点产生的数据编码成传输系统中可以传输的信号。
传输系统:是源点和目标的系统之间的一条线路或一个网络。
目的系统:(1)接收器:接收来自传输系统传送过来的信号,并将其置换成设备能够处理的信息;(2)终点:目的站点或信宿。
2.解释下列名词数据:传送消息的实体。
信号:数据的电气或电磁的表现。
模拟数据:消息的参数的取值是连续的数据。
模拟信号:消息的参数的取值是连续的信号。
带通信号:把信带信号经过载波调制后,把信号的频率范围搬移到较高的频率以便在信道中传输。
山东科技大学算法复习题
一、简答题(1题4分,2题4分,3题6分,共14分)1.什么是算法?什么是程序?。
2.算法的特点是什么?3.给出算法复杂度计量符号O 和Ω的定义。
二、算法复杂度计算(10分)已知某算法耗时为T (n ),且满足如下递归方程(1)1()2(/2)()1O n T n T n O n n =⎧=⎨+⎩>试计算该算法的时间复杂度T (n )。
三、对于分治法,试解答:(1、2题各5分,3题8分,共18分)1.分治法的基本思想什么?2.试给出分治法的一般算法设计模式,用伪代码描述或详述解题步骤。
3.设n 个不同的整数排好序后存于T[0..n-1]中。
若存在一个下标i ,0≤i<n,使得T[i]=i ,设计一个有效算法找到这个下标。
要求算法在最坏情况下的计算时间为O (logn)。
四、对于动态规划算法,试解答:(1题4分,2题6分,3题10分,共20分)1.动态规划算法的两个基本要素,每个要素的含义是什么?2.写出动态规划算法解题的基本步骤。
3.0-1背包问题:给定n 个物品和一个背包。
物品i 的重量为wi ,价值为vi ,背包容量为c 。
问如何选择装入背包中的物品,使得装入背包的物品的价值最大?在装入背包时,每种物品i 只有两种选择,装入或者不装入,既不能装入多次,也不能只装入一部分。
其形式化描述为:问题的形式描述是:给定c >0,wi >0,vi >0,1≤i ≤n ,求n 元0-1向量(x1,x2,…,xn),使得用动态规划方法可以求解0-1背包问题,请回答下列问题:(1)证明该问题具有最优子结构性质;(2)设m(i,j)为背包容量为j ,可选择物品为i,i+1,…,n 时0-1背包问题的最优解,给出计算m(i,j)的递归式。
五、对于贪心算法,试解答:(1题3分,2题10分,共13分)1.贪心选择性质是什么?2.程序存储问题:设有n 个程序{1,2,…,n }要存放在长度为L 的磁带上。
程序i 存放在磁带上的长度是Li ,1≤i≤n 。
山东科技大学首届计算机程序设计大赛试题
山东科技大学首届计算机程序设计大赛试题一、在一个网页内设计一个“资源管理器”。
要求:以树形目录结构显示类似于Windows中资源管理器的常用功能,且均在快捷菜单(单击右键)中实现。
(打开、新建、删除、重命名、添加、搜索、发送、剪切、复制、属性)二、实现对屏幕上的汉字进行取字词,并呈现其汉语拼音,实现发音。
(即拥有类似金山词霸的功能)。
三、实现对某一文本框中的密码进行破译的功能。
(比如:在SQL Server中,假设采用混合验证模式登录查询分析器,此时就要求用户输入密码,如果首先运行你所编写的程序,那么用户所输入的密码就会由*变成你实际输入的字符。
)四、创建完整的模拟时钟、日历。
要求:在屏幕上呈现一个类似于商店里所卖的电子钟,并具有日期和时间的设置功能,确保证日历随时间的同步更新。
五、实现“堆栈”“链表”“树”“图”等类似结构的插入、删除、遍历操作的动画模拟。
(至少选两结构)六、设计一个图形编辑器,能实现如下功能。
要求:1、对于规则图形(例如:圆、椭圆、多边形等),实现交互式参数化自动绘制。
2、对于不规则图形实现手动绘制。
3、实现所绘制图形的文件保存与恢复。
七、将农历、阳历、节气、天干、地支等融为一体实现查询。
要求:输入其中任一参数,都能将该参数所对应的其它项显示出来。
八、各种排序算法动态模拟和演示程序。
九、假设某教室内有n(n<500)个座位给学生上自习使用。
试设计一数据结构和相应的算法管理教室内的座位资源,座位的分配符合“最近最少使用”的原则,并编程实现。
“最近最少使用”的原则是指:1. 一旦某个同学占有了一个座位,他的座位就不能被分配给别人。
此时,座位状态为“被占用”2. 当他离开座位后,他的座位还会被保留,并不会被立即分配给其它申请座位的同学。
此时,座位状态为“闲置”3. 一个座位被分配给另一个同学是由于没有空闲的座位(座位状态为“空闲”)和比座位闲置时间更长的座位。
4. 座位没有时间标签,设计一个合理的数据结构实现来实现十、Problem description明明进了中学之后,学到了代数表达式。
数字电子技术(山东科技大学)智慧树知到课后章节答案2023年下山东科技大学
数字电子技术(山东科技大学)智慧树知到课后章节答案2023年下山东科技大学第一章测试1.一位十六进制数可以用()位二进制数来表示。
A:4 B:3 C:2 D:1 答案:42.十进制数43可转换为()8421BCD码。
A: 10011 B: 010011 C: 1000011 D: 01000011 答案: 010000113.二进制数+1011的反码为()。
A: 10100 B: 01011 C: 00100 D: 11011 答案: 010114.有符号二进制数-89的补码为()。
A: 11011001 B: 10100111 C: 00100111 D: 01011001 答案: 101001115.与模拟电路相比,数字电路主要的优点有()。
A: 抗干扰能力强 B: 容易设计 C: 保密性好 D: 通用性强答案: 抗干扰能力强; 保密性好; 通用性强6.与八进制数(47.3)8等值的数为()。
A: (100111.11)2 B:(27.6)16 C:(100111.011)2 D: (27.3 )16答案:(27.6)16;(100111.011)27.以下代码中为恒权码的为()。
A: 余三码 B: 5421BCD码 C: 格雷码 D: 8421BCD码答案: 5421BCD码; 8421BCD码8.与十进制数(53.5)10等值的数或代码为()。
A: (65.4)8 B: (35.8)16 C: (110101.1)2 D: (0101 0011.0101)8421BCD答案: (65.4)8; (35.8)16; (110101.1)2; (0101 0011.0101)8421BCD9.在一个8位的存储单元中,能够存储的最大无符号整数是()。
A:(255)10 B:(256)10 C:(FF)16 D:(127)10答案:(255)10;(FF)16 10.矩形脉冲信号的参数有()。
A: 占空比 B: 扫描期 C: 周期 D: 脉宽答案: 占空比; 周期; 脉宽11.常用的BCD码有()。
c语言考试题及答案山东科技大学
c语言考试题及答案山东科技大学一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的关键字?A. voidB. intC. floatD. All of the above答案:D2. C语言中,用于定义一个字符常量的是什么?A. "A"B. 'A'C. AD. a答案:B3. 在C语言中,以下哪个函数用于计算并返回字符串的长度?A. strlen()B. strcat()C. strcpy()D. strcmp()答案:A4. 下列哪个选项不是C语言中的控制语句?A. ifB. whileC. switchD. continue答案:D5. C语言中,以下哪个选项是正确的二维数组定义?A. int array[3][4];B. int array[][];C. int array[3][];D. int array[3][4] = {{1,2},{3,4},{5,6}};答案:A6. 在C语言中,哪个运算符用于将一个值赋给变量?A. +B. -C. =D. %答案:C7. 下列哪个选项是C语言中的正确注释?A. // This is a single line commentB. /* This is a single line comment */C. // This is a multi-line commentD. /* This is a multi-line comment */答案:A8. 在C语言中,以下哪个选项是正确的函数定义?A. int function(int a) { return a; }B. int function(int a) { return a; }C. int function(int a) { return a; }D. int function(int a) { return a; }答案:A9. C语言中,以下哪个选项是正确的文件包含指令?A. #include <stdio.h>B. #include "stdio.h"C. #include <stdio.h>D. #include "stdio.h"答案:A10. 在C语言中,以下哪个选项是正确的宏定义?A. #define PI 3.14159B. #define PI "3.14159"C. #define PI 3.14159D. #define PI 3.14159答案:A二、填空题(每题2分,共20分)1. C语言中,用于声明一个整型变量的关键字是________。
山东科技大学OJ部分题目记答案
Problem A: Hello world! DescriptionXiao_ming有两个哥哥,大哥叫Da_min,二哥叫Er_min。
三兄弟放学回家,父母分别跟他们打招呼。
Input无Output请输出:Hello Da_min,Hello Er_min,Hello Xiao_ming!Sample InputSample OutputHello Da_min,Hello Er_min,Hello Xiao_ming!HINT请注意换行符#include <stdio.h>int main(){printf("Hello Da_min,\nHello Er_min,\nHello Xiao_ming!");}Problem A: 算术基本运算Description计算两整数x和y(0<x,y<1000)的和、差、积、商、余数、x的平方和y的三次方。
Input输入只有一行,格式见sample。
Output输出为多行,按顺序每行输出x,y的和、差、积、商、余数、x的平方和y的三次方,格式见sampleSample Inputx = 11, y = 3Sample Outputx + y : 14x - y : 8x * y : 33x / y quotient: 3, remainder: 2x ^ 2 : 121y ^ 3 : 27HINT注意输入输出格式。
了解C语言整数除法运算符的特点,并且没有求幂的运算符。
#include <stdio.h>int main(){int x,y;scanf ("x = %d, y = %d",&x,&y);printf ("x + y : %d\n",x+y);printf ("x - y : %d\n",x-y);printf ("x * y : %d\n",x*y);printf ("x / y quotient: %d, remainder: %d\n",x/y,x%y);printf("x ^ 2 : %d\n",x*x);printf ("y ^ 3 : %d\n",y*y*y);}Problem B: 求圆的面积和周长Description从键盘输入圆的半径,求圆的面积和周长,圆周率取3.14。
山东科技大学ojt题之SumProblem(III)
山东科技大学ojt题之SumProblem(III)Sum Problem (III) : Input/Output PraticeTime Limit: 1 Sec Memory Limit: 2 MBSubmit: 544 Solved: 383[Submit][Status][Web Board]Description计算若干整数的和,这些整数都是小于1000的非负整数。
Input输入为多行,每行为一组测试样例。
每个测试样例以一个整数N 开始,后面接着是N个整数。
当输入的N为0时表示输入结束。
Output每组测试样例对应一行输出,为所给的N个整数之和,顺序与输入对应。
Sample Input3 1 2 35 10 15 20 30 50Sample Output6125HINT用双重循环解决这个问题,外层循环控制用例的输入,内层循环控制读取N个整数。
Append Code#includeint main(){int a,b,i,c[1002];for(;;){scanf("%d",&a);if(a==0)break;b=0;for(i=0;i<a;i++)< bdsfid="94" p=""></a;i++)<> {scanf("%d",&c[i]); b=b+c[i];}printf("%d\n",b); }return 0;}。
山东科技大学算法试题 (1)
山东科技大学 — 学年第 学期《算法设计与分析》考试试卷班级 姓名 学号一、排序和查找是常用的计算机算法。
按照要求完成以下各题:(20分)(1) 对数组A={15,9,115,118,3,90,27,25,5},使用合并排序方法将其排成递减序。
(2) 若改变二分搜索法为三分搜索法,即从一个递减序列A 中寻找元素Z ,先与元素[]3nA 比较,若[]3n Z A >,则在前面[]3n 个元素中寻找Z ;否则与2[]3nA 比较,总之使余下的序列为[]3n 个元素。
给出该方法的伪代码描述。
(3) 使用上述算法对(1)所得到的结果搜索如下元素,并给出搜索过程:118,31,25。
二、假设有7个物品,它们的重量和价值如下表所示。
若这些物品均可以被分割,且背包容量M =150,如果使用贪心方法求解此背包问题,请回答:(20分)。
(1) 对各个物品进行排序时,依据的标准都有哪些?(2) 使用上述标准分别对7个物品进行排序,并给出利用各个顺序进行贪心求解时获得解。
(3) 上述解中哪个是最优的?三、多段图问题:设G =(V ,E)是一个赋权有向图,其顶点集V 被划分成k>2个不相交的子集V i :1i k ≤≤,其中,V 1和V k 分别只有一个顶点s (称为源)和一个顶点t (称为汇),图中所有的边(u,v ),i u V ∈,1i v V +∈。
求由s 到t 的最小成本路径。
(25分)(1) 给出使用动态规划算法求解多段图问题的基本思想。
(2)使用上述方法求解如下多段图问题。
V1V2V3V4V5四、回答如下问题:(15分)(3)什么是算法?算法的特征有哪些?(4)什么是P类问题?什么是NP类问题?请描述集合覆盖问题的近似算法的基本思想。
五、设x1、x2、x3是一个三角形的三条边,而且x1+x2+x3=14。
请问有多少种不同的三角形?给出解答过程。
(20分)。
山东科技大学操作系统试题A
.单项选择题(每小题 2分,共 30分)的变化范围是( )。
B. 1 至 m-1 D. 1 至-m-1)Allocation 、需求矩阵Need ,下列选项正确的是( A. Max[i,j]= Available[i,j] -Need[i,j] B. Need[i,j]= Allocation[i,j]+ Max[i,j] C. Max[i,j]=Allocation[i,j]+Need[i,j] D. Need[i,j]= Available[i,j]+ Max[i,j]区的信号量S 的初始值为()。
B. 管理信息区C. 公共数据区D. 信息保留区A.就绪态7运行态B.运行态7就绪态C. 运行态 7等待态D. 等待态 7运行态2.银行家算法中的数据结构包括可利用资源向量Available 、最大需求矩阵Max 、分配矩阵3. 在 9 个生产者, 6 个消费者共享容量为8 的缓冲区的生产者――消费者问题中,互斥使用缓冲4. 5.A.8 B. 1 C. 9 D. 6 面( )算法不是进程调度算法。
A. LRUB. FCFSC. SJFD.Priority临界区是指并发进程中涉及共享变量的( )。
6. 操作系统是对( )进行管理的软件。
A. 硬件B. 软件C. 应用程序D. 计算机资源7.在进程状态转换时,下列()转换是不可能发生的。
8. 以下存储管理技术中,支持虚拟存储器的技术是( )。
9. 10.A. 动态分区法 操作系统是一种(A. 系统软件B. 可重定位分区法C. 请求分页技术D. 对换技术 )。
B.系统硬件 C. 应用软件 D. 资源软件 文件目录的主要作用是()。
1. 有 m 个进程共享同一临界资源,若使用信号量机制实现对一临界资源的互斥访问,则信号量A. 1 至 m C.1 至-m)。
A. 程序段2.分页式内存管理和分段式内存管理有什么区别?FIFO 置换算法,当可用帧的数量增加时,发生页错误的次数()。
山东科技大学ojt题之回文
回文Time Limit: 1 Sec Memory Limit: 4 MBSubmit: 1055 Solved: 365[Submit][Status][Web Board]Description“回文(Palindrome)”是指一个串和它的倒序串完全一样,例如“文言文”、“上海在海上”、“妈妈爱我,我爱妈妈”就是回文。
接下来,你要编写一个程序来判断一个串是不是"回文"。
在这里,“回文”是指一个串中大小写不敏感的英文字母(a和A是同一个字母)和数字的顺序和逆序完全相同,其他字符(如空白符、标点和其他符号等)及所在位置被忽略。
Input输入为多行,到文件末尾结束。
每行为一个串,且不会超过1000个字符,且全部由可显示的ASCII码字符组成。
Output当一个串中的字母和数字部分能够构成一个回文,即输出“Yes.”;否则输出“No.”。
Sample Input1232002+0_0+eyehelloRevilo P.OliverDo you know?"No X in Nixon."Dollars make men covetous, then covetous men make dollars.A man, a plan, a canal: Panama!Sample OutputNo.Yes.Yes.Yes.No.Yes.No.Yes.No.Yes.HINT首先要考虑如何去除空白符(空格、回车、换行、制表符等),标点和各种符号(如“,!"”和“#@<>{}”等),并且把串中的英文字符统一大小写,最后才能进行回文判定。
请注意,用gets()和scanf()判断文件尾的方法是不一样的。
gets()函数的返回值请查阅C语言的语法手册。
Append Code#include <stdio.h>#include <stdlib.h>#include <string.h>char a[1000+10],c[1000+10];int main(){int i,n,flag,x;while(gets(a)!=NULL){ x=0;for(i=0;;i++){if(a[i]!='\0')x++;elsebreak;}memset(c,0,sizeof(c));n=0;for(i=0;i<x;i++)if(a[i]<='z'&&a[i]>='a')a[i]=a[i]-32;for(i=0;i<x; i++)if((a[i]<='9'&&a[i]>='0')||(a[i]<='Z'&&a[i]>='A')) {c[n]=a[i];n++;}flag=0;for(i=0; i<n; i++)if(c[i]==c[n-i-1])flag++;// printf("%d\n",flag);if(flag==n)printf("Yes.\n");elseprintf("No.\n");// for(i=0;i<n;i++)// printf("%c",c[i]);// puts("");}return 0;}。
算法设计与分析知到章节答案智慧树2023年山东科技大学
算法设计与分析知到章节测试答案智慧树2023年最新山东科技大学第一章测试1.程序运行结果往往与输入相关,所以程序可以不满足确定性()参考答案:错2.有关算法分析的事后统计法正确的是()。
参考答案:结果是面向机器,面向程序员,面向语言的;测试的结果与程序的编译和运行环境有关;结果与测试的样本数据有关3.下面哪些内容是算法设计之前要完成的内容? ( )参考答案:是求精确解还是近似解;确定合适的数据结构4.函数10logn3+5logn2的渐近表达式为():参考答案:O(logn)5.下列函数根据渐近阶从低到高顺序是()参考答案:logn < n1/2 <2n <n3 <3n <n!6.研究NPC 问题的意义: 一旦某个NPC问题找到了多项式时间复杂性的算法,那么所有的NP问题都找到了多项式时间算法。
( )参考答案:对第二章测试1.直接或间接的调用自身的算法称为()。
参考答案:递归算法2.Hanoi塔问题如下图所示。
现要求将塔座A上的的所有圆盘移到塔座B上,并仍按同样顺序叠置。
移动圆盘时遵守Hanoi塔问题的移动规则。
由此设计出解Hanoi塔问题的递归算法正确的为:()参考答案:3.分治法的设计思想是将一个难以直接解决的大问题分割成规模较小的子问题分别解决子问题最后将子问题的解组合起来形成原问题的解。
这要求原问题和子问题()。
参考答案:问题规模不同,问题性质相同4.利用二分搜索,最坏情况下的计算时间复杂性为()。
参考答案:O (logn)5.二分搜索算法只适用()存储结构。
参考答案:顺序6.使用二分搜索算法在1000个有序元素表中搜索一个特定元素,在最坏情况下,搜索总共需要比较的次数为()。
参考答案:107.线性时间选择的时间复杂度为()。
参考答案:O(n)8.利用合并排序,其辅助空间为():参考答案:O(n)9.利用快速排序,对数的序列{16, 27, 13, 2, 15,38},选择基准16,进行一次划分,结果为():参考答案:{13, 2, 15} 16 {27, 38}10.分治策略解决棋盘覆盖问题是一个渐近意义下最优的算法.()参考答案:对第三章测试1.设序列X={x1,x2,…,xm}和Y={y1,y2,…,yn}的最长公共子序列为Z={z1,z2,…,zk} ,若xm=yn则()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
//////////Problem D: 货币兑换Description给出人民币对美元、欧元、日元的当日汇率,求给定金额的人民币能兑换成外币的金额,求给定金额的外币能兑换成人民币的金额。
要计算的外币有三种:美元、欧元、日元。
Input输入有三行。
第一行依次为美元、欧元、日元外币汇率,用空格分开。
汇率用100外币为单位,精确到小数点后4位,如668.5200表示“100美元=668.5200人民币”。
汇率浮动范围为(0,10000)。
第二行为外币金额x,第三行为人民币金额y。
x,y均为整数,且0<x,y<10000。
Output输出为两行。
第一行为金额为x的美元、欧元、日元兑换成人民币的金额,用空格分开。
第二行为金额为y的人民币兑换成美元、欧元、日元的金额,用空格分开。
所有金额精确到小数点后两位。
Sample Input668.5200 908.0685 7.985215001500Sample Output10027.80 13621.03 119.78#include <stdio.h>int main(){double i,j,k,a,b,c,d,e,f;double x,y;scanf ("%lf %lf %lf",&i,&j,&k);scanf ("%lf%lf",&x,&y);a=x/100*i;b=y/100*j;c=x/100*k;d=y*100/i;e=y*100/j;f=y*100/k;printf ("%.2lf %.2lf %.2lf\n",a,b,c);printf ("%.2lf %.2lf %.2lf\n",d,e,f);}////Problem E: 求字符的值////Description从键盘输入3个字符(不含双字节字符),分别输出每个字符的十进制值(ASCII码)、八进制值和十六进制值。
Input输入为3个字符。
Output输出为3行。
每一行为每个字符(对应输入顺序)的十进制、八进制和十六进制值,用空格分隔开。
每个输出的值占3个字符,不足3个字符前面补0。
Sample Input0 ASample Output048 060 030032 040 020065 101 041#include <stdio.h>int main(){char x,y,z;scanf ("%c%c%c",&x,&y,&z);printf ("%.3d %.3o %.3x\n",x,x,x);printf ("%.3d %.3o %.3x\n",y,y,y);printf ("%.3d %.3o %.3x\n",z,z,z);}Problem A: 简单的打折计算Description商店规定:消费满n元,可以打八八折。
设某件商品标价m元,输入购买的件数x,计算出需要支付的金额(单位:元),精确到分。
Input输入只有一行,三个整数m、n和x,且0<x<m<n<1000。
Output输出金额,精确到分。
Sample Input95 300 4Sample Output334.40HINT了解浮点型的输出控制,注意整型和浮点型混合运算过程中的数据类型转换。
#include <stdio.h>int main(){int m,n,x;float s;scanf ("%d %d %d",&m,&n,&x);if (m*x>=n)s=m*x*0.88;elses=m*x;printf ("%.2f",s);}Problem C: 水仙花数Description如果一个三位十进制数等于其各位数字的立方和,则称这个数为水仙花数。
如:13+53+33=153。
Input一个整数x,100<=x<=999。
Outputx是水仙花数,则输出“YES”,否则为“NO”。
#include <stdio.h>int main(){int x,a,b,c;scanf ("%d",&x);a=x%10;b=x/10%10;c=x/100;if(a*a*a+b*b*b+c*c*c==x)printf ("YES");elseprintf ("NO");}Problem A: 多少张钞票Description客户去商店买东西时,不超过100美金的账单喜欢用现金支付。
商店喜欢用最少的钞票给付客户的找零。
请你编写一个程序帮助商店计算出:当客户买了x元商品给了一张100美元的钞票后,商店应该付给客户多少张20美元、10美元、5美元和1美元的钞票,使得钞票总数最少。
假设不存在其他面值的钞票,也不会有几角几分的价格,商店的各种钞票总是够用的。
Input输入一个整数x,0<x<100。
Output按顺序输出20美金、10美金、5美金和1美金面值的钞票张数。
输出格式见sample。
Sample Input7Sample Output$20 bills: 4$10 bills: 1$5 bills: 0$1 bills: 3#include <stdio.h>int main(){int x,s,a,b,c,d;scanf ("%d",&x);s=100-x;a=s/20;b=(s-20*a)/10;c=(s-20*a-10*b)/5;d=s-20*a-10*b-c*5;printf ("$20 bills: %d\n",a);printf ("$10 bills: %d\n",b);printf (" $5 bills: %d\n",c);printf (" $1 bills: %d\n",d);}Problem B: 自动拨出电话的程序Sample Input(0532)621-15486Sample Output008653262115486HINT这是个可以用scanf()解决的问题,请注意电话号码都是数字这个规律。
#include <stdio.h>int main(){int a,b,c;scanf("(0%d)%d-%d",&a,&b,&c);printf("0086%d%d%d",a,b,c);}///////Problem C: 求1+2+...+n=?Description给定一个n,求出s = 1+2+3+...+n的值。
Input输入只有一行,包含一个正整数n(n<=232)。
Output输出一行,为1+2+...+n的值。
Sample Input10Sample Output55HINTn的数据范围大,需注意数据类型的选择和计算次序,以避免数据溢出。
#include <stdio.h>int main(){unsigned long long int n,s,i;scanf("%llu",&n);if(n%2==0)s=n/2*(n+1);elses=(n+1)/2*n;printf ("%llu",s);}/////////////Problem D: 2的多少次幂Description从键盘输入一个数x,x是2的整数次幂(x=2y),请编程求出y的值。
Input一个非负有理数x,x在[0,2256]范围内。
Output一个整数y。
#include <stdio.h>#include <math.h>int main(){double x,n;scanf ("%lf",&x);n=(log10(x))/(log10(2));printf ("%d",(int)n);}////Problem A: 输出是m的倍数或n的倍数、但不是m和n的公倍数的数Description输出1~k之间是m的倍数或n的倍数、但不是m和n的公倍数的数,其中1<=m,n<k<100,且m与n不相等。
Input输入三个整数,依次为k、m、 n。
Output从小到大输出符合题意的所有整数,两数之间用一个空格分开。
Sample Input15 2 3Sample Output2 3 4 8 9 10 14 15#include <stdio.h>int main(){int k,m,n,i=0,j;scanf ("%d %d %d",&k,&m,&n);for (j=1;j<=k;j++){if ((j%m==0&&j%n!=0)||(j%m!=0&&j%n==0)){i++;if(i==1)printf ("%d",j);elseprintf (" %d",j);}}}/////Problem B: n个数的最大值和最小值Description找出n个数中最大的数和最小的数,并将它们的值输出出来。
Input输入为n+1个整数,都在int类型范围内。
这些数可能用若干空格或者换行符分隔开。
输入的第1个数为n,表示后续有n个数输入。
从输入的第2个数开始,求出直到第n+1个数中最大的数和最小的数。
Sample Input3 0 1 -1Sample OutputThe maximum number is 1.The minimum number is -1.#include <stdio.h>int main(){int i,n,m,max,min;scanf ("%d%d",&n,&max);min=max;for(i=1;i<n;i++){scanf ("%d",&m);if (m>max)max=m;if(m<min)min=m;}printf("The maximum number is %d.\nThe minimum number is %d.",max,min); }Problem C: 成绩的等级Description把百分制的考试成绩转换成五级制的成绩:90~100:Excellent80~89:Good70~79:Average60~69:Pass0~59:Failing不在0~100之间的输入是非法数据,输出“Error”。