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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、软件水平考试(初级)程序员下午(应用技术)模拟试卷 46 及答案与解析 1 阅读以下说明和流程图,将应填入 (n)处的字句写在对应栏内。 说明 下面的流程图实现了正整数序列 K(1),K(2),K(n) 的重排,得到的新序列中,比 K(1)小的数都在 K(1)的左侧,比 K(1)大的数都在 K(1)的右侧。以 n=6为例,序列 12, 2, 9,13, 21, 8的重排过程为: 12,2,9,13,21,8 2,12,9,13,21,8 9,2,12,13,21,8 8,9,2,12,13,21 流 程图 2 阅读下列说明和 C代码,将应填入 (n)处的字句写在对应栏内。 【说明】 本题给出四

2、个函数,它们的功能分别是: 1 int push(PNODE*top, int e)是进栈函数,形参 top是栈顶指针的指针,形参 e是入栈元素。 2 int pop(PNODE*top, int*e)是出栈函数,形参 top是栈顶指针的指针,形参 e作为返回出栈元素使用。 3 int enQueue(PNODE*tail, int e)是入队函数,形参 tail是队尾指针的指针,形参 e是入队元素。 4 int deQueue(PNODE*tail, int*e)是出队函数,形参 tail是队尾指针的指针,形参 e作为返回出队元素使用。 以上四个函数中,返回值为。表示操作成功,返回值为 -1

3、表示操作失败。 栈是用链表实现的;队是用带有辅助结点 (头结点 )的单向循环链表实现的。两种链表的结点类型均为: typedef struct node int value; struct node * next; NODE, * PNODE; 【函数 1】 int push(PNOOE * top,int e) PNODE p = (PNODE) malloc (sizeof (NODE); if (! p) return-1; p- value=e; (1); *top=p; return 0; 【函数 2】 int pop (PNODE * top,int * e) PNODE p =

4、* top; if(p = NULL) return-1; * e = p- value; (2); free(p); return 0; 【函数 3】 int enQueue (PNODE * tail,int e) PNODE p,t; t= *tail; p = (PNODE) malloc(sizeof(NODE); if(!p) return-1; p- value=e; p- next=t- next; (3); * tail = p; return 0; 【函数 4】 int deQueue(PNODE * tail,int * e) PNODE p,q; if( * tail)

5、- next = * tail) return-1; p= (* tail)- next; q = p - next; * e =q - value; (4)=q- next; if(,tail=q) (5); free(q); return 0; 3 【说明】 下面程序的功能是:在含有 10个元素的数组中查找最大数,及最大数所在位置(即下标值 ),最大数可能不止一个。 例如:若输入 2 8 5 7 8 4 8 3 2 8 则应输出 The max: 8 Total: 4 /最大数出现次数 The positions: 1 4 6 9 【函数】 #include stdio.h #define

6、 M 10 int fun(int* a,int * n,int pos ) int i, k max = - 32767; (1) for(i=0;i M;i+) if(2)max=ai; for(i=0;i M;i+) if(3)posk+=i; *n=k; return max; main() int aM,posM,i=0j,n; printf(“Enter 10umber:“) for(i=0,i M;i+)scanf(“%d“,(4); j=fun(5); printf(“The max:%dn“,j); printf(“Total: %d“, n); printf(“The po

7、sition:“) for (i=0; i n;i+) printf (“%4d“, posi); printf(“n“); 4 阅读以下函数说明和 C语言函数,将应填入 (n)处的字句写在对应栏内。 【程序 2.1说明】 求所有满足如下条件的三位数:它除以 11得的商等于它各位数字的平方和。例如 550,除以 11商为 50, 50=52+52+02。 【程序 2.1】 void main() int i, j,n,s; for(i=100;i =999;i+) n=i; j=n/11; s=0; while(1) (2) n/=10; if(3) printf(“%dt“,i); 【程序

8、2.2说明】 本程序输入一字符串,将其中的大写字母改变成小写字母。 【程序 2.2】 void main() int i=0; char s120; scanf(“%s“,s); while(4) if(5) si=si- A+a; i+; printf(“%sn“,s); 5 阅读以下说明及 Visual Basic 程序代码,将应填入 (n)处的字句写在对应栏内。 说明 本程序求 3 100之间的所有素数 (质数 )并统计个数;同时将这些素数从小到大依次写入顺序文件 E:dataout.txt;素数的个数显示在窗体 Form1上。 Visual Basic 代码 Private Sub C

9、ommand1 Click ( ) Dim count as integer, flag as Boolean Dim t1 as Integer, t2 as Integer (1) Count=0 For t1=3 to 100 (2) For t2=2 to Int (Sqr (t1) If (3) Then flag=False Next t2 (4) count=count +1 write #1, t1 End if Next t1 (5) Close #1 End Sub 6 阅读以下说明和 C+代码,将解答写入对应栏内。 说明 类 Stock的定义中有三处错误,分别在代码的第

10、04、 06、 10行。请补齐下述代码中的空缺 (1) (3),修改错误并给出修改后该行的完整代码,最后完善程序运行后的输出结果。 C+程序 01 #include iostream.h 02 using namespace std; 03 class Stock 04 protected: 05 Stock()shares=0; share_val=0.0;Output(); 06 Stock(int n=0, double pr=3.5): (1) /初始化 shares值为 n 07 share_val=pr; 08 Output(); 09 ; 10 void Stock(); 11

11、void Output()(cout shares ; share val endl; 12 public: 13 /成员函数 14 private: 15 /成员变量 16 int shares; 17 double share_val; 18 ; 19 20 void main() /构造三个 Stock对象 a,b,C 21 Stock a(1); 22 Stock b; 23 Stock C; Stock(); 24 /其他代码省略,且代码无输出 25 程序运行后的输出结果为: 1:3.5 (2) (3) 7 阅读以下说明、 Java代码,将应填入 (n)处的字句写在对应栏内。 【 说

12、明】 本程序输出 10000之内的所有完全数。完全数是指等于其所有因子和 (包括 1,但不包括这个数本身 )的数。例如: 6=123, 6=1+2+3,则 6是一个完全数。 【程序】 public class PerfectNum Public static void main(String args) int count=1; for(int i=1; i 10000; i+) int y=0; for(int j=1; j i; j+) if(1) y=(2) if(3) System.out.print( (4) +String.valueOf(t); (5) If(count%3=0)

13、 System.out.printin(); 软件水平考试(初级)程序员下午(应用技术)模拟试卷 46 答案与解析 1 【正确答案】 (1) K(s) K(t) (2) K(s) (3) ii -1 (4) tt+1 (5) ss+1 【试题解析】 算法中变量 K(t)始终代表原始序列中的 K(1)值, t则代表它在当前序列中的位置编号,初始值为 1; k(s)代表待比较的数。算法首先拿 K(t)和其后的数做比较,若 K(s)比 K(t)小,则 K(s)移至序列的最左侧,同时顺次把第 i, i s位的元素向右移一位。让 s自增 1,重复这一步骤,直至到达序列末端 (即 s=n)为止。 2 【正

14、确答案】 (1)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 或

15、t- next=p(t 也指向尾结点 )。 (4)出队时,需要删除队头结点,通过(*tail)- next可以得到对队头结点的引用。 (4)处是正常删除队头结点的情况,空格处应填入头结点指向下一结点的指针,即 p- next或 (*tail)- next- next。 (5)处是需要考虑的特殊情 况,即队列中最后一个元素出队后,要更新队尾指针,即填入 *tail=p或 *tail=(*tail)- next。 3 【正确答案】 (1)k=0 (2)ai max (3)ai=max (4)a+i或 (3)y=i (4)i (5)count+; 【试题解析】 本题考查用 Java语言的语法、结构及

16、算法的具体实现。 题目要求我们输出 10000之内的所有完全数,而完全数是指等于其所有因子和数。要想求出 1到 10000中的所有完全数,我们需要从 1开始对每个数进行求解,在判断一个数是否是完全数时,首先要求出其所有因子,再求其因子的和,从而通过判断因子的和与该数是否相等来确定该数是否为完全数。一个 数的因子是指能被该数整除的数。 下面我们来看代码,定义了一个类 PerfectNum来实现输出 10000 之内的所有完全数。在类中有一个主入口函数,在函数体中首先声明了一个整型变量 count并赋初值 1,接下来是一个循环语句,其作用是用来对从 1到 10000之间的数逐个求解。在这个循环体里

17、面又有一个循环,结合我们的分析和程序来看,此循环的功能是求得每个数的所有因子并计算其和,第 (1)空就是在这个循环体下面,是一个条件语句的判断条件,其作用是判断变量 i中的数值是否是变量 i中数的因子,判断是否是因子的方法是取余, 看结果是否为 0。因此,第 (1)空的答案是 i%j=0。 第 (2)空是紧接着第 (1)空来的,如果变量 i中的数值是变量 i中数的因子,则执行此空,那肯定是对因子求和,其和存放在变量 y中,那么此空答案是 y+1。 第 (3)空也是一个条件语句的判断条件,结合后面的程序,我们可以知道,此处是判断该数因子的和是否等于该数,如果是,则执行后面的输出语句:不是,则进入下一个循环。因此,此空答案是 y=i。 第 (4)空在输出语句中,这考查我们对 Java语言中输出语句的熟悉情况,如果熟悉的话,此空很简单,答案是 i或 y。 第 (5)空是用来记录从 1到 10000之间完全数的个数,有一个记录的变量 count,在每次输出一个完全数后只要我们对变量 count加 1即可。因此,此空答案为count+。

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