【计算机类职业资格】计算机水平考试初级程序员2004年上半年下午真题及答案解析.doc

上传人:syndromehi216 文档编号:1339329 上传时间:2019-10-17 格式:DOC 页数:6 大小:68.50KB
下载 相关 举报
【计算机类职业资格】计算机水平考试初级程序员2004年上半年下午真题及答案解析.doc_第1页
第1页 / 共6页
【计算机类职业资格】计算机水平考试初级程序员2004年上半年下午真题及答案解析.doc_第2页
第2页 / 共6页
【计算机类职业资格】计算机水平考试初级程序员2004年上半年下午真题及答案解析.doc_第3页
第3页 / 共6页
【计算机类职业资格】计算机水平考试初级程序员2004年上半年下午真题及答案解析.doc_第4页
第4页 / 共6页
【计算机类职业资格】计算机水平考试初级程序员2004年上半年下午真题及答案解析.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、计算机水平考试初级程序员 2004 年上半年下午真题及答案解析(总分:135.00,做题时间:150 分钟)1.试题一 阅读下列说明、流程图和算法,将应填入 (n) 处的字句写在答题纸的对应栏内。 流程图说明 下面的流程图用 N-S 盒图形式描述了数组 A 中的元素被划分的过程。其划分方法是:以数组中的第一个元素作为基准数,将小于基准数的元素向低下标端移动,而大于基准数的元素向高下标端移动。当划分结束时,基准数定位于 Ai,并且数组中下标小于 i 的元素的值均小于基准数,下标大于 i 的元素的值均大于基准数。设数组 A 的下界为 low,上界为 high,数组中的元素互不相同。例如,对数组(4

2、,2,8,3,6),以 4 为基准数的划分过程如下: 流程图 (分数:15.00)_二、从下列的 2 道试题(试题二至试题三)中任选(总题数:2,分数:30.00)2.试题二 阅读下列函数说明和 C 函数,将应填入 (n) 处的字句写在答题纸的对应栏内。 函数 2.1 说明 函数 palindrome(char s)的功能是:判断字符串 s 是否为回文字符串,若是,则返回 0,否则返回-1。若一个字符串顺读和倒读都一样时,称该字符串是回文字符串,例如:“LEVEL”是回文字符串,而“LEVAL”不是。 函数 2.1 int palindrome(char s) char *pi, *pj; p

3、i = s; pj = s+strlen(s)-1; while ( pi elem = (int *)malloc(n * sizeof(int); if(S-elem = NULL) return -1; S-max = n; (1) = 0 ; return 0; int Push(Stack *S, int item) /* 将整数 item 压入栈顶 */ if(S-top = S-max) printf(“Stack is full!n“); return -1; (2) = item ; return 0; int StackEmpty(Stack S) return (!S.t

4、op) ? 1 : 0; /* 判断栈是否为空 */ int Pop(Stack *S) /* 栈顶元素出栈 */ if(!S-top) printf(“Pop an empty stack!n“); return -1; return (3) ; void MultibaseOutput(long n, int B) int m; Stack S; if (InitStack( return; do if (Push( return; n = (5) ; while(n != 0); while(!StackEmpty(S) /* 输出 B 进制的数 */ m = Pop( if(m nex

5、t|!Lb-next|len next; prep = La; while ( p p = p-next; if (!p) return -1; /*表 A 中不存在键值为 key1 的结点*/ q = p; k = 1; while (q k+; if (!q) return -1; /*表 A 中不存在要被删除的 len 个结点*/ s = Lb-next; (3) ; while (s s = s-next; if (!s) return -1; /*表 B 中不存在键值为 key2 的结点*/ (4) = q-next; /*将表 A 中的 len 个结点删除*/ q-next = (

6、5) ; pres-next = p; /*将 len 个结点移至表 B*/ return 0; (分数:15.00)_7.试题七 阅读以下应用说明、属性设置及 Visual Basic 程序代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 应用说明 7 本应用程序的运行窗口如下图所示: 只要用户单击“闪烁”按钮,文字“欢迎光临”就会以 0.3 秒消失、0.3 秒显示反复进行闪烁;单击“停止”按钮时,闪烁停止,恢复图示的初态。 在开发过程中,需要设置的属性如下: 属性设置 7 (分数:15.00)_五、从下列的 2 道试题(试题八至试题九)中任选(总题数:2,分数:30.00)8.试题八

7、 阅读下列程序说明和 C 程序,将应填入 (n) 处的字句写在答题纸的对应栏内。 程序 8 说明 程序 8 用于计算某公司每个职工应缴纳的个人所得税额和全体职工缴纳的个人所得税总额。职工的当月收入(工资或薪金)通过键盘输入,每次输入一个职工的工号和工资(或薪金)。由于该公司的工资或薪金是不定时发放的,所以输入过程中每个职工的收入会出现多次输入,整个输入以工号小于等于 0 结束。 假设个人所得税法规定:个人收入所得,按月计税,以每月收入总额减除免税金额 800 元后的余额作为该月的月应纳税所得额。适用税率如下表所示。 (分数:15.00)_9.试题九 阅读以下应用说明及 Visual Basic

8、 程序代码,将应填入 (n) 处的字句写在答题纸的对应栏内。应用说明 9 本应用程序的运行窗口如下图所示: 窗口中的三个文本框和两个按钮名称分别为Txt_salary、Txt_base、Txt_tax、Cmd_compute 和 Cmd_quit。运行时,文本框 Txt_base 中存放的是免税金额基数(应扣除的基本费用)。当用户在文本框 Txt_salary 中输入月收入(工资或薪金)并单击“计算”按钮 Cmd_compute 后,Txt_tax 框中就显示计算所得的应纳税额。文本框 Txt_base 和 Txt_tax 在运行时不接受用户输入,Txt_base 的内容以灰色显示。 个人工资

9、(或薪金)所得税是按照超额累进的税率来征收的,方法是:以每月收入总额减去免税金额基数后的余额作为该月的月应纳税所得额,再将应纳税所得额按相应级数采用相应的税率进行累进计算。目前的免税金额基数为 800 元,税率如下表所示: (分数:15.00)_计算机水平考试初级程序员 2004 年上半年下午真题答案解析(总分:135.00,做题时间:150 分钟)1.试题一 阅读下列说明、流程图和算法,将应填入 (n) 处的字句写在答题纸的对应栏内。 流程图说明 下面的流程图用 N-S 盒图形式描述了数组 A 中的元素被划分的过程。其划分方法是:以数组中的第一个元素作为基准数,将小于基准数的元素向低下标端移

10、动,而大于基准数的元素向高下标端移动。当划分结束时,基准数定位于 Ai,并且数组中下标小于 i 的元素的值均小于基准数,下标大于 i 的元素的值均大于基准数。设数组 A 的下界为 low,上界为 high,数组中的元素互不相同。例如,对数组(4,2,8,3,6),以 4 为基准数的划分过程如下: 流程图 (分数:15.00)_正确答案:(1)j- (2)j+ (3)Aipivot 或 jpivot (4)A,L,k-1 (5)A,k+1,H)解析:二、从下列的 2 道试题(试题二至试题三)中任选(总题数:2,分数:30.00)2.试题二 阅读下列函数说明和 C 函数,将应填入 (n) 处的字句

11、写在答题纸的对应栏内。 函数 2.1 说明 函数 palindrome(char s)的功能是:判断字符串 s 是否为回文字符串,若是,则返回 0,否则返回-1。若一个字符串顺读和倒读都一样时,称该字符串是回文字符串,例如:“LEVEL”是回文字符串,而“LEVAL”不是。 函数 2.1 int palindrome(char s) char *pi, *pj; pi = s; pj = s+strlen(s)-1; while ( pi elem = (int *)malloc(n * sizeof(int); if(S-elem = NULL) return -1; S-max = n;

12、(1) = 0 ; return 0; int Push(Stack *S, int item) /* 将整数 item 压入栈顶 */ if(S-top = S-max) printf(“Stack is full!n“); return -1; (2) = item ; return 0; int StackEmpty(Stack S) return (!S.top) ? 1 : 0; /* 判断栈是否为空 */ int Pop(Stack *S) /* 栈顶元素出栈 */ if(!S-top) printf(“Pop an empty stack!n“); return -1; retu

13、rn (3) ; void MultibaseOutput(long n, int B) int m; Stack S; if (InitStack( return; do if (Push( return; n = (5) ; while(n != 0); while(!StackEmpty(S) /* 输出 B 进制的数 */ m = Pop( if(m top (2)S-elemS-top+ (3)S-elem-S-top (4)n % B (5)n / B)解析:5.试题五 阅读以下应用说明及 Visual Basic 程序代码,将应填入_ (n) 处的字句写在答题纸的对应栏内。 应用

14、说明 5.1 本应用程序的窗体中有一个下拉式列表框(名称为 Combo1)和两个文本框(名称分别为 Txt1 和 Txt2)。运行时,用户从 Combo1 的列表中进行选择,程序就会将选中条目的内容以及编号(从 0 开始)分别在文本框 Txt1 和 Txt2 中显示出来。 程序代码 5.1 Private Sub Combo1_Click() Txt1.Text = Combol. (1) Txt2.Text = Combol. (2) End Sub (注:可供(2)处选择的选项:List, Index, ListIndex, ListCount, Number) 应用说明 5.2 本应用程

15、序的运行窗口如下图所示: (分数:15.00)_正确答案:(1)Text (2)ListIndex (3)Val(TxtIn.Text) 或 TxtIn.Text (4)CmbOp.Text (5)End Select)解析:四、从下列的 2 道试题(试题六至试题七)中任选(总题数:2,分数:30.00)6.试题六 阅读下列函数说明和 C 函数,将应填入 (n) 处的字句写在答题纸的对应栏内。 函数 6 说明 函数 DelA_InsB(LinkedList La,LinkedList Lb,int key1,int key2,int len)的功能是:将线性表 A 中关键码为 key1 的结点

16、开始的 len 个结点,按原顺序移至线性表 B 中关键码为 key2 的结点之前,若移动成功,则返回 0;否则返回-1。线性表的存储结构为带头结点的单链表,La 为表 A 的头指针,Lb 为表B 的头指针。单链表结点的类型定义为: typedef struct node int key; struct node *next; *LinkedList; 函数 6 int DelA_InsB(LinkedList La,LinkedList Lb,int key1,int key2,int len) LinkedList p,q,s,prep,pres; int k; if (!La-next|!

17、Lb-next|len next; prep = La; while ( p p = p-next; if (!p) return -1; /*表 A 中不存在键值为 key1 的结点*/ q = p; k = 1; while (q k+; if (!q) return -1; /*表 A 中不存在要被删除的 len 个结点*/ s = Lb-next; (3) ; while (s s = s-next; if (!s) return -1; /*表 B 中不存在键值为 key2 的结点*/ (4) = q-next; /*将表 A 中的 len 个结点删除*/ q-next = (5)

18、; pres-next = p; /*将 len 个结点移至表 B*/ return 0; (分数:15.00)_正确答案:(1)knext (3)pres = Lb (4)prep-next (5)s 或 pres-next )解析:7.试题七 阅读以下应用说明、属性设置及 Visual Basic 程序代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 应用说明 7 本应用程序的运行窗口如下图所示: 只要用户单击“闪烁”按钮,文字“欢迎光临”就会以 0.3 秒消失、0.3 秒显示反复进行闪烁;单击“停止”按钮时,闪烁停止,恢复图示的初态。 在开发过程中,需要设置的属性如下: 属性设置

19、7 (分数:15.00)_正确答案:(1)false (2)300 (3)enabled (4)Label.Visible (5)false)解析:五、从下列的 2 道试题(试题八至试题九)中任选(总题数:2,分数:30.00)8.试题八 阅读下列程序说明和 C 程序,将应填入 (n) 处的字句写在答题纸的对应栏内。 程序 8 说明 程序 8 用于计算某公司每个职工应缴纳的个人所得税额和全体职工缴纳的个人所得税总额。职工的当月收入(工资或薪金)通过键盘输入,每次输入一个职工的工号和工资(或薪金)。由于该公司的工资或薪金是不定时发放的,所以输入过程中每个职工的收入会出现多次输入,整个输入以工号小

20、于等于 0 结束。 假设个人所得税法规定:个人收入所得,按月计税,以每月收入总额减除免税金额 800 元后的余额作为该月的月应纳税所得额。适用税率如下表所示。 (分数:15.00)_正确答案:(1)employeej.Id!=Id (2)n=n+1;或者 n+;或者+n (3)employeei.Salary-BASE (4)kpaylevej (5)k-paylevej-1)解析:9.试题九 阅读以下应用说明及 Visual Basic 程序代码,将应填入 (n) 处的字句写在答题纸的对应栏内。应用说明 9 本应用程序的运行窗口如下图所示: 窗口中的三个文本框和两个按钮名称分别为Txt_sa

21、lary、Txt_base、Txt_tax、Cmd_compute 和 Cmd_quit。运行时,文本框 Txt_base 中存放的是免税金额基数(应扣除的基本费用)。当用户在文本框 Txt_salary 中输入月收入(工资或薪金)并单击“计算”按钮 Cmd_compute 后,Txt_tax 框中就显示计算所得的应纳税额。文本框 Txt_base 和 Txt_tax 在运行时不接受用户输入,Txt_base 的内容以灰色显示。 个人工资(或薪金)所得税是按照超额累进的税率来征收的,方法是:以每月收入总额减去免税金额基数后的余额作为该月的月应纳税所得额,再将应纳税所得额按相应级数采用相应的税率进行累进计算。目前的免税金额基数为 800 元,税率如下表所示: (分数:15.00)_正确答案:(1)Txt_salary.Text-Txt_base.Text (2)kpaylevel(j) (3)k-paylevel(j-1) (4)Txt_tax.Text (5)False ()解析:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

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