欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    【计算机类职业资格】初级程序员下午试题-33及答案解析.doc

    • 资源ID:1330094       资源大小:53KB        全文页数:6页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【计算机类职业资格】初级程序员下午试题-33及答案解析.doc

    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 个士兵围成一

    17、圈,给他们依次编号,班长指定从第 w 个士兵开始报数,报到第 s 个士兵出列,依次重复下去,直至所有士兵都出列。 【流程图】 (分数:15.00)填空项 1:_ (正确答案:Li.nextp=1 (2) k=w-1 (3) count!=n (4) +I (5) +count)解析:二、B试题二/B(总题数:1,分数:15.00)2.【说明】 函数 fun1 (int bb)的功能是:在 3 位整数(100999)中寻找符合条件的整数并依次从小到大存入数组中;它既是完全平方数,两位数字又相同,例如 144、676 等。 【函数 2.11】 fun1 (int bb) int i, j, k=0

    18、, 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,则该数满足条件存入数组 bb 中,且个数 CNT=CNT+1,9812,9-8-1-

    19、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:_ (正确答案:s=i/10%10; (2) bbk+=i; (3) bbcnt+=ai; (4) q=bbi; (5

    20、) bbj=q;)解析:三、B试题三/B(总题数:1,分数:15.00)3.【说明】 下面的程序构造一棵以二叉链表为存储结构的二叉树算法。 【函数】 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

    21、 的双亲结点 if(i%2=0 U(4) /U /i 为 j 的左孩子 else U (5) /U /i 为 j 的右孩子 printf ( “i,x =“ ); scanf ( “%d,%c“, return s1 (分数:15.00)填空项 1:_ (正确答案:q-data=x (2) si=q (3) i!=1 (4) sj-1child=q (5) sj-rchild=q)解析:四、B试题四/B(总题数:1,分数:15.00)4.【说明】 输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。 【函数】 main ( ) int number10; input (num

    22、ber); max min (number); output (number); input (number) int number10; int i; for ( i=0;i9;i+ ) scanf ( “%d,“, 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;

    23、 U(4) /U; l=*min; U(5) /U;array0=1;1=*p; *p=array9;array9=k;k=*p; return; output ( array ) int array10; int *p; for ( p=array;parray+9;p+ ) printf ( “%d,“,*p ); printf ( “%d/n“,array9 ); (分数:15.00)填空项 1:_ (正确答案:array+10 (2) array+1 (3) *p*max (4) k=*max (5) *p=array0)解析:五、B试题五/B(总题数:1,分数:15.00)5.【说明

    24、】 在窗体上设计两个文本框和两个标签,标签上显示:“摄氏温度:”和“华氏温度:”,文本框一个用于输入摄氏温度数,一个用于输出对应的华氏温度。摄氏温度与华氏温度的转换公式为:c=(5/9)(f-32) 要求:对输入的摄氏温度数有检查功能,以拒绝接收非数字字符。运行界面如图所示。 (分数:15.00)填空项 1:_ (正确答案:5 * ( Val ( Text1.Text ) -32 )/9 (2) Integer (3) KeyAscii8)解析:(4) Chr(KeyAscii)“9“ (5) KeyAscii=0六、B试题六/B(总题数:1,分数:15.00)6.【说明】 编写字符界面的 A

    25、pplication 程序,接收依次输入的 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) /UInputStreamReader (

    26、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 ) data Vector.insertE

    27、lementAt ( 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+ ) System.out.print (

    28、 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:_ (正确答案:new (2) readLine() (3) low=high (4) mid= (low+high )/2 (5) lo

    29、w=mid+1)解析:七、B试题七/B(总题数:1,分数:15.00)7.【说明】 以下程序为求行列式 X(5,5)的值 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 ) m

    30、od 5 else k=1 endif temp=temp*x ( k,j ) U (2) /U result=U (3) /U U(4) /U U(5) /U End function(分数:15.00)填空项 1:_ (正确答案:temp=1 (2) next I (3) result+temp (4) next I (5) col=result)解析:八、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、

    31、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,jhN;/*第 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;jh

    32、1=1;/*对应 i 层平面的行的变化范围*/ ki1j1i1=1;/*第 i 层平面中,对应行的列的初值*/ p1=1; do min=pi1+pj1+pk1; i0=i1;j0=j1;k0=k1; if ( i1=ih ) /*当前候选者在 ih 平面, 则 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

    33、=i1;/*预定最上平面的最小行的当前列为下一个候选者*/ j1=j1i1; k1=ki1j1; for ( i=i1;i=ih;i+ ) /*寻找最小值所在平面号、行号和列号*/ for ( j=j1i;j=jhi;j+ ) if ( pi+pj+pkijU (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:_ (正确答案:pih=ih*ih*ih (2) jhi1+ (3) ki1j1+)解析:(4) pi1+pj1+pk1 (5) ih!=N


    注意事项

    本文(【计算机类职业资格】初级程序员下午试题-33及答案解析.doc)为本站会员(sofeeling205)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
    备案/许可证编号:苏ICP备17064731号-1 

    收起
    展开