ImageVerifierCode 换一换
格式:DOC , 页数:12 ,大小:133.50KB ,
资源ID:507357      下载积分:2000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-507357.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文([计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷13及答案与解析.doc)为本站会员(花仙子)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷13及答案与解析.doc

1、软件水平考试(初级)程序员下午(应用技术)模拟试卷 13及答案与解析 1 阅读以下说明和流程图,回答问题。 说明 从键盘输入一个高精度正整数 n,去掉其中 s个数字后按原左右次序再组成一个新的正整数。对给定的 n,要寻找一种方案,使得余下的数字组成的新数最小。 算法分析: 每次删除一个数字,选择一个使余下的数最小的数字作为删除对象。当 s=1时,在 n中删除哪一个数字能达到最小的目的 ?从左到右每相邻的两个数字比较:若出现减,郎左边大于右边,则删除左边的大数字;若不出现减,即所有数字全部升序,则删除最右边的大数字。当s l(当然小于 n的位数 ),按上述操作一个一个删除,删除一个达到最小后,再

2、从头即从串首开始,删除第 2个,依此分解为 s次完成。若删除不到 s个后已无左边大于右边的减序,则停止删除操作,打印余下串的左边 L-s个数字即可。 (x为统计删除数字的个数, m=1表示脱离循环, L为 n的长度 )。 流程图 问题 将流程图中的 (1) (5)处补充完整。 2 阅读下列程序说明和 C代码,将应填入 (n)处的字句写在对应栏内。 说明 函数 Printprime(int UpBound)的功能是输出 1到 UpBound以内的 全体素数。 函数 2.1 void PrintPrime(int UpBound) printf(“2,“ ); for(i=3; i UpBound

3、; i+ =2) int k = sqrt(i); for(j=3; j = k;(1) /*检查 i是否有 3到 k以入的奇因数 */ if(2) break; fi(3) printf(“%d“, i); 函数 2.2说明 递归函数 invert(int a,int k), int k)的功能是将数组 a中的前 k个元素逆置。 函数 2.2 void invert(int a , int k) int t; if (4) invert(5); t=a0; a0 =ak-1; ak-l=t; 3 阅读下列程序说明和 C程序,已知其输出为 “1 2 3 4 5 6 7 8 9 10”。将应填入

4、 (n)处的字句写在对应栏内。 说明 本程序包含的函数及其功能说明如 下: (1)函数 first_insert()的功能是在已知链表的首表元之前插入一个指定值的表元; (2)函数 reverse_copy()的功能是按已知链表复制出一个新链表,但新链表的表元链接顺序与 已知链表的表元链接顺序相反; (3)函数 Print_link()用来输出链表中各表元的值; (4)函数 free_link()用来释放链表全部表元空间。 程序 #include stdio. h #include malloe. h typodef struct node int val; struct node * nex

5、t; NODE; void first_insert(NODE * * p,int v) NODE *q = (NODE *) malloe(sizeof(NODE); q-val = v; q- next = *p; /* 为新表元赋值 */ * p =(1); NODE * reverse_copy( NODE * p) NODE * u; for(u=NULL; p!=NULL; p=p- next) first_insert(2); return u; void printlink(NODE * p ) for(;(3) prinff(“%dt“, p-val); printf(“ n

6、“); void free_link( NODE * p) NODE * u; while(p! =NULL) u=p-next;free(p);(4); void main( ) NODE * link1 , * link2; int i; link1 = NULL; for(i=1; i = 10; i+ + )first_insert( link2 = reverse_copy(link1 ); (5); free_link( linkl ) ;free_link(link2); 4 阅读下列程序说明和 C代码,回答问题 1 2。 说明 本程序用古典的 Eratosthenes的筛法求从

7、 2起到指定范围内的素数。如果要找出2至 10中的素 数,开始时筛中有 2到 10的数,然后取走筛中的最小的数 2,宜布它是素数,并把该素数的倍数都取走。这样,第一步以后,筛子中还留下奇数 3、5、 7、 9:重复上述步骤,再取走最小数 3,宣布它为素数,井取走 3的倍数,于是留下 5、 7。反复重复上述步骤,直至筛中为空时,工作结束,求得 2至 10中的全部素数。 程序中用数组 sieve表示筛子,数组元素 sievei的值为 1时,表示数 i在筛子中,值为 -1时表示数 i已被取走。 程序 #include stdio, h #define MAX 22500 main( ) unsign

8、ed int i , range , factor , k; int sieveMAX; prinff( “please input the range:“ ); scanf(“ %d“ , /* range 指出在多大的范围内寻找素数 * / for(i=2 ;ik,则表明 i没有 3到 k以内的奇因数,即 i是一素数,应该输出; (4)由于函数递归的终止条件是 k不大于 1,于是仅在 k1时需要继续进行递归; (5)为了将数组 a的前 k个元素 a0、 、 ak-1置逆,只需先将 a1、 、ak-2这 k-2个元素置逆,即调用 invert(a+1, k-2),再交换 a0和 ak-1的值

9、即可。 3 【正确答案】 (1)q (2)&u, p-val (3)p!=NULL; P= p-next (4)P=u (5)print_link(link2) 【试题解析】 (1)定义新表元并且给予赋值后需要更新链首指针,使其指向新表元; (2)为了由空链表生成原来链表的逆序链,可以自链首表元 P起遍历其每一个表元,调用 first_insert函数将这个表元的值插入到新链表 u中; (3)此处的循环是自链首表元 p起循环遣历链表,循环结束条件是 p!=NULL,每循环一次 ,将 p指向下一个表元,即 P=P-next; (4)释放链表全部表元空间是自链首表元起,循环释放每一个表元空间; (

10、5)此处定义了程序的输出。由于 main函数中链表 link1、 link2分别为: “10 9 8 7 6 5 4 3 2 1”及 “1 2 3 4 5 6 7 8 9 10”, 因而此处应该是调用 print_link函数输出 link2。 4 【正确答案】 问题 1(1)sievei=1 (2)sievefactor (3) sievek=-1 (4)k+factor 问题 2(5)25 【试题解析】 初始时, 2到 range以内的数 i都在筛子中,即 sievei=1; (2)每用一次筛法,筛子中留存的最小数都不是前面素数的倍数,因而也是素数,我们只需用这个数来继续筛选。例如,用 f

11、actor=2、 3筛选以后,筛于中最小数是5,所以 factor=4的情形不需考虑,只需对 fsctor=5,即 sievefactor=1的情形继续执行筛选; (3)若 k是素数 factor的倍数,则将 k从筛子中移出,即设置 sievek=-1; (4)由于 k应该是素数 factor的倍数,因此从韧值 factor开始需要每次自增factor; (5)当 factor为 2时,取走了 2的倍数;当 factor为 3时,取走了 3的倍数;于是当 factor为 5时取走的第二个数是 5的倍数、但不是 2或者 3的倍数,这个数应该是 25。 5 【正确答案】 (1) Select Ca

12、se operation (2) matrix(0,i,k) * matrix (1,k,j) (3) Text3,2 (4) Call newMatrices或 newMatrices (5) Caption 【试题解析】 (1)此处是针对操作符 operation的多分支选择结构; (2)根据矩阵乘法公式,此处应累加 matrix(0,i,k) * matrix(1,k,j),k=0, , 2的值; (3)此处应向 Text3中输出结果矩阵; (4)此处应调用 newMatrices子过程生成新的操作数,调用时可加关键字,也可不加; (5)根据 operate子过程对参数的要求,此处传递的

13、参数应该是 “+”、 “-”或 “*”,即各运算按钮 Caption属性的值。 6 【正确答案】 (1) AddNew (2) MoveNext (3) NoMatch (4) Data1.Refresh (5) Close 【试题解析】 (1)增加新记录应使用 AddNew方法; (2)获取记录集的下一条记录应使用 MoveNext方法; (3)查询的结果是否为空可用 NoMatch属性来判断,其值为真表示查询结果为空; (4)当 Data控件的某些属性设置发生改变,可以使用 Refresh方法打开或重新打开数据库,用 Refresh方法可以更新数据控件的集合内容; (5)关闭应用程序之前,

14、应关闭数 据库连接。 7 【正确答案】 (1)prov (2)public (3)employee (4)no=num (5)emp.display() 【试题解析】 本程序创建一个 employee类,包括姓名、街道地址、市、省和邮政编码和记录号等信息以及若干函数:构造函数 employee()初始化每个成员;changname ()、 changeno() 等用于更改类中各属性的值; dis- play()函数用于打印数据。其中的数据成员是保护的,函数是公共的。 8 【正确答案】 (1) init() (2) String (3) Applet (4) Graphics g (5) HelloWorldApplet.class 【试题解析】 (1)applet初始化的时候要调用该方法,它仅被调用一次。初始化的代码经常放到这里。 (2)程序在标签 JLabe1在构造过程中赋予其显示的文本,它的构造函数的输入参数是 String类型的,这个在 str的定义中也可以看出。 (3)AppletPaint继承自 Applet类。 (4)很明显,这里需要一个 Graphics类来画直线。 (5)这是 Applet的 html标记的使用方法, code属性给出特定的类文件名,并且必须包括扩展名 .class。 width和 height属性定义了该 Applet的窗口大小。

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