您的当前位置:首页正文

全国计算机二级C考试题库(程序设计部分)

2023-07-07 来源:一二三四网
1、找出2xM整型二维数组中最大元素的值,并将此值返回调

int fun (int a[][M]) {

int i,j,max=a[0][0]; for(i=0;i<2;i++) for(j=0;j2、根据以下公式求π值。

double fun ( double eps) { double s=0.0,s1=1.0; int n=0;

while(s1>=eps)

{ s=s+s1;

s1=s1*n/(2*n+1); n++; }

return 2*s; }

3、求出1~1000之间能被7或11整除但不能同时被7和11整除的所有整数,并将其放在a所指的数组中,通过n返回这些数的个数。

void fun (int *a, int *n) { int i,j=0;

for(i=1;i<=1000;i++)

if((i%7==0||i%11==0)&&i%77!=0) a[j++]=i; *n=j; }

4、删除字符串中所有*号。 void fun( char *a ) { int i,j=0;

for(i=0;a[i]!='\\0';i++) if(a[i]!='*') a[j++]=a[i]; a[j]='\\0'; }

5、实现两个字符串的连接(不要同时使用库函数),即把p2所指的字符串连接到p1所指的字符串的后面。 void fun(char p1[], char p2[]) {

int i,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成员中。 void fun(STREC *a) { int i;

a->ave=0.0;

for(i=0;ia->ave=a->ave+a->s[i]; a->ave/=N; }

7、n名学生的成绩已在主函数中放入一个带头结点的链表结构中,h指向链表的头结点。求出平均分,并由函数值返回 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、将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过K返回。

void fun( int m, int *k, int xx[] ) { int i,j,n=0; for(i=4;i9、求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=0.0;

for(i=0; i11、学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,求最高的学生数据放在b所指的数组中。注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。

int fun( STREC *a, STREC *b ) { int i,j=0,max=a[0].s; for(i=0;iif(max12、除了字符串前导的*号之外,将串中其他*号全部删除。 void fun( char *a ) { int i=0; char *p=a;

while(*p&&*p=='*') { a[i]=*p; i++; p++; }

while(*p)

{ if(*p!='*')

{a[i]=*p;i++;} p++; }

a[i]='\\0'; }

13、统计在tt所指的字符串中’a’到’z’26个小写字母给出现的次数,并依次放在pp所指数组中。 void fun(char *tt, int pp[]) { int i;

for(i=0;i<26;i++) pp[i]=0;

for(;*tt!='\\0';tt++)

if(*tt>='a'&&*tt<='z') pp[*tt-'a']++; }

14、将字符串尾部的*号全部删除,前面和中间的*号不动。 void fun( char *a ) { while(*a!='\\0') a++;

a--; while(*a=='*') a--; *(a+1)='\\0'; } 15、比较字符串的长度,函数返回较长的字符串,如果相同,则返回第一个字符串。

char *fun ( char *s, char *t) { int i,j;

for(i=0;s[i]!= '\\0';i++); for(j=0;t[j]!= '\\0';j++); if(i<=j)

return t; else

return s;}

16、学生的记录由学号成绩组成,N名学生的数据已放入主函数中的结构体数组s中,函数返回该学生的学生数据,指定的学号在主函数中输入。若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数数值返回。 STREC fun( STREC *a, char *b ) {int i;

STREC str={\"\\0\ for(i=0;iif(strcmp(a[i].num,b)==0) str=a[i]; return str; }

17、将s所指字符串中除下标为偶数同时ASCII码值也为偶数的字符外,其余的全部删除字符串中剩余的字符所形成的新串放在t数组中。 void fun(char *s, char t[])

{

int i,j=0;

for(i=0;s[i]!='\\0';i++)

if(i%2==0 && s[i]%2==0) t[j++]=s[i]; t[j]='\\0'; }

18、利用下面的简单迭代方法求方程cos(x)-x=0的一个实根s。

double fun()

{ double x0,x1;

x1=0.0;

do {

x0=x1; x1=cos(x0);

}while(fabs(x0-x1)>=1e-6); return x1;

}

19、将字符串中的前导*号全部移到字符串尾部。 void fun( char *a ) { int i=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';}

20、N名学生的数据已放入主函数中的结构体数组中,把分数最低的学生数据放入b所指的数组中。 int fun( STREC *a, STREC *b ) {int i,j=0,min=a[0].s; for(i=0;ia[i].s)

min=a[i].s; /*找出最小值*/ for(i=0;ib[j++]=a[i]; /*找出成绩与min相等的学生的记录,存入结构体b中*/ return j; }

21、计算

double fun( int m ) { int i;

double s=0.0; 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;i23、将s所指字符串中下标为偶数的字符删除,剩余字符形成的新串放在t所指数组中

void fun(char *s, char t[]) { int i,j=0,k=strlen(s); for(i=1;i24、将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已指向字符串最后的一个字母。 void fun( 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名学生的数据已放入主函数中的结构体数组中,按分数降序排列学生的记录,高分在前,低分在后。 void fun( STREC a[] ) { int i,j; STREC t;

for(i=1;i{t=a[j];a[j]=a[j+1];a[j+1]=t;} }

27、N名学生的数据已放入主函数中的结构体数组中,把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。 double fun( STREC *a, STREC *b, int *n ) {

int i;

double av=0.0; *n=0;

for(i=0;iav=av/N; for(i=0;i{ b[*n]=a[i];*n=*n+1;} return av; }

28、将1~m之间(含m)能被7或11整除的所有整数放在数组a中,并通过n返回这些数的个数。 void fun ( int m, int *a , int *n ) { int i,j=0;

for(i=1;i<=m;i++)

if(i%7==0||i%11==0) a[j++]=i; *n=j; }

29、将字符串中的前导*号全部删除,中间和尾部的*号不删除。

void fun( char *a )

{ char *p=a;

while(*p=='*') p++; for(;*p!='\\0';p++,a++) *a=*p; *a='\\0'; }

30、N名学生的成绩已在主函数中放入一个带有头结点的链表结构中,h指向链表的头结点。找出学生的最高分。 double fun( STREC *h ) { double max=h->s; while(h!=NULL)

{if(maxs) max=h->s; h=h->next; }

return max; }

30、找出一维整型数组元素最大的值及其所在的下标,并通过形参传回。主函数中x是数组名,n是x数据个数,max存放最大值,index存放最大值所在元素的下标。 void fun(int a[],int n, int *max, int *d) { int i; *max=a[0]; *d=0;

for(i=0;i{*max=a[i];*d=i;} }

31、将s所指字符串中除了下标为奇数同时ASCII值也为奇数的字符之外,其余的所有字符全部删除,串在剩余字符所形成的一个新串放在t所指的数组中。 void fun(char *s, char t[]) { int i,j=0,n; n=strlen(s); for(i=0;iif(i%2!=0&&s[i]%2!=0) {t[j]=s[i]; j++; }

t[j]='\\0'; }

32、实现B=A+’A’,即将矩阵A加上A的转置,存放在矩阵B中。

void fun ( int a[3][3], int b[3][3]) { int i,j;

for(i=0;i<3;i++) for(j=0;j<3;j++)

b[i][j]=a[i][j]+a[j][i]; }

33、将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。

void fun(int (*s)[10],int *b,int *n,int mm,int nn)

{ int i,j;

for(j=0;jb[*n]=*(*(s+i)+j); *n=*n+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 a[M][N],char *b) { int i,j,k=0;

for(i=0;ifor(j=0;a[i][j]!='\\0';j++) b[k++]=a[i][j]; b[k]='\\0'; }

36、删除一个字符串中指定下标的字符。a指向原字符后的字符串存放在b所指的数组中,n中存指定的下标。 void fun (char a[], char b[], int n) { int i,k=0;

for(i=0;a[i]!='\\0';i++) if(i!=n) b[k++]=a[i]; b[k]='\\0'; }

37、移动一维数组中的内容,若数组中有n个整数,要求把下标从0~p(含p,p小于等于n-1)的数组元素平移到数组的最后。

void fun(int *w, int p, int n) { int x,j,ch;

for(x=0;x<=p;x++) { ch=w[0]; for(j=1;jw[j-1]=w[j]; }

w[n-1]=ch; } }

38、将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。

void fun(char (*s)[N],char *b) { int i,j,k=0;

for(i=0;i39、计算

float fun(int n) { int i,s1=0; float s=0.0;

for(i=1;i<=n;i++) {s1=s1+i; s=s+1.0/s1; }

return s; }

40、将s所指字符串中ASCCII值为奇数的字符删除,剩余字符形成的新串放在t所指数组中 void fun(char *s, char t[]) { int i,j=0,n; n=strlen(s);

for(i=0;it[j]='\\0'; }

42、删除一维数组中所有相同的数使之只剩一个。数组中的数已按由小到大的顺序排列函数返回删除后数组的数据。 int fun(int a[], int n) { int i,j=1;

for(i=1;iif(a[j-1]!=a[i]) a[j++]=a[i]; return j; }

43、除了字符串前导和尾部的*号外,将串中其他的*号全部删除。

void fun( char *a, char *h,char *p ) { int i=0; char *q=a; while(q{ a[i]=*q; q++;i++;} while(q{ if(*q!='*') { a[i]=*q; i++; } q++; }

while(*q)

{ a[i]=*q; i++; q++;} a[i]='\\0'; }

44、将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; }

45、使字符串的前导*号不得多于n个,若多于n个,则删除多余的*号,若少于或等于n个,则不做处理,字符串中间和尾部的*号不删除。

void fun( char *a, int n ) { int i=0; int k=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数的十位和千位上。 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) { long 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返回,平均分通过函数值返回 double fun( STREC *a, STREC *b, int *n ) { int i,j=0; double av=0.0; for(i=0;iav=av/N; for(i=0;iif(a[i].s50、将ss所指字符串所有下标为奇数位上的字母转换为大写。

void fun ( char *ss ) { int i;

for(i=0;ss[i]!='\\0';i++)

if(i%2==1&&ss[i]>='a'&&ss[i]<='z') ss[i]=ss[i]-32; }

51、将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; }

52、使字符串中尾部的*号不多于n个,若多于n个,则删除多余的*号,若少于或等于n个,则不做任何操作,字符中间的*不删除。

void fun( char *a,int n ) { int i=0,k=0; char *p, *t;

p=t=a; while(*t) t++;

t--; while(*t=='*') {k++;t--;} if(k>n)

{while(*p&&pa[i]='\\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)*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;iif(a[i].s>=l&&a[i].s<=h) b[j++]=a[i]; return j; }

56、将s所指字符串中ASCII码值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。

void fun(char *s, char t[]) { int i=0;

for(;*s!='\\0';s++) if(*s%2==1) t[i++]=*s; t[i]='\\0'; }

57、找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)

fun(STU a[], STU *s) { int i;

*s=a[0]; for(i=0;is*s=a[i]; }

58、定义了N x N的二维数组,使数组左下办三角元素中的值乘以n。

void fun(int a[ ][N], int n) { int i,j;

for(i=0;ifor(j=0;j<=i;j++)

a[i][j]=a[i][j]*n; }

59、定义了N x N的二维数组,使数组左下办三角元素中的值全部置成0.

void fun (int a[][N]) { int i,j;

for(i=0;i60、请编一个函数void fun(int tt[M][N]),tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp所指的一维数组中。

void fun(int tt[M][N],int pp[N]) { int i,j,max; for(j=0;jmax=tt[0][j]; for(i=0;imax) max=tt[i][j]; pp[j]=max; } }

61、w是一个大于10的无符号整数,若w是n(n》2)位的整数,则函数求出w的后n-1位的数作为函数值返回

unsigned fun(unsigned w) { int n=1,j,s=1; unsigned t; t=w; while(t>=10) { t=t/10; n++; } for(j=1;j62、请编一个函数fun(char*s),该函数的功能是:把字符串中的内容逆置。

void fun(char*s) { char ch; int i,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--;

}

}

63、从字符串中删除指定的字符。同字母的大、小写按不同字符处理

void fun( char s[],int c) { int i=0; char *p; p=s;

while(*p) {

if(*p!=c) {

s[i]=*p; i++; }

p++; }

s[i]='\\0'; }

64、对长度为7个字符的字符串,除首、尾字符外,将其余5个字符安ASCII码降序排列。

void fun(char *s,int num) { char ch ; int i, 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 ; } }}

65、统计一个长度为2的字符串在另一个字符串中出现的次数。

int fun(char *str, char *substr) { int i,j=0;

for(i=0;str[i]!='\\0';i++)

if(str[i]==substr[0]&&str[i+1]==substr[1]) j++; return j; }

66、计算并输出给定整数n的所有因子(不包括1与自身)之和。规定n的值不大于1000.

int fun(int n) { int s=0,i;

for(i=2;i<=n-1;i++) if(n%i==0) s+=i; return s; } 67、计算

double fun(int n)

{ double t,sn=1.0; int i,j;

for(i=1;i<=n;i++) {

t=1.0;

for(j=1;j<=i;j++) t*=j; sn+=1.0/t; } return sn; }

68、计算并输出x<0.97时,如下多项式的值,直到

为止。

double fun(double x)

{ double s1=1.0,p=1.0,sum=0.0,s0,t=1.0; int n=1; do { s0=s1; sum+=s0; t*=n; p*=(0.5-n+1)*x; s1=p/t; n++; }while(fabs(s1-s0)>=1e-6); return sum; }

69、计算并输出给定10个数的方差,其中 double fun(double x[10])

{ double x1=0.0,s=0.0; int i;

} return sum;}

73、计算并输出n(包括n)以内所有能够被5或9整除的自然数的倒数之和。

double fun(int n) { int i;

double sum=0.0;

for(i=1;i<=n;i++) if(i%5==0||i%9==0) sum+=1.0/i; return sum; }

74、计算并输出3~n之间所有素数的平方根之和。 double fun(int n) { int m,k,i; double s=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);

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); return sqrt(s/10); }

70、计算并输出给定数组(长度为9)中相邻两个元素的平均值的平方根之和。

double fun(double x[9]) {double sum=0.0; int i,j=1; for(i=0;i<9;i++) if(j<=8) { sum+=sqrt((x[i]+x[i+1])/2.0);j++; } return sum; }

71、计算并输出下列多项式值 double fun(int n) { int i;

double s=0.0; for(i=1;i<=n;i++)

s=s+(1.0/(2*i-1)-1.0/(2*i)); return s; } 72、计算并输出多项式值

double fun(int n)

{ double sum=0,tmp=1; int i; for(i=1;i<=n;i++) { tmp=tmp*i; sum+=1.0/tmp;

}

return s;} 75、计算并输出

double fun(int n) { int i;

double s=0.0,s1=0.0; for(i=1;i<=n;i++) {s1=s1+pow(i,0.5); s=s+s1; }

return s;}

76、统计一行字符串中单词个数,作为函数值返回。字符串在主函数中输入,规定所有单词有小写字母组成,单词之间有若干个空格隔开,一行的开始没有空格。

int fun(char *s) { int i,j=0;

for(i=0;s[i]!='\\0';i++)

if(s[i]!=' '&&(s[i+1]==' '||s[i+1]=='\\0')) j++;

return j; }

77、找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。

fun(STU a[], STU *s) { int i;

*s=a[0];

for(i=0;is>a[i].s) *s=a[i];}

78、定义N x N二维数组,并在主函数中自动赋值。使数组右上办三角元素中的值乘以m。

void fun(int a[][N], int m) { int i,j;

for(j=0;ja[i][j]=a[i][j]*m; }

79、定义N x N二维数组,并在主函数中自动赋值。求出数组周边元素的平均值并作为函数值返回主函数的s

double fun (int w[][N]) { int i,j,k=0; double av=0.0;

for(i=0;iif(i==0||i==N-1||j==0||j==N-1) {av=av+w[i][j]; k++; }

return av/k; }

80、求出二维数组周边元素之和,作为函数值返回。 int fun( int a [M][N]) { int i,j,sum=0; for(i=0;iif(i==0||i==M-1||j==0||j==N-1) sum=sum+a[i][j]; return sum; }

81、使变量h中的值保留两位小数,并对第三位进行四舍五入(规定h中的值为正数) float fun (float h ) { long t;

t=(h*1000+5)/10; return (float)t/100; }

82、实现矩阵(3行、3列)的转置(即行列互换)

void fun (int array[3][3]) { int i,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; }}

83、int fun(int lim,int aa[MAX])求出小于或等于lim的所有素数并放在aa数组中,并返回所求出的素数的个数。

int fun(int lim, int aa[MAX]) { int i,j,k=0;

for(i=2;i<=lim;i++) { for(j=2;jif(i%j==0) break; if(j>=i)

aa[k++]=i; }

return k;}

84、从传入的num个字符中找出最长的一个字符串,通过形参指针max传回该串地址(用****作为结束输入的标识) char *fun(char (*a)[81], int num, char *max) { int i=0; max=a[0];

for(i=0;iif(strlen(max)if(*p!=' ') {

str[i]=*p; i++; } p++; }

str[i]='\\0'; }

86、判断字符串是否为回文,若是,则函数返回1,主函数中输出”YES”,否则返回0,主函数输出”NO”。 int fun(char *str)

{ int i,n=0,fg=1; char *p=str; while (*p) {

n++; p++; }

for(i=0;ifg=0; break; }

return fg; }

87、将M行N列的二维数组中的数据,按行的顺序依次放到一维数组中,一维数组中数据的个数存放在形参n所指的存储单元中。

void fun (int (*s)[10], int *b, int *n, int mm, int nn)

{ int i,j,k=0;

for(i=0;i88、将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,s所指串中剩余的字符形成的新串放在t所指的数组中。

void fun(char *s, char t[]) { int i, j = 0 ;

for(i = 0 ; i < strlen(s) ; i++) if(!((i % 2) ==0 && (s[i] % 2))) t[j++] = s[i] ; t[j] = 0 ;}

89、将ss所指字符串所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换) void fun(char *ss) { int i;

for(i=0;ss[i]!='\\0';i++)

if(i%2==1&&ss[i]>='a'&&ss[i]<='z') ss[i]=ss[i]-32; }

90、将a,b中的两个正整数合并形成一个新的整数放在c中。合并方式:将a中的十位和个位数依次放在变量c的十位和千位上,b中的十位和个位数依次放在变量c的个位和

百位上。

void fun(int a, int b, long *c)

{*c=(a%10)*1000+(b%10)*100+(a/10)*10+(b/10); } 91、m个人的成绩存放在score数组中,将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。

int fun(int score[],int m, int below[]) { int i,j=0; float av=0.0; for(i=0;iav=av+score[i]/m; for(i=0;iif(score[i]92、求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。

void fun (int x, int pp[], int *n) { int i,j=0;

for(i=1;i<=x;i=i+2) if(x%i==0) pp[j++]=i; *n=j; }

93、将大于整数m且紧靠m的k个素数存入所指的数组中。

void fun(int m,int k,int xx[]) { int i,j,n;

for(i=m+1,n=0;n=i) xx[n++]=i; }}

94、求出数组的最大元素在数组中的下标并存放在k所指向的存储单元中。

int fun(int *s,int t,int *k) { int i;

*k=0; for(i=0;iif(s[*k]95、根据以下公式求p的值,结果由函数值带回。m与n为两个正整数且要求m>n。 long jc(int m) { long s=1;

int i ;

for(i=1;i<=m;i++) s=s*i ; return s;}

float fun(int m, int n) {

float p;

p=1.0*jc(m)/jc(n)/jc(m-n) ; return p;}

96、求小于形参n同时能被3与7整除的所有自然是之和的平方根,并作为函数值返回。 double fun( int n)

{ double sum=0.0; int i;

for(i=21; i<=n; i++)

if((i % 3==0) && (i % 7==0)) sum+=i; return sqrt(sum); } 97、计算并输出下列多项式的值 double fun(int n) { int i;

double s=0.0; for(i=1;i<=n;i++)

s=s+1.0/(i*(i+1)); return s;} 98、计算下列级数和。

double fun(double x, int n) { int i;

double s=1.0,s1=1.0; for(i=1;i<=n;i++) {s1=s1*i;

s=s+pow(x,i)/s1; }

return s;}

99、移动字符串中的内容,移动的规则是把第1~m个字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。

void fun (char *w,int m) {int i,j; char t;

for(i=1;i<=m;i++) {t=w[0];

for(j=1;w[j]!='\\0';j++) w[j-1]=w[j]; w[j-1]=t; }}

100、统计各年龄段的人数。N个年龄通过调用随机函数获得,并放入主函数的age数组中。要求函数把0~9岁年龄段的人数放在d[0]中,把10~19岁年龄段的人数放在d[1]中,把20~29岁年龄段的人数放在d[2]中,依次类推,把100岁(含100岁)以上年龄的人数都放在d[10]中。结果在主函数中输出。

void fun(int *a, int *b) { int i,j;

for(j=0;j=100)

b[10]++; else

b[a[i]/10]++; } double rnd()

{ static t=29,c=217,m=1024,r=0; r=(r*t+c)%m;

return((double)r/m);}

101、统计s所指字符串中的数字字符个数,并作为函数值返回。

int fun(char *s) { int n=0; char *p; for(p=s;*p!='\\0';p++) if((*p>='0')&&(*p<='9')) n++; return n;}

102、查找x在s所指数组中下标的位置,并作为函数值返回,若x不存在,则返回-1.

int fun( int *s, int x) { int i; for(i=0;ireturn -1;}

103、将形参s所指字符串放入形参a所指的字符数组中,使a中存放同样的字符串。

void fun( char *a , char *s) { while(*s!='\\0') { *a=*s; a++; s++; } *a='\\0';}

104、将一个数字字符串转换成与其面值相同的长整型数组。可调用strlen函数求字符串的长度。 long fun( char *s )

{ int i,sum=0,len; len=strlen(s); for(i=0;i105、将一组得分中,去掉一个最高分和一个最低分,然后求平均值,并通过函数返回。函数形参a指向存放得分的数组,形参n中存放得分个数(n>2) double fun(double a[ ] , int n)

{ double sum=0,max,min;int i; max=min=a[0]; for(i=0;iif(maxa[i])min=a[i]; } sum=sum-max-min; return(sum/(n-2));}

106、将ss所指字符串中所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换) void fun(char *ss) { int i;

for(i=0;ss[i]!='\\0';i++) if(i%2==1&&ss[i]>='a'&&ss[i]<='z') ss[i]=ss[i]-32; }

107、求小于形参n同时能被3与7整除的所有自然是之和的平方根,并作为函数值返回。 double fun( int n)

{ double sum=0.0; int i;

for(i=21; i<=n; i++)

if((i % 3==0) && (i % 7==0)) sum+=i; return sqrt(sum); }

108、请编写函数fun,它的功能是:求出能整除形参x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。

例如,若x中的值为:35,则有4个数符合要求,它们是:1,5,7,35。

void fun ( int x, int pp[], int *n ) { int i,k,j = 0 ; for(i=1;i<=x;i+=2)

{if((x%i)==0) pp[j++] =i; *n=j ;}

for(i=0;ipp[k])

{x=pp[i]; pp[i]=pp[j]; pp[j]=x;} }

因篇幅问题不能全部显示,请点此查看更多更全内容