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

上传人:sofeeling205 文档编号:1330091 上传时间:2019-10-17 格式:DOC 页数:4 大小:50.50KB
下载 相关 举报
【计算机类职业资格】初级程序员下午试题-30及答案解析.doc_第1页
第1页 / 共4页
【计算机类职业资格】初级程序员下午试题-30及答案解析.doc_第2页
第2页 / 共4页
【计算机类职业资格】初级程序员下午试题-30及答案解析.doc_第3页
第3页 / 共4页
【计算机类职业资格】初级程序员下午试题-30及答案解析.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、初级程序员下午试题-30 及答案解析(总分:120.00,做题时间:90 分钟)一、B试题一/B(总题数:1,分数:15.00)1.说明 已知递推数列:a(1)=1,a (2s)= a (s),a(2s+1)=a (s)+a (s+1)(s 为正整数)。试求该数列的第 n 项与前 n 项中哪些项最大?最大值为多少? 算法分析:该数列序号分为奇数或偶数两种情况做不同递推,所得数列呈大小有规律的摆动。设置 a 数组,赋初值 a (1)=1。根据递推式,在循环中分项序号 s (2n)为奇数或偶数作不同递推:每得一项 a (s),即与最大值 max 作比较,如果 a (s)max,则max=a(i)。

2、最后,在所有项中搜索最大项(因最大项可能多于一项),并打印最大值 max。 问题 将流程图中的(1)(5)处补充完整。 注:流程图中(1)循环开始的说明按照“循环变量名:循环初值,循环终值,增量”格式描述。 流程图 (分数:15.00)填空项 1:_二、B试题二/B(总题数:1,分数:15.00)2.函数 2.1 说明 将一个正整数分解质因数。例如:输入 90,打印出 90=2335。 函数 2.1 fun 1 ( int n ) int i; for ( i=2;i=n; i+) while (U (1) /U) if (n %i=0 ) printf ( “%d*“,i ); U (2)

3、/U else break; printf ( “%d“,n ) ; 函数 2.2 说明 下面程序的功能是:海滩上有一堆桃子,5 只猴子来分。第 1 只猴子把这堆桃子平均分为 5 份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第 2 只猴子把剩下的桃子又平均分成 5 份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第 3、第 4、第 5 只猴子都是这样做的,问海滩上原来最少有多少个桃子? 函数 2.2 main ( ) int i, m, j, k, count; for ( i=4;i10000;i+=4 ) count=0; U (3) /U; for ( k=0;k5;k+

4、 ) U (4) /U; i=j; if ( j%4=0 ) U (5) /U;else break; i=m; if ( count=4 ) printf ( “%d/n“, count) ; break; (分数:15.00)填空项 1:_三、B试题三/B(总题数:1,分数:15.00)3.说明 完成以下中序线索化二叉树的算法。 函数 Typedef int datatype; Typedef struct node Int ltag, rtag; Datatype data; *lchild,* rchild; bithptr; bithptr pre; void inthread (

5、p ); if inthread ( p-lchild ); if ( p-lchild=unll )U (1) /U; if ( P-RCHILD=NULL) p-rtag=1; ifU (2) /U ifU (3) /Upre-rchild=p; if ( p-1tag=1 )U (4) /U; INTHREAD ( P-RCHILD ); U (5) /U; (分数:15.00)填空项 1:_四、B试题四/B(总题数:1,分数:15.00)4.说明 如图所示的一圆圈上分布 6 个环,请在每个环中填一个数字,使得从任一环开始按顺时针所得的六位数与按逆时针所得的 6 位数都为素数。 (分数:

6、15.00)填空项 1:_五、B试题五/B(总题数:1,分数:15.00)5.说明 本程序求 3100 之间的所有素数(质数)并统计个数;同时将这些素数从小到大依次写入顺序文件 E: /dataout.txt;素数的个数显示在窗体 Form1 上。 Visual Basic 代码 Private Sub Command1_ Click ( ) Dim count as integer, flag as Boolean Dim t1 as Integer, t2 as Integer U (1) /U Count=0 For t1=3 to 100 Flag=Tree For t2=2 to I

7、nt( Sqr ( t1 ) ) IfU (2) /UThen flag=False Next t2 U (3) /U count=U (4) /U write #1, t1 End if Next t1 U (5) /U Close #1 End Sub(分数:15.00)填空项 1:_六、B试题六/B(总题数:1,分数:15.00)6.说明 用输入/输出写一个程序,让用户输入一些姓名和电话号码。每一个姓名和号码将加在文件里。用户通过点“Done”按钮来告诉系统整个列表已输入完毕。 如果用户输入完整的列表,程序将创建一个输出文件并显示或打印出来。格式如:555,1212,Tom 123-45

8、6-7890,Peggy L.234-5678,Marc 234-5678,Ron 876-4321,Beth byte name=new byte lineLength; int i; try fos= new FileOutputStream (“phone. numbers“); catch (FileNotFoundException e) while (true) U(1) /U(“Enter a name (enter done to quit)“); U(2) /U (name); if (“done“. equalsIgnoteCase (new String (name,0,

9、0,4) break; System.err.println (“Enter the phone number“); readLine (phone);for (int i=0;phone i!=0;i+) U(3) /U; fos.write (,); for (int i=0U (4) /U;i+) fos. write (name i); fos. write (/n); fos. close(); private static void readLine (byte line ) throws IOException int i=0,b=0; while (iU (5) /U) lin

10、ei= ( byte ) 0; (分数:15.00)填空项 1:_七、B试题七/B(总题数:1,分数:15.00)7.说明以下是一账号和密码输入的检验程序。对输入的账号和密码规定如下所述。(1)账号为不超过 6 位的数字,密码为 4 位字符,在本题中,密码假定为“Pass”。(2)密码输入时在屏幕上不显示输入的字符,而以“*”代替。(3)当输入不正确,如账号为非数字字符或密码不正确时,显示有关信息。(4)当输入正确时,关闭密码窗口,显示记事本窗口。按要求完成有关控件的其他属性的设置,编写确定按钮的单击事件过程。相关界面如下:(分数:15.00)填空项 1:_八、B试题八/B(总题数:1,分数:

11、15.00)8.说明 设计一程序,输入 10 个整数到一个数组中,调整这 10 个数在数组中的位置,使得其中最小的一个数成为数组的首元素,最大的一个数成为数组的末元素。 C+程序 #include iostream.h #define SIZE 10 void main ( ) int data SIZE; int m; cout“请输入“SIZE“个整数:“; for ( m=0;mSIZE; m+ )U (1) /U; int j=0,k=0; for ( int i=1;iSIZE; i+ ) if (U (2) /U) j=i; else if ( dataidatak )U (3)

12、/U; if (j0 ) int d=data0; U (4) /U; datak=d; if ( kSIZE-1 ) int d=data SIZE- 1 ; dataSIZE- 1 =dataj; U (5) /U; coutend1“ 排序后: “; for ( m=0;mSIZE; m+ ) coutdatam“ “ ; (分数:15.00)填空项 1:_初级程序员下午试题-30 答案解析(总分:120.00,做题时间:90 分钟)一、B试题一/B(总题数:1,分数:15.00)1.说明 已知递推数列:a(1)=1,a (2s)= a (s),a(2s+1)=a (s)+a (s+1)

13、(s 为正整数)。试求该数列的第 n 项与前 n 项中哪些项最大?最大值为多少? 算法分析:该数列序号分为奇数或偶数两种情况做不同递推,所得数列呈大小有规律的摆动。设置 a 数组,赋初值 a (1)=1。根据递推式,在循环中分项序号 s (2n)为奇数或偶数作不同递推:每得一项 a (s),即与最大值 max 作比较,如果 a (s)max,则max=a(i)。最后,在所有项中搜索最大项(因最大项可能多于一项),并打印最大值 max。 问题 将流程图中的(1)(5)处补充完整。 注:流程图中(1)循环开始的说明按照“循环变量名:循环初值,循环终值,增量”格式描述。 流程图 (分数:15.00)

14、填空项 1:_ (正确答案:(1)for s=2 to n (2) mod(s,2)=0)解析:(3) a(s)=a(s/2) (4) a(s)=a(s+1)/2+a(s-1)/2) (5) max=a(s)二、B试题二/B(总题数:1,分数:15.00)2.函数 2.1 说明 将一个正整数分解质因数。例如:输入 90,打印出 90=2335。 函数 2.1 fun 1 ( int n ) int i; for ( i=2;i=n; i+) while (U (1) /U) if (n %i=0 ) printf ( “%d*“,i ); U (2) /U else break; printf

15、 ( “%d“,n ) ; 函数 2.2 说明 下面程序的功能是:海滩上有一堆桃子,5 只猴子来分。第 1 只猴子把这堆桃子平均分为 5 份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第 2 只猴子把剩下的桃子又平均分成 5 份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第 3、第 4、第 5 只猴子都是这样做的,问海滩上原来最少有多少个桃子? 函数 2.2 main ( ) int i, m, j, k, count; for ( i=4;i10000;i+=4 ) count=0; U (3) /U; for ( k=0;k5;k+ ) U (4) /U; i=j; if

16、( j%4=0 ) U (5) /U;else break; i=m; if ( count=4 ) printf ( “%d/n“, count) ; break; (分数:15.00)填空项 1:_ (正确答案:(1) n!=i (2) n=n/i)解析:(3) m=i (4) j=i/4*5+1 (5) count+三、B试题三/B(总题数:1,分数:15.00)3.说明 完成以下中序线索化二叉树的算法。 函数 Typedef int datatype; Typedef struct node Int ltag, rtag; Datatype data; *lchild,* rchild

17、; bithptr; bithptr pre; void inthread ( p ); if inthread ( p-lchild ); if ( p-lchild=unll )U (1) /U; if ( P-RCHILD=NULL) p-rtag=1; ifU (2) /U ifU (3) /Upre-rchild=p; if ( p-1tag=1 )U (4) /U; INTHREAD ( P-RCHILD ); U (5) /U; (分数:15.00)填空项 1:_ (正确答案:(1) P-LTAG=0 (2) (PRE))解析:(3) (PRE-RTAG=1) (4) P-LCH

18、ILD=PRE (5) PRE=P四、B试题四/B(总题数:1,分数:15.00)4.说明 如图所示的一圆圈上分布 6 个环,请在每个环中填一个数字,使得从任一环开始按顺时针所得的六位数与按逆时针所得的 6 位数都为素数。 (分数:15.00)填空项 1:_ (正确答案:(1)m=n (2) u=m %100000)解析:(3) m1=t*100000+m1 (4) m1% j=0 (5) m=u*10+t五、B试题五/B(总题数:1,分数:15.00)5.说明 本程序求 3100 之间的所有素数(质数)并统计个数;同时将这些素数从小到大依次写入顺序文件 E: /dataout.txt;素数的

19、个数显示在窗体 Form1 上。 Visual Basic 代码 Private Sub Command1_ Click ( ) Dim count as integer, flag as Boolean Dim t1 as Integer, t2 as Integer U (1) /U Count=0 For t1=3 to 100 Flag=Tree For t2=2 to Int( Sqr ( t1 ) ) IfU (2) /UThen flag=False Next t2 U (3) /U count=U (4) /U write #1, t1 End if Next t1 U (5)

20、 /U Close #1 End Sub(分数:15.00)填空项 1:_ (正确答案:(1) Open “e:/dataout.txt“ For Output as #1 (2) t1 mod t2=0)解析:(3) If t2Int (sqr(t1)Then (4) count +1 (5) Form1.Print “素数个数“; count六、B试题六/B(总题数:1,分数:15.00)6.说明 用输入/输出写一个程序,让用户输入一些姓名和电话号码。每一个姓名和号码将加在文件里。用户通过点“Done”按钮来告诉系统整个列表已输入完毕。 如果用户输入完整的列表,程序将创建一个输出文件并显示

21、或打印出来。格式如:555,1212,Tom 123-456-7890,Peggy L.234-5678,Marc 234-5678,Ron 876-4321,Beth byte name=new byte lineLength; int i; try fos= new FileOutputStream (“phone. numbers“); catch (FileNotFoundException e) while (true) U(1) /U(“Enter a name (enter done to quit)“); U(2) /U (name); if (“done“. equalsIg

22、noteCase (new String (name,0,0,4) break; System.err.println (“Enter the phone number“); readLine (phone);for (int i=0;phone i!=0;i+) U(3) /U; fos.write (,); for (int i=0U (4) /U;i+) fos. write (name i); fos. write (/n); fos. close(); private static void readLine (byte line ) throws IOException int i

23、=0,b=0; while (iU (5) /U) linei= ( byte ) 0; (分数:15.00)填空项 1:_ (正确答案:(1)System. err. println (2) readLine)解析:(3) fos. write(phonei) (4) namei!=0 (5) lineLength-1七、B试题七/B(总题数:1,分数:15.00)7.说明以下是一账号和密码输入的检验程序。对输入的账号和密码规定如下所述。(1)账号为不超过 6 位的数字,密码为 4 位字符,在本题中,密码假定为“Pass”。(2)密码输入时在屏幕上不显示输入的字符,而以“*”代替。(3)当输

24、入不正确,如账号为非数字字符或密码不正确时,显示有关信息。(4)当输入正确时,关闭密码窗口,显示记事本窗口。按要求完成有关控件的其他属性的设置,编写确定按钮的单击事件过程。相关界面如下:(分数:15.00)填空项 1:_ (正确答案:(1) End If (2) en (txt No. Text))解析:(3) Asc(s) Asc(“0“) (4) Asc(s) Asc(“9“) (5) txtNo. Text= “ “八、B试题八/B(总题数:1,分数:15.00)8.说明 设计一程序,输入 10 个整数到一个数组中,调整这 10 个数在数组中的位置,使得其中最小的一个数成为数组的首元素,

25、最大的一个数成为数组的末元素。 C+程序 #include iostream.h #define SIZE 10 void main ( ) int data SIZE; int m; cout“请输入“SIZE“个整数:“; for ( m=0;mSIZE; m+ )U (1) /U; int j=0,k=0; for ( int i=1;iSIZE; i+ ) if (U (2) /U) j=i; else if ( dataidatak )U (3) /U; if (j0 ) int d=data0; U (4) /U; datak=d; if ( kSIZE-1 ) int d=data SIZE- 1 ; dataSIZE- 1 =dataj; U (5) /U; coutend1“ 排序后: “; for ( m=0;mSIZE; m+ ) coutdatam“ “ ; (分数:15.00)填空项 1:_ (正确答案:(1)ndata m (2) dataidataj)解析:(3) k=i (4) data0=datak (5) dataj=d

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

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