【计算机类职业资格】初级程序员下午试题-13及答案解析.doc
《【计算机类职业资格】初级程序员下午试题-13及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】初级程序员下午试题-13及答案解析.doc(6页珍藏版)》请在麦多课文档分享上搜索。
1、初级程序员下午试题-13 及答案解析(总分:90.00,做题时间:90 分钟)一、B试题一/B(总题数:1,分数:15.00)1.【说明】 本程序用古典 Eratosthenes;筛选法求从 2起到指定范围内的素数。如果要找出 210 中的素数,开始时筛中有 210 的数,然后取走筛中最小的数 2,宣布它是素数,并把该素数的倍数都取走。这样,第一步以后,筛子中还留下奇数 3、5、7、9;重复上述步骤,再取走最小数 3,宣布它为素数,并取走 3的倍数,于是留下 5、7。反复重复上述步骤,直到筛中为空时,工作结束,求得 210 中的全部素数。 【代码】 # include stdio.h # de
2、fine MAX 22500 /*程序中用数组 sieve表示筛子,数组元素 sievei的值为 1时,表示数 i在筛子中,值为-1 时表示数 i已被取走*/ main() unsigned int i, range, factor, k; int sieveMAX; printf(“please input the range:“); scanf(“%d“, /* range 指出在多大的范围内寻找素数*/ for(i=2; i=range; i+) U (1) /U; factor=2; while (factor=range) if(U (2) /U) /* 筛中最小数是素数 */ pr
3、intf(“%d/t“, factor); k=factor; while (k=range) /*移走素数的倍数 */ U (3) /U; k=U (4) /U; U (5) /U; (分数:15.00)_二、B试题二/B(总题数:1,分数:15.00)2.【函数 2.1说明】 有 1、2、3、4 四个数字,输出由这些数字组成的互不相同且无重、复数字的三位数。【函数 2.1】 main() int i,j,k; printf(“/n“); for(U (1) /U) /*以下为三重循环*/ for(j=1; j5;j+) for (k=1;k5;k+) if (U (2) /U) /*确保
4、i, j, k 三位互不相同*/ printf(“%d,%d,%d/n“,i,j,k); 【函数 2.2说明】 计算并输出 100之内的素数,每行输出 10个,超过 10个则换行。 【函数 2.2】 #include stdio.h #include “math.h“ #define N 101 main() int i,j,line,aN; for(i=2;iN;i+)U (3) /U; for(i=2;isqrt(N);i+) for(j=i+1;jN;j+) if(ai!=0 printfC/n“); for(i=2,line=0;iN;i+) if(ai!=0) prinff(“%5d
5、“,ai); U (5) /U; if(line=10) prinff(“/n“); line=0; (分数:15.00)_三、B试题三/B(总题数:1,分数:15.00)3.【说明】 设串 s和串 t采用顺序存储结构,编写函数实现串 s和串 t的比较操作,要求比较结果包括大于、小于和等于 3种情况。 【函数】 int StrCompare(SStrType s, SStrType t) int n=s.length, m=U (1) /U, i,j,tag; i=0; j=0; while(U (2) /U) if(U (3) /U) i+; j+; else if(s.strit.strj
6、) tag=1; return tag; else tag=-1; return tag; if(n=m) tag=0; else if(U (4) /U) tag=1; else if(nm) tag=-1; U (5) /U; (分数:15.00)_四、B试题四/B(总题数:1,分数:15.00)4.【说明】 著名的四色定理指出任何平面区域均可以用 4种颜色着色,使相邻区域着不同的颜色。本程序对给定的区域图找出所有可能的不超过 4种颜色的着色方案。 【函数】 # include stdio.h #define N 10 /*要着色的 N个区域*/ void output(int color
7、) /*输出一种着色方案 colori的值为区域 i所着颜色*/ int i; for (i=0; iN; i+) printf(“%4d“, colori); printf(“/n“); int back(int *ip, int colorj /*回溯*/ int c=4; while (c=4) if (*ip=0) return 0: -(*ip); c=U (1) /U; color*ip=-1; return c; /*检查区域 i,考查 c种颜色的可能性 */ int colorOK(iht i, int c, int adjN, int color) int j; for(j=
8、0; ji; j+) if (U (2) /U) return 0; return 1; /*为区域 i选一种可着的颜色*/ int select(int i, int c, int adjN, int color) /*寻找各种着色方案 adjij=1 表示区域 i与区域 j不相邻*/ int k; for (k=c; k=4; k+) /*4 种颜色*/ if (colorOK(U (3) /U) return k; return 0; int coloring(int adjN) int colorN, i, c, cnt; for (i=0; iN; i+) colori=-1: i=
9、c=0; cnt=0; while (1) if (c=U (4) /U)=0) c=back( if (c=0) return cnt; else U(5) /U; i+; if(i=N) output(color); +cnt; c=back( else c=0; void main() int adjNN= 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
10、, 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, 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)_五、B试题五/B(总题数:1,分数:15.00)5.【说明】 本程序通过移动滑动条修改颜色 RGB值,从而控制颜色。程序中有一个面板、3 个标签和 3个滑动条,标签和滑动条一一对应,分别对应
11、三原色红、绿、蓝,任意拖动其中的一个滑动条,所对应的颜色值就会发生变化,面板的颜色也会发生对应的变化,如下图所示,滑动条值的范围是 0255。 (分数:15.00)_六、B试题六/B(总题数:1,分数:15.00)6.【说明】 本程序的功能是生成螺旋方阵,用户可以输入该方阵的行列数,然后就生成对应的螺旋方阵。例如:当 n=5时,对应的螺旋方阵如下: 1 16 15 14 13 2 17 24 23 12 3 18 25 22 11 4 19 20 21 10 5 6 7 8 9 【C+代码】 #include“stdio.h“ #include“iostream,h“ int array111
12、1; int temp; int ROW; void godown(int temp=ROW;temp+) if(arraytempa=0) arraytempa=U (1) /U; a+; void goright(int temp=ROW;temp+) if(arraybtemp=0) arraybtemp=m+; b-; void goup(int temp0;temp-) if(arraytempc=0) arraytempc=m+; c-; void goleft(int temp0;temp-) if(arraydtemp=0) arraydtemp=m+; U(2) /U; vo
13、id main() int a,b,c,d,max,m; cinROW; coutend1; for(a=1;a=ROW;a+) for(b=1;b=ROW;b+) U (3) /U; m=1; a=d=1; b=c=ROW; max=U (4) /U; whiie(m=max) godown(m,a); U (5) /U(m,b); goup(m,c); goleft(m,d): for(a=1;a=ROW;a+) for(b=1;b=ROW;b+) printf(“%3d “,arrayab); coutend1; (分数:15.00)_初级程序员下午试题-13 答案解析(总分:90.00
14、,做题时间:90 分钟)一、B试题一/B(总题数:1,分数:15.00)1.【说明】 本程序用古典 Eratosthenes;筛选法求从 2起到指定范围内的素数。如果要找出 210 中的素数,开始时筛中有 210 的数,然后取走筛中最小的数 2,宣布它是素数,并把该素数的倍数都取走。这样,第一步以后,筛子中还留下奇数 3、5、7、9;重复上述步骤,再取走最小数 3,宣布它为素数,并取走 3的倍数,于是留下 5、7。反复重复上述步骤,直到筛中为空时,工作结束,求得 210 中的全部素数。 【代码】 # include stdio.h # define MAX 22500 /*程序中用数组 sie
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 初级 程序员 下午 试题 13 答案 解析 DOC
