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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、软件水平考试(初级)程序员下午(应用技术)模拟试卷 14及答案与解析 1 阅读以下说明和流程图,回答问题 1 2,将解答填入答题纸对应的解答栏内。说明 给定一个十进制整数 A,将其转换为 R进制数的方法是:将 A的整数部分逐次除以 R,直到商等于 0为止,将所得的余数由低位到高位排列在一起,就得到了对应 R的进制数。以 A=11, R=2为例, 112=51 , 52=21 , 22=10 ,12=01 中各式的余数依次为: 1, 1, 0, 1,于是与 A对应的二进制数为 1011。 下面的流程图实现了将十进制数 2597转换为八 进制数的功能,其中: (1)循环 1执行除法运算并将余数依次

2、记录在数组 a中 (假定数组长度足够长 ),如 a1, a2, , ak; (2)循环 2则用于将这些余数按逆序输出,即 ak, ak-1, , a1; (3)图中 i,j分别是循环 1和循环 2中的循环变量; (4)图中 q用于记录每次除法所得的商值。 流程图 问题 1 将流程图中的 (1) (4)处补充完整,其中 (1) (3)处要求使用 C语言格式书写: (1)处为逻辑表达式, (2)、 (3)两处为算术表达式; (4)则须按照 “循环变量名:循环初值 ,循环终值,增量 ”格式描述。 问题 2该算法运行的结果 (5)。 2 阅读下列程序说明和 c代码,将应填入 (n)处的字句写在对应栏内

3、。 说明 下面的程序利用递归算法计算 x和 y的最大公约数。 函数 2.1 main ( ) int x,y,k,t; scanf(“ % d% d“ , if(x y) t=x;x=y; y=t; (1); while(k! =0) y=x; (2); k=y%x; prinff( “% d“ ,x); 函数 2.2说明 函数 fun(char *str,char *substr的功能是计算子串 sugbstr在串 str中出现的次数。 函数 2.2 fun(ehar * str, char * substr) int x,y,z; (3); for(x=0;str x ! = O;x +

4、+ ) for(y=x,z=0;sabstrz = =stry;(4),y+ +) if(5)= =0) num + +; break; return(num); 3 阅读下列函数说明和 C函数,将应填入 (n)处的字句写在对应栏内。 说明 用链式存储结构实现的栈称为链栈。若链栈元素的数据类型为 datatype,以LinkStack记链栈结构,其类型定义为: typedef struct node datatype data; stmct node * next; StackNode, * LinkStack; 由于栈的主要操 作都是在栈顶进行的,因此我们把链表的头部作为栈顶。设 top为栈

5、顶指针,即: LinkStack top。 下面各函数的功能说明如下: (1)LinkStack Init_LinkStack():建立并返回空的链栈; (2)int Empty_LinkStack(LinkStack top):判断 top所指链栈是否空; (3)LinkStack Push_LinkStack(LinkStacktop, datatypex):将数据 x压人 top所指链栈的栈顶,返回新栈指针; (4)LinkStack Pop_LinkStack (LinkStacktop, datatype*x):弹出 top所指链栈的栈顶元素 x,返回新栈指针。 函数 LinkSta

6、ek Init_LinkStack( ) returnNULL; int Empty_LinkStack ( LinkStaek top) if(top = = NULL) return 1; else return 0; LinkStaek Push_LinkStaek( LinkStaektop, datatype X) StaekNode *s; s=malloc (sizeof(StaekNode) ); (1)= x; (2)= top; (3); return top; LinkStaek Pop_LinkStack (LinkStacktop, datatype * x) Sta

7、ekNode *p; if(top = = NULL) return NULL; else * x =(4); p = top; (5); free (p); return top; 4 阅读下列函数说明和 C函数,回答问题 1 2,将解答填入栏内。 说明 若矩阵Amn中存在某个元素 aij满足: aij 是第 i行中最小值且是第 j列中的最大值,则称该元素为矩阵 A的一个鞍点。下面程序的功能是输出 A中所有鞍点,其中参数A使用二维数组表示, m和 n分别是矩阵 A的行列数。 程序 void saddle (int A , int m, int n) int i,j,min; for (i=0

8、;i m;i + + ) min: (1); for (j=1; j n; j+ +) if(Aijmin) (2); for (j=0; j n; j+ +) if (3) p=0; while (p m if (p = m)printf (“%d,%d,%dn“,i,j,min); 问题 1 将函数代码中的 (1) (4)处补充完整 问题 2在上述代码的执行过程中,若 A为矩阵 ,则调用 saddle(A, 3, 3)后输出是 (5)。 5 阅读下列说明和 Visual Basic代码,将应填入 (n)处的字句写在对应栏内。 说明 某小型家电超市开 发了下面的程序,用以实现商品提货信息的汇

9、总和输出功能。程序的运行界面如下图所示: 程序界面包含两个控件数组,分别是提货商品复选框控件数组 Check1以及提货数量文本框控件数组Text1(相同下标的复选框和文本框相对应 ),提货清单的显示由 List控件实现,按钮 “打印清单 ”和 “清除 ”分别名为 Command1和 Command2。 Visual Basic代码 提货商品复选框的单击事件响应代码 Private Sub Check1_Click(Index As Integer)If Check1 (Index). Value = 1 Then (1). SetFocusEnd Sub按钮 “打印清单 ”的单击事件响应代码

10、Private Sub Command1_Click() Dim i, n, price As Integer, sum As Long, title As String sum = 0 For i = O To 4 Select Case i Case 0: title =“电视机 “: price = 3580 Case 1: title =“微波炉 “: price = 660 Case 2: title =“电冰箱 “: price = 1850 Case 3: title =“DVD“: price = 2880 Case 4: title =“空调 “: price = 2500

11、End Select If (2)= 1 And Textl(i). Text “ “ Then (3) title char pass7; public: User(char ,char); (1) return user; (2) return pass; ; User:User(char u,char p) strcpy(user,u); strcpy(pass,p); void main() User ua=User(“Li“,“123456“),User(“wang“,“654321“),User(“Song“,“666666“) char name10; while(1) cout

12、 “输入用户 名 :“; cin name; if(3)= =0) break; for(int i=0;i 3;i+ +) if(strcmp(name,uai.getuser() = =0) cout “密码 :“ uai.getpass() endl; (4); if(5)cout “该用户不存在 !“ endl; 8 阅读以下说明和 java代码,将应填入 (n)处的字句写在对应栏内。 说明 本程序中预设了若干个用户名和口令。用户输入正确的用户名后,可以查找对应的口令,一旦输入结束标记 “end”,程序结束。 Java代码 import java. io. *: public clas

13、s User public String user; public Siring pass; public User() public User( String u,String p) user=u; pass=p; public String (1) () return this. user; public String (2) () return this. pass; public static void main(String args) User ua=new User(“Li“,“123456“), new User(“wang“,“654321“), new User(“Song

14、“,“666666“); while(true) InputStreamReader reader = new InputStreamReader(System. in); BufferedReader inpul = new BnfferedReader(reader); System. out. print(“Enter your name:“); String name = null; try name = input. readLine(); catch (IOException ex) if(3) break; int i; for (i=0;i 3;i+) if (name. eq

15、uals(uai. getUser() System. out. println(“密码 :“+uai.getPass(); (4); if (5) System. out. println(“该用户不存在 !“); 软件水平考试(初级)程序员下午(应用技术)模拟试卷 14答案与解析 1 【正确答案】 问题 1(1)q 0 (2)q/R (3)q%R (4)j:i-1,1, -1 问题 2(5)5045 【试题解析】 (1) (3)根据流程图的说明可知:仅当除 R所得的商大于零时 (即q0),循环 1会被重复执行;并且循环 1的循环体中对 q进行一次除法运算,因此商等于 q/R,余数 ai=q

16、 R; (4)在开始执行循环 2时, i的值是余数的个数加上 1,因此,在以 j为循环变量逆序输出数组 s中有意义的那部分值,应以数组下标 i-1为循环初值,以数组下标 1为循环终值,以 1为增量; (5)由于 25978=3245 , 3248=404 , 408= 50 , 5+8=05 ,因此算法运行结果为 5045。 2 【正确答案】 (1)k=y x (2)x=k (3)int num=0 (4)z+ (5)substrz+1 【试题解析】 (1) (2)使用递归算法计算 x和 y的最 大公约数时,不妨令 yx,如果 y除 x余数得。则 x即为所求;否则令 yx , x 余数,继续上

17、述判断。 (3)此处应声明变量 num并初始化; (4)次循环的功能是从 str的第 y个位置起与 substr做比较,循环过程中 y和 z应同时增 1; (5)若上面的循环重复执行,直到到达 substr结束,则表示 substr在 str中出现一次。 3 【正确答案】 (1)s- data (2)s- next (3)top=s (4)top- data (5)top=top- next 【试题解析】 (1) (3): LinkStack Push_LinkStack(Link- Stacktop, datmype x)函数的功能是将 x压入栈顶,因此首先为其创建一个节点 s,使 s- d

18、ata等于 x,使 s- next指向原来的栈顶 top,最后将,作为新栈的栈顶并返回。 (4) (5): LinkStack Pop_LinkStaek(LinkStacktop, datatype*x)的功能是弹出原栈顶元素,返回这个元素以及新栈的指针。当原链栈不空时,取出栈顶元素 top - data赋给参量 *x作为返回值,将 top- next更新为 新栈的栈顶,并且释放原来top节点的空间。 4 【正确答案】 问题 1(1)Ai0 (2)min=Aij (3)Ai j=min (4)Apj =min或 min=AP j 问题 2(5)1, 2, 11 【试题解析】 本算法的基本思想

19、是:对矩阵 A逐行处理,求出每一行的最小值,对于这一行上等于最小值的那些元素,逐个判断该元素是否是所在列的最大元,如果是则打印输出。 (1)由上下文可知 min代表第 i行的最小值,此处应对其赋初值:本行第一个元素; (2)遍 历第 i行后面的元素,若有元素比 miu小,则应更新 min的值; (3)此处应挑出本行中取最小值的元素进行判断; (4)此循环用于判断 min是否是本列的最大元。 (5)所给矩阵中只有一个鞍点 11,若行列号从。开始计,它位于第 l行第 2列。 5 【正确答案】 (1) Teat1(Index) (2) Check1(i). Value (3) List1.AddIt

20、em (4) sum+Val(Text1(i) * price (5) List1.Clear 【试题解析】 (1)当用户选择某种商品 后,焦点应落在对应的数量文本框内; (2)for循环遍历所有商品,如果商品被选中并且数量不空,则进行累计; (3)向 List控件对象中添加内容应使用 AddItem方法; (4)累加总金额; (5)清除 List控件对象中的内容应使用 Clear方法。 6 【正确答案】 (1) FileSystemObject (2) Drivel.Drive (3) LoadPic ture(filename) (4) file.Copy path (5) file.De

21、lete 【试题解析】 (1)程序中需 要用到 FSO对象 fso,这里是 fso的变量声明; (2)DriveListBox控件对象的 Drive属性指定了当前的驱动器; (3)为 Image控件对象装载图片时应调用 LoadPicture方法,其参数是图片文件的完整路径; (4)复制文件应调用文件对象的 Copy方法; (5)删除文件应调用文件对象的 Delete方法。 7 【正确答案】 (1) char *getuser() (2) char *getpass() (3) strcmp(name, “end“) (4) break (5) i= =3或 i =3或 i 2或其他等效形式

22、【试题解析】 由上下文可知, User类中包括数据成员 User和 pass,分别存储用户名和口令,另有一个构造函数和 getuser()、 getpass()两个成员函数,分别用于获取用户名和口令。 main()中包含一个 User类型的数组 ua,当用户输入一个用户名后,在 ua中查找,若找得到则输出对应的口令,否则输出相应的提示信息。 (1) (2)由于 user和 pass属性都是字符串类型,这里的返回值类型为 char *; (3)此处给出了退出程序的判断条件,即输入的用户名等于 “end”; (4)此处的 for循环用于查找用户名,若找到了可即刻退出循环; (5)当输入的用户名不正

23、确时, for循环一直执行直到 i等于 3。 8 【正确答案】 (1) getUser (2) getPass (3) name.equals(“end“) (4) break (5) i= =3或i =3或 i 2或其他等效形式 【试题解析】 User类中包括数据成员 User和 pass,分别存储用户名和口令,另有一个构造函数和 getUser()、 getPass()两个成员函数,分别用于获取用户名 和口令。 main ()中包含一个 User类型的数组 ua当用户输入一个用户名后,在 ua中查找,若找得到则输出对应的口令,否则输出相应的提示信息。 (1) (2)从后面的代码中可以推断出, User类中有 getUser()、 getPass()两个成员函数; (3)此处给出了退出程序的判断条件,即输入的用户名等于 “end”; (4)此处的 for循环用于查找用户名,若找到了可即刻退出循环。 (5)此处是判断用户是否存在的条件,如果正常结束 for循环,则说明没用找到用户。

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