1、历年计算机的软考程序员笔试部分真题计算机软件水平考试/真题题库历年计算机的软考程序员笔试部分真题 试题二阅读下列函数说明和C函数,将应填入_(n)_处的字句写在答题纸的对应栏内。函数2.1说明函数palindrome(chars)的功能是:判断字符串s是否为回文字符串,若是,则返回0,否则返回-1。若一个字符串顺读和倒读都一样时,称该字符串是回文字符串,例如:“LEVEL”是回文字符串,而“LEVAL”不是。函数2.1int palindrome(char S) char*pi,*pj;piS;pjs+strlen(S)-1:while ( pipi+; pj-;if(_ (2)_)retur
2、n-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(ielem = (int *)matloc(n * sizeof(int);if (S-elem = NULL) return -1;S-max
3、= 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.top) ? 1;0;)/* 判断栈是否为空 */int Pop(Stack*S)/* 栈顶元素出栈 */ if (!S-top) printf(Pop an empty stack!n);return -1;)return _(3)_;void Mult
4、ibaseOutput(long n,int B) int m;Stack S;if (init Stack(&S,MAXSIZE) printf(Failure!n);return;do if (Push(&s,_(4)_) printf(Failure!n);return;n = _(5)_: while (n != 0);while (!StackEmpty(S)/* 输出B进制的数 */m = Pop(&S);if (m next | !Lb-next | lennext; prep = La;while (p & p-key != keyl)/* 查找表A中键值为key1的结点 */
5、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-nex
6、t;/* 将表A中的len个结点删除 */q-next:_(5)_pres-next = p;/* 将len个结点移至表B */return 0;试题八阅读下列程序说明和C程序,将应填入_(n)_处的字句写在答题纸的对应栏内。程序8说明程序8用于计算某公司每个职工应缴纳的个人所得税额和全体职工缴纳的个人所得税总额。职工的当月收入(工资或薪金)通过键盘输入,每次输入一个职工的工号和工资(或薪金)。由于该公司的工资或薪金是不定时发放的,所以输入过程中每个职工的收入会出现多次输入,整个输入以工号小于等于0结束。假设个人所得税法规定;个人收入所得,按月计税,以每月收入总额减除免税金额800元后的余额作
7、为该月的月应纳税所得额,适用税率如下表所示。 上表表明,个人收入所得税是按照超额累进的税率来征收的。设一个人的月应纳税所得额为K(元),用下面的公式计算其应缴纳的个人所得税额S(元):若0若500若2000若5000例如,某人某月工资总额为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,
8、100000:int taxPrate=5,10,15,20,25,30,35,40,45): /*税率表*/typedef structint 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
9、,K,S:int i,j,N0,Code;scanf(Mld,&Code,&Wage); /*读入职工号、工资或薪金*/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;elseSS+(_ (5)_)*taxPratej-1/100;break;printf(职工d应缴纳的个人所得税额:10.21fn,employeei.Id,S);sum += S;printf(全体职工个人所得税总额:10,21fn,sum);历年计算机的软考程序员笔试部分真题.doc 全文共4215字 编号:7154889
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1