【计算机类职业资格】初级程序员下午试题-33及答案解析.doc
《【计算机类职业资格】初级程序员下午试题-33及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】初级程序员下午试题-33及答案解析.doc(6页珍藏版)》请在麦多课文档分享上搜索。
1、初级程序员下午试题-33 及答案解析(总分:120.00,做题时间:90 分钟)一、B试题一/B(总题数:1,分数:15.00)1.【说明】 求解约瑟夫环问题。算法分析:n 个士兵围成一圈,给他们依次编号,班长指定从第 w 个士兵开始报数,报到第 s 个士兵出列,依次重复下去,直至所有士兵都出列。 【流程图】 (分数:15.00)填空项 1:_二、B试题二/B(总题数:1,分数:15.00)2.【说明】 函数 fun1 (int bb)的功能是:在 3 位整数(100999)中寻找符合条件的整数并依次从小到大存入数组中;它既是完全平方数,两位数字又相同,例如 144、676 等。 【函数 2.
2、11】 fun1 (int bb) int i, j, k=0, g, s, b; for (i=100; i=999; i+) g=i%10; U(1) /U b=i/100; if (i= (int) sqrt (i) * (int) sqrt (i) 【函数 2.2 说明】 函数 void fun2()的功能是:数组 a 中有 300 个四位数,求出数组 a 千位数上的数减百位数上的数减十位数上的数减个位数上的数大于零的个数 CNT,再把所有满足此条件的四位数依次存入数组 bb 中,然后对数组 bb 的四位数按小到大的顺序进行排序。例如:9123,9-1-2-30,则该数满足条件存入数组
3、 bb 中,且个数 CNT=CNT+1,9812,9-8-1-20,则该数不满足条件,忽略。 【函数 2.2】 void fun2 ( ) int q,b,s,g,i,j; for (i=0;i300;i+) q=ai/1000; b=ai/100%10; s=ai/10%10; g=ai%10; if (q-b-s-g0) U(3) /U for ( i=0;icnt-1;i+ ) for ( j=i+1;jcnt;j+ ) if ( bbibbj ) U (4) /U bbi=bbj; U(5) /U (分数:15.00)填空项 1:_三、B试题三/B(总题数:1,分数:15.00)3.【
4、说明】 下面的程序构造一棵以二叉链表为存储结构的二叉树算法。 【函数】 BTCHINALR *createbt ( BTCHINALR *bt ) BTCHINALR *q; struct node1 *s 30; int j,i; char x; printf ( “i,x =“ ); scanf ( “%d,%c“, while (i!=0 /生成一个结点 U (1) /U; q-1child = NULL; q-rchild = NULL; U(2) /U; if(U (3) /U;) j=i/2 /j 为 i 的双亲结点 if(i%2=0 U(4) /U /i 为 j 的左孩子 els
5、e U (5) /U /i 为 j 的右孩子 printf ( “i,x =“ ); scanf ( “%d,%c“, return s1 (分数:15.00)填空项 1:_四、B试题四/B(总题数:1,分数:15.00)4.【说明】 输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。 【函数】 main ( ) int number10; input (number); max min (number); output (number); input (number) int number10; int i; for ( i=0;i9;i+ ) scanf ( “%d,“
6、, scanf ( “%d“, max_min ( array ) int array10; int *max,*min,k,1; int *p,*arr_end; arr end=U (1) /U; max=min=array; for ( p=U (2) /U;parr_end;p+ ) if(U (3) /U) max=p; else if ( *p*min ) min=p; U(4) /U; l=*min; U(5) /U;array0=1;1=*p; *p=array9;array9=k;k=*p; return; output ( array ) int array10; int
7、*p; for ( p=array;parray+9;p+ ) printf ( “%d,“,*p ); printf ( “%d/n“,array9 ); (分数:15.00)填空项 1:_五、B试题五/B(总题数:1,分数:15.00)5.【说明】 在窗体上设计两个文本框和两个标签,标签上显示:“摄氏温度:”和“华氏温度:”,文本框一个用于输入摄氏温度数,一个用于输出对应的华氏温度。摄氏温度与华氏温度的转换公式为:c=(5/9)(f-32) 要求:对输入的摄氏温度数有检查功能,以拒绝接收非数字字符。运行界面如图所示。 (分数:15.00)填空项 1:_六、B试题六/B(总题数:1,分数:1
8、5.00)6.【说明】 编写字符界面的 Application 程序,接收依次输入的 10 个整型数据,每个数据一行,将这些数据按升序排序后从系统的标准输出设备输出。 【Java 代码】 import java.iO.*; import java.util.* ; public class compositor public static void main ( String args ) final int NUMBER=10; Vector dataVector=new Vector (); try BufferedReader br=new BufferedReader ( U(1) /
9、UInputStreamReader ( System.in ); System.out.println (“请输入“+NUMBER+“个整数“); for (int i=0; iNUMBER; i+ ) int temp=Integer.parselnt ( br.U (2) /U); int low=0, high=i-1, mid=0; while (U (3) /U) System.out.println ( low+“,“+mid+“,“+high ); U(4) /U; if ( Integer ) dataVectOr.get( mid ) .intValue () =temp
10、) data Vector.insertElementAt ( new Integer ( temp ), mid ); break; else if ( Integer ) dataVector.get ( mid ) .intValue ( ) temp ) high=mid-1; else U(5) /U; if ( lowhigh ) dataVector, insertElementAt ( new Integer ( temp ), iow ); /输出 System.out.println ( “/n 升序的排序结果为; “); for (int i=0; iNUMBER; i+
11、 ) System.out.print ( dataVector.get( i ) .toString () +“/t“ ); catch ( NumberFormatException nfe) System.out.println ( nfe.toString (); System.out.println ( “整数格式输入错误。“); catch ( IOException ioe ) System.out.println ( ioe.toString (); (分数:15.00)填空项 1:_七、B试题七/B(总题数:1,分数:15.00)7.【说明】 以下程序为求行列式 X(5,5)
12、的值 S。 【Visual Basic 代码】 Private Function col ( byval x ( 5,5 ) as integer ) as long dim fesult as long dim temp as long dim I as integer dim j as integer dim k as imeger result = 0 for I = to 5 U(1) /U for j = 1 to 5 if I+j6 then k= ( 1+j ) mod 5 else k=1 endif temp=temp*x ( k,j ) U (2) /U result=U
13、(3) /U U(4) /U U(5) /U End function(分数:15.00)填空项 1:_八、B试题八/B(总题数:1,分数:15.00)8.【说明】 找一个最小的自然数,使它等于不同的两组三个自然数的三次幂之和,即找最小的 x,使得:x=a*a*a+b*b*b+c*C*c+d*d*d+e*e*e+f*f*f,其中,a、b、c、d、e、f 者是是自然数,abCdef; a,b,c!=d,e,f) 【C+程序】 #includestdio.h #define N 100 void main () int i,j,il,ih,i0,j0,k0,il,j 1,k1; int j1N,j
14、hN;/*第 i 层平面的行的变化范围,自 jli至 jhi*/ int kNN;/*第 i 层平面中,对应行 j,当前的列号值为 kij*/ int pN, min;/*pi=i*i*i*/ i1=1;j1=1;k1=1;/*首先只局限下三角棱体的顶点*/ i1=1;ih=1;/*预置 i 的变化范围初值i1=i=ih*/ j11=1;jh1=1;/*对应 i 层平面的行的变化范围*/ ki1j1i1=1;/*第 i 层平面中,对应行的列的初值*/ p1=1; do min=pi1+pj1+pk1; i0=i1;j0=j1;k0=k1; if ( i1=ih ) /*当前候选者在 ih 平面
15、, 则 ih 增 1*/ ih+; U (1) /U; /*为 ih 平面设定 j 的变化范围和对应 k值*/ j1ih=1;jhih=1;kih1=1; if ( i1=i1/*在 i1 平面最下角点找到候选者,i1 增 1*/ else if ( k1=1 ki1jhi1=1; if( k1=j1/*调整 i1 平面当前行的列号*/ i1=i1;/*预定最上平面的最小行的当前列为下一个候选者*/ j1=j1i1; k1=ki1j1; for ( i=i1;i=ih;i+ ) /*寻找最小值所在平面号、行号和列号*/ for ( j=j1i;j=jhi;j+ ) if ( pi+pj+pki
16、jU (4) /U) i1=i;j 1=j;k1=kij; while ( pi1+pj1+pk1!=min if ( pi1+pj1+pk1=min ) printf ( “%4d=%2d3+%d3+%dA3=%2d3+%d3+%d3/n“,min,i0,j0,k0,i1,j1,k1 ); else printf ( “The %d is too small./n“,N ); (分数:15.00)填空项 1:_初级程序员下午试题-33 答案解析(总分:120.00,做题时间:90 分钟)一、B试题一/B(总题数:1,分数:15.00)1.【说明】 求解约瑟夫环问题。算法分析:n 个士兵围成一
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 初级 程序员 下午 试题 33 答案 解析 DOC
