【计算机类职业资格】初级程序员下午试题-97及答案解析.doc
《【计算机类职业资格】初级程序员下午试题-97及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】初级程序员下午试题-97及答案解析.doc(16页珍藏版)》请在麦多课文档分享上搜索。
1、初级程序员下午试题-97 及答案解析(总分:105.00,做题时间:90 分钟)一、试题一(总题数:1,分数:15.00)说明图 4-8 的流程图所描述的算法功能是将给定的原字符串中的所有前部空白和尾部空白都删除,但保留非空字符。例如,原字符串“ FileName ”,处理变成“File Name”。图 4-9、图 4-10 和图 4-11 分别详细描述了图 4-8 流程图中的处理框 A、B、C。假设原字符串中的各个字符依次存放在字符数组 ch 的各元素 ch(1)、ch(2)、ch(n)中,字符常量 KB表示空白字符。图 4-8 所示的流程图的处理过程是:先从头开始找出该字符串中的第一个非空
2、白字符 ch(i),再从串尾开始向前找出位于最末位的非空白字符 ch(j),然后将 ch(i)、ch(j)依次送入 ch(1)、ch(2)、中。如果字符串中没有字符或全是空白字符,则输出相应的说明。在图 4-8 流程图中,strlen()是取字符串长度函数。图 4-8 算法总流程图图 4-9 处理框 A 对应的流程图图 4-10 处理框 B 对应的流程图(分数:15.00)_二、试题二(总题数:1,分数:15.00)1.说明某种传感器的输出值 Ratio 依赖于环境温度 temp(-40temp50)。对一组环境温度值(ITEMS 个),已经测量得到了相应的 Ratio 值(如表 4-10 表
3、格所示)。表 4-10 粗略地描述了曲线 Ratio(temp)。表 4-10 曲线 Ration(temp)的列表值环境温度 temp 传感器的输出值 Ratio-40 0.20-20 0.60-10 0.800 1.0010 1.1730 1.5050 1.80校正系数 K 是 Ratio 的倒数,因此也依赖于环境温度 temp。在数据处理中,需要用更多的列表值细致地描述曲线 K(temp),如表 4-11 所示。表 4-11 曲线 K(temp)的列表值环境温度 temp 校正系数 K-40 5.00-39 4.55-38 4.17-37 3.85 -20 1.67-19 1.61 -1
4、0 1.25-9 1.22 -19 0.56在表 4-11 中,各温度值所对应的 K 值是对表 4-10 进行线性插值再求倒数得到的,具体的计算方法如下。1) 根据 temp 值,在表 4-10 中用二分法查找;2) 若找到相应的温度值,则按相应的 Ratio 值求倒数得到 K 值;3) 若没找到相应的温度值,则可确定 temp 所在的温度区间Tp1,Tp2,同时获得了相应的 Ratio1 和 Ratio2,再按如下公式计算 K 值:(分数:15.00)_三、试题三(总题数:1,分数:15.00)2.说明以下C 程序是对某电码明文(原文)进行加密形成密文。其加密算法如下。假定原文为 C1C2C
5、3Cn,加密后形成的密文为 S1S2S3Sn其中 n 为小于 256 的任意自然数。首先读入正整数 Key(Key1)作为加密钥匙,并将密文字符位置按顺时针方向连成一个环,如图 4-12 所示。图 4-12 密文字符环示意图加密时从 S1位置起顺时针计数,当数到第 Key 个字符位置时,将原文中的字符放入该密文字符位置中,同时从环中除去该字符位置;接着从环中下一个字符位置起继续计数,当再次数到第 Key 个字符位置时,将原文中字符 C2放入其中,并从环中除去该字符位置;依此类推,直至 n 个原文字符全部放入密文环中。由此产生的 S1S2Sn即为原文的密文。例如,原文:One World One
6、 Dream。当 Key=5 时,其密文为:me OnWlanD oOedrer;当 Key=6 时该原文的密文为:oeDn OedrrOn Wma le。程序使用示例如图 4-13 所示。(分数:15.00)_四、试题四(总题数:1,分数:15.00)3.说明函数 int Toplogical (LinkedWDigraph G)的功能是对图 G 中的顶点进行拓扑排序,并返回关键路径的长度。其中,图 G 表示一个具有 n 个顶点的 AOE-网,图中顶点从 1n 依次编号,图 G 的存储结构采用邻接表表示,其数据类型定义如下。typedef struct Gnode /* 邻接表的表节点类型
7、*/int adjvex; /* 邻接顶点编号 */int weight; /* 弧上的权值 */struct Gonde*nextare; /* 指示下一个弧的节点 */Gnode;typedef struct Adjlist /* 邻接表的头节点类型 */char vdata; /* 顶点的数据信息 */struct Gnode*Firstadj; /* 指向邻接表的第一个表节点 */Adjlist;typedef struct LinkedWDigraph /* 图的类型 */struct Adjlist head; /* 指向图中第一个顶点的邻接表的头节点 */LinkedWDigra
8、ph;例如,某 AOE-网如图 4-14 所示,其邻接表存储结构如图 4-15 所示。图 4-14 某 AOE-网(分数:15.00)_五、试题五(总题数:1,分数:15.00)说明某 Visual Basic 应用程序用于监测某种锅炉设备内液面高度(050cm),其运行窗口界面如图 4-16 所示。(分数:15.00)_六、试题六(总题数:1,分数:15.00)说明已知以下 C+程序运行时的输出结果如下。1:11:11:1C+程序01 #include iostream02 using namespace std;03 class Stock04 protect:05 (1) ;06 Sto
9、ck(int n, int pr=1) 07 shares = n; share_val=pr;08 ;09 void Stock() ;10 public:11 /成员函数12 void output() 13 (2) shares “:“ share_val endl;14 15 private:16 /成员变量17 int shares;18 int share_val;19 ;2021 void main() 22 Stock a(1); a.output23 Stock b; b.output24 Stock c = Stock (); c.output25 1. 问题 1请根据 C
10、+程序运行时的输出结果,将代码中(1)、(2)空缺处的内容补充完整。(分数:15.00)_七、试题七(总题数:1,分数:15.00)4.说明类 Queue 表示队列,类中的方法如表 4-12 所示。表 4-12 类 Queue 中方法说明表方法 说明IsEmpty() 判断队列是否为空,如果队列不为空,返 回 true;否则,返回 falseEnqueue(object NewNode) 入队操作Dequeue() 出队操作。如果队列为空,则抛出异常类 Node 表示队列中的元素;类 EmptyQueueException 给出了队列中的异常处理操作。Java 代码public class t
11、estmain /主类public static viod main (string args) Queue q= new Queue;q.enqueue(“first!“);q.enqueue(“second!“);q.enqueue(“third!“);(1) while(true)system.out.println(q.dequeue();catch( (2) ) public class Queue /队列node m_firstnode;public Queue()m_firstnode=null;public boolean isempty() if (m_firstnode=
12、=null)return true;elsereturn false;public viod enqueue(object newnode) /入队操作node next = m_firstnode;if (next = = null) m_firstnode=new node(newnode);else while(next.getnext() !=null)next=next.getnext();next.setnext(new node(newnode);public object dequeue() (3) /出队操作object node;if (is empty()(4) else
13、 node =m_firstnode.getobject();m_firstnode=m_firstnode.getnext();return node;public class node /队列中的元素object m_data;node m_next;public node(object data) m_data=data; m_next=null;public node(object data,node next) m_data=data; m_next=next;public void setobject(object data) m_data=data; public object
14、getobject(object data) return m_data; public void setnext(node next) m_next=next; public node getnext() return m_next; public class emptyqueueexception extends (5) /异常处理类public emptyqueueexception() system. out. println ( “队列已空!“ );(分数:15.00)_初级程序员下午试题-97 答案解析(总分:105.00,做题时间:90 分钟)一、试题一(总题数:1,分数:15.
15、00)说明图 4-8 的流程图所描述的算法功能是将给定的原字符串中的所有前部空白和尾部空白都删除,但保留非空字符。例如,原字符串“ FileName ”,处理变成“File Name”。图 4-9、图 4-10 和图 4-11 分别详细描述了图 4-8 流程图中的处理框 A、B、C。假设原字符串中的各个字符依次存放在字符数组 ch 的各元素 ch(1)、ch(2)、ch(n)中,字符常量 KB表示空白字符。图 4-8 所示的流程图的处理过程是:先从头开始找出该字符串中的第一个非空白字符 ch(i),再从串尾开始向前找出位于最末位的非空白字符 ch(j),然后将 ch(i)、ch(j)依次送入
16、ch(1)、ch(2)、中。如果字符串中没有字符或全是空白字符,则输出相应的说明。在图 4-8 流程图中,strlen()是取字符串长度函数。图 4-8 算法总流程图图 4-9 处理框 A 对应的流程图图 4-10 处理框 B 对应的流程图(分数:15.00)_正确答案:(本题用分层的流程图形式描述给定的算法。图 4-8 所描述的流程图是顶层图,其中用A、B、C 标注了 3 个处理框。而图 4-9、图 4-10 和图 411 所描述的流程图分别对这 3 个处理框进行了细化。处理框 A 的功能是依次检查 ch(1),ch(2),(即从串首开始查找),直到找到非空白字符 ch(i)。在图4-9 所
17、描述的流程图中,对 i=1,2进行循环,只要未找到字符串尾部标志(即“/0“),且 ch(i)为空白字符(KB),那么还需要继续查找。因此,(1)空缺处所填写的内容是“i=n”或“n=i”或其他等价形式。处理框 B 的功能是依次检查 ch(n),ch(n-1),(即从串尾向前开始查找),直到找到非空字符 ch(j)。在图 4-10 所描述的流程图中,对 j=n,n-1进行循环,只要 ch(j)=KB(空白字符),那么还需要继续循环查找。由于 B 框处理的前提是 A 框中已经找到了非空字符 ch(i),因此循环最多到达“j=i”处就会结束。可见,(2)空缺处所填写的判断条件是“ch(j)=KB”
18、。而图 4-10 中的判断条件“ji”是可有可无的。处理框 C 的功能是将 ch(i),ch(i+1),ch(j)的内容依次送入 ch(1),ch(2)中。在图 4-11 所描述的流程图中,对 kf=i,i+l,j 进行循环,只要满足“k=j”的条件,就要继续循并环做传送处理,因此(3)空缺处所填写的内容是“k=i”或其等价形式。由于 ch(i)应送往 ch(1),ch(i+1)应送往 ch(2),因此,ch(k)应送往 ch(k-i+1)。这是程序员应熟练掌握的基本功,即从几个特例,寻找普遍规律,再用特例代进去试验是否正确。因此,(4)空缺处所填写的内容是“ch(k-i+1)”。)解析:_正
19、确答案:(在图 4-8 所描述的流程图中,判断 ch 是空白字符串,等价于 A 框处理结束后没有找到空白字符。从图 4-9 所描述的流程图中可以看出,循环变量 i 超过 n(或达到 n+1)时,就说明从头到尾一直没有找到空白字符。因此,在图 4-8 流程图中,判断框 P 中的条件可表示为“in”,即(5)空缺处所填写的内容是“n”。)解析:_正确答案:(函数 f_str(char*str,char del)的功能是:将非空字符串 str 以分割标志字符为界线,分割成若干个子字符串并输出。由函数说明和 C 代码可知,该函数对给定的字符串进行从左至右的扫描,找出不包含标志字符(变量 del 的值)
20、的子字符串。在该函数 C 代码中,变量 i 的初值为 0,len 表示字符串的长度。当 ilen 时进入循环体。如果当前字符(即 stri的值)是标志字符,则不做处理,继续扫描以处理标志字符连成一串的情况。因此(6)空缺处所填写的内容是“stri=del”或其等价形式。当退出第 2 个 while 循环时,当前字符 stri不是标志字符,此时从 stri开始继续寻找,直到标志字符出现的个子字符串(变量 i 保持不变,用 j 标记寻找的过程),给找到的字符序列置字符串结束标志,以便于后面语句的输出。因此(7)空缺处所填写的内容是“strj”。printf 输出语句结束之后,就要继续寻找后面不包含
21、标志字符的子字符串。此时,需要把数组指针 i 移至 j 的后面,再继续扫描。因此(8)空缺处所填写的内容是“i=j+1”。)解析:二、试题二(总题数:1,分数:15.00)1.说明某种传感器的输出值 Ratio 依赖于环境温度 temp(-40temp50)。对一组环境温度值(ITEMS 个),已经测量得到了相应的 Ratio 值(如表 4-10 表格所示)。表 4-10 粗略地描述了曲线 Ratio(temp)。表 4-10 曲线 Ration(temp)的列表值环境温度 temp 传感器的输出值 Ratio-40 0.20-20 0.60-10 0.800 1.0010 1.1730 1.
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 初级 程序员 下午 试题 97 答案 解析 DOC
