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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、初级程序员下午试题-1 及答案解析(总分:120.00,做题时间:90 分钟)一、B试题一/B(总题数:1,分数:15.00)1.【说明】下列流程图(如图 4所示)用泰勒(Taylor)展开式sinx=x-x3/3!+x5/5!-x7/7!+(-1)nx2n+1/(2n+1)!+【流程图】(分数:15.00)填空项 1:_二、B试题二/B(总题数:1,分数:15.00)2.【说明 2.1】 以下 C语言函数用二分插入法实现对整型数组 a中 n个数的排序功能。 【函数 2.1】 void fun1 (int a) int i,j,k,r,x,m; for(i=2;i=n;i+) U (1) /U

2、; k=1;r=i-1; while(k=r) m=(k+r)/2; if(xam)r=m-1; elseU (2) /U; for(j=i-1;j=k;j-) aj+l=aj; U (3) /U; 【说明 2.2】 以下程序可以把从键盘上输入的十进制数(long 型)以二十六进制形式输出。 【程序 2.2】 #includestdio.h main() charb16=0,l,2,3 ,4,5,6,7,8,9,A,B,C,D,E,F; int c64,d,i=0,base; long n; printf(“enter a number:/n“); scanf(“%1d“, printf(“e

3、nter new basc:/n“); scanf(“%d“, do ci=U (4) /U; i+; n=n/base; while(n!=0); printf(“transmite new base:/n“); for(-i;i=0;-i) d=ci; printf(“%c“,U (5) /U); (分数:15.00)填空项 1:_三、B试题三/B(总题数:1,分数:15.00)3.【说明】 本题给出四个函数,它们的功能分别是: 1int push(PNODE*top,int e)是进栈函数,形参 top是栈顶指针的指针,形参 e是入栈元素。 2int pop(PNODE*top,int*

4、e)是出栈函数,形参 top是栈顶指针的指针,形参 e作为返回出栈元素使用。 3int enQueue(PNODE*tail,int e)是入队函数,形参 tail是队尾指针的指针,形参 e是入队元素。 4int deQueue(PNODE*tail,int*e)是出队函数,形参 tail是队尾指针的指针,形参 e作为返回出队元素使用。 以上四个函数中,返回值为。表示操作成功,返回值为-1 表示操作失败。 栈是用链表实现的;队是用带有辅助结点(头结点)的单向循环链表实现的。两种链表的结点类型均为: typedef struct node int value; struct node * nex

5、t; NODE, * PNODE; 【函数 1】 int push(PNOOE * top,int e) PNODE p = (PNODE) malloc (sizeof (NODE); if (! p) return-1; p-value=e; U (1) /U;. *top=p; return 0; 【函数 2】 int pop (PNODE * top,int * e) PNODE p = * top; if(p = NULL) return-1; * e = p-value; U (2) /U; free(p); return 0; 【函数 3】 int enQueue (PNODE

6、* tail,int e) PNODE p,t; t= *tail; p = (PNODE) malloc(sizeof(NODE); if(!p) return-1; p-value=e; p-next=t-next; U(3) /U; * tail = p; return 0; 【函数 4】 int deQueue(PNODE * tail,int * e) PNODE p,q; if( * tail)-next = * tail) return-1; p= (* tail)-next; q = p -next; * e =q -value; U (4) /U=q-next; if(,ta

7、il=q)U (5) /U; free(q); return 0; (分数:15.00)填空项 1:_四、B试题四/B(总题数:1,分数:15.00)4.【说明】 下面程序的功能是:在含有 10个元素的数组中查找最大数,及最大数所在位置(即下标值),最大数可能不止一个。 例如:若输入 2 8 5 7 8 4 8 3 2 8 则应输出 The max:8 Total:4 /最大数出现次数 The positions:1 4 6 9 【函数】 #includestdio.h #define M 10 int fun(int* a,int * n,int pos ) int i, k max = -

8、 32767; U (1) /U for(i=0;iM;i+) if(U (2) /U)max=ai; for(i=0;iM;i+) if(U (3) /U)posk+=i; *n=k; return max; main() int aM,posM,i=0j,n; printf(“Enter 10umber:“) for(i=0,iM;i+)scanf(“%d“,U (4) /U); j=fun(U (5) /U); printf(“The max:%d/n“,j); printf(“Total: %d“, n); printf(“The position:“) for (i=0; in;i+

9、) printf (“%4d“, posi); printf(“/n“); (分数:15.00)填空项 1:_五、B试题五/B(总题数:1,分数:15.00)5.在 Visual Basic中,工程文件、窗体文件和标准模块文件的扩展名是什么?请从下列选项中选择: prg、prj、exe、vbp、form、frm、win、fra、std、bas、vbs、vbm 2设某窗体上有一个命令按钮,其名称为 CmdSave,运行时该按钮上显示有“保存(S(下划线)”字样的信息。为使热键 Alt+S与该命令按钮相关联,应该对按钮 CmdSave的 Caption属性设置什么样的属性值? 3设某窗口内有一个图

10、像框Imagel,以及两个命令按钮“放大”和“缩小”。单击“放大”按钮就会使该图像框的长和宽都放大10%;单击“缩小”按钮就会使该图像框的长和宽都缩小 10%(该图像框的左上角不动)。请分别写出这两个命令按钮的单击事件过程中的程序代码。 4为使某个单选按钮初始时默认被选中,在开发时应怎样做? 5若有语句 Tmpval=MsgBox(“非法操作!”,vbOKCancel+vbCritical,“提示”),请简要描述程序运行时弹出的消息框的主要特征。(分数:15.00)填空项 1:_六、B试题六/B(总题数:1,分数:15.00)6.【说明】 本应用程序是一个小写数字转换成大写格式的转换器,其运行

11、窗口如图 5所示。 (分数:15.00)填空项 1:_七、B试题七/B(总题数:1,分数:15.00)7.【说明】 设计一个评选优秀教师和学生的程序,其类结构如图 6所示。当输入一系列教师或学生的记录后,将优秀学生及教师的姓名列出来。 (分数:15.00)填空项 1:_八、B试题八/B(总题数:1,分数:15.00)8.【说明】 下面的程序中定义了两个方法求自然数 1100 的和。具体如下:int suml(int n);利用循环求 1n 的和,int sum2(int n);利用递归方法求和 1n 的和;在 main()方法中调用这两个方法求1100 的和并显示。在程序的每条横线处填写一个适

12、当的语句,使程序的功能完整。 public class Sum public static void mainU (1) /U /1. 调用 sum1(int n),求 1100 的和 /标准输出 U (2) /U(“1100 的和:“ +sum1(100); /2. 调用 sum2(int n),求 1100 的和 /标准输出 U (2) /U(“1100 的和:“+sum2(100); static iht sum1( int n) int result=0; for(int i=1;i=n;i+) U (3) /U retrun result; static int sum2(int n

13、) ifU (4) /U return 1 else U (5) /U (分数:15.00)填空项 1:_初级程序员下午试题-1 答案解析(总分:120.00,做题时间:90 分钟)一、B试题一/B(总题数:1,分数:15.00)1.【说明】下列流程图(如图 4所示)用泰勒(Taylor)展开式sinx=x-x3/3!+x5/5!-x7/7!+(-1)nx2n+1/(2n+1)!+【流程图】(分数:15.00)填空项 1:_ (正确答案:x*x (2)x-t (3)t: (4)s+2-s)解析:(5)(-1) * t* x2/(s* (s-1) 解析 该题的关键是搞清楚几个变量的含义。很显然变

14、量 t是用来保存多项式各项的值,变量 s和变量 x2的作用是什么呢?从流程图的功能上看,需要计算11、3!、5!,又从变量 s的初值置为 1可知,变量 s主要用来计算这此数的阶乘的,但没有其他变量用于整数自增,这样就以判断 s用来存储奇数的,即 s值依次为 1、3、5,。但 x2的功能还不明确,现在可以不用管它。 (2)空的作用是给 t赋初值,即给它多项式的第一项,因此应填写“x-t”。(3)空处需填写循环条件,显然当 t的绝对值小于 (0)就表示已经达到误差要求,因此(3)空应填入“t:”。由变量 s的功能可知,(4)空应当实现变量 s的增加,因此(4)空应填入“s+2-s”。 (5)空应当

15、是求多项式下一项的值,根据多项式连续两项的关系可知,当前一项为 t时,后一项的值为(-1)*t*x*x/(s*(s-1)。但这样的话,每次循环都需要计算一次 x*x,计算效率受到影响,联想到变量 x2还没用,这时就可以判断 x2就是用来存储 x*x的值,使得每次循环者少进行一次乘法运算。因此(1)空处应填入“x*x”,(5)空处应填入“(-1)*t*x2/(s*(s-1)”。二、B试题二/B(总题数:1,分数:15.00)2.【说明 2.1】 以下 C语言函数用二分插入法实现对整型数组 a中 n个数的排序功能。 【函数 2.1】 void fun1 (int a) int i,j,k,r,x,

16、m; for(i=2;i=n;i+) U (1) /U; k=1;r=i-1; while(k=r) m=(k+r)/2; if(xam)r=m-1; elseU (2) /U; for(j=i-1;j=k;j-) aj+l=aj; U (3) /U; 【说明 2.2】 以下程序可以把从键盘上输入的十进制数(long 型)以二十六进制形式输出。 【程序 2.2】 #includestdio.h main() charb16=0,l,2,3 ,4,5,6,7,8,9,A,B,C,D,E,F; int c64,d,i=0,base; long n; printf(“enter a number:/

17、n“); scanf(“%1d“, printf(“enter new basc:/n“); scanf(“%d“, do ci=U (4) /U; i+; n=n/base; while(n!=0); printf(“transmite new base:/n“); for(-i;i=0;-i) d=ci; printf(“%c“,U (5) /U); (分数:15.00)填空项 1:_ (正确答案:x=ai (2)ak=x (3)k=m+1 (4) n% base)解析:(5)bd 解析 函数 3.1的思想是依次将数组中的每一个元素插入到有序段中,使有序段的长度不断地扩大。对于待插入元素,

18、先用二分查找法找出应该插入的位置。然后将元素插入。对数组来说,就是将该位置以后的元素依次后移,然后将待插入元素放到移出来的空位中。 程序 3.2用的思想是除base(base在二十六进制之间)取余法求得相应进制数,然后再转换输出。三、B试题三/B(总题数:1,分数:15.00)3.【说明】 本题给出四个函数,它们的功能分别是: 1int push(PNODE*top,int e)是进栈函数,形参 top是栈顶指针的指针,形参 e是入栈元素。 2int pop(PNODE*top,int*e)是出栈函数,形参 top是栈顶指针的指针,形参 e作为返回出栈元素使用。 3int enQueue(PN

19、ODE*tail,int e)是入队函数,形参 tail是队尾指针的指针,形参 e是入队元素。 4int deQueue(PNODE*tail,int*e)是出队函数,形参 tail是队尾指针的指针,形参 e作为返回出队元素使用。 以上四个函数中,返回值为。表示操作成功,返回值为-1 表示操作失败。 栈是用链表实现的;队是用带有辅助结点(头结点)的单向循环链表实现的。两种链表的结点类型均为: typedef struct node int value; struct node * next; NODE, * PNODE; 【函数 1】 int push(PNOOE * top,int e) P

20、NODE p = (PNODE) malloc (sizeof (NODE); if (! p) return-1; p-value=e; U (1) /U;. *top=p; return 0; 【函数 2】 int pop (PNODE * top,int * e) PNODE p = * top; if(p = NULL) return-1; * e = p-value; U (2) /U; free(p); return 0; 【函数 3】 int enQueue (PNODE * tail,int e) PNODE p,t; t= *tail; p = (PNODE) malloc(

21、sizeof(NODE); if(!p) return-1; p-value=e; p-next=t-next; U(3) /U; * tail = p; return 0; 【函数 4】 int deQueue(PNODE * tail,int * e) PNODE p,q; if( * tail)-next = * tail) return-1; p= (* tail)-next; q = p -next; * e =q -value; U (4) /U=q-next; if(,tail=q)U (5) /U; free(q); return 0; (分数:15.00)填空项 1:_ (正

22、确答案:p-next=*top (2)*top=p-next 或* top=(*top)-next)解析:(3)t-next=p 或(*tail)-next=p (4)p-next 或(*tail)-next-next (5)*tail=p 或*tail=(*tail)-next 解析 (1)插入结点 p后,p 应当指向插入前头结点,所以填入 p -next=*top。(2)出栈后,头指针应指向它的下一结点,所以填入 *top=p-next 或*top=(*top)-next。(3)入队时,需要将结点插入队尾,所以应当填入(*tail)-next=p 或 t-next=p(t 也指向尾结点)。

23、(4)出队时,需要删除队头结点,通过(*tail)-next 可以得到对队头结点的引用。(4)处是正常删除队头结点的情况,空格处应填入头结点指向下一结点的指针,即 p-next 或(*tail)-next-next。(5)处是需要考虑的特殊情况,即队列中最后一个元素出队后,要更新队尾指针,即填入*tail=p或*tail=(*tail)-next。四、B试题四/B(总题数:1,分数:15.00)4.【说明】 下面程序的功能是:在含有 10个元素的数组中查找最大数,及最大数所在位置(即下标值),最大数可能不止一个。 例如:若输入 2 8 5 7 8 4 8 3 2 8 则应输出 The max:

24、8 Total:4 /最大数出现次数 The positions:1 4 6 9 【函数】 #includestdio.h #define M 10 int fun(int* a,int * n,int pos ) int i, k max = - 32767; U (1) /U for(i=0;iM;i+) if(U (2) /U)max=ai; for(i=0;iM;i+) if(U (3) /U)posk+=i; *n=k; return max; main() int aM,posM,i=0j,n; printf(“Enter 10umber:“) for(i=0,iM;i+)scan

25、f(“%d“,U (4) /U); j=fun(U (5) /U); printf(“The max:%d/n“,j); printf(“Total: %d“, n); printf(“The position:“) for (i=0; in;i+) printf (“%4d“, posi); printf(“/n“); (分数:15.00)填空项 1:_ (正确答案:k=0 (2)aimax (3)ai=max)解析:(4)a+i 或 /2. 调用 sum2(int n),求 1100 的和 /标准输出 U (2) /U(“1100 的和:“+sum2(100); static iht su

26、m1( int n) int result=0; for(int i=1;i=n;i+) U (3) /U retrun result; static int sum2(int n) ifU (4) /U return 1 else U (5) /U (分数:15.00)填空项 1:_ (正确答案:String args (2)System. out)解析:(3)result=result+n;或等价形式 (4)n=1; (5)return n+sum2 (n-1); 解析此处为 Java主函数的参数,是固定写法。Java 程序的标准输出是调用 System包的 out对象的函数。循环累加。这是递归调用的结束条件。对 n-1进行递归调用,并返回 n和 n-1个整数和的和。

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