2023年全国计算机二级C考试题库程序设计部分_第1页
2023年全国计算机二级C考试题库程序设计部分_第2页
2023年全国计算机二级C考试题库程序设计部分_第3页
2023年全国计算机二级C考试题库程序设计部分_第4页
2023年全国计算机二级C考试题库程序设计部分_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

找出2xM整型二维数组中最大元素的值,并将此值返回调用函数。intfun(inta[][M]){inti,j,max=a[0][0];for(i=0;i<2;i++)for(j=0;j<M;j++)if(max<a[i][j])max=a[i][j];returnmax;}根据以下公式求π值。doublefun(doubleeps){doubles=0.0,s1=1.0;intn=0;while(s1>=eps){s=s+s1;s1=s1*n/(2*n+1);n++;}return2*s;}3、求出1~1000之间能被7或11整除但不能同时被7和11整除的所有整数,并将其放在a所指的数组中,通过n返回这些数的个数。voidfun(int*a,int*n){inti,j=0;for(i=1;i<=1000;i++)if((i%7==0||i%11==0)&&i%77!=0)a[j++]=i;*n=j;}4、删除字符串中所有*号。voidfun(char*a){inti,j=0;for(i=0;a[i]!='\0';i++)if(a[i]!='*')a[j++]=a[i];a[j]='\0';}5、实现两个字符串的连接(不要同时使用库函数),即把p2所指的字符串连接到p1所指的字符串的后面。voidfun(charp1[],charp2[]){inti,j;for(i=0;p1[i]!='\0';i++);for(j=0;p2[j]!='\0';j++)p1[i++]=p2[j];p1[i]='\0';}6、某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数fun,其功能:求出平均分,并放入记录的ave成员中。voidfun(STREC*a){inti;a->ave=0.0;for(i=0;i<N;i++)a->ave=a->ave+a->s[i];a->ave/=N;}7、n名学生的成绩已在主函数中放入一个带头结点的链表结构中,h指向链表的头结点。求出平均分,并由函数值返回doublefun(STREC*h){doubleave=0.0;STREC*p=h->next;while(p!=NULL){ave=ave+p->s;p=p->next;}returnave/N;}8、将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过K返回。voidfun(intm,int*k,intxx[]){inti,j,n=0;ﻩfor(i=4;i<m;i++)ﻩ{for(j=2;j<i;j++)ﻩif(i%j==0)break; if(j<i)xx[n++]=i; } *k=n;}9、求ss所指字符串中指定字符的个数,并返回此值。intfun(char*ss,charc){inti=0;for(;*ss!='\0';ss++)if(*ss==c)i++;returni;}10、计算n门课程的平均分,结果作为函数值返回。floatfun(float*a,intn){inti;floatav=0.0;for(i=0;i<n;i++)av=av+a[i];return(av/n);}学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,求最高的学生数据放在b所指的数组中。注意:分数最高的学生也许不止一个,函数返回分数最高的学生的人数。intfun(STREC*a,STREC*b){inti,j=0,max=a[0].s;for(i=0;i<N;i++)if(max<a[i].s)max=a[i].s;for(i=0;i<N;i++)if(max==a[i].s)b[j++]=a[i];returnj;}除了字符串前导的*号之外,将串中其他*号所有删除。voidfun(char*a){inti=0;char*p=a;while(*p&&*p=='*'){a[i]=*p;ﻩi++;ﻩp++;}while(*p){if(*p!='*') {a[i]=*p;i++;}ﻩp++;}a[i]='\0';}记录在tt所指的字符串中’a’到’z’26个小写字母给出现的次数,并依次放在pp所指数组中。voidfun(char*tt,intpp[]){inti;for(i=0;i<26;i++)pp[i]=0;for(;*tt!='\0';tt++)if(*tt>='a'&&*tt<='z')pp[*tt-'a']++;}将字符串尾部的*号所有删除,前面和中间的*号不动。voidfun(char*a){while(*a!='\0')a++;a--;while(*a=='*')a--;*(a+1)='\0';}比较字符串的长度,函数返回较长的字符串,假如相同,则返回第一个字符串。char*fun(char*s,char*t){inti,j;for(i=0;s[i]!='\0';i++);for(j=0;t[j]!='\0';j++);if(i<=j)returnt;elsereturns;}学生的记录由学号成绩组成,N名学生的数据已放入主函数中的结构体数组s中,函数返回该学生的学生数据,指定的学号在主函数中输入。若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数数值返回。STRECfun(STREC*a,char*b){inti;STRECstr={"\0",-1};for(i=0;i<N;i++)if(strcmp(a[i].num,b)==0)str=a[i];returnstr;}17、将s所指字符串中除下标为偶数同时ASCII码值也为偶数的字符外,其余的所有删除字符串中剩余的字符所形成的新串放在t数组中。voidfun(char*s,chart[]){inti,j=0;for(i=0;s[i]!='\0';i++)if(i%2==0&&s[i]%2==0)t[j++]=s[i];t[j]='\0';}运用下面的简朴迭代方法求方程cos(x)-x=0的一个实根s。doublefun(){doublex0,x1;x1=0.0;do{x0=x1;x1=cos(x0);}while(fabs(x0-x1)>=1e-6);returnx1;}将字符串中的前导*号所有移到字符串尾部。voidfun(char*a){inti=0,n=0;char*p;p=a;while(*p=='*')/*判断*p是否是*号,并记录*号的个数*/{n++;p++;}while(*p)/*将前导*号后的字符传递给a*/{a[i]=*p;i++;p++;}while(n!=0){a[i]='*';i++;n--;}a[i]='\0';}N名学生的数据已放入主函数中的结构体数组中,把分数最低的学生数据放入b所指的数组中。intfun(STREC*a,STREC*b){inti,j=0,min=a[0].s;for(i=0;i<N;i++)if(min>a[i].s)min=a[i].s;/*找出最小值*/for(i=0;i<N;i++)if(min==a[i].s)b[j++]=a[i];/*找出成绩与min相等的学生的记录,存入结构体b中*/returnj;}计算doublefun(intm){inti;doubles=0.0;for(i=1;i<=m;i++)s=s+log(i);returnsqrt(s);}只删除字符前导和尾部的*号,串中字母间的*号都不删除。voidfun(char*a,intn,inth,inte){inti,j=0;for(i=h;i<n-e;i++)a[j++]=a[i];a[j]='\0';}将s所指字符串中下标为偶数的字符删除,剩余字符形成的新串放在t所指数组中voidfun(char*s,chart[]){inti,j=0,k=strlen(s);for(i=1;i<k;i=i+2)t[j++]=s[i];t[j]='\0';}将a,b中的两位正整数合并成一个新的整数放在c中。合并方式是:将a中的十位和个位依次放在变量c的百位和个位上,B中的十位和个位数依次放在变量c的十位和千位上。voidfun(inta,intb,long*c){*c=a%10+(b/10)*10+(a/10)*100+(b%10)*1000;}除了尾部的*号之外,将字符中的其他的*号所有删除。形参p已指向字符串最后的一个字母。voidfun(char*a,char*p){char*t=a;for(;t<=p;t++)if(*t!='*')*(a++)=*t;for(;*t!='\0';t++)*(a++)=*t;*a='\0';}N名学生的数据已放入主函数中的结构体数组中,按分数降序排列学生的记录,高分在前,低分在后。voidfun(STRECa[]){inti,j;STRECt;for(i=1;i<N;i++)for(j=0;j<N-1;j++)if(a[j].s<a[j+1].s){t=a[j];a[j]=a[j+1];a[j+1]=t;}}N名学生的数据已放入主函数中的结构体数组中,把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。doublefun(STREC*a,STREC*b,int*n){inti;doubleav=0.0;*n=0;for(i=0;i<N;i++)av=av+a[i].s;av=av/N;for(i=0;i<N;i++)if(av<=a[i].s){b[*n]=a[i];*n=*n+1;}returnav;}将1~m之间(含m)能被7或11整除的所有整数放在数组a中,并通过n返回这些数的个数。voidfun(intm,int*a,int*n){inti,j=0;for(i=1;i<=m;i++)if(i%7==0||i%11==0)a[j++]=i;*n=j;}将字符串中的前导*号所有删除,中间和尾部的*号不删除。voidfun(char*a){char*p=a;while(*p=='*')p++;for(;*p!='\0';p++,a++)*a=*p;*a='\0';}30、N名学生的成绩已在主函数中放入一个带有头结点的链表结构中,h指向链表的头结点。找出学生的最高分。doublefun(STREC*h){doublemax=h->s;while(h!=NULL){if(max<h->s)max=h->s;h=h->next;}returnmax;}找出一维整型数组元素最大的值及其所在的下标,并通过形参传回。主函数中x是数组名,n是x数据个数,max存放最大值,index存放最大值所在元素的下标。voidfun(inta[],intn,int*max,int*d){inti;*max=a[0];*d=0;for(i=0;i<n;i++)if(*max<a[i]){*max=a[i];*d=i;}}将s所指字符串中除了下标为奇数同时ASCII值也为奇数的字符之外,其余的所有字符所有删除,串在剩余字符所形成的一个新串放在t所指的数组中。voidfun(char*s,chart[]){inti,j=0,n;n=strlen(s);for(i=0;i<n;i++)if(i%2!=0&&s[i]%2!=0){t[j]=s[i];j++;}t[j]='\0';}实现B=A+’A’,即将矩阵A加上A的转置,存放在矩阵B中。voidfun(inta[3][3],intb[3][3]){inti,j;for(i=0;i<3;i++)for(j=0;j<3;j++)b[i][j]=a[i][j]+a[j][i];}将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。voidfun(int(*s)[10],int*b,int*n,intmm,intnn){inti,j;for(j=0;j<nn;j++)for(i=0;i<mm;i++){b[*n]=*(*(s+i)+j);*n=*n+1;}}将两个两位数的正整数a,b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。voidfun(inta,intb,long*c){*c=a/10+(b%10)*10+(a%10)*100+(b/10)*1000;}将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并成一个新的字符串。voidfun(chara[M][N],char*b){inti,j,k=0;for(i=0;i<M;i++)for(j=0;a[i][j]!='\0';j++)b[k++]=a[i][j];b[k]='\0';}删除一个字符串中指定下标的字符。a指向原字符后的字符串存放在b所指的数组中,n中存指定的下标。voidfun(chara[],charb[],intn){inti,k=0;for(i=0;a[i]!='\0';i++)if(i!=n)b[k++]=a[i];b[k]='\0';}移动一维数组中的内容,若数组中有n个整数,规定把下标从0~p(含p,p小于等于n-1)的数组元素平移到数组的最后。voidfun(int*w,intp,intn){intx,j,ch;for(x=0;x<=p;x++){ch=w[0];for(j=1;j<n;j++){w[j-1]=w[j];}w[n-1]=ch;}}将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。voidfun(char(*s)[N],char*b){inti,j,k=0;for(i=0;i<N;i++)for(j=0;j<M;j++)b[k++]=s[j][i];b[k]='\0';}计算floatfun(intn){inti,s1=0;floats=0.0;for(i=1;i<=n;i++){s1=s1+i;s=s+1.0/s1;}returns;}将s所指字符串中ASCCII值为奇数的字符删除,剩余字符形成的新串放在t所指数组中voidfun(char*s,chart[]){inti,j=0,n;n=strlen(s);for(i=0;i<n;i++)if(s[i]%2==0){t[j]=s[i];j++;}t[j]='\0';}42、删除一维数组中所有相同的数使之只剩一个。数组中的数已按由小到大的顺序排列函数返回删除后数组的数据。intfun(inta[],intn){inti,j=1;for(i=1;i<n;i++)if(a[j-1]!=a[i])a[j++]=a[i];returnj;}除了字符串前导和尾部的*号外,将串中其他的*号所有删除。voidfun(char*a,char*h,char*p){inti=0;char*q=a;while(q<h){a[i]=*q;q++;i++;}while(q<p){if(*q!='*'){a[i]=*q;i++;}q++;}while(*q){a[i]=*q;i++;q++;}a[i]='\0';}将a,b的两个两位正整数合并成一个新的整数放在c中,合并方式是:将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的千位和十位上。voidfun(inta,intb,long*c){*c=a%10+(b%10)*10+(a/10)*100+(b/10)*1000;}使字符串的前导*号不得多于n个,若多于n个,则删除多余的*号,若少于或等于n个,则不做解决,字符串中间和尾部的*号不删除。voidfun(char*a,intn){inti=0;intk=0;char*p,*t;p=t=a;while(*t=='*'){k++;t++;}if(k>n){while(*p){a[i]=*(p+k-n);i++;p++;}a[i]='\0';}}46、将两个两位数的正整数a,b合并成一个整数放在c中,合并方式是:将a数的十位和个位数依次在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上。voidfun(inta,intb,long*c){*c=a/10+(b/10)*10+(a%10)*100+(b%10)*1000;}47、将一个数字字符串转换为一个整数。答案:ongfun(char*p){longn=0;intflag=1;if(*p=='-'){p++;flag=-1;}elseif(*p=='+')p++;while(*p!='\0'){n=n*10+*p-'0';p++;}returnn*flag;}48、求Fibonacc数列中大于t的最小的数,结果由函数返回。Fibonacc数列F(n)定义为intfun(intt){intf0=0,f1=1,f;do{f=f0+f1;f0=f1;f1=f;}while(f<t);returnf;}把低于平均分的学生数据放入b所指的数组中低于平均分的学生人数通过形参n返回,平均分通过函数值返回doublefun(STREC*a,STREC*b,int*n){inti,j=0;doubleav=0.0;for(i=0;i<N;i++)av=av+a[i].s;av=av/N;for(i=0;i<N;i++)if(a[i].s<av)b[j++]=a[i];*n=j;returnav;}将ss所指字符串所有下标为奇数位上的字母转换为大写。voidfun(char*ss){inti;for(i=0;ss[i]!='\0';i++)if(i%2==1&&ss[i]>='a'&&ss[i]<='z')ss[i]=ss[i]-32;}将a,b两个正整数合并成一个新的整数放在c中。合并方式:将a中的十位和个位数依次放在变量c的千位和十位上,b中的十位和个位数依次放在变量c的个位和百位上。voidfun(inta,intb,long*c){*c=b/10+(a%10)*10+(b%10)*100+(a/10)*1000;}52、使字符串中尾部的*号不多于n个,若多于n个,则删除多余的*号,若少于或等于n个,则不做任何操作,字符中间的*不删除。voidfun(char*a,intn){inti=0,k=0;char*p,*t;p=t=a;while(*t)t++;t--;while(*t=='*'){k++;t--;}if(k>n){while(*p&&p<t+n+1){a[i]=*p;i++;p++;}a[i]='\0';}}将a,b两个正整数合并成一个新的整数放在c中。合并方式:将a中的十位和个位数依次放在变量c的十位和千位上,b中的十位和个位数依次放在变量c的百位和个位上。voidfun(inta,intb,long*c){*c=b%10+(a/10)*10+(b/10)*100+(a%10)*1000;}将a,b两个正整数合并成一个新的整数放在c中。合并方式:将a中的十位和个位数依次放在变量c的千位和十位上,b中的十位和个位数依次放在变量c的十位和个位上。voidfun(inta,intb,long*c){*c=b%10+(a%10)*10+(b/10)*100+(a/10)*1000;}把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。intfun(STREC*a,STREC*b,intl,inth){inti,j=0;for(i=0;i<N;i++)if(a[i].s>=l&&a[i].s<=h)ﻩb[j++]=a[i];returnj;}将s所指字符串中ASCII码值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。voidfun(char*s,chart[]){inti=0;for(;*s!='\0';s++)if(*s%2==1)t[i++]=*s;t[i]='\0';}找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)fun(STUa[],STU*s){inti;*s=a[0];for(i=0;i<N;i++)if(s->s<a[i].s)*s=a[i];}定义了NxN的二维数组,使数组左下办三角元素中的值乘以n。voidfun(inta[][N],intn){inti,j;for(i=0;i<N;i++)for(j=0;j<=i;j++)a[i][j]=a[i][j]*n;}定义了NxN的二维数组,使数组左下办三角元素中的值所有置成0.voidfun(inta[][N]){inti,j;for(i=0;i<N;i++)for(j=0;j<=i;j++)a[i][j]=0;}请编一个函数voidfun(inttt[M][N]),tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp所指的一维数组中。voidfun(inttt[M][N],intpp[N]){inti,j,max;for(j=0;j<N;j++){max=tt[0][j];for(i=0;i<M;i++)if(tt[i][j]>max)max=tt[i][j];pp[j]=max;}}w是一个大于10的无符号整数,若w是n(n》2)位的整数,则函数求出w的后n-1位的数作为函数值返回unsignedfun(unsignedw){intn=1,j,s=1;ﻩunsignedt;ﻩt=w; while(t>=10) {ﻩt=t/10;ﻩﻩn++;ﻩ} for(j=1;j<n;j++)ﻩ s=s*10; returnw%s;}请编一个函数fun(char*s),该函数的功能是:把字符串中的内容逆置。voidfun(char*s){ charch;ﻩinti,m,n;ﻩi=0; m=n=strlen(s)-1; while(i<(n+1)/2)ﻩ{ch=s[i]; ﻩs[i]=s[m]; s[m]=ch; ﻩi++;m--;ﻩ}}从字符串中删除指定的字符。同字母的大、小写按不同字符解决voidfun(chars[],intc){inti=0;char*p;p=s;while(*p){if(*p!=c){s[i]=*p;i++;}p++;}s[i]='\0';}64、对长度为7个字符的字符串,除首、尾字符外,将其余5个字符安ASCII码降序排列。voidfun(char*s,intnum){charch;inti,j;for(i=1;i<6;i++)for(j=i+1;j<6;j++){if(*(s+i)<*(s+j)){ch=*(s+j);*(s+j)=*(s+i);*(s+i)=ch;}}}记录一个长度为2的字符串在另一个字符串中出现的次数。intfun(char*str,char*substr){inti,j=0;for(i=0;str[i]!='\0';i++)if(str[i]==substr[0]&&str[i+1]==substr[1])j++;returnj;}计算并输出给定整数n的所有因子(不涉及1与自身)之和。规定n的值不大于1000.intfun(intn){ints=0,i;for(i=2;i<=n-1;i++)if(n%i==0)s+=i; returns;}计算doublefun(intn){doublet,sn=1.0;inti,j;for(i=1;i<=n;i++){t=1.0;for(j=1;j<=i;j++)t*=j;sn+=1.0/t;} returnsn;}计算并输出x<0.97时,如下多项式的值,直到为止。doublefun(doublex){ doubles1=1.0,p=1.0,sum=0.0,s0,t=1.0;ﻩintn=1;ﻩdoﻩ{ s0=s1;ﻩ sum+=s0; t*=n; p*=(0.5-n+1)*x;ﻩ s1=p/t; n++;ﻩ}while(fabs(s1-s0)>=1e-6);ﻩreturnsum;}计算并输出给定10个数的方差,其中doublefun(doublex[10]){doublex1=0.0,s=0.0;inti;for(i=0;i<10;i++)x1=x1+x[i];x1=x1/10;for(i=0;i<10;i++)s=s+(x[i]-x1)*(x[i]-x1);returnsqrt(s/10);}计算并输出给定数组(长度为9)中相邻两个元素的平均值的平方根之和。doublefun(doublex[9]){doublesum=0.0; inti,j=1; for(i=0;i<9;i++) if(j<=8)ﻩ{ sum+=sqrt((x[i]+x[i+1])/2.0);j++;ﻩ} returnsum;}计算并输出下列多项式值doublefun(intn){inti;doubles=0.0;for(i=1;i<=n;i++)s=s+(1.0/(2*i-1)-1.0/(2*i));returns;}72、计算并输出多项式值doublefun(intn){ doublesum=0,tmp=1; inti; for(i=1;i<=n;i++)ﻩ{ﻩﻩtmp=tmp*i;ﻩ sum+=1.0/tmp; } returnsum;}计算并输出n(涉及n)以内所有可以被5或9整除的自然数的倒数之和。doublefun(intn){inti;doublesum=0.0;for(i=1;i<=n;i++)if(i%5==0||i%9==0)sum+=1.0/i;returnsum;}计算并输出3~n之间所有素数的平方根之和。doublefun(intn){intm,k,i;doubles=0.0;for(m=3;m<=n;m++){k=sqrt(m);for(i=2;i<=k;i++)if(m%i==0)break;if(i>=k+1)s+=sqrt(m);}returns;}计算并输出doublefun(intn){inti;doubles=0.0,s1=0.0;for(i=1;i<=n;i++){s1=s1+pow(i,0.5);s=s+s1;}returns;}记录一行字符串中单词个数,作为函数值返回。字符串在主函数中输入,规定所有单词有小写字母组成,单词之间有若干个空格隔开,一行的开始没有空格。intfun(char*s){inti,j=0;for(i=0;s[i]!='\0';i++)if(s[i]!=''&&(s[i+1]==''||s[i+1]=='\0'))j++;returnj;}找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。fun(STUa[],STU*s){inti;*s=a[0];for(i=0;i<N;i++)if(s->s>a[i].s)*s=a[i];}定义NxN二维数组,并在主函数中自动赋值。使数组右上办三角元素中的值乘以m。voidfun(inta[][N],intm){inti,j;for(j=0;j<N;j++)for(i=0;i<=j;i++)a[i][j]=a[i][j]*m;}79、定义NxN二维数组,并在主函数中自动赋值。求出数组周边元素的平均值并作为函数值返回主函数的sdoublefun(intw[][N]){inti,j,k=0;doubleav=0.0;for(i=0;i<N;i++)for(j=0;j<N;j++)if(i==0||i==N-1||j==0||j==N-1){av=av+w[i][j];k++;}returnav/k;}求出二维数组周边元素之和,作为函数值返回。intfun(inta[M][N]){inti,j,sum=0;for(i=0;i<M;i++)for(j=0;j<N;j++)if(i==0||i==M-1||j==0||j==N-1)sum=sum+a[i][j];returnsum;}使变量h中的值保存两位小数,并对第三位进行四舍五入(规定h中的值为正数)floatfun(floath){longt;t=(h*1000+5)/10;return(float)t/100;}实现矩阵(3行、3列)的转置(即行列互换)voidfun(intarray[3][3]){inti,j,t;for(i=0;i<3;i++)for(j=i+1;j<3;j++){t=array[i][j];array[i][j]=array[j][i];array[j][i]=t;}}intfun(intlim,intaa[MAX])求出小于或等于lim的所有素数并放在aa数组中,并返回所求出的素数的个数。intfun(intlim,intaa[MAX]){inti,j,k=0;for(i=2;i<=lim;i++){for(j=2;j<i;j++)if(i%j==0)break;if(j>=i)aa[k++]=i;}returnk;}从传入的num个字符中找出最长的一个字符串,通过形参指针max传回该串地址(用****作为结束输入的标记)char*fun(char(*a)[81],intnum,char*max){inti=0;max=a[0];for(i=0;i<num;i++)if(strlen(max)<strlen(a[i]))max=a[i];returnmax;}删除字符串中的所有空格。voidfun(char*str){inti=0;char*p=str;while(*p){if(*p!=''){str[i]=*p;i++;}p++;}str[i]='\0';}判断字符串是否为回文,若是,则函数返回1,主函数中输出”YES”,否则返回0,主函数输出”NO”。intfun(char*str){inti,n=0,fg=1;char*p=str;while(*p){n++;p++;}for(i=0;i<n/2;i++)if(str[i]==str[n-1-i]);else{fg=0;break;}returnfg;}87、将M行N列的二维数组中的数据,按行的顺序依次放到一维数组中,一维数组中数据的个数存放在形参n所指的存储单元中。voidfun(int(*s)[10],int*b,int*n,intmm,intnn){inti,j,k=0;for(i=0;i<mm;i++)for(j=0;j<nn;j++)b[k++]=s[i][j];*n=k;}将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,s所指串中剩余的字符形成的新串放在t所指的数组中。voidfun(char*s,chart[]){inti,j=0;for(i=0;i<strlen(s);i++)if(!((i%2)==0&&(s[i]%2)))t[j++]=s[i];t[j]=0;}将ss所指字符串所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换)voidfun(char*ss){inti;for(i=0;ss[i]!='\0';i++)if(i%2==1&&ss[i]>='a'&&ss[i]<='z')ss[i]=ss[i]-32;}将a,b中的两个正整数合并形成一个新的整数放在c中。合并方式:将a中的十位和个位数依次放在变量c的十位和千位上,b中的十位和个位数依次放在变量c的个位和百位上。voidfun(inta,intb,long*c){*c=(a%10)*1000+(b%10)*100+(a/10)*10+(b/10);}91、m个人的成绩存放在score数组中,将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。intfun(intscore[],intm,intbelow[]){inti,j=0;floatav=0.0;for(i=0;i<m;i++)av=av+score[i]/m;for(i=0;i<m;i++)if(score[i]<av)below[j++]=score[i];returnj;}92、求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。voidfun(intx,intpp[],int*n){inti,j=0;for(i=1;i<=x;i=i+2)if(x%i==0)pp[j++]=i;*n=j;}将大于整数m且紧靠m的k个素数存入所指的数组中。voidfun(intm,intk,intxx[]){inti,j,n;for(i=m+1,n=0;n<k;i++){for(j=2;j<i;j++)if(i%j==0)break;if(j>=i)xx[n++]=i;}}求出数组的最大元素在数组中的下标并存放在k所指向的存储单元中。intfun(int*s,intt,int*k){inti;*k=0;for(i=0;i<t;i++)if(s[*k]<s[i])*k=i;returns[*k];}根据以下公式求p的值,结果由函数值带回。m与n为两个正整数且规定m>n。longjc(intm){longs=1;inti;for(i=1;i<=m;i++)s=s*i;returns;}floatfun(intm,intn){floatp;p=1.0*jc(m)/jc(n)/jc(m-n);returnp;}求小于形参n同时能被3与7整除的所有自然是之和的平方根,并作为函数值返回。doublefun(intn){doublesum=0.0;inti;for(i=21;i<=n;i++)if((i%3==0)&&(i%7==0))sum+=i;returnsqrt(sum);}计算并输出下列多项式的值doublefun(intn){inti;doubles=0.0;for(i=1;i<=n;i++)s=s+1.0/(i*(i+1));returns;}计算下列级数和。doublefun(doublex,intn){inti;doubles=1.0,s1=1.0;for(i=1;i<=n;i++){s1=s1*i;s=s+pow(x,i)/s1;}returns;}移动字符串中的内容,移动的规则是把第1~m个字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。voi

温馨提示

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

评论

0/150

提交评论