计算机软考试题答案.docx

上传人:scccc 文档编号:14524282 上传时间:2022-02-08 格式:DOCX 页数:9 大小:23.29KB
返回 下载 相关 举报
计算机软考试题答案.docx_第1页
第1页 / 共9页
计算机软考试题答案.docx_第2页
第2页 / 共9页
计算机软考试题答案.docx_第3页
第3页 / 共9页
计算机软考试题答案.docx_第4页
第4页 / 共9页
计算机软考试题答案.docx_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《计算机软考试题答案.docx》由会员分享,可在线阅读,更多相关《计算机软考试题答案.docx(9页珍藏版)》请在三一文库上搜索。

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

2、 501元2000元的部分 2001元5000元的部分 5001元20000元的部分 20001元40000元的部分 40001元60000元的部分 60001元80000元的部分 80001元100000元的部分 超过100000元的部分5 10 15 20 25 30 35 40 45上表表明,个人收入所得税是按照超额累进的税率来征收的。设一个人的月应纳税所得额为K(元),用下面的公式计算其应缴纳的个人所得税额S(元):若0k500,则s=k5;若500k2000,则s=5005+(k500)10:若2000k5000,则s=5005+150010+(k-2000)15:若5000k200

3、00,则s=5005+150010+300015+(k-5000)20:例如,某人某月工资总额为4100元,减去800元后,应纳税所得额为3300元,其应缴纳的个人所得税额为500*5+1500*10+1300*15=370元。程序8#include #define MaxNum 50 #define BASE 800 /*免税金额基数*/ int paylevel=0,500,2000,5000,20000,40000,60000,80000,100000,100000: int taxPrate=5,10,15,20,25,30,35,40,45): /*税率表*/ typedef str

4、uct int ld; /*职工的工号*/ long Salary; /*职工的工资*/ Info; /* 查找工号为Id的职工在数组employee中的下标,返回值为0表示没有 */ int find(int ld,Info employee,int m) int j; employee0.Id=Id; for(jm;_(1)_;j-); return j; void main(void) Info employeeCHaxNum+1; long Wage; double sum s 0,K,S: int i,j,N0,Code; scanf(Mld,&Code,&Wage); /*读入职工

5、号、工资或薪金*/ while(Code0) ifind(Code,employee,N); if (i0)employeei.Salary += Wage: else _ (2)_; employeeN.IdCode;employeeN.SalaryWage; scanf(dld,&Code,&Wage): for (i1;i 0) for (j1;j9;j+) if(_(4)_) /*月应纳税所得额超过第j级*/ SS+(paylevelj-paylevelj-1)*taxPratej-1/100; else SS+(_ (5)_)*taxPratej-1/100;break; print

6、f(职工d应缴纳的个人所得税额:10.21f ,employeei.Id,S); sum += S; printf(全体职工个人所得税总额:10,21f ,sum); 试题二阅读下列函数说明和C函数,将应填入_(n)_处的字句写在答题纸的对应栏内。函数2.1说明函数palindrome(chars)的功能是:判断字符串s是否为回文字符串,若是,则返回0,否则返回-1。若一个字符串顺读和倒读都一样时,称该字符串是回文字符串,例如:“LEVEL”是回文字符串,而“LEVAL”不是。函数2.1int palindrome(char S) char *pi,*pj; piS;pjs+strlen(S)

7、-1: while ( pipj &= _(1)_)= pi+;= pj-;= = if(_= (2)_)return-1;= else= return= 0;= 函数2.2说明函数f(char *str,char del)的.功能是;将非空字符串str分割成若干个子字符串并输出,del表示分割时的标志字符。例如若str的值为“33123333435”,del的值为3,调用此函数后,将输出三个子字符串,分别为“12”、“4”和“5”。函数2.2void f(char*str,char del) int i,j,len; len = strlen(str); i = 0; while (ilen

8、) while (_(3)_) i+; = *忽略连续的标志字符*= = *寻找从stri开始直到标志字符出现的一个子字符串*= j=i += 1;= while= (strj= !=del &= strj= )= j+;= _= (4)_0; = *给找到的字符序列置字符串结束标志*= printf(= %s ,&stri):= = (5)_;= = 试题三以下是与Visual Basic开发应用有关的5个问题对每一个问题,请将解答填入答题纸的对应栏内。(1)在Visual Basic中,工程文件、窗体文件和标准模块文件的扩展名是什么?请从下列选项中选择:prg、prj、exe、vbp、ro

9、m、frm、win、fra,std、bas、vbs、Vbm(2)设某窗体上有一个命令按钮,其名称为 CmdSave,运行时该按钮上显示有“保存(S)”字样的信息。为使热键 ALT+S 与该命令按钮相关联,应该对按钮 CmdSave 的 Caption属性设置什么样的属性值?(3)设某窗口内有一个图像框 Image1,以及两个命令按钮“放大”和“缩小”。单击“放大”按钮就会使该图像框的长和宽都放大10%;单击“缩小”按钮就会使该图像框的长和宽都缩小10%(该图像框的左上角不动)。请分别写出这两个命令按钮的单击事件过程中的程序代码。(4)为使某个单选按钮初始时默认被选中,在开发时应怎样做?(5)若

10、有语句 Tmpval=MsgBox(非法操作!,ybOKCancel+vbCritical,提示),请简要描述程序运行时弹出的消息框的主要特征。试题四阅读以下说明和C代码,将应填入_(n)_处的字句写在答题纸的对应栏内。说明函数 MultibaseOutput(long n,int B)的功能是:将一个无符号十进制整数 n 转换成 B(2B16)进制数并输出。该函数先将转换过程中得到的各位数字入栈,转换结束后再把 B 进制数从栈中输出。有关栈操作的诸函数功能见相应函数中的注释。C代码中的符号常量及栈的类型定义如下:#define KAXSIZE 32 typedef struct int *e

11、lem; /* 栈的存储区 */ int max; /* 栈的容量,即找中最多能存放的元素个数 */ int top; /* 栈顶指针 */ Stack; C代码 int lnitStack(Stack *S,int n) /* 创建容量为n的空栈 */ S-elem = (int *)matloc(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(Sta

12、ck is full! );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! );return -1;) return _(3)_; void MultibaseOutput(long n,int B) int m;Stack S; if (init Stack(&S,MAXSIZE) printf(Failure! );r

13、eturn; do if (Push(&s,_(4)_) printf(Failure! );return; n = _(5)_: while (n != 0); while (!StackEmpty(S) /* 输出B进制的数 */ m = Pop(&S); if (m 10) printf(Kd,m); /* 小于10,输出数字 */ else printf(%c,m + 55); /* 大于或等于10,输出相应的字符 */ printf( ); 试题五阅读以下应用说明及Visual Basic程序代码,将应填入_(n)_处的字句写在答题纸的对应栏内。应用说明5.1本应用程序的窗体中有一个

14、下拉式列表框(名称为Combol)和两个文本框(名称分别为Txtl和Txt2)。运行时,用户从Combol的列表中进行选择,程序就会将选中条目的内容以及编号(从0开始)分别在文本框 Txt1 和 Txt2 中显示出来。程序代码5.1Private Sub Combol_C1ick() Txtl.Text = Combol._(1)_ Txt2.Text = Combol._(2)_ End Sub(注:可供(2)处选择的选项:List,Index,Listlndex,ListCount,Number)应用说明5.2本应用程序的运行窗口如下图所示:当用户在输入框(名为Txtln)中输入数值数据,

15、并从下拉式列表框(名为CmbOp)中选择所需的运算后,输出框(名为TxtOut)中就会显示运算的结果。用户单击“清除”按钮(名为CmdClear)后,输入框和输出框都清空。开发该应用的部分程序代码如下:程序代码5.2Private Sub CmbOp_Click() Dim DataIn As Double,DataOut as Double DataIn = _(3)_ Select Case _(4)_ Case 取整数部分 DataOut = Int(Dataln) Case 求平方根 If Dataln next | !Lb-next | lennext; prep = La; whi

16、le (p & p-key != keyl) /* 查找表A中键值为key1的结点 */ prep = p; p = p-next; if (!p) return -1; /* 表A中不存在键值为key1的结点 */ q = p; k = 1; while (q & _(1)_) /* 在表A中找出待删除的len个结点 */ _(2)_: k+; if (!q) return -1; /* 表A中不存在要被删除的len个结点 */ S = Lb-next;_ (3)_; while (s & s-key != key2) /* 查找表B中键值为key2的结点 */ pres = s; s = s-next; if (!s)return -1; /* 表B中不存在键值为key2的结点 */ _(4)_q-next; /* 将表A中的len个结点删除 */ q-next:_(5)_ pres-next = p; /* 将len个结点移至表B */ return 0; 【计算机软考试题答案】9

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1