2016年计算机二级108套程序.docx_第1页
2016年计算机二级108套程序.docx_第2页
2016年计算机二级108套程序.docx_第3页
2016年计算机二级108套程序.docx_第4页
2016年计算机二级108套程序.docx_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

操作题1套请编写函数fun,其功能是:找出2M整型二维数组中最大元素的值,并将此值返回调用函数。intfun(intaM)inti,j,max=a00;for(i=0;i2;i+)for(j=0;jM;j+)if(max=eps) /*当某项大于精度要求时,继续求下一项*/ s1=s1*n/(2*n+1); /*求多项式的每一项*/ s=s+s1; /*求和*/ n+; return 2*s;3套编写函数fun,其功能是:求出11000之间能被7或11整除,但不能同时被7和11整除的所有整数,并将其放在a所指的数组中,通过n返回这些数的个数。void fun (int *a, int *n) int i,j=0; for(i=1;iave=0.0;for(i=0;iave=a-ave+a-si;/*求各门成绩的总和*/a-ave/=N;/*求平均分*/7套N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,其功能是:求出平均分,并由函数值返回。例如,若学生的成绩是:8576698591726487,则平均分应当是:78.625。double fun( STREC *h ) double ave=0.0; STREC *p=h-next; while(p!=NULL) ave=ave+p-s; p=p-next; return ave/N;8套编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k返回。例如,若输入17,则应输出:46891012141516。voidfun(intm,int*k,intxx)inti,j,n=0;for(i=4;im;i+)/*找出大于1小于整数m的非素数*/for(j=2;ji;j+)if(i%j=0)break;if(ji)xxn+=i;*k=n;/*返回非素数的个数*/9套编写函数fun,其功能是:求ss所指字符串中指定字符的个数,并返回此值。例如,若输入字符串123412132,输入字符为1,则输出3。intfun(char*ss,charc)inti=0;for(;*ss!=0;ss+)if(*ss=c)i+;/*求出ss所指字符串中指定字符的个数*/returni;10套编写函数fun,其功能是:计算n门课程的平均分,结果作为函数值返回。例如:若有5门课程的成绩是:90.5,72,80,61.5,55,则函数的值为:71.80。floatfun(float*a,intn)inti;floatav=0.0;for(i=0;in;i+)/*求分数的总和*/av=av+ai;return(av/n);/*返回平均值*/11套学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:把分数最高的学生数据放在b所指的数组中。注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。19:11:45邓安琪2016/3/2319:11:45intfun(STREC*a,STREC*b)inti,j=0,max=a0.s;/*找出最大值*/for(i=0;iN;i+)if(maxai.s)max=ai.s;for(i=0;iN;i+)if(max=ai.s)bj+=ai;/*找出成绩与max相等的学生的记录,存入结构体b中*/returnj;/*返回最高成绩的学生人数*/ 12套规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:除了字符串前导的*号之外,将串中其它*号全部删除。在编写函数时,不得使用C语言提供的字符串函数。例如,字符串中的内容为:*A*BC*DEF*G*,删除后,字符串中的内容应当是:*ABCDEFG。voidfun(char*a)inti=0;char*p=a;while(*p&*p=*)ai=*p;i+;p+;while(*p)if(*p!=*)ai=*p;i+;p+;ai=0; 13套编写函数void fun(char *tt,int pp),统计在tt所指的字符串中a到z26个小写字母各自出现的次数,并依次放在pp所指的数组中。例如,当输入字符串abcdefgabcdeabc后,程序的输出结果应该是:3 3 3 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0voidfun(char*tt,intpp)inti;for(i=0;i=a&*tt=z)pp*tt-a+; 14套规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:将字符串尾部的*号全部删除,前面和中间的*号不动。例如,字符串中的内容为:*A*BC*DEF*G*,删除后,字符串中的内容应当是:*A*BC*DEF*G。在编写函数时,不得使用C语言提供的字符串函数。voidfun(char*a)while(*a!=0)a+;a-;/*指针a指向字符串的尾部*/while(*a=*)a-;/*指针a指向最后一个字母*/*(a+1)=0;/*在字符串最后加上结束标志符*/ 15套编写函数fun,其功能是:比较字符串的长度,(不得使用C语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符长度相同,则返回第一个字符串。例如,输入beijingshanghai(为回车键),函数将返回shanghai。char*fun(char*s,char*t)inti,j;for(i=0;si!=0;i+);/*求字符串的长度*/for(j=0;tj!=0;j+);if(i=j)/*比较两个字符串的长度*/returnt;/*函数返回较长的字符串,若两个字符串长度相等,则返回第1个字符串*/elsereturns; 16套学生的记录由学号成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:函数返回该学号的学生数据,指定的学号在主函数中输入。若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。(用于字符串比较的函数是strcmp)。STREC fun( STREC *a, char *b )int i; STREC str=0,-1; /*若没找到指定的学号,在结构体变量中给学号置空串,给成绩置1*/ for(i=0;iN;i+) if(strcmp(ai.num,b)=0) /*找到指定学号的学生数据*/ str=ai; return str; /*返回学生记录*/17套函数fun的功能是:将s所指字符串中除下标为偶数同时ASCII码值也为偶数的字符外,其余的全部删除;字符串中剩余字符所形成的新串放在t所指的数组中。例如,若s所指字符串中的内容为ABCDEFG123456,其中字符A的ASCII码值为奇数,因此应当删除;字符B的ASCII码值为偶数,但在数组中的下标为奇数,因此也应当删除;字符2的ASCII码值为偶数,在数组中的下标也为偶数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是246。voidfun(char*s,chart)inti,j=0;for(i=0;si!=0;i+)if(i%2=0&si%2=0)/*将s所指字符串中下标和ASCII码值都为偶数的字符放入数组t中*/tj+=si;tj=0;/*在字符串最后加上结束标识*/ 18套编写函数fun,其功能是:利用下面的简单迭代方法求方程cos(x)x0的一个实根。迭代步骤如下:(1)取x1初值为0.0;(2)x0x1,将x1的值赋给x0;(3)x1cos(x0),求出一个新的x1;(4)若x0x1的绝对值小于0.000001,执行步聚(5),否则执行步聚(2);(5)所求x1就是方程cos(x)x0的一个实根,作为函数值返回。程序将输出结果Root0.739086。voidfun(char*a)inti=0,n=0;char*p;p=a;while(*p=*)/*判断*p是否是*号,并统计*号的个数*/n+;p+;while(*p)/*将前导*号后的字符传递给a*/ai=*p;i+;p+;while(n!=0)ai=*;i+;n-;ai=0; 19套规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:将字符串中的前导*号全部移到字符串的尾部。例如,字符串中的内容为:*A*BC*DEF*G*,移动后,字符串中的内容应当是:A*BC*DEF*G*。在编写函数时,不得使用C语言提供的字符串函数。voidfun(char*a)inti=0,n=0;char*p;p=a;while(*p=*)/*判断*p是否是*号,并统计*号的个数*/n+;p+;while(*p)/*将前导*号后的字符传递给a*/ai=*p;i+;p+;while(n!=0)ai=*;i+;n-;ai=0; 20套学生记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组中,请编写函数fun,其功能是:把分数最低的学生数据放入b所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生人数。intfun(STREC*a,STREC*b)inti,j=0,min=a0.s;for(i=0;iai.s)min=ai.s;/*找出最小值*/for(i=0;iN;i+)if(min=ai.s)bj+=ai;/*找出成绩与min相等的学生的记录,存入结构体b中*/returnj; 21套编写函数fun,其功能是计算:s作为函数值返回。 在C语言中可调用log(n)函数求ln(n)。log函数的引用说明为:double log(double x)。 例如,若m的值为20,则fun函数值为6.506583。doublefun(intm)inti;doubles=0.0;for(i=1;i=m;i+)s=s+log(i);/*计算sln(1)ln(2)ln(3)ln(m)*/returnsqrt(s);/*对s求平方根并返回*/ 22套规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:只删除字符前导和尾部的*号,串中字母间的*号都不删除。形参n给出了字符串的长度,形参h给出了字符串中前导*号的个数,形参e给出了字符串中尾部*号的个数。在编写函数时,不得使用C语言提供的字符串函数。例如,字符串中的内容为:*A*BC*DEF*G*,删除后,字符串中的内容应当是:A*BC*DEF*G。voidfun(char*a,intn,inth,inte)inti,j=0;for(i=h;in-e;i+)/*第一个字母和最后一个字母之间的字符全不删除*/aj+=ai;aj=0;/*在字符串最后加上结束标识*/ 23套函数fun的功能是:将s所指字符串中下标为偶数的字符删除,剩余字符形成的新串放在t所指数组中。例如,当s所指字符串中的内容为ABCDEFGHIJK时,在t所指数组中的内容应是:BDFHJ。voidfun(char*s,chart)inti,j=0,k=strlen(s);/*k为字符串的长度*/for(i=1;ik;i=i+2)/*将s所指字符串中下标为奇数的字符存入t所指字符串中*/tj+=si;tj=0; 24套编写函数fun,其功能是:将a、b中的两个两位正整数合并成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的十位和千位上。例如,当a45,b12,调用该函数后c2415。voidfun(inta,intb,long*c)*c=a%10+(b/10)*10+(a/10)*100+(b%10)*1000; 25套假定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:除了尾部的*号之外,将字符中的其它的*号全部删除。形参p已指向字符串中最后的一个字母。在编写函数时,不得使用C语言提供的字符串函数。例如,字符串中的内容为*A*BC*DEF*G*,删除后,字符串中的内容应当是ABCDEFG*。voidfun(char*a,char*p)char*t=a;for(;t=p;t+)if(*t!=*)*(a+)=*t;for(;*t!=0;t+)*(a+)=*t;*a=0;/*在字符串最后加上字符串结束标识*/ 26套学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:按分数降序排列学生的记录,高分在前,低分在后。voidfun(STRECa)inti,j;STRECt;for(i=1;iN;i+)/*用冒泡法进行排序,进行N1次比较*/for(j=0;jN-1;j+)/*在每一次比较中要进行N1次两两比较*/if(aj.saj+1.s)t=aj;aj=aj+1;aj+1=t;/*按分数的高低排列学生的记录,高分在前*/ 27套学生的记录由学号和成绩组成。N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。doublefun(STREC*a,STREC*b,int*n)inti;doubleav=0.0;*n=0;for(i=0;iN;i+)av=av+ai.s;av=av/N;/*求平均值*/for(i=0;iN;i+)if(av=ai.s)b*n=ai;*n=*n+1;/*将高于等于平均分的学生存入b所指存储单元中,并统计人数*/returnav;/*返回平均分*/ 28套编写函数fun,其功能是:将1到m之间(含m)能被7或11整除的所有整数放在数组a中,并通过n返回这些数的个数。例如,若传给m的值为50,则程序输出:711142122283335424449voidfun(intm,int*a,int*n)inti,j=0;for(i=1;is; while(h!=NULL) /*通过循环找到最高分数*/ if(maxs) max=h-s; h=h-next; return max;31套请编写函数fun,其功能是:找出一维整型数组元素中最大的值及其所在的下标,并通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。voidfun(inta,intn,int*max,int*d)inti;*max=a0;*d=0;for(i=0;in;i+)/*将最大的元素放入指针max所指的单元,最大元素的下标放入指针d所指的单元*/if(*maxai)*max=ai;*d=i;32套编写函数fun,其功能是:将s所指字符串中除了下标为奇数同时ASCII值也为奇数的字符之外,其余的所有字符全部删除,串中剩余字符所形成的一个新串放在t所指的数组中。例如,若s所指字符串的内容为:ABCDEFG12345,其中字符A的ASCII码值为奇数,但所在元素的下标为偶数,因此需要删除;而字符1的ASCII码值为奇数,所在数组中的下标也为奇数,因此不应当删除,其它依此类推。最后t所指数组中的内容应为:135。void fun(char *s, char t) int i,j=0,n; n=strlen(s); for(i=0;in;i+) if(i%2!=0&si%2!=0) tj=si; /*将下标为奇数同时ASCII码值为奇数的字符放入数组t中*/ j+; tj=0; /*最后加上结束标识符*/33套编写函数fun,其功能是:实现BAA,即将矩阵A加上A的转置,存放在矩阵B中。计算结果在main函数中输出。例如,输入下面的矩阵:其转置矩阵为: 程序输出: voidfun(inta33,intb33)inti,j;for(i=0;i3;i+)for(j=0;j3;j+)bij=aij+aji;/*把矩阵a加上a的转置,存放在矩阵b中*/ 34套请编写函数fun,该函数的功能是:将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。一维数 组中数据的个数存放在形参n所指的存储单元中。例如,若二维数组中的数据为33 33 33 3344 44 44 4455 55 55 55则一维数组中的内容应是:33 44 55 33 44 55 33 44 55 33 44 55voidfun(int(*s)10,int*b,int*n,intmm,intnn)inti,j;for(j=0;jnn;j+)/*将二维数组中的数据按列的顺序依次放入一维数组中*/for(i=0;imm;i+)b*n=*(*(s+i)+j);*n=*n+1;/*通过指针返回元素个数*/ 35套编写函数fun,其功能是:将两个两位数的正整数a、b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。例如,当a45,b12时,调用该函数后,c1524。voidfun(inta,intb,long*c)*c=a/10+(b%10)*10+(a%10)*100+(b/10)*1000; 36套请编写函数fun,该函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。例如,若字符串数组中的M个字符串为AAAA,BBBBBBB,CC则合并后的字符串内容应该是AAAABBBBBBBCCvoidfun(charaMN,char*b)inti,j,k=0;for(i=0;iM;i+)/*将字符串数组中的M个字符串,按顺序存入一个新的字符串*/for(j=0;aij!=0;j+)bk+=aij;bk=0;/*在字符串最后加上字符串结束标记符*/ 37套编写函数fun,其功能是:删除一个字符串中指定下标的字符。其中,a指向原字符串,删除指定字符后的字符串存放在b所指的数组中,n中存指定的下标。例如,输入一个字符串world,然后输入3,则调用该函数后的结果为word。voidfun(chara,charb,intn)inti,k=0;for(i=0;ai!=0;i+)if(i!=n)/*将不是指定下标的字符存入数组b中*/bk+=ai;bk=0;/*在字符串最后加上结束标识*/ 38套 请编写函数fun,函数的功能是:移动一维数组中的内容,若数组中有n个整数,要求把下标从0p(含p,p小于 等于n-1)的数组元素平移到数组的最后。例如,一维数组中的原始内容:1,2,3,4,5,6,7,8,9,10;p的值为3。移动后,一维数组中的内容应为: 5,6,7,8,9,10,1,2,3,4。voidfun(int*w,intp,intn)intx,j,ch;for(x=0;x=p;x+)ch=w0;for(j=1;jn;j+)/*通过for循环语句,将p+1到n-1(菏n-1)之间的数组元素依次向前移动p+1个存储单元*/wj-1=wj;wn-1=ch;/*将0到p个数组元素逐一赋给数组wn-1*/ 39套请编写函数fun,该函数的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。例如,若二维数组中的数据为W W W WS S S SH H H H则字符串中的内容应是:WSHWSHWSHWSH。voidfun(char(*s)N,char*b)inti,j,k=0;for(i=0;iN;i+)/*按列的顺序依次放到一个字符串中*/for(j=0;jM;j+)bk+=sji;bk=0; 40套编写函数fun,其功能是:根据以下公式计算s,并计算结果作为函数值返回,n通过形参传入。 例如:若n的值为11时,函数的值为1.833333邓安琪2016/3/2319:31:27floatfun(intn)inti,s1=0;floats=0.0;for(i=1;i=n;i+)s1=s1+i;/*求每一项的分母*/s=s+1.0/s1;/*求多项式的值*/returns; 41套编写函数fun,其功能是:将s所指字符串中ASCII值为奇数的字符删除,剩余字符形成的新串放在t所指数组中。例如,若s所指字符串中的内容为:ABCDEFG12345,其中字符A的ASCII码值为奇数,字符1的ASCII码值也为奇数,都应当删除,其它依此类推。最后t所指的数组中的内容应是:BDF24。邓安琪2016/3/2319:33:22voidfun(char*s,chart)inti,j=0,n;n=strlen(s);for(i=0;in;i+)/*找出ASCII码值为偶数的字符依次存入数组中*/if(si%2=0)tj=si;j+;tj=0; 42套请编写函数fun,该函数的功能是:删除一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。例如,若一维数组中的数据是:2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10删除后,数组中的内容应该是:2 3 4 5 6 7 8 9 10。intfun(inta,intn)inti,j=1;for(i=1;in;i+)if(aj-1!=ai)/*若该数与前一个数不相同,则要保留*/aj+=ai;returnj;/*返回不相同数的个数*/ 43套规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:除了字符串前导和尾部的*号外,将串中其它的*号全部删除。形参h已指向字符串中第一个字母,形参p指向字符串的中最后一个字母。在编写函数时,不得使用C语言提供的字符串函数。例如,若字符串中的内容为*A*BC*DEF*G*,删除后,字符串中的内容应当是:*ABCDEFG*。在编写函数时,不得使用C语言提供的字符串函数。voidfun(char*a,char*h,char*p)inti=0;char*q=a;while(qh)ai=*q;q+;i+;while(qn)/*如果k大于n,则使p的前部保留n个星号,其后的字符依次存入数组a中*/while(*p)ai=*(p+k-n);i+;p+;ai=0;/*在字符串最后加上结束标识位*/ 46套编写函数fun,其功能是:将两个两位数的正整数a、b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上。例如,当a45,b12时,调用该函数后c2514。邓安琪2016/3/2319:36:15voidfun(inta,intb,long*c)*c=a/10+(b/10)*10+(a%10)*100+(b%10)*1000; 47套请编写函数fun,其功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串1234,则函数把它转换为整数值1234。longfun(char*p)longn=0;intflag=1;if(*p=-)/*负数时置flag为1*/p+;flag=-1;elseif(*p=+)/*正数时置flag为1*/p+;while(*p!=0)n=n*10+*p-0;/*将字符串转成相应的整数*/p+;returnn*flag; 48套编写函数fun,其功能是:求Fibonacci数列中大于t的最小的数,结果由函数返回。Fibonacci数列F(n)的定义为:F(0)0,F(1)1F(n)F(n1)F(n2)例如,当t1000时,函数值为1597。intfun(intt)intf0=0,f1=1,f;dof=f0+f1;f0=f1;f1=f;while(ft);returnf; 49套学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun ,其功能是:把低于平均分的学生数据放入b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。doublefun(STREC*a,STREC*b,int*n)inti,j=0;doubleav=0.0;for(i=0;iN;i+)av=av+ai.s;av=av/N;/*求平均值*/for(i=0;iN;i+)if(ai.s=a&ssin)while(*p&pt+n+1)ai=*p;i+;p+;ai=0; 53套编写函数fun,其功能是:将两个两位数的正整数a、b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的百位和个位上。例如,当a45,b12时,调用该函数后,c 5142。voidfun(inta,intb,long*c)*c=b%10+(a/10)*10+(b/10)*100+(a%10)*1000; 54套函数fun的功能是:将两个两位数的正整数 a、b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。例如,当a=45,b=12时,调用该函数后c=4152。邓安琪2016/3/2319:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论