欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    【计算机类职业资格】初级程序员下午试题-60及答案解析.doc

    • 资源ID:1330121       资源大小:137.50KB        全文页数:26页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【计算机类职业资格】初级程序员下午试题-60及答案解析.doc

    1、初级程序员下午试题-60 及答案解析(总分:138.00,做题时间:90 分钟)一、试题一(总题数:1,分数:25.00)【说明】如图 6-13所示的程序流程图描述了对 8位二进制整数求补的算法。该算法的计算过程如下:从二进制数的低位(最右位)开始,依次向高位逐位查看,直到首次遇到“1”时,停止查看。然后,对该“1”位左面的更高位(如果存在的话),逐位求反,所得的结果就是对原二进制数求补的结果。例如:对二进制整数10010110求补的结果时 01101010。设 8位二进制整数中的各位,从低位到高位,依次存放在整型数组 BIT的 BIT1BIT8中。例如,二进制整数 10010110存放在数组

    2、 BIT后,则有 BIT1=0,BIT2=1,BIT7=0,BIT8=1。若流程图中存在空操作,则用 NOP表示。(分数:25.00)(1).【问题 1】请将图 6-13流程图中(1)(5)空缺处的内容补充完整。其中,(1)空缺处按“循环变量名:循环初值,增量,循环终值”格式描述。(分数:12.50)_二、试题二(总题数:1,分数:15.00)1.【说明】以下【C 程序】的功能是,逐一从指定课程成绩文件中读入学生的考号和成绩,对同一学生汇总他(她)的总成绩,并按如图 6-14所示格式输出名次(按总成绩由高到底的顺序)、总成绩、同一名次的学生人数、同一名次学生的学号(按学号由小到大的顺序)。(分

    3、数:15.00)_三、试题三(总题数:1,分数:15.00)2.【说明】著名的四色定理指出任何平面区域图均可用 4种颜色着色,使相邻区域着不同的颜色。以下 C程序对给定的区域图找出所有可能的不超过 4种颜色的着色方案。该程序中用 14 分别表示 4种颜色。要着色的 N个区域用 0-1 编号,区域相邻关系用 adj矩阵表示,矩阵的 i行 j列的元素为 1,表示区域 i与区域了相邻;矩阵的 i行 j列的元素为 0,表示区域 i与区域 j不相邻。数组 color用来存储着色结果,colori的值为区域 i,所着颜色。【C 程序】#include stdio.h#define N 10void out

    4、put(int color) /*输出一种着色方案*/int i ;for ( i = 0 ; i N ; i+ )printf( “%4d“ , colori ) ;printf (“/n“) ;int back(int *ip ,int color ) /*回溯*/intc = 4 ;while ( c = 4 ) if ( *ip = 0 )return 0 ;- (*ip) ;c = (1) ;color*ip =-1 ;return c ;/*检查区域 i,对 c种颜色的可用性*/int colorOk(int i , intc , int N ,int color ) int j

    5、;for (j = 0 ; j i ; j+ )if ( (2) )return 0 ;return 1 ;/*为区域 i选一种可着色的颜色*/int select (int i ,int c ,int adj N ,int color )int k ;for(k = c ; k = 4 ; k+ )if( colorOK( (3) )return k ;return 0 ;int coloring(int adj N) /*寻找各种着色方案*/int colorN , i , c , cnt ;for(i = 0 ; i N ; i+)colori =-1 ;i = c = 0 ;cnt =

    6、 0 ;while(1) if(c = (4) ) = 0 c = back( if( c = 0 )return cnt;else (5) ;i+ ;if i = N) output(color);+cnt ;c = back( else c = 0 ;void main()(int adjN N =0,1,0,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,0,0,1,0,1,0,1,1,0,1,1,1,1,1,0,1,1,0,0,1,1,1,0,0,1,0,1,0,0,0,0,1,1,1,1,1,0,1,0,0,1,1,1,1,0,0,1,0,0,1,0,1,1,0,0,

    7、0,0,0,0,1,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,0,1,0,1,1,0,;printf(“共有%d 组解./n“,coloring(adj);(分数:15.00)_四、试题四(总题数:1,分数:15.00)3.【说明】对给定的字符集合及相应的权值,采用哈夫曼算法构造最优二叉树,并用结构数组存储最优二叉树。例如,给定字符集合 a,b,c,d及其权值 2、7、4、5,可构造如图 6-15所示的最优二叉树,以及相应的结构数组Ht(如表 6-14所示,其中数组元素 Ht0不用)。表 6-14 结构数组 Ht数组下标 ch weight parent lchild rch

    8、ild1 a 2 5 0 02 b 7 7 0 03 c 4 5 0 04 e 5 6 0 05 6 6 1 36 11 7 4 57 18 0 2 6结构数组 Ht的类型定义如下:#define MAXLEAFNUM 20struct nodechar ch; /*扫当前节点表示的字符,对于非叶子节点,此域不用*/Int weight; /*当前节点的权值*/int parent; /*当前节点的父节点的下标,为 0时表示无父节点*/int lchild, rchild;/*当前节点的左、右孩子节点的下标,为 0时表示无对应的孩子节点*/)Ht2*MAXLEAFNUM;用“0”或“广标识最优

    9、二叉树中分支的规则是:从一个节点进入其左(右)孩子节点,就用“0”(或“1”)标识该分支,如图 6-15所示。若用上述规则标识最优二叉树的每条分支后,从根节点开始到叶子节点为止,按经过分支的次序将相应标识依次排列,可得到由“0”、“1”组成的一个序列,称此序列为该叶子节点的前缀编码。例如,图 6-15所示的叶子节点 a、b、c、d 的前缀编码分别是 110、0、111、10。(分数:15.00)_五、试题五(总题数:1,分数:15.00)【说明】在 Visual Basic程序中,设计一个“个人所得税计算器”,其应用程序的运行窗口如图 6-16所示。(分数:15.00)(1).【问题 1】请根

    10、据【说明】信息和如图 6-16的显示效果,将【Visual Basic 程序】中(1)(5)空缺处的程序语句填写完整。(分数:5.00)_(2).【问题 2】若要求在图 6-16窗口中,用户输入月工资(或薪金收入)后,直接按回车键或向下方向箭就能使焦点(当前光标)跳到应扣除的基本费用的输入文本框,而不用【Tab】键进行切换。请将以下文本框 ht_salary的KeyDown(按键)事件过程中空缺的程序代码填写完整。If KeyCode = 13 Or KeyCode = 40 Then(6) End If(分数:5.00)_(3).【问题 3】为使应用程序启动时所载入的窗口(图 6-16)中具

    11、有背景图像(取自用户自定义的某个图像文件“C:/user/background.bmp”),并且在程序运行时,当被遮的该窗口又重现时,其背景图像会自动重画。在开发如图 6-16所示窗体时,应对窗体属性对话框(图 6-17)中哪些关键属性进行什么样的设置?(分数:5.00)_六、试题六(总题数:1,分数:19.00)【说明】传输门是传输系统中的重要装置。传输门具有 Open(打开)、Closed(关闭)、Opening(正在打开)、StayOpen(保持打开)和 Closing(正在关闭)5 种状态。触发状态的转换事件有 click、complete 和timeout 3种,事件与其相应的状态转

    12、换如图 6-18所示。(分数:19.00)_(2).【问题 2】请用 150字以内的文字简要说明【C+代码 1】、【C+代码 2】这两种对传输门进行状态模拟的设计思路的区别之处。(分数:9.50)_七、试题七(总题数:1,分数:19.00)【说明】1HTTP HTTP 请求消息示例GET/index,htmlHTTP/1.1Accept:image/gif,image/jpeg,*/*Accept-Language:zh-chAccept-encoding:gzip,deflateUser-Agent:Mozilla/4.0(compatible: MSIE6.0;Windows 2003)H

    13、ost:localhost:8080Connection:Keep-Alive HTTP 响应消息示例HTTP/1.1 200 OKServert:Microsoft-IIS/6.0Date:Mon,3 Jan 2008 13:13:33 GMTContent-Type:text/htmlLast-Modified:Mon,11 Jan 2008 13:23:42 GMTContelit-Length:112html./html2相关类及主要成员函数 ServerSocket 类服务器端套接字,它监听固定端口,以接收来自客户端的连接请求,一旦建立连接就返回一个 Socket类型的对象,类中的主

    14、要成员函数如表 6-16所示。表 6-16 ServerSocket类的主要成员函数函数名 功能说明ServerSocket(PORT) 构造函数Accept() 返回建立连接的 Socket类型的对象Close() 关闭当前的 ServerSocket类型的对象Socket 类 基于连接的套接字,类中的主要成员函数如表 6-17所示。表 6-17 Socket类的主要成员函数函数名 功能说明GetnetAddress()返回 InetAddress类型的对象,该对象封装了与该套接字所关联的客房机的 IP地址GetInputSffeam 返回当前对象所关联的输入流GetOutputStream

    15、返回当前对象所关联的输出流Close() 关闭当前对象【Java 源程序:一个简单的 Web服务器】/* WebScrvc.java */packageobjclass;import .*;import java.io.*;public class WebServerpublic static final int PORT=8080; /Web服务器侦听的端口号public static final String WEB_ROOT= SyStem.getProperty(“user.dir“)+File.separator+“webroot“;/WEB_ROOT变量存放 Web服务器工作目录,

    16、HTML, GIF 图片等静态文件资源private static final String SHUTDOWN_COMMAND=“/shutdown“;/SHUTDOWN_COMM_AND变量保存关闭服务器的命令private Boolean shutdown=false; /是否收到关闭服务器命令的标志public static void main(Sting args) WebServer server=new WebServer();Server.await ()public void await() ServerSocket serverSocket = null;try server

    17、Socket = new (1) ;/创建侦听端口号为 PORT的 ServerSocket类型的对象System.out.println (“WebServerStarted!“);catch(IOException e) e.printStackTrace ();SyStem. exit (1);while(!shutdown) /循环等待客房端连接Socket socket = null;InputStream input = null;OutputStream output = null;trySocket = (2) ; /创建来自客房端的连接套接字Input = socket. (

    18、3) ; /创建输入流Output = socket. (4) ; /创建输出流Request request = new Request (input); /创建 request对象Request. (5) ; /解析客户端 HTTP请求Response response = new ReSponse(output); /创建 Response对象response, setRequest (request); /将 request对象传递给 response对象response. (6) ; /给客户端发送所请求的静态资源(7) ; /关闭连接套接字shutdown = request. (

    19、8) .equals (SHUTDOWN_COMMAND);/凑数当前 HTTP请求中的 URL是否是关闭服务器命令Catch(Exception e) e.printStackTrace ();continue;/* Request.java */package objclass;import java.io.InputStream;import java.iO.IOException;public Class Requestprivate InputStream input;private String url;public Request(InputStream input)this.i

    20、nput = input;public void parse() . parseUrl() ;. /解析客户端 HTTP请求消息private String parseUrl(String requestString). /解析客户端 HTTP请求中的 URLpublic String getUrl()return url;/* Response.java */package objclass;import java.io.*;public class Responseprivate static final int BUFFER_ SIZE=1024;Request request;Outp

    21、utStream output;public Response(Output Strearm output) this.output=output;public void setRequest(Request request)this.request=request;public void sendStaticResource()throwsIOmxception. /向客户端发送所请求的静态资源(分数:19.00)_(2).【问题 2】对以上【Java 源程序】进行运行测试,请将以下(9)、(10)空缺处的测试命令填写完整。在本机运行 WebServer程序,然后打开 IE浏览器。1)在 I

    22、E地址栏中,输入请求“/index.html”页面的命令: (9) 。2)在 IE地址栏中,输入关闭 Web服务器的命令: (10) 。(分数:9.50)_八、试题八(总题数:1,分数:15.00)4.【说明】使用 MFC的 CSocket类在两个或者多个应用程序之间建立通信。服务器应用程序先创建一个特殊的 Socket,用于监听客户应用程序的连接请求,然后再创建新的 Socket来完成连接。从客户和服务器两端读取该连接,直到一个需要处理的报文到来为止。以下 Visual C+程序将封装这些功能,这样所有应用程序需要完成的只是创建一个 Socket连接,然后处理到来的报文。这将包括一个新的服务

    23、器 Socket类、新客户端 Socket类和新的报文队列类。创建新的服务器 Socket类程序的框架如下。第 1个函数 ListenEx()用于通知 Socket开始监听客户应用程序。第 2个函数 OnAccept()在接收到连接请求时被调用。在其中创建新的 Socket,并立刻设置它开始从客户应用程序读取报文,这些是通过调用第 3个函数 RecvThread()来完成的,该函数位于它自己的线程中。【Visual C+程序】【ListenEX()函数】void CWzdServer:ListenEx( int hdrSz, int bodyPos, CWzdQueue *pQueue,CWn

    24、d *pWnd, UINTid ) /初始化接收数据m_RecvData.hdrSz = hdrSz;m_RecvData.bodyPos = bodyPos;m_RecvData.pQueue = pQueue;m_RecvData.pWnd = pWnd;m_id = id; /启动标志/开始监听(1) 【OnAccept()函数】void CWzdServer:OnAccept ( iht nErrorCode ) if ( nErrorCode = 0 ) CSocket *pSocket = (2) ; /创建新的套接字并添加到映射图中m_mapSocketsm_id = pSock

    25、et;Accept( ( CasyncSocket /用该新的套接字去连接客户端/置套接字于同步模式DWORD arg = 0;pSocket - AsyncSelect( 0 );pSocket - IOCtl( FIONBIO, m_RecvData.pSocket = pSocket;m_RecvData.id = m_id+;/启用线程AfxBeginThread( RecvThread, 【RecvThread()函数】UINT RecvThread( LPVOID pParam ) /从线程中苑取数据RECVDATA *pRecv = ( RECVDATA * )pParam;in

    26、t len = 1;int error = 0;char *pBody = NULL;char *pHdr = NULL;/两个套接字都开放while (TRUE) /开始读报文头部iht res;pBody = NULL;pHdr = new charpRecv - hdrSz;if ( ( res = pRecv - pSocket - CAsyncSocket:Receive( pHdr, pRecv -hdrSz )=SOCKET_ERROR )error = :GetLastError();elselen = res;/如果完毕,则退出线程if ( len = 0 | error =

    27、 WSAECONNRESET | error = WSAECONNABORTED )break;if ( !error pBody = new charbodyLen;if(res=pRecv - pSocketCAsyncSocket:Receive(pBody,bodyLen)=SOCKET_ERROR)error = :GetLastError();else(3) ;/如果完毕,则退出线程if(len = 0 | error = WSAECONNRESET | error = WSAECONNABORTED)break;/将消息排入队列pRecv - pQueue -Add(new CW

    28、zdMsg(pRecv - id,pHdr, p B o d y,len,error) );/传送消息到窗口来处理新信息pRecv - pWnd - PostMessage(WM_NEW_MESSAGE);/清记录delete pHdr;delete pBody;/向相关对象发送停止通知pRecv-pWnd-SendMessage(WM_DONE_MESSAGE, WPARAM)pRecv-id, (LPARAM)error);(4) ;【SendEx()函数】void CWzdServer:SendEx( int id, LPSTR lpBuf, int len ) /为该标识符设置套接字C

    29、Socket *pSocket = (5) ;if ( pSocket ) m_SendData.pSocket = pSocket;m_SendData.lpBuf = lpBuf;m_SendData.len = len;/启动线程AfxBeginThread( SendThread,【SendThread()函数】UINT SendThread( LPVOID pParam ) SENDDATA *pSend = ( SENDDATA * )pParam; /从线程中获取数据pSend - pSocket - (6) ( pSend - lpBuf, pSend - len ); /执行

    30、写入操作return 0;【CloseEx()函数】void CWzdServer:CloseEx() int id;CSocket *pSocket;for ( POSITION pos = m_mapSockets.GetStartPosition(); pos; ) m_mapSockets.GetNextAssoc( pos,id,pSocket );pSocket - Close();(7) ;(分数:15.00)_初级程序员下午试题-60 答案解析(总分:138.00,做题时间:90 分钟)一、试题一(总题数:1,分数:25.00)【说明】如图 6-13所示的程序流程图描述了对 8

    31、位二进制整数求补的算法。该算法的计算过程如下:从二进制数的低位(最右位)开始,依次向高位逐位查看,直到首次遇到“1”时,停止查看。然后,对该“1”位左面的更高位(如果存在的话),逐位求反,所得的结果就是对原二进制数求补的结果。例如:对二进制整数10010110求补的结果时 01101010。设 8位二进制整数中的各位,从低位到高位,依次存放在整型数组 BIT的 BIT1BIT8中。例如,二进制整数 10010110存放在数组 BIT后,则有 BIT1=0,BIT2=1,BIT7=0,BIT8=1。若流程图中存在空操作,则用 NOP表示。(分数:25.00)(1).【问题 1】请将图 6-13流

    32、程图中(1)(5)空缺处的内容补充完整。其中,(1)空缺处按“循环变量名:循环初值,增量,循环终值”格式描述。(分数:12.50)_正确答案:(1)i:1,1,8(2)1sw(3)0BITi(4)NOP,或空操作(5)1BITi)解析:要点解析由于题目中给出了对 8位二进制整数求补的算法,并且指明将 8位二进制整数中的各位,从低位到高位,依次存放在整型数组 BIT的 BIT1BIT8中,因此,循环控制变量的初值应该为 1(从二进制数中的最低位开始)、终值为 8(二进制数中的每一位都要检查)、增量为 1(每次检查 1位),按照“循环变量名:循环初值,增量,循环终值”格式描述,则(1)空缺处所填写

    33、的内容为“i:1,1,8”。0由题目中给出的算法可知,从最右位开始向左找到的第一个“1”及其右边的各位是不取反的,因此需要一个标志,sw 起的就是这个作用。由于 SW的初始值为 0,因此在找到从右边数的第 1个“1”之前,当BITi等于“0”且 SW=O时,则说明这些二进制位无须取反,对应于流程图的(4)空缺处的操作应为空操作(即 NOP)。当某个 BITi的值等于“1”且 SW的值等于 0,则说明找到了从右边数的第 1个“1”,此时应将 SW的值置为非“0”,因此流程图中(2)空缺处的操作要对 SW置 1,即该空缺处所填写的内容是“1sw”。最后,应将其余各位取反,即 BITi等于 1时,要

    34、在流程图的(3)空缺处将其置 0(即 0BITi);反之,则要在流程图的(5)空缺处将其置 1(即 1BITi)。_解析:要点解析本问题考查程序检错和排错能力。程序错误一般分成语法错误和语义错误两种类型,其中语法错误是形式上的错误,语义错误是含义上的错误,编译程序能够发现程序中的所有语法错误。语义错误又可分为静态语义错误和动态语义错误,静态语义错误编译时检查,而动态语义错误在程序运行时表现。在 C程序中,常见的错误有:使用的变量没有定义;变量没有赋值初就直接使用;输入输出的数据类型与所用格式说明符不一致;超出数据范围;输入时数据的组织方式与要求不符;误把“=”作为关系运算符“等于”;语句的分号

    35、缺少或放置错误;缺少花括号“二、试题二(总题数:1,分数:15.00)1.【说明】以下【C 程序】的功能是,逐一从指定课程成绩文件中读入学生的考号和成绩,对同一学生汇总他(她)的总成绩,并按如图 6-14所示格式输出名次(按总成绩由高到底的顺序)、总成绩、同一名次的学生人数、同一名次学生的学号(按学号由小到大的顺序)。(分数:15.00)_正确答案:(1)isp 或 i!=sp或其他等价的形式(2)h=p(3)u-next=p(4)u-next(5)u-next(6)C+,u=u-next(7)i=c,或 c-!=0,或 u!=v,或 c-0,或 c-或其他等价的形式)解析:要点解析通读题干说

    36、明和 C程序之后可知,该 C程序首先从指定的文件中输入某个科目的学生学号和成绩,并进行合法性检查,全部输入完成后,按总成绩进行排序。程序采用链表结构进行存储,最后按指定的格式输出。该应用程序首先输入数据,(1)空缺处所在的 for循环语句是对输入的数据进行检查,数组 s的作用是记录已经输入的科目。当输入一个科目之后,就在数组 s中进行检查处理。如果已有该科目,就提示“该科目的成绩已输入,请输入别的科目成绩文件”信息,要求用户重新输入。其中,if 语句用于判断是否有该科目,因此(1)空缺处所填写的内容是“isp”或“i!=sp”。接着在链表中寻找最近输入的学号,循环语句“for(v=h;v!=N

    37、ULL u=v,v=v-next);”结束之后,通过 if.else语句对循环的出口进行判断,(2)、(3)空缺处是对应没有该学生的成绩(即是一位新学生)的情况,此时需要申请存储空间,然后进行赋值并把它插入到链表中。由于链表是排序的,因此需要判断插入点是否是第 1个节点。如果是第 1个节点,就需要修改表头节点的指针,因此(2)空缺处所填写的内容是“h=p”,(3)空缺处所填写的内容为“u-next=p”。接下来程序通过 while循环对链表按总成绩的高低和学号从小到大的顺序进行排序。通读 C程序可知,指针 p所指向的节点应在指针 u所指向的节点之前(或等于),指针 v所指向的节点为当前节点。在

    38、内循环结束之后,若 p!=v,则表示找到一个满足排序条件的节点,此时就需要移动指针。因此(4)、(5)空缺处所填写的内容均为“u-next”。应用程序的最后一个 while循环语句,其功能是对排序后的链表按指定的格式进行输出。变量 c的功能是计数器,用来记录总成绩相等的人数,因此(6)空缺处所填写的内容的作用是使指针 u下移,计数器加1,即该空缺处应填入“c+,u=u-next”。变量 Order的作用是记录名次,而(7)空缺处所在的 for循环语句的功能是,输出成绩相同的学生的学号。由于计数器 c的初值为 1,因此该 for循环的结束条件为 c=O或 i=c。由此进一步推知,(7)空缺处所填

    39、写的内容是“c-!=0”或“i=c”或其他等价的形式。三、试题三(总题数:1,分数:15.00)2.【说明】著名的四色定理指出任何平面区域图均可用 4种颜色着色,使相邻区域着不同的颜色。以下 C程序对给定的区域图找出所有可能的不超过 4种颜色的着色方案。该程序中用 14 分别表示 4种颜色。要着色的 N个区域用 0-1 编号,区域相邻关系用 adj矩阵表示,矩阵的 i行 j列的元素为 1,表示区域 i与区域了相邻;矩阵的 i行 j列的元素为 0,表示区域 i与区域 j不相邻。数组 color用来存储着色结果,colori的值为区域 i,所着颜色。【C 程序】#include stdio.h#d

    40、efine N 10void output(int color) /*输出一种着色方案*/int i ;for ( i = 0 ; i N ; i+ )printf( “%4d“ , colori ) ;printf (“/n“) ;int back(int *ip ,int color ) /*回溯*/intc = 4 ;while ( c = 4 ) if ( *ip = 0 )return 0 ;- (*ip) ;c = (1) ;color*ip =-1 ;return c ;/*检查区域 i,对 c种颜色的可用性*/int colorOk(int i , intc , int N ,

    41、int color ) int j ;for (j = 0 ; j i ; j+ )if ( (2) )return 0 ;return 1 ;/*为区域 i选一种可着色的颜色*/int select (int i ,int c ,int adj N ,int color )int k ;for(k = c ; k = 4 ; k+ )if( colorOK( (3) )return k ;return 0 ;int coloring(int adj N) /*寻找各种着色方案*/int colorN , i , c , cnt ;for(i = 0 ; i N ; i+)colori =-1

    42、 ;i = c = 0 ;cnt = 0 ;while(1) if(c = (4) ) = 0 c = back( if( c = 0 )return cnt;else (5) ;i+ ;if i = N) output(color);+cnt ;c = back( else c = 0 ;void main()(int adjN N =0,1,0,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,0,0,1,0,1,0,1,1,0,1,1,1,1,1,0,1,1,0,0,1,1,1,0,0,1,0,1,0,0,0,0,1,1,1,1,1,0,1,0,0,1,1,1,1,0,0,

    43、1,0,0,1,0,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,0,1,0,1,1,0,;printf(“共有%d 组解./n“,coloring(adj);(分数:15.00)_正确答案:(1)color*ip(2)adjij!=0 /*扫当前节点表示的字符,对于非叶子节点,此域不用*/Int weight; /*当前节点的权值*/int parent; /*当前节点的父节点的下标,为 0时表示无父节点*/int lchild, rchild;/*当前节点的左、右孩子节点的下标,为 0时表示无对应的孩子节点*/)Ht2*MAXLEAFNUM;用“0”或“广标识最优二叉树中分支的规则是:从一个节点进入其左(右)孩子节点,就用“0”(或“1”)标识该分支,如图 6-15所示。若用上述规则标识最优二叉树的每条分支后,从根节点开始到叶子节点为止,按经过分支的次序将相应标识依次排列,可得到由“0”、“1”组成的一个序列,称此序列为该叶子节点的前缀编码。例如,图 6-15所示的叶子节点 a、b、c、d 的前缀编码分别是 110、0、111、10。(分数:15.00)_


    注意事项

    本文(【计算机类职业资格】初级程序员下午试题-60及答案解析.doc)为本站会员(dealItalian200)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
    备案/许可证编号:苏ICP备17064731号-1 

    收起
    展开