欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:1330095       资源大小:59.50KB        全文页数:5页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    1、初级程序员下午试题-34 及答案解析(总分:120.00,做题时间:90 分钟)一、B试题一/B(总题数:1,分数:15.00)1.说明 下面的流程图描述了计算自然数 1到 N(N1)之和的过程。 流程图 (分数:15.00)_二、B试题二/B(总题数:1,分数:15.00)2.函数 2.1说明 下面程序的功能是计算 x和 y的最小公倍数。 函数 2.1 main() int m,n,d,r; seanf(“%d %d“, if(mn) r=m;m=n;n=r; U(1) /U; while (d%n! =0) U(2) /U;printf(“%d/n“,d); 函数 2.2说明 下述程序接收

    2、键盘输入,直到句点“.”时结束。输入的字符被原样输出,但连续的空格输入将转换成一个空格。 函数 2.2 #include stdio.h main() char c,preChar=/0; c = getchar(); while(c! = .) if(U (3) /U) putchar(c); else if(preChar! = ) putchar(c); U(4) /U; c=U (5) /U; (分数:15.00)_三、B试题三/B(总题数:1,分数:15.00)3.说明 二叉树的二叉链表存储结构描述如下: lypedef struct BiTNode datatype data; s

    3、treet BiTNode *lchiht, *rchild; /*左右孩子指针*/ BiTNode, *BiTree; 下列函数基于上述存储结构,实现了二叉树的几项基本操作: (1) BiTree Creale(elemtype x, BiTree lbt, BiTree rbt):建立并返回生成一棵以 x为根结点的数据域值,以 lbt和 rbt为左右子树的二叉树; (2) BiTree InsertL(BiTree bt, elemtype x, BiTree parent):在二叉树 bt中结点 parent的左子树插入结点数据元素 x; (3) BiTree DeleteL(BiTre

    4、e bt, BiTree parent):在二叉树 bt中删除结点 parent的左子树,删除成功时返回根结点指针,否则返回空指针; (4) frceAll(BiTree p):释放二叉树全体结点空间。 函数 BiTree Create(elemtype x, BiTree lbt, BiTree rbt) BiTree p; if (p = (BiTNode *)malloc(sizeof(BiTNode)= =NULL) return NULL; p-data=x; p-lchild=lbt; p-rchild=rbt; U (1) /U; BiTree InsertL(BiTree bt

    5、, elemtype x,BiTree parent) BiTree p; if (parent= =NULL) return NULL; if (p=(BiTNode *)malloc(sizeof(BiTNode)= =NULL) return NULL; p-data=x; p-lchild=U (2) /U; p-rchild=U (2) /U; if(parent-lchild= =NULL) U(3) /U; else p-lchild=U (4) /U; parent-lchild=p; return bt; BiTree DeleteL(BiTree bt, BiTree pa

    6、rent) BiTree p; if (parent= =NULL|parent-lchild= =NULL) return NULL; p= parent-lchild; parent-lchild=NULL; freeAll(U (5) /U); return bt; (分数:15.00)_四、B试题四/B(总题数:1,分数:15.00)4.说明本程序将自然数 1,2,N 2(N=5)按蛇形方式逐个顺序存入 N阶矩阵。令 n=N-1,则矩阵中的每一元素可用 aij标记,其中 i,j(0i,jn)分别为其所在行的行号和所在列的列号。蛇形方式顺序存放的方法是从 an0开始、到 a0n为止,依次

    7、填入由 1递增的自然数,交替地对每一斜列从左上角向右下角或从右下角向左上角排列。程序的输出为:(分数:15.00)_五、B试题五/B(总题数:1,分数:15.00)5.说明本程序提供了三阶矩阵加、减及乘运算的功能。用户单击“生成操作数”按钮将随机生成两个矩阵(即操作数 1和操作数 2),再单击某一矩阵运算按钮后,程序将输出相应运算的结果。程序运行界面如下:(分数:15.00)_六、B试题六/B(总题数:1,分数:15.00)6.说明 本程序中预设了若干个用户名和口令。用户输入正确的用户名后,可以查找对应的口令,一旦输入结束标记“end”,程序结束。 Java 代码 import java. i

    8、o. *: public class User public String user; public Siring pass; public User() public User( String u,String p) user=u; pass=p; public String U(1) /U () return this. user; public String U(2) /U () return this. pass; public static void main(String args) User ua=new User(“Li“,“123456“), new User(“wang“,

    9、“654321“), new User(“Song“,“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(U (3) /U) break; int

    10、i; for (i=0;i3;i+) if (name. equals(uai. getUser() System. out. println(“密码:“+uai.getPass(); U (4) /U; if (U (5) /U) System. out. println(“该用户不存在!“); (分数:15.00)_七、B试题七/B(总题数:1,分数:15.00)7.说明 设有一张学生成绩表存放在 Acess数据库中,其中包括学生编号、姓名以及各科目考试成绩。下面的应用程序利用数据控件(Data)实现了对这张数据表中记录的增加、删除、修改、查找和刷新操作,其中,删除一条记录后,要求界面显示

    11、下一条记录;要查找记录,首先要求用户输入学生姓名,程序查找并显示匹配的第一条记录;执行刷新操作后,要求界面显示数据表的第一条记录。程序的运行界面如下: (分数:15.00)_八、B试题八/B(总题数:1,分数:15.00)8.说明 本程序实现了雇员信息管理功能,其中封装了雇员信息及其设置、修改、删除操作。已知当输入为“Smith 31 2960.0”时,程序的输出是: 姓名:Smith 年龄:31 工资:2960 姓名:Smith 年龄:31 工资:3500 姓名:Mary 年龄:23 工资:2500 C+程序 #include iostream.h #include string.h cla

    12、ss employee char *name; /雇员姓名 short age; /年龄 float salary;/工资 public: employee(); void set_name(char *); void set_age(short a) age=a; void set_salary(float s) salary=s; U (1) /U; employee()delete name; ; employee:employee() name=“; age=0; salary=0.0; void employee:set_name(char *n) name=new charstrl

    13、en(n)+1; U(2) /U (name,n); void employee:print() cout“姓名“:“name“ 年龄:“agc“ 工资:“ salaryendl; void main() char *na; short ag=0; float sa=0; U (3) /U; na=new char10; cinnaagsa; emp.set_name(na); emp.set_age(ag); emp.set_salary(sa); emp.print(); U (4) /U (3500.0); emp.print(); U (5) /U; emp.set_name(“Mar

    14、y“); emp.set_age(23); emp.set_salary(2500.0); emp.print(); (分数:15.00)_初级程序员下午试题-34 答案解析(总分:120.00,做题时间:90 分钟)一、B试题一/B(总题数:1,分数:15.00)1.说明 下面的流程图描述了计算自然数 1到 N(N1)之和的过程。 流程图 (分数:15.00)_正确答案:()解析:(1) 0 (2) S+i (3) i+1 (4) SS+i*(i+2) (5) ii+2 解析 本题中,变量 i用作循环变量,变量 S则用于存放累加和,起初始值为 0。在计算 1+2+N时,每循环一次,将 i的值

    15、累加到当前的 S中,并且 i自增 1。为计算 1*3+2*4+N*(N+2)的值,只需将其第 i项的值 i*(i+2)累加到 S中;为计算不大于 N的全体奇数之和,令循环变量的步长为 2即可。二、B试题二/B(总题数:1,分数:15.00)2.函数 2.1说明 下面程序的功能是计算 x和 y的最小公倍数。 函数 2.1 main() int m,n,d,r; seanf(“%d %d“, if(mn) r=m;m=n;n=r; U(1) /U; while (d%n! =0) U(2) /U;printf(“%d/n“,d); 函数 2.2说明 下述程序接收键盘输入,直到句点“.”时结束。输入

    16、的字符被原样输出,但连续的空格输入将转换成一个空格。 函数 2.2 #include stdio.h main() char c,preChar=/0; c = getchar(); while(c! = .) if(U (3) /U) putchar(c); else if(preChar! = ) putchar(c); U(4) /U; c=U (5) /U; (分数:15.00)_正确答案:()解析:d=m (2) d+=m 或 d=d+m (3) c!= (4) preChar=c (5) getchar() 解析 (1)下文使用了变量d,因此需在此初始化,由下面循环的条件“d%n!

    17、=0”知初值不能是 n,因此必为 m; (2)此处 while循环生成最小公倍数 d,其终止条件是 n整除 d,因此循环过程中需要保证 m整除 d并且 d尽可能地小,于是d应以 m为增量递增; (3)当输入的字符非空格时,原样输出; (4)程序中变量 preChar用于记录上一次读入的字符,循环过程中应不断更新其值; (5)接收下一个输入。三、B试题三/B(总题数:1,分数:15.00)3.说明 二叉树的二叉链表存储结构描述如下: lypedef struct BiTNode datatype data; street BiTNode *lchiht, *rchild; /*左右孩子指针*/

    18、BiTNode, *BiTree; 下列函数基于上述存储结构,实现了二叉树的几项基本操作: (1) BiTree Creale(elemtype x, BiTree lbt, BiTree rbt):建立并返回生成一棵以 x为根结点的数据域值,以 lbt和 rbt为左右子树的二叉树; (2) BiTree InsertL(BiTree bt, elemtype x, BiTree parent):在二叉树 bt中结点 parent的左子树插入结点数据元素 x; (3) BiTree DeleteL(BiTree bt, BiTree parent):在二叉树 bt中删除结点 parent的左子

    19、树,删除成功时返回根结点指针,否则返回空指针; (4) frceAll(BiTree p):释放二叉树全体结点空间。 函数 BiTree Create(elemtype x, BiTree lbt, BiTree rbt) BiTree p; if (p = (BiTNode *)malloc(sizeof(BiTNode)= =NULL) return NULL; p-data=x; p-lchild=lbt; p-rchild=rbt; U (1) /U; BiTree InsertL(BiTree bt, elemtype x,BiTree parent) BiTree p; if (p

    20、arent= =NULL) return NULL; if (p=(BiTNode *)malloc(sizeof(BiTNode)= =NULL) return NULL; p-data=x; p-lchild=U (2) /U; p-rchild=U (2) /U; if(parent-lchild= =NULL) U(3) /U; else p-lchild=U (4) /U; parent-lchild=p; return bt; BiTree DeleteL(BiTree bt, BiTree parent) BiTree p; if (parent= =NULL|parent-lc

    21、hild= =NULL) return NULL; p= parent-lchild; parent-lchild=NULL; freeAll(U (5) /U); return bt; (分数:15.00)_正确答案:()解析:(1) return p (2) NULL (3) parent-lchild=p (4) parent-lchild (5) p 解析 (1)此处应返回新建的二叉树;(2)新元素结点初始化时,数据域取值 x,左右孩子指针指向 NULL; (3)若 parent结点的左孩子结点空,则直接令其左孩子指针指向 p; (4)若 parent结点的左孩子结点不空,则让新结点p

    22、充当其左子树的根; (5)此处需释放二叉树 p(parent的左子树)所占用的空间。四、B试题四/B(总题数:1,分数:15.00)4.说明本程序将自然数 1,2,N 2(N=5)按蛇形方式逐个顺序存入 N阶矩阵。令 n=N-1,则矩阵中的每一元素可用 aij标记,其中 i,j(0i,jn)分别为其所在行的行号和所在列的列号。蛇形方式顺序存放的方法是从 an0开始、到 a0n为止,依次填入由 1递增的自然数,交替地对每一斜列从左上角向右下角或从右下角向左上角排列。程序的输出为:(分数:15.00)_正确答案:()解析:(1) row_end-row_start (2) k+ (3) 2* n+

    23、1 (4) n,d-1,n+1-d (5) 2*n-d+1,n,0解析 本程序中二维数组 a用于存放矩阵元素,k 表示当前应存放的元素(从 1开始递增的某个自然数)。数据的填充按斜对角线进行,n+1 阶矩阵的斜对角线有 2*n+1条(包括两个单点 an0、a 0n。函数makeArray对斜对角线进行编号,从矩阵左下角开始依次为 d=1,2*n,对于每条斜对角线,根据数据在其上的填充方式(左上角到右下角还是右下角到左上角)确定起点行号 row_start、列号 col_start以及终点行号 row_end,再调用函数 makeline为这条线上填数。makeline 函数根据 row_end

    24、-row_start的正负判断数值填充方式。五、B试题五/B(总题数:1,分数:15.00)5.说明本程序提供了三阶矩阵加、减及乘运算的功能。用户单击“生成操作数”按钮将随机生成两个矩阵(即操作数 1和操作数 2),再单击某一矩阵运算按钮后,程序将输出相应运算的结果。程序运行界面如下:(分数:15.00)_正确答案:()解析:(1) Select Case operation (2) matrix(0,i,k) * matrix (1,k,j) (3) Text3,2 (4) Call newMatrices或 newMatrices (5) Caption 解析 (1)此处是针对操作符 op

    25、eration的多分支选择结构; (2)根据矩阵乘法公式,此处应累加 matrix(0,i,k) * matrix(1,k,j),k=0,2 的值; (3)此处应向Text3中输出结果矩阵; (4)此处应调用 newMatrices子过程生成新的操作数,调用时可加关键字,也可不加; (5)根据 operate子过程对参数的要求,此处传递的参数应该是“+”、“-”或“*”,即各运算按钮 Caption属性的值。六、B试题六/B(总题数:1,分数:15.00)6.说明 本程序中预设了若干个用户名和口令。用户输入正确的用户名后,可以查找对应的口令,一旦输入结束标记“end”,程序结束。 Java 代

    26、码 import java. io. *: public class User public String user; public Siring pass; public User() public User( String u,String p) user=u; pass=p; public String U(1) /U () return this. user; public String U(2) /U () return this. pass; public static void main(String args) User ua=new User(“Li“,“123456“),

    27、new User(“wang“,“654321“), new User(“Song“,“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(U (3)

    28、 /U) break; int i; for (i=0;i3;i+) if (name. equals(uai. getUser() System. out. println(“密码:“+uai.getPass(); U (4) /U; if (U (5) /U) System. out. println(“该用户不存在!“); (分数:15.00)_正确答案:()解析:(1) getUser (2) getPass (3) name.equals(“end“) (4) break (5) i= =3 或 i=3 或 i2 或其他等效形式 解析 User 类中包括数据成员 User和 pass

    29、,分别存储用户名和口令,另有一个构造函数和getUser()、getPass()两个成员函数,分别用于获取用户名和口令。main ()中包含一个 User类型的数组ua当用户输入一个用户名后,在 ua中查找,若找得到则输出对应的口令,否则输出相应的提示信息。 (1)(2)从后面的代码中可以推断出,User 类中有 getUser()、getPass()两个成员函数; (3)此处给出了退出程序的判断条件,即输入的用户名等于“end”; (4)此处的 for循环用于查找用户名,若找到了可即刻退出循环。 (5)此处是判断用户是否存在的条件,如果正常结束 for 循环,则说明没用找到用户。七、B试题七

    30、/B(总题数:1,分数:15.00)7.说明 设有一张学生成绩表存放在 Acess数据库中,其中包括学生编号、姓名以及各科目考试成绩。下面的应用程序利用数据控件(Data)实现了对这张数据表中记录的增加、删除、修改、查找和刷新操作,其中,删除一条记录后,要求界面显示下一条记录;要查找记录,首先要求用户输入学生姓名,程序查找并显示匹配的第一条记录;执行刷新操作后,要求界面显示数据表的第一条记录。程序的运行界面如下: (分数:15.00)_正确答案:()解析:(1) AddNew (2) MoveNext (3) NoMatch (4) Data1.Refresh (5) Close 解析 (1)

    31、增加新记录应使用 AddNew方法; (2)获取记录集的下一条记录应使用 MoveNext方法; (3)查询的结果是否为空可用NoMatch属性来判断,其值为真表示查询结果为空; (4)当 Data控件的某些属性设置发生改变,可以使用 Refresh 方法打开或重新打开数据库,用 Refresh方法可以更新数据控件的集合内容; (5)关闭应用程序之前,应关闭数据库连接。八、B试题八/B(总题数:1,分数:15.00)8.说明 本程序实现了雇员信息管理功能,其中封装了雇员信息及其设置、修改、删除操作。已知当输入为“Smith 31 2960.0”时,程序的输出是: 姓名:Smith 年龄:31

    32、工资:2960 姓名:Smith 年龄:31 工资:3500 姓名:Mary 年龄:23 工资:2500 C+程序 #include iostream.h #include string.h class employee char *name; /雇员姓名 short age; /年龄 float salary;/工资 public: employee(); void set_name(char *); void set_age(short a) age=a; void set_salary(float s) salary=s; U (1) /U; employee()delete name;

    33、 ; employee:employee() name=“; age=0; salary=0.0; void employee:set_name(char *n) name=new charstrlen(n)+1; U(2) /U (name,n); void employee:print() cout“姓名“:“name“ 年龄:“agc“ 工资:“ salaryendl; void main() char *na; short ag=0; float sa=0; U (3) /U; na=new char10; cinnaagsa; emp.set_name(na); emp.set_ag

    34、e(ag); emp.set_salary(sa); emp.print(); U (4) /U (3500.0); emp.print(); U (5) /U; emp.set_name(“Mary“); emp.set_age(23); emp.set_salary(2500.0); emp.print(); (分数:15.00)_正确答案:()解析:(1) void print() (2) strcpy (3) employee emp (4) emp.set_salary (5)emp.employee() 解析 程序定义了一个 employee类,它包含了一个雇员的档案数据,及对这些数据的若干处理函数:构造函数 employee创建一个雇员空档案;set_name(),set_age ()和 set_salary()分别用来为雇员档案填入姓名、年龄和工资;print()函数的功能是输出该雇员的档案内容;析构函数employee()的功能是当某雇员档案撤销或改成另一姓名时,释放原数据占用的空。 (1)此处应声明 print函数; (2)此处应调用字符申拷贝函数,以更改 name属性的值; (3)此处显然应声明 emp变量; (4)(5):由程序的输出可知(4)处重新设置了 emp变量 salary属性的值,(5)处则应调用析构函数


    注意事项

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

    收起
    展开