首页
试卷库
试题库
当前位置:
X题卡
>
所有题目
>
题目详情
阅读下列说明和C++代码,回答问题。 [说明] 已知下列程序运行时的输出应为: 1:1 1:1 1:1 [C++程序] 01 #include <iostream> 02 using n...
查看本题答案
包含此试题的试卷
初级程序员《填空集》真题及答案
点击查看
你可能感兴趣的试题
阅读以下说明和关系表回答问题1~3 [说明]已知关系RABCD和函数依赖集F为{AB—>DC—>A
阅读下列说明回答问题1至问题5将解答填入对应栏内 【说明】在WindowsServer2008上完
阅读下列说明回答问题1至问题3将解答填入答题纸的对应栏内【说明】下表是某项目的工程数据根据各个
阅读以下说明和关系表回答问题1~3 [说明]已知关系RABCD和函数依赖集F为{AB—>DC—>A
阅读下列说明回答问题1至问题3 【说明】 某企业进行企业信息化工程建设主要包括
阅读下列说明回答问题1至问题2将解答填入对应栏内 【说明】利用WindowsServer 200
阅读以下说明回答问题1至问题4 【说明】 某小公司的网络拓扑如图1.1所示其中路由器具
回顾阅读过的名著回答问题伊索寓言中故事篇幅短小寓意深刻处处闪耀着智慧的光芒狼和小羊的故事说明对恶人做
试题二15分阅读下列说明回答问题1至问题3将解答填入答题纸的对应栏内[说明]下图为教育城教育远
阅读下列说明回答问题[说明]某监理单位承担了某机房网络和软件开发项目全过程的监理工作在机房建设中计算
阅读下列说明回答问题1至问题3【说明】某公司要开发一个多媒体辅导系统该系统准备利用B/S架构用户通过
阅读以下说明和关系表回答问题1~3 [说明]已知关系RABCD和函数依赖集F为{AB—>DC—>A
阅读以下说明回答问题 说明某小公司的网络拓扑如图所示其中路由器具有ISDN模块公司网络通过
阅读下列说明回答问题1至问题2将解答填入对应栏内 【说明】利用WindowsServer 200
阅读下列说明和C代码回答问题1至问题3将解答写在答题纸的对应栏内 【说明】计算一个整数数组
阅读下列说明回答问题[说明]在多媒体制作领域音频是不可或缺的部分通过一些音频处理软件可以完成声音的录
阅读以下说明回答问题 说明某小公司的网络拓扑如图12-11所示其中路由器具有ISDN模块公
试题三阅读以下说明和C代码回答问题1和问题2将解答写在答题纸的对应栏内 【说明1】下面代码
试题五 阅读下列说明回答问题1至问题3将解答填入答题纸的对应栏内 【说明】 某停车
阅读下列说明回答问题1至问题2将解答填入对应栏内 【说明】利用WindowsServer 200
热门试题
更多
阅读下列程序说明和C代码把应填入其中n处的字句写在答卷的对应栏内 【说明】 程序利用选择排序算法对数组a中的N个整数按照从小到大的顺序排列并将排序结果显示出来【程序】 #defineN10main{ void1int ia[N]fori=0i<10i++/*输入*/ scanf%d&a[i]2 fori=0i<Ni++ /*输出*/printf%3da[i] }voidselectSonintx[]intn {intijkt forinti=03i++ {k=i forj=i+1j<nj++ if4k=j if5 {t=x[i]x[i]=x[k]x[k]=t}} }
阅读下列程序说明和C代码把应填入其中n处的字句写在答卷的对应栏内 【说明】 程序利用选择排序算法对数组a中的N个整数按照从小到大的顺序排列并将排序结果显示出来【程序】 #defineN10main{ void1int ia[N]fori=0i<10i++/*输入*/ scanf%d&a[i]2 fori=0i<Ni++ /*输出*/printf%3da[i] }voidselectSonintx[]intn {intijkt forinti=03i++ {k=i forj=i+1j<nj++ if4k=j if5 {t=x[i]x[i]=x[k]x[k]=t}} }
与单向链表相比双向链表______
阅读下列程序说明和C程序把应填入其中n处的字句写在对应栏内 【程序说明】 对角线下元素全为0的矩阵称为上三角矩阵设对于一个n×n的上三角矩阵a为节约存贮只将它的上三角元素按行主序连续存放在数组b中下面的函数trans在不引入工作数组的情况下实现将a改为按列主序连续存放在数组b中 设n=5 b=123456789101112131415 经调用trans函数后b变为 b=126371048111359121415 函数tans对数组元素的存贮位置作调整调整过程中存在若干个循环传送链 bi1→bi2→bij→bi11≤j<n 例如考察调整后的数组元素b2值为6与该元素相关的位置调整将形成下面的循环传送链 b2→b3→b6→→b12→b9→b5→b2 关键是确定循环传送链的下标i1i2ij以及在考察调整后的元素bkk34时能判定bk是已被传送过的某传送链上的元素 函数ctrkn计算调整后的数组b的第k个元素bk在原数组b中的位置该位置作为函数ctrkn的返回值函数ctr根据k确定它在矩阵中的行号i和列号j注意行号和列号均从 0算起然后按矩阵存放原则计算出它在b中的位置【程序】 transbnintnb[]{ intmkrccrrintw m=n+1*n/2-4k=2 whilem>0{ r=ctrkn ifr==km-- else { cc=krr=rwhile 1 { cc=rrrr=ctrccn }if 2 { cc=krr=rw=b[k] while3 { b[cc]=b[rr]m-- cc=rrrr=ctfccn } b[cc]-w4 } }k++ }}ctrkn intkn{intij i=kj=0while5 i-=++j returni*n+j-i*i+1/2}
阅读下列程序说明和C代码把应填入其中n处的字句写在对应栏内 【说明】 下面的程序能够计算不同图形的面积程序中把每个图形的数据定义成结构类型利用共同体类型描述2种图形的数据程序根据输入参数代表的图形类型求出图形的面积并输出 【程序】structCircle{ floatxy/*圆心位置*/ floatr/*圆半径*/}struct Rectangle{floatwidth /*矩形宽*/floatlength /*矩形长*/}unionshape {structCirclecircle/*圆数据结构*/ structRectanglerectangle/*矩形数据结构*/ }main{ unionshapeafloatarea intiprintfinputnumber 1circle2rectangle3end/n scanf%d&iwhile1 /*循环接收输入并计算输出*/ {switchi {case 1printfinputradius/n scanf%f2/*共同体类型变量接收输入*/ area=3.1415926*3 printftheareaofcircle=%f/narea break case2printfinputwidthandlength:/n seanf%f%f4 /*共同体类型变量接收输入*/ area=5 printftheareaofrectangle=%f/narea break }printfinput number1circle2rectangle3end/n scanf%d&i} }
阅读下列程序说明和C代码把应填入其中n处的字句写在答卷的对应栏内 1说明】函数create能够建立具有任意行和任意列的动态二维整数数组 【函数4.1程序】#includestdio.hint* *createintrowintcol{ int**xix=int **1for 2x[i]=int*malloccol* sizeofint3 }【函数4.2说明】 函数main能够判断输入年是否为闰年【函数4.2程序】 main{intyearnscanfinputyear %d&yearn=4||5 ifn==1printf%disaleap year/nyearelseprintf%disnotaleap year/nyear}
阅读以下说明和C代码将应填入n处的字句写在对应栏内 【说明】 在一图像处理系统中开发者定义了一个图像结构ImageCon其中定义了图像应该具有的属性当图像件的内容或状态发生变化时与之相关联的ImageView结构的值都需要发生改变一个ImageCon结构能够关联一组ImageView结构当ImageCon结构的内容或状态发生变化时所有与之相关联的ImageView结构都将被更新这种应用被称为观察者模式以下代码采用C语言实现能够正确编译通过 【C代码】#include<stdio.h>#define OBS_MAXNUM20/*一个ImageCon变量最多能够关联的ImageView变量的个数*/typedefvoid 1strucImageCon*structImageView* structImageView{funcupdate /*ImageView结构采用的更新函数*/ /*其他的结构字段省略*/} structImageCon{2 myObs[OBS_MAXNUM] /*存储所有与ImageCon相关联的ImageView结构指针*/intindex /*与ImageCon结构变量相关联的ImageView结构变量的个数*/}void attachstructImageCon*IMGstructImageView*ob{ /*关联Obersver结构ob与ImageCon结构IMG*/int loop=0 ifIMG→index>=OBS_MAXNUM||ob==NULLreturn forloop=0loop<IMG→indexloop++ ifIMG→myObs[loop]==obreturn IMG→myObs[IMG→index]=ob IMG→index++}voiddetachstructImageCon *IMGstructImageView*ob{ /*解除IMG结构与ob结构间的关系*/intloop ifob==NULLreturn forloop=0loop<IMG→indexloop++{ ifIMG→myObs[loop]==ob{ ifloop<=IMG→index-2 IMG→myObs[loop]=IMG→myObs[3] IMG→myObs[IMG→index-1]=NULL IMG→index-- breack }} }voidupdatelstructImageCon*IMGstructImageView *ob{/*更新ob结构的值更新代码省略*/}void update2structImageCon*IMGstructImageView*ob{ /*更新ob结构的值更新代码省略*/}void notifyObsstructImageCon*IMG{ /*当IMG结构的值发生变化时通知与之关联的所有ImageView结构变量*/int loopforloop=0loop<IMG→indexloop++{ IMG→myObs[loop]→update4 }} voidmain{structImageCon IMG/*定义一ImageCon变量*/structImageView explorer1explorer2/*定义两个ImageView变量*/ /*初始化与ImageCon变量相关的ImageView变量个数为0*/ IMG.index=0 explorer1.update=updatel/*设置explorerl变量的更新函数*/ explorer2.update=update2/*设置explorer2变量的更新函数*/ attach&IMG&explorer1/*关联explorer1与IMG对象*/ attach&IMG&explorer1/*关联explorer1与IMG对象*/ /*其他代码省略*/5 return}
阅读以下说明和C代码将应填入n处的字句写在对应栏内 【说明】 在一图像处理系统中开发者定义了一个图像结构ImageCon其中定义了图像应该具有的属性当图像件的内容或状态发生变化时与之相关联的ImageView结构的值都需要发生改变一个ImageCon结构能够关联一组ImageView结构当ImageCon结构的内容或状态发生变化时所有与之相关联的ImageView结构都将被更新这种应用被称为观察者模式以下代码采用C语言实现能够正确编译通过 【C代码】#include<stdio.h>#define OBS_MAXNUM20/*一个ImageCon变量最多能够关联的ImageView变量的个数*/typedefvoid 1strucImageCon*structImageView* structImageView{funcupdate /*ImageView结构采用的更新函数*/ /*其他的结构字段省略*/} structImageCon{2 myObs[OBS_MAXNUM] /*存储所有与ImageCon相关联的ImageView结构指针*/intindex /*与ImageCon结构变量相关联的ImageView结构变量的个数*/}void attachstructImageCon*IMGstructImageView*ob{ /*关联Obersver结构ob与ImageCon结构IMG*/int loop=0 ifIMG→index>=OBS_MAXNUM||ob==NULLreturn forloop=0loop<IMG→indexloop++ ifIMG→myObs[loop]==obreturn IMG→myObs[IMG→index]=ob IMG→index++}voiddetachstructImageCon *IMGstructImageView*ob{ /*解除IMG结构与ob结构间的关系*/intloop ifob==NULLreturn forloop=0loop<IMG→indexloop++{ ifIMG→myObs[loop]==ob{ ifloop<=IMG→index-2 IMG→myObs[loop]=IMG→myObs[3] IMG→myObs[IMG→index-1]=NULL IMG→index-- breack }} }voidupdatelstructImageCon*IMGstructImageView *ob{/*更新ob结构的值更新代码省略*/}void update2structImageCon*IMGstructImageView*ob{ /*更新ob结构的值更新代码省略*/}void notifyObsstructImageCon*IMG{ /*当IMG结构的值发生变化时通知与之关联的所有ImageView结构变量*/int loopforloop=0loop<IMG→indexloop++{ IMG→myObs[loop]→update4 }} voidmain{structImageCon IMG/*定义一ImageCon变量*/structImageView explorer1explorer2/*定义两个ImageView变量*/ /*初始化与ImageCon变量相关的ImageView变量个数为0*/ IMG.index=0 explorer1.update=updatel/*设置explorerl变量的更新函数*/ explorer2.update=update2/*设置explorer2变量的更新函数*/ attach&IMG&explorer1/*关联explorer1与IMG对象*/ attach&IMG&explorer1/*关联explorer1与IMG对象*/ /*其他代码省略*/5 return}
阅读下列程序说明和C代码把应填入其中n处的字句写在答卷的对应栏内 1说明】函数create能够建立具有任意行和任意列的动态二维整数数组 【函数4.1程序】#includestdio.hint* *createintrowintcol{ int**xix=int **1for 2x[i]=int*malloccol* sizeofint3 }【函数4.2说明】 函数main能够判断输入年是否为闰年【函数4.2程序】 main{intyearnscanfinputyear %d&yearn=4||5 ifn==1printf%disaleap year/nyearelseprintf%disnotaleap year/nyear}
阅读下列程序说明和C程序把应填入其中n处的字句写在对应栏内 【程序说明】 对角线下元素全为0的矩阵称为上三角矩阵设对于一个n×n的上三角矩阵a为节约存贮只将它的上三角元素按行主序连续存放在数组b中下面的函数trans在不引入工作数组的情况下实现将a改为按列主序连续存放在数组b中 设n=5 b=123456789101112131415 经调用trans函数后b变为 b=126371048111359121415 函数tans对数组元素的存贮位置作调整调整过程中存在若干个循环传送链 bi1→bi2→bij→bi11≤j<n 例如考察调整后的数组元素b2值为6与该元素相关的位置调整将形成下面的循环传送链 b2→b3→b6→→b12→b9→b5→b2 关键是确定循环传送链的下标i1i2ij以及在考察调整后的元素bkk34时能判定bk是已被传送过的某传送链上的元素 函数ctrkn计算调整后的数组b的第k个元素bk在原数组b中的位置该位置作为函数ctrkn的返回值函数ctr根据k确定它在矩阵中的行号i和列号j注意行号和列号均从 0算起然后按矩阵存放原则计算出它在b中的位置【程序】 transbnintnb[]{ intmkrccrrintw m=n+1*n/2-4k=2 whilem>0{ r=ctrkn ifr==km-- else { cc=krr=rwhile 1 { cc=rrrr=ctrccn }if 2 { cc=krr=rw=b[k] while3 { b[cc]=b[rr]m-- cc=rrrr=ctfccn } b[cc]-w4 } }k++ }}ctrkn intkn{intij i=kj=0while5 i-=++j returni*n+j-i*i+1/2}
阅读下列程序说明和C代码把应填入其中n处的字句写在对应栏内 【说明】 下面的程序能够计算不同图形的面积程序中把每个图形的数据定义成结构类型利用共同体类型描述2种图形的数据程序根据输入参数代表的图形类型求出图形的面积并输出 【程序】structCircle{ floatxy/*圆心位置*/ floatr/*圆半径*/}struct Rectangle{floatwidth /*矩形宽*/floatlength /*矩形长*/}unionshape {structCirclecircle/*圆数据结构*/ structRectanglerectangle/*矩形数据结构*/ }main{ unionshapeafloatarea intiprintfinputnumber 1circle2rectangle3end/n scanf%d&iwhile1 /*循环接收输入并计算输出*/ {switchi {case 1printfinputradius/n scanf%f2/*共同体类型变量接收输入*/ area=3.1415926*3 printftheareaofcircle=%f/narea break case2printfinputwidthandlength:/n seanf%f%f4 /*共同体类型变量接收输入*/ area=5 printftheareaofrectangle=%f/narea break }printfinput number1circle2rectangle3end/n scanf%d&i} }
线性表采用顺序存储结构若表长为m且在任何一个合法插入位置上进行插入操作的概率相同则插入一个元素平均移动______个元素
阅读下列程序说明和C程序把应填入其中n处的字句写在对应栏内 【程序说明】 已知某二叉树的前序遍历和中序遍历序列可以得到该二叉树的结构本程序实现了根据这两个遍历序列生成一棵链接表示的二叉树 构造二叉树的算法要点是由前序遍历序列该序列的第一个元素是根结点元素该元素将中序遍历序列分成左右两部分那些位于该元素之前的元素是它的左子树上的元素位于该元素之后的元素是它的右子树上的元素对于左右子树由它们的前序遍历序列的第一个元素可确定左右子树的根结点参照中序遍历序列又可进一步确定子树的左右子树元素如此递归地参照两个遍历序列最终构造出二叉树 两个遍历序列作为主函数main的参数为简单起见程序假定两个遍历序列是相容的主函数调用函数restore建立二叉树函数restore以树子树的前序遍历和中序遍历两序列及序列长为参数采用递归方法建立树子树函数postorder实现二叉树的后序遍历序列输出用来验证函数restore建立的二叉树 【程序】#includestdio.h> #include<stdlib.h>#defineMAX100typedef structnode{chardata struetnode*llink*rlink}TNODE charpred[MAX]inod[MAX]TNODE*restore Char*char*intmainintargcChar**argv {TNODE*root ifargc<3exit0 strcpypredargv[1] strcpyinodargv[2] root=restorepredinodstrlenpredpostorderroot printf/n/n}TNODE* restoreChar*pposchar*iposintn{ /*参数包括前序遍历序列数组和中序遍历数组*/TNODE* ptrChar*rpos intkifn<=0returnNULL ptr=TNODE*mallocsizeofTNODE ptr→data=1 for2rpos=iposrpos<ipos+nrpos++ if*rpos==*pposbreak k=3 ptr→llink=restoreppos+14k ptr→rlink=restore5+krpos+ 1n-1-kreturnptr }postorderTNODE*ptr{ ifptr==NULLreturn postorderptr→llink postorderptr→rlink prinft%cptr→data}
阅读以下程序说明和C程序将应填入n处的字句写在对应栏内 【程序说明】 某网络由n个端点组成这些端点被物理地分成若干个分离的端点组同一组内的两件端点i和j它们或直接相连或间接相连端点i和端点j间接相连是指在这两件端点之间有一个端点相连序列其中端点i和j分别与这相连序列中的某个端点直接相连网络的n个端点被统一编号为01n-1本程序输入所有直接相连的端点号对分别求出系统各分离端点组中的端点号并输出 程序根据输入的直接相连的两件端点号建立n个链表其中第i个链表的首指针为s[i]其结点是与端点i直接相连的所有端点号 程序依次处理各链表在处理s[i]链表中用top工作链表重新构造s[i]链表使s[i]链表对应系统中的一个端点组其中结点按端点号从小到大连接 【程序】#inelude#defineN100 typeefstructnode{intdata structnode*link}NODE NODE*s[N]intijntNODE *q*p*x*y*topmain{ printfEnternamberofcomponents. scanf%d&nfori=0i<ni++ printfEnterpairs./n whilescanf%d%d&i&j==2{ /*输入相连端点对生成相连端点结点链表*/ p=NODE*mallocsizeofNODE p→data=jp→link=s[i]s[i]=p p=NODE*mallocsizeofNODE p→data=ip→link=s[j]s[j]=p} fori=0i<ni++/*顺序处理各链表*/ fortop=s[i]1top!=NULL {/*将第i链表移入top工作链表并顺序处理工作链表的各结点*/ q=top 2 ifs¨[j=q→data]!=NULL{ /将j链表也移入工作链表*/ forp=s[j]p→link!=NULLp=p→link p→link=toptop=s[j] 3 } /*在重新生成的第i链表中寻找当前结点的插入点*/ fory=s[i]4x=yy=y→link ify!=NULL&&y→data==q→data freeq/*因重新生成的第i链表已有当前结点当前结点删除*/ else{ 5 ify==s[i]s[i]=q elsex→link=q }} fori=0i<ni++ {/*输出结果*/ ifs[i]==NULLcontinue forp=s[i]p!=NULL{ printf/t%dp→data q=p→linkfreepp=q }printf/n }}
阅读以下说明和C程序将应填入n处的字句写在对应栏内 【说明】 并行计算中需要将N个作业分配给N个处理器同时去完成每个处理器都能承担这N个作业但耗时不同下面的程序用回溯法计算总耗时最小的一种作业分配方案在该方案中为每个处理器分配1个不同的作业 程序中N个作业从0开始依次编号N个处理器也从0开始依次编号主要的变量说明如下 c[i][j]将作业i分配给处理器j的耗时 job[i]值为0表示作业i未分配值为j表示作业i分配给处理器j processor[k]值为0表示处理器k未分配作业值为1表示处理器k已分配作业 mincost最小总耗时【C程序】 #include<stdio.h>#defineN8/*N表示作业数和处理器数*/ intc[N][N]unsignedint mincost=65535/*设置min的初始值大于可能的总耗时*/int job[N]temp[N]processor[N]voidAssignintkunsignedint cost{inti if1&&cost<mincost{ mincost=cost fori=0i<Ni++temp[i]=job[i] }else{ fori=0i<Ni++/*分配作业k*/ if2&& cost+c[k][i]<mincost{ processor[i]=1job[k]=3 Assign4cost+c[k][i] 5job[k]=0 }/*if*/ }}/*Assign*/ voidmain{int ij fori=0i<Ni++{/*设置每个作业由不同处理器承担时耗时及全局数组的初值*/ processor[i]=0job[i]=0temp[i]=0 forj=0j<Nj++ scanf%d&c[i][j]} Assign00/*从作业0开始分配*/ printf/n最小耗时=%d/nmincost fori=0i<Ni++printfJob%disassigned toProcessor%d/nitemp[i]}/*main*/
采用哈希或散列技术构造查找表时需要考虑冲突碰撞的处理冲突是指______
在执行递归过程时通常使用的数据结构是______
阅读下列程序说明和C程序把应填入其中n处的字句写在对应栏内 【程序说明】 已知某二叉树的前序遍历和中序遍历序列可以得到该二叉树的结构本程序实现了根据这两个遍历序列生成一棵链接表示的二叉树 构造二叉树的算法要点是由前序遍历序列该序列的第一个元素是根结点元素该元素将中序遍历序列分成左右两部分那些位于该元素之前的元素是它的左子树上的元素位于该元素之后的元素是它的右子树上的元素对于左右子树由它们的前序遍历序列的第一个元素可确定左右子树的根结点参照中序遍历序列又可进一步确定子树的左右子树元素如此递归地参照两个遍历序列最终构造出二叉树 两个遍历序列作为主函数main的参数为简单起见程序假定两个遍历序列是相容的主函数调用函数restore建立二叉树函数restore以树子树的前序遍历和中序遍历两序列及序列长为参数采用递归方法建立树子树函数postorder实现二叉树的后序遍历序列输出用来验证函数restore建立的二叉树 【程序】#includestdio.h> #include<stdlib.h>#defineMAX100typedef structnode{chardata struetnode*llink*rlink}TNODE charpred[MAX]inod[MAX]TNODE*restore Char*char*intmainintargcChar**argv {TNODE*root ifargc<3exit0 strcpypredargv[1] strcpyinodargv[2] root=restorepredinodstrlenpredpostorderroot printf/n/n}TNODE* restoreChar*pposchar*iposintn{ /*参数包括前序遍历序列数组和中序遍历数组*/TNODE* ptrChar*rpos intkifn<=0returnNULL ptr=TNODE*mallocsizeofTNODE ptr→data=1 for2rpos=iposrpos<ipos+nrpos++ if*rpos==*pposbreak k=3 ptr→llink=restoreppos+14k ptr→rlink=restore5+krpos+ 1n-1-kreturnptr }postorderTNODE*ptr{ ifptr==NULLreturn postorderptr→llink postorderptr→rlink prinft%cptr→data}
阅读下列程序说明和C代码把应填入其中n处的字句写在对应栏内 【说明】 下面的程序能够计算不同图形的面积程序中把每个图形的数据定义成结构类型利用共同体类型描述2种图形的数据程序根据输入参数代表的图形类型求出图形的面积并输出 【程序】structCircle{ floatxy/*圆心位置*/ floatr/*圆半径*/}struct Rectangle{floatwidth /*矩形宽*/floatlength /*矩形长*/}unionshape {structCirclecircle/*圆数据结构*/ structRectanglerectangle/*矩形数据结构*/ }main{ unionshapeafloatarea intiprintfinputnumber 1circle2rectangle3end/n scanf%d&iwhile1 /*循环接收输入并计算输出*/ {switchi {case 1printfinputradius/n scanf%f2/*共同体类型变量接收输入*/ area=3.1415926*3 printftheareaofcircle=%f/narea break case2printfinputwidthandlength:/n seanf%f%f4 /*共同体类型变量接收输入*/ area=5 printftheareaofrectangle=%f/narea break }printfinput number1circle2rectangle3end/n scanf%d&i} }
数据结构中的树最适合用来表示______的情况
阅读下列函数说明和C代码把应填入其中n处的字句写在答卷的对应栏内 【函数2说明】 本题中的函数encode和decode分别实现对字符串的变换和复原变换函数encode顺序考察已知字符串的字符按以下规则逐组生成新字符串 1.若已知字符串的当前字符不是数字字符则复制该字符于新字符串中 2.若已知字符串的当前字符是一个数字字符且它之后没有后继字符则简单地将它自己复制到新字符串中 3.若已知字符串的当前字符是一个数字字符并且还有后继字符设该数字字符的面值为n则将它的后续字符包括后续字符是一个数字字符重复复制n+1次到新字符串中 4.以上述一次变换为一组在不同组之间另插入一个下划线字符-用于分隔例如encode函数对字符串26a3t2的变换结果为666_a_tttt_2 复原函数decode做变换函数encode的相反的工作即复制不连续相同的单个字符而将一组连续相同的字符不超过10个变换成一个用于表示重复次数的数字字符和一个重复出现的字符并在复原过程中掠过变换函数为不同组之间添加的一个下划线字符 假定调用变换函数encode时的已知字符串中不包含下划线字符【函数2】 intencodechar*instrchar*outstr{ char*ip*opcintknip=instrop=outstr while*ip{if1 &&*ip+1{n=*ip-’0’+1 c=*++ipfork=0k<=nk++2 }else3 *op++=’-’ip++} ifop>outstr4*op=’/0’ returnop-outstr}intdecodechar* instrchar*outstr{char*ip*opcintn ip=instrop=outstrwhile*ip{c= *ipn=0while*ip==c&&n<=10{ip++n++} if5*op++=’0’+n-1*op++=c if*ip==’_’6}* op=’/0’returnop-outstr}
数组A[-5..50..8]按列存储若第一个元素的首地址为100且每个元素占用4个存储单元则元素A[23]的存储地址为______
阅读以下程序说明和C程序将应填入n处的字句写在对应栏内 【程序说明】 某网络由n个端点组成这些端点被物理地分成若干个分离的端点组同一组内的两件端点i和j它们或直接相连或间接相连端点i和端点j间接相连是指在这两件端点之间有一个端点相连序列其中端点i和j分别与这相连序列中的某个端点直接相连网络的n个端点被统一编号为01n-1本程序输入所有直接相连的端点号对分别求出系统各分离端点组中的端点号并输出 程序根据输入的直接相连的两件端点号建立n个链表其中第i个链表的首指针为s[i]其结点是与端点i直接相连的所有端点号 程序依次处理各链表在处理s[i]链表中用top工作链表重新构造s[i]链表使s[i]链表对应系统中的一个端点组其中结点按端点号从小到大连接 【程序】#inelude#defineN100 typeefstructnode{intdata structnode*link}NODE NODE*s[N]intijntNODE *q*p*x*y*topmain{ printfEnternamberofcomponents. scanf%d&nfori=0i<ni++ printfEnterpairs./n whilescanf%d%d&i&j==2{ /*输入相连端点对生成相连端点结点链表*/ p=NODE*mallocsizeofNODE p→data=jp→link=s[i]s[i]=p p=NODE*mallocsizeofNODE p→data=ip→link=s[j]s[j]=p} fori=0i<ni++/*顺序处理各链表*/ fortop=s[i]1top!=NULL {/*将第i链表移入top工作链表并顺序处理工作链表的各结点*/ q=top 2 ifs¨[j=q→data]!=NULL{ /将j链表也移入工作链表*/ forp=s[j]p→link!=NULLp=p→link p→link=toptop=s[j] 3 } /*在重新生成的第i链表中寻找当前结点的插入点*/ fory=s[i]4x=yy=y→link ify!=NULL&&y→data==q→data freeq/*因重新生成的第i链表已有当前结点当前结点删除*/ else{ 5 ify==s[i]s[i]=q elsex→link=q }} fori=0i<ni++ {/*输出结果*/ ifs[i]==NULLcontinue forp=s[i]p!=NULL{ printf/t%dp→data q=p→linkfreepp=q }printf/n }}
若线性表241331615188采用散列Hash法进行存储和查找设散列函数为HKey=Keymod11则构造散列表时发生冲突的元素为______其中的mod表示整除取余运算
用二分法来检索数据最确切的说法是______
若二维数组P[1..50..8]的首地址为base数组元素按行存储且每个元素占用1个存储单元则元素P[33]在该数组空间的地址为______
阅读下列程序说明和C代码把应填入其中n处的字句写在答卷的对应栏内 【说明】 程序利用选择排序算法对数组a中的N个整数按照从小到大的顺序排列并将排序结果显示出来【程序】 #defineN10main{ void1int ia[N]fori=0i<10i++/*输入*/ scanf%d&a[i]2 fori=0i<Ni++ /*输出*/printf%3da[i] }voidselectSonintx[]intn {intijkt forinti=03i++ {k=i forj=i+1j<nj++ if4k=j if5 {t=x[i]x[i]=x[k]x[k]=t}} }
阅读以下程序说明和C程序将应填入n处的字句写在对应栏内 【程序说明】 某网络由n个端点组成这些端点被物理地分成若干个分离的端点组同一组内的两件端点i和j它们或直接相连或间接相连端点i和端点j间接相连是指在这两件端点之间有一个端点相连序列其中端点i和j分别与这相连序列中的某个端点直接相连网络的n个端点被统一编号为01n-1本程序输入所有直接相连的端点号对分别求出系统各分离端点组中的端点号并输出 程序根据输入的直接相连的两件端点号建立n个链表其中第i个链表的首指针为s[i]其结点是与端点i直接相连的所有端点号 程序依次处理各链表在处理s[i]链表中用top工作链表重新构造s[i]链表使s[i]链表对应系统中的一个端点组其中结点按端点号从小到大连接 【程序】#inelude#defineN100 typeefstructnode{intdata structnode*link}NODE NODE*s[N]intijntNODE *q*p*x*y*topmain{ printfEnternamberofcomponents. scanf%d&nfori=0i<ni++ printfEnterpairs./n whilescanf%d%d&i&j==2{ /*输入相连端点对生成相连端点结点链表*/ p=NODE*mallocsizeofNODE p→data=jp→link=s[i]s[i]=p p=NODE*mallocsizeofNODE p→data=ip→link=s[j]s[j]=p} fori=0i<ni++/*顺序处理各链表*/ fortop=s[i]1top!=NULL {/*将第i链表移入top工作链表并顺序处理工作链表的各结点*/ q=top 2 ifs¨[j=q→data]!=NULL{ /将j链表也移入工作链表*/ forp=s[j]p→link!=NULLp=p→link p→link=toptop=s[j] 3 } /*在重新生成的第i链表中寻找当前结点的插入点*/ fory=s[i]4x=yy=y→link ify!=NULL&&y→data==q→data freeq/*因重新生成的第i链表已有当前结点当前结点删除*/ else{ 5 ify==s[i]s[i]=q elsex→link=q }} fori=0i<ni++ {/*输出结果*/ ifs[i]==NULLcontinue forp=s[i]p!=NULL{ printf/t%dp→data q=p→linkfreepp=q }printf/n }}
阅读以下说明和C程序将应填入n处的字句写在对应栏内 【说明】 并行计算中需要将N个作业分配给N个处理器同时去完成每个处理器都能承担这N个作业但耗时不同下面的程序用回溯法计算总耗时最小的一种作业分配方案在该方案中为每个处理器分配1个不同的作业 程序中N个作业从0开始依次编号N个处理器也从0开始依次编号主要的变量说明如下 c[i][j]将作业i分配给处理器j的耗时 job[i]值为0表示作业i未分配值为j表示作业i分配给处理器j processor[k]值为0表示处理器k未分配作业值为1表示处理器k已分配作业 mincost最小总耗时【C程序】 #include<stdio.h>#defineN8/*N表示作业数和处理器数*/ intc[N][N]unsignedint mincost=65535/*设置min的初始值大于可能的总耗时*/int job[N]temp[N]processor[N]voidAssignintkunsignedint cost{inti if1&&cost<mincost{ mincost=cost fori=0i<Ni++temp[i]=job[i] }else{ fori=0i<Ni++/*分配作业k*/ if2&& cost+c[k][i]<mincost{ processor[i]=1job[k]=3 Assign4cost+c[k][i] 5job[k]=0 }/*if*/ }}/*Assign*/ voidmain{int ij fori=0i<Ni++{/*设置每个作业由不同处理器承担时耗时及全局数组的初值*/ processor[i]=0job[i]=0temp[i]=0 forj=0j<Nj++ scanf%d&c[i][j]} Assign00/*从作业0开始分配*/ printf/n最小耗时=%d/nmincost fori=0i<Ni++printfJob%disassigned toProcessor%d/nitemp[i]}/*main*/
阅读以下说明和C代码将应填入n处的字句写在对应栏内 【说明】 在一图像处理系统中开发者定义了一个图像结构ImageCon其中定义了图像应该具有的属性当图像件的内容或状态发生变化时与之相关联的ImageView结构的值都需要发生改变一个ImageCon结构能够关联一组ImageView结构当ImageCon结构的内容或状态发生变化时所有与之相关联的ImageView结构都将被更新这种应用被称为观察者模式以下代码采用C语言实现能够正确编译通过 【C代码】#include<stdio.h>#define OBS_MAXNUM20/*一个ImageCon变量最多能够关联的ImageView变量的个数*/typedefvoid 1strucImageCon*structImageView* structImageView{funcupdate /*ImageView结构采用的更新函数*/ /*其他的结构字段省略*/} structImageCon{2 myObs[OBS_MAXNUM] /*存储所有与ImageCon相关联的ImageView结构指针*/intindex /*与ImageCon结构变量相关联的ImageView结构变量的个数*/}void attachstructImageCon*IMGstructImageView*ob{ /*关联Obersver结构ob与ImageCon结构IMG*/int loop=0 ifIMG→index>=OBS_MAXNUM||ob==NULLreturn forloop=0loop<IMG→indexloop++ ifIMG→myObs[loop]==obreturn IMG→myObs[IMG→index]=ob IMG→index++}voiddetachstructImageCon *IMGstructImageView*ob{ /*解除IMG结构与ob结构间的关系*/intloop ifob==NULLreturn forloop=0loop<IMG→indexloop++{ ifIMG→myObs[loop]==ob{ ifloop<=IMG→index-2 IMG→myObs[loop]=IMG→myObs[3] IMG→myObs[IMG→index-1]=NULL IMG→index-- breack }} }voidupdatelstructImageCon*IMGstructImageView *ob{/*更新ob结构的值更新代码省略*/}void update2structImageCon*IMGstructImageView*ob{ /*更新ob结构的值更新代码省略*/}void notifyObsstructImageCon*IMG{ /*当IMG结构的值发生变化时通知与之关联的所有ImageView结构变量*/int loopforloop=0loop<IMG→indexloop++{ IMG→myObs[loop]→update4 }} voidmain{structImageCon IMG/*定义一ImageCon变量*/structImageView explorer1explorer2/*定义两个ImageView变量*/ /*初始化与ImageCon变量相关的ImageView变量个数为0*/ IMG.index=0 explorer1.update=updatel/*设置explorerl变量的更新函数*/ explorer2.update=update2/*设置explorer2变量的更新函数*/ attach&IMG&explorer1/*关联explorer1与IMG对象*/ attach&IMG&explorer1/*关联explorer1与IMG对象*/ /*其他代码省略*/5 return}
热门题库
更多
中级软件设计师
初级网络管理员
初级信息处理技术员
中级数据库系统工程师
中级多媒体应用设计师
高级系统分析师
高级网络规划设计师
高级系统架构师
中级信息系统监理师
初级通信工程师
中级通信工程师
通信新技术、新业务知识
无线通信专业技术
移动通信专业技术
有线传输专业技术
电话交换专业技术