欢迎来到天天文库
浏览记录
ID:42847002
大小:174.50 KB
页数:6页
时间:2019-09-22
《计算机水平考试-初级程序员下午试题模拟62》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、初级程序员下午试题模拟62试题一1>【流程图】O-*sw/循环开始环结束〉下面的流程图描述了对16位二进制整数求补的算法。计算过程是:从二进制数的低位(最右位)开始,依次向高位逐位查看,直到首次遇到''1〃吋,停止查看。然后,对该、'1〃位左面的更高位(如果有的话),逐位求反,所得的结果就是对原二进制数求补的结果。例如:对二进制整数1011100110101000求补的结果是01000110OlOllOOOo设16位二进制整数屮的各位,从低位到高位,依次存放在整型数组BTT的BIT[1]〜BIT[16]中。例如,二进制整数1011100110101
2、000存放在数组BIT后,就有BIT1[1]=0,BIT[2]=0,•••・••,BIT[15]=0,BIT[16]=lo流程图(如图丄所示)屮⑴处按''循环变量名:循环初值,增量,循环终值〃格式描述。若流程图中存在空操作,则用NOP表示。试题二2、[说明]函数Printprime(intUpBound)的功能是车俞出1至iJUpBound以内的全体素数。[函数2・1]voidPrintPrime(intUpBound)printf(n2z");for(i=3;i3、)/*检查i是否有3至Ijk以入的奇因数*/if((2))break;fi((3))printf("%d",i);[函数2・2说明]递归函数invert(inta[],intk),intk)的功能是将数组a中的前k个元素逆置。[函数2.2]voidinvert(inta[],intk){intt;if(⑷){invert((5));t=a[0];a[0]=a[k-1];a[k-1]=t;试题二3、[C语言函数]boolDelelem(STACK*s,charparach){■■STACKs_bgk;/*定义临时工作栈s_bak,*/charch;bo4、oltag=FALSE;(1)/*初始化临时工作栈s_bak*//*,将栈*s屮所冇比para_ch更接近栈顶的元素暂时存放在临时工作栈sbak屮*/while(!IsEmpty(*s)){ch=(2);"取栈顶元素★/Pop(s);if(ch=para_ch){tag=TRUE;break;}⑶;}./★将暂存于临吋工作栈s_bak屮的元素存冋栈*s*/while((4))ch=Top(s_bak);⑸Push(s,ch)}returntag;试题四4、[说明]设一个环上有编号为0〜nJ的n粒颜色不尽相同的珠子(每粒珠子颜色用字母表示,n粒珠子的颜5、色由输入的字符申表示)。从坏上的某两粒珠子问剪开,则坏上珠子形成一个序列然后按以下规则从序列屮取走珠子:首先从序列左端取走所有连续的同色珠子;然后从序列右端在剩下的珠子中取走所有连续的同色珠子,两者之和为该剪开处可取走珠子的粒数。在不同位置剪开,能取走的珠子也不尽相同。木程序所求的是在环上哪个位置剪开,按上述规则可取走的珠子粒数最多。程序中用数组存储字符串。例如,10粒珠子颜色对应字符串为aaabbbadcc,在0号珠子前剪开,序列为aaabbbadcc,从左端取走3粒a色珠子,从右端取走2粒c色珠子,共取走5粒珠子。若在3号珠子前剪开,即bbbad6、ccaaa,共取走6粒珠子。[C函数]intcount(char*s,intstart,intend){inti,c=0,color:s[start]step=(start>end)?-l:1;for(i=Start;s[i]==color;i+=step){if(step>0&&i>end7、8、(1))break;⑵;}returnc;}voidmain(){chart,s[120];inti,k,c,leu,maxc,cut=0;printf(-请输入环上代表不同颜色珠子字符串:“);scanf(”%s〃,s);len=strlen(s);for(9、i=maxc=0;imaxc){cut=i;maxc=c;)/*数组s的元素循环向左移动一个位置*/t=s[0];for(j=l;j10、tream.hn#include"math.h'1#includetypedefstructnode{int
3、)/*检查i是否有3至Ijk以入的奇因数*/if((2))break;fi((3))printf("%d",i);[函数2・2说明]递归函数invert(inta[],intk),intk)的功能是将数组a中的前k个元素逆置。[函数2.2]voidinvert(inta[],intk){intt;if(⑷){invert((5));t=a[0];a[0]=a[k-1];a[k-1]=t;试题二3、[C语言函数]boolDelelem(STACK*s,charparach){■■STACKs_bgk;/*定义临时工作栈s_bak,*/charch;bo
4、oltag=FALSE;(1)/*初始化临时工作栈s_bak*//*,将栈*s屮所冇比para_ch更接近栈顶的元素暂时存放在临时工作栈sbak屮*/while(!IsEmpty(*s)){ch=(2);"取栈顶元素★/Pop(s);if(ch=para_ch){tag=TRUE;break;}⑶;}./★将暂存于临吋工作栈s_bak屮的元素存冋栈*s*/while((4))ch=Top(s_bak);⑸Push(s,ch)}returntag;试题四4、[说明]设一个环上有编号为0〜nJ的n粒颜色不尽相同的珠子(每粒珠子颜色用字母表示,n粒珠子的颜
5、色由输入的字符申表示)。从坏上的某两粒珠子问剪开,则坏上珠子形成一个序列然后按以下规则从序列屮取走珠子:首先从序列左端取走所有连续的同色珠子;然后从序列右端在剩下的珠子中取走所有连续的同色珠子,两者之和为该剪开处可取走珠子的粒数。在不同位置剪开,能取走的珠子也不尽相同。木程序所求的是在环上哪个位置剪开,按上述规则可取走的珠子粒数最多。程序中用数组存储字符串。例如,10粒珠子颜色对应字符串为aaabbbadcc,在0号珠子前剪开,序列为aaabbbadcc,从左端取走3粒a色珠子,从右端取走2粒c色珠子,共取走5粒珠子。若在3号珠子前剪开,即bbbad
6、ccaaa,共取走6粒珠子。[C函数]intcount(char*s,intstart,intend){inti,c=0,color:s[start]step=(start>end)?-l:1;for(i=Start;s[i]==color;i+=step){if(step>0&&i>end
7、
8、(1))break;⑵;}returnc;}voidmain(){chart,s[120];inti,k,c,leu,maxc,cut=0;printf(-请输入环上代表不同颜色珠子字符串:“);scanf(”%s〃,s);len=strlen(s);for(
9、i=maxc=0;imaxc){cut=i;maxc=c;)/*数组s的元素循环向左移动一个位置*/t=s[0];for(j=l;j10、tream.hn#include"math.h'1#includetypedefstructnode{int
10、tream.hn#include"math.h'1#includetypedefstructnode{int
此文档下载收益归作者所有