1、全国计算机二级考试题库void实现两个字符串的连接(不要同时使用库函数) ,即把所指的字符串连接到 p1所指的字符串的后面。int i,j,n=0;for(i=4;im;i+) for(j=2;ji;j+)if(i%j=0) break; if(ji) xxn+=i;1、 找出2xM整型二维数组中最大元素的值,并将此值返回 调用函数。int fun (int aM)int i,j,max=a00;for(i=0;i2;i+)for(j=0;jM;j+)if(max=e ps)s=s+s1;s1=s1*n/(2*n+1);n+;return 2*s;3、 求出11000之间能被7或11整除但不能
2、同时被 7和 11整除的所有整数,并将其放在 a所指的数组中,通过n 返回这些数的个数。void fun (int *a, int *n) int i,j=0;for(i=1;iave=;for(i=0;iave=a-ave+a-si;a-ave/=N; 7、 n名学生的成绩已在主函数中放入一个带头结点的链表 结构中,h指向链表的头结点。求出平均分,并由函数值返 回double fun( STREC *h ) double ave=;STREC *p=h-next;while( p!=NULL) ave=ave+p-s; p=p- next;return ave/N;8、将所有大于1小于整数m
3、的非素数存入xx所指数组中, 非素数的个数通过K返回。void fun( int m, int *k, int xx) *k=n;9、 求SS所指字符串中指定字符的个数,并返回此值。int fun(char *ss, char c) int i=0;for(;*ss!=0;ss+)if(*ss=c)i+;return i;10、 计算n门课程的平均分,结果作为函数值返回。float fun ( float *a , int n ) int i;float av=;for(i=0; in;i+)av=av+ai;return(av/n);11、 学生的记录由学号和成绩组成,N名学生的数据已放入
4、主函数中的结构体数组 s中,求最高的学生数据放在 b所指 的数组中。注意:分数最高的学生可能不止一个,函数返回 分数最高的学生的人数。int fun( STREC *a, STREC *b ) int i,j=0,max=a0.s;for(i=0;iN;i+)if(maxai.s) max=ai.s;for(i=0;i=a&*tt=z)pp *tt-a+;14、void将字符串尾部的*号全部删除,前面和中间的*号不动。fun( char *a ) while(*a!=0)a+;a-;while(*a=*)a-;*(a+1)=0; 15、 比较字符串的长度,函数返回较长的字符串,女口果相同, 则
5、返回第一个字符串。char *fun ( char *s, char *t) int i,j;for(i=0;si!= 0;i+);for(j=0;tj!= 0;j+);if(i=j)return t;elsereturn s;16、 学生的记录由学号成绩组成,N名学生的数据已放入主 函数中的结构体数组 s中,函数返回该学生的学生数据,指 定的学号在主函数中输入。若没找到指定学号,在结构体变 量中给学号置空串,给成绩置-1,作为函数数值返回。STREC fun( STREC *a, char *b )int i;STREC str=0,-1;for(i=0;i=1e-6 );return x1
6、;19、 将字符串中的前导*号全部移到字符串尾部。void fun( char *a ) int i=0,n=0;char *p;P=a;while (*p=*)数*/n+; P+;while(* p)ai=* p;i+; P+;while(n!=0)ai=*;i+;n-;ai=0;20、 N名学生的数据已放入主函数中的结构体数组中, 把分数最低的学生数据放入 b所指的数组中。int fun( STREC *a, STREC *b )int i,j=0,min=a0.s;for(i=0;iai.s)min=ai.s;for(i=0;iN;i+)if(min=ai.s) bj+=ai; /*找出
7、成绩与min相等的学生的记录,存入结构体b中*/return j;21、 计算/*找出最小值*/double fun( int m ) int i;double s=;for(i=1;i=m;i+) s=s+log(i);return sqrt(s);22、 只删除字符前导和尾部的 *号,串中字母间的*号都不删 除。void fun( char *a, int n,int h,int e ) int i,j=0;for(i=h;in-e;i+)aj+=ai;aj=0; 23、 将s所指字符串中下标为偶数的字符删除, 剩余字符形 成的新串放在t所指数组中void fun(char *s, cha
8、r t) int i,j=0,k=strlen(s);for(i=1;ik;i=i+2)tj+=si;tj=0;24、 将a ,b中的两位正整数合并成一个新的整数放在 c中。合并方式是:将a中的十位和个位依次放在变量 c的百位和个位上,B中的十位和个位数依次放在变量 c的十位和千位上。void fun(int a, int b, long *c)*c=a%10+(b/10)*10+(a/10)*100+(b%10)*1000;25、 形参除了尾部的*号之外,将字符中的其他的*号全部删除。 P已指向字符串最后的一个字母。fun( char *a, char *p )void char *t=a;
9、for(;t=p ;t+)if(*t!=*)*(a+)=*t;for(;*t!=0;t+)*(a+)=*t;*a=0;26、 N名学生的数据已放入主函数中的结构体数组中, 数降序排列学生的记录,高分在前,低分在后。void fun( STREC a) int i,j;STREC t;for(i=1;iN;i+)for(j=0;jN-1;j+)if(aj.saj+1.s)t=aj;aj=aj+1;aj+1=t;按分27、 N名学生的数据已放入主函数中的结构体数组中,于等于平均分的学生数据放在 b所指的数组中,高于等于平均分的学生人数通过形参 n传回,平均分通过函数值返回。double fun(
10、STREC *a, STREC *b, int *n )int i;double av=;*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;return av; 28、 将1m之间(含m )能被7或11整除的所有整数放 在数组a中,并通过n返回这些数的个数。void fun ( int m, int *a , int *n ) int i,j=0;for(i=1;is;while(h!=NULL)if(maxs) max=h-s;h=h-next;return max;30、找出一维整型
11、数组元素最大的值及其所在的下标, 并通过形参传回。主函数中 x是数组名,n是x数据个数,max 存放最大值,index存放最大值所在元素的下标。void fun(int a,int n, int *max, int *d)int i;*max=aO;*d=0;for(i=0;in;i+) if(*maxai) *max=ai;*d=i;31、 将s所指字符串中除了下标为奇数同时 ASCII值也为奇 数的字符之外,其余的所有字符全部删除,串在剩余字符所 形成的一个新串放在t所指的数组中。void fun(char *s, char t) int i,j=0,n;n=strlen(s);for(i
12、=0;in;i+)if(i%2!=0&si%2!=0)tj=si;j+;tj=0; 32、 实现B=A+ A ,即将矩阵A加上A的转置,存放在 矩阵B中。void fun ( int a33, int b33) int i,j;for(i=0;i3;i+) for(j=0;j3;j+)bij=aij+aji; 33、 将M行N列的二维数组中的数据,按列的顺序依次放 到一维数组中。void fun(int (*s)10,int *b,int *n,int mm,int nn)int i,j;for(j=0;jnn;j+) for(i=0;imm;i+)b*n=*(*(s+i)+j); *n=*n
13、+1;34、 将两个两位数的正整数 a,b合并成一个整数放在 c中。 合并的方式是:将a数的十位和个位数依次放在 c数的个位 和百位上,b数的十位和个位数依次放在 c数的千位和十位 上。void fun(int a, int b, long *c)*c=a/10+(b%10)*10+(a%10)*100+(b/10)*1000;35、 将放在字符串数组中的 M个字符串(每串的长度不超过N),按顺序合并成一个新的字符串。void fun(char aMN,char *b) int i,j,k=0;for(i=0;iM;i+)for(j=0;aij!=0;j+) bk+=aij;bk=0;36、
14、删除一个字符串中指定下标的字符。 a指向原字符后的 字符串存放在b所指的数组中,n中存指定的下标。void fun (char a, char b, int n) int i,k=0;for(i=0;ai!=0;i+)if(i!=n)bk+=ai;bk=0;37、 移动一维数组中的内容, 若数组中有n个整数,要求把 下标从0P (含P , P小于等于n-1 )的数组元素平移到数 组的最后。void fun(int *w, int p, int n) int x,j,ch;for(x=0;xv=p; x+) ch=w0;for(j=1;jvn;j+)wj-1=wj;wn-1=ch;38、 将M行
15、N列的二维数组中的字符数据,按列的顺序依 次放到一个字符串中。void fun(char (*s)N,char *b) int i,j,k=0;for(i=0;ivN;i+)for(j=0;jvM;j+)bk+=sji;bk=0;39、 计算float fun(int n) int i,s1=0;float s=;for(i=1;iv=n;i+)s1=s1+i;s=s+s1;return s;40、将s所指字符串中ASCCII值为奇数的字符删除,剩余 字符形成的新串放在t所指数组中void fun(char *s, char t) int i,j=0,n;n=strlen(s);for(i=0
16、;ivn;i+)if(si%2=0) t j=si;j+;tj=O;42、 删除一维数组中所有相同的数使之只剩一个。 数组中的 数已按由小到大的顺序排列函数返回删除后数组的数据。int fun(int a, int n) int i,j=1;for(i=1;in) while(* p) ai=*( p+k-n);i+; P+;ai=0;46、 将两个两位数的正整数void fun(int a, int b, long *c)*c=a/10+(b/10)*10+(a%10)*100+(b%10)*1000;47、 将一个数字字符串转换为一个整数。答案:ong fun ( char *p) lon
17、g n=0;int flag=1;if(*p=-)p+;flag= -1;else if(*p=+)P+;while(*p!=0)n=n*10+* p-0;P+;return n*flag;48、 求Fibonacc数列中大于t的最小的数,结果由函数返回。Fibonacc 数列F( n)定义为int fun( int t) int f0 = 0, f1 = 1, f ;do f = f0 + f1 ;f0 = f1 ;f1 = f ; while(f t);return f ;49、 把低于平均分的学生数据放入 b所指的数组中低于平均分的学生人数通过形参 n返回,平均分通过函数值返回doubl
18、e fun( STREC *a, STREC *b, int *n ) int i,j=0;double av=;for(i=0;iN;i+)av=av+ai.s;av=av/N;for(i=0;iN;i+)if(ai.s=a&ssin)while(* P&P vt+n+1) ai=* p;i+; P+;ai=0;53、 将a,b两个正整数合并成一个新的整数放在 c中。合并 方式:将a中的十位和个位数依次放在变量 c的十位和千位 上,b中的十位和个位数依次放在变量 c的百位和个位上。void fun(int a, int b, long *c) *c=b%10+(a/10)*10+(b/10)
19、*100+(a%10)*1000;54、 将a,b两个正整数合并成一个新的整数放在 c中。合并 方式:将a中的十位和个位数依次放在变量 c的千位和十位 上, b中的十位和个位数依次放在变量 c的十位和个位上。void fun(int a, int b, long *c)*c=b%10+(a%10)*10+(b/10)*100+(a/10)*1000;55、 把指定分数范围内的学生数据放在 b所指的数组中,分 数范围内的学生人数由函数值返回。int fun( STREC *a,STREC *b,int l, int h ) int i,j=0;for(i=0;i=l&ai.s=h)bj+=ai;return j;56、 将s所指字符串中ASCII码值为偶数的字符删除,串中 剩余字符形成一个新串放在 t所指的数组中。void fun(char *s, char t) int i=0;for(;*s!=0;s+)if(*s%2=1)ti+=*s;ti=0;57、 找出成绩最高
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1