资源描述:
《计算机水平考试-初级程序员下午试题模拟44》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、初级程序员下午试题模拟44试题一阅读以下说明和流程图,回答问题1〜3。[说明]信息处理过程中经常需要将图片或汉字点阵作旋转处理。一个矩阵以顺时针方向旋转90。后可以形成另一个矩阵,如下图所示。h0CI>drCjII1jKM(NOr流程图3描述了对Mn矩阵的某种处理。流程图b是将矩阵A顺时针旋转90。形成矩阵B的具体算法。规BVA.咄醇村崖转9(T粥闻爼PtB」111)Q循耳站就b[问题叮请写出以下尹3单位矩阵沿顺时针方向旋转90。后所形成的矩阵。10001000I2、[问题2]如果以卜乜法3矩阵沿顺时针方向旋转90
2、。后所形成的矩阵就是原来的矩阵。_100'01000I其中,位于*处的元素需要考生填写。请完整地写出该矩阵。3、[问题3]在上述流程图a和b所示的算法中:(1)矩阵A第i行第j列的元素A(i,j)被复制到矩阵B中的哪个位置?(2)A(izj)后来又被复制到矩阵C中的哪个位置?(3)填补流程图b中的空缺。试题二4、[说明1]函数intfactors(intn)的功能是判断整数n(n>=2)是否为完全数。如果n是完全数,则函数返回0,否则返回-1。所谓'、完全数〃是指整数11的所有因子(不包括n)之和等于n自身。例如,
3、28的因子为1,2,4,7,14,^28=1+2+4+7+14,因此28是''完全数〃。[C函数1]intfactors(intn){inti,s;for(i=l,s=0;i<=n/2;i++)if(n%i=0)(1);if((2))return0;rerurn-1;}[说明2]函数intmaxint(inta[]zintk)的功能是用递归方法求指定数组中前k个元素的最大值,并作为函数值返回。[C函数2]intmaxint(inta[],intk){intt;if((3))return(4);t=maxint(a+
4、l,(5));return(a[0]>t)?a[0]:t;}试题三5、[说明]已知一棵二叉树用二叉链表存储,t指向根节点,P指向树中任一节点。下列算法为输出从t到PZ问路径上的节点。[C程序]#defineMaxSize1000typedefstructnode{TelemTypedata;structnode*ichiid,*rchiid;}BiNode,*BiTree;voidPath(BiTreet,BiNode*P){BiTree*stack[Maxsize],*stackl[Maxsize],*q;int
5、tag[Maxsize],top=0,topi;q=t;/★通过先序遍历发现P*/do{while(q!=NULL&&q!=p)八扫描左孩了,_日・相应的节点不为P*/{⑴;stack[top]=q;tag[top]=0;⑵;}if(top>0){if(stack[top]=P)break;/*找到P,栈底到栈顶为tjljp*/if(tag[top]==1)top--;else{q=stack[top];q=q->rchiid;tag[top]=1;}}}(3);top--;topl=0;while(top>0){
6、q=stack[top];/★反向打卬准备★/topl++;⑷;top--;}while(⑸){/*打卬栈的内容*/q=stackl[topi]jprintf(q->data);topi--;}}试题四6、[说明]设一个环上有编号为0〜口“的口粒颜色不尽相同的珠子(每粒珠子颜色用字母表示,n粒珠子的颜色由输入的字符串表示)。从环上的某两粒珠子问剪开,则环上珠子形成一个序列然后按以下规则从序列中取走珠了:首先从序列左端取走所自连续的同色珠了;然后从序列右端在剩下的珠了中取走所有连续的同色珠子,两者之和为该剪开处可取走
7、珠子的粒数。在不同位置剪开,能取走的珠子也不尽相同。本程序所求的是在环上哪个位置剪开,按上述规则可取走的珠子粒数最多。程序中用数组存储字符串。例如,10粒珠子颜色对应字符串为aaabbbadcc,在0号珠子前剪开,序列为aaabbbadcc,从左端取走3粒a色珠了,从右端取走2粒c色珠了,共取走5粒珠了。若在3号珠了前剪开,即bbbadccaaa,共取走6粒珠子。[C函数]intcount(char*s,intstart,intend){inti,c=0,color:s[start],step=(start>end
8、)?-l:1;for(i=Start;s[i]==color;i+=step){if(step>0&&i>end
9、
10、(1))break;⑵;}returnc;}voidmain(){chart,s[120];intitk,c,len,maxc,cut=0;printf("请输入环上代表不同颜色珠子字符串:”);scanf("%s,z,s);len=strle