怎样在我的世界做汽车视频网站,网站建设具备知识技能,泉州网站建设解决方案,群晖手动安装wordpress一、 数字题
1、 将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是#xff1a;将a数的十位和个位依次放在c个位和十位上#xff0c;b的十位和个位依次放在c的百位和千位上。如当a16,b35,则c5361
Void fun (int a,int b,long*c)
{*c(b%10)*1000(b/10)*100(…一、 数字题
1、 将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是将a数的十位和个位依次放在c个位和十位上b的十位和个位依次放在c的百位和千位上。如当a16,b35,则c5361
Void fun (int a,int b,long*c)
{*c(b%10)*1000(b/10)*100(a%10)*10a/10;}
2、 将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是将a数的十位和个数依次放在c数的千位和十位上b数的十位和个数依次放在c数的百位和个位上。例如当a45,b12,调用该函数后c4152。
Void fun (int a,int b,long *c)
{*c(a/10*1000(b/10)*100(a%10)*10(b%10);}
3、 将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是将a数的十位和个位数依次放在c数的个位和百位上b数的十位和个位数依次放在c数的千位和十位上。例如当a45,b12调用该函数后c1524
Void fun (int a,int b,long*c)
{*c(b/10)*1000(a%10)*100(b%10)*10(a/10);}
4、 将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是将a数的十位和个位数依次放在c数的十位和千位上b数的十位和个位数依次放在c数的个位和百位上。例如当a45,b12调用该函数后c5241。
Void fun(int a,int b,long*c)
{*ca%10*1000b%10*100a/10*10b/10;}
5、 将两个两位数的正整数a、b合并形成一个整数放在c中。合并方式是将a数的十位和个位数依次放在c数的千位和十位上b数的十位和个位数依次放在c数的个位和百位上。例如当a45,b12,调用该函数后c4251。
Void fun (int a,int b,long *c)
{*ca/10*1000b%10*100a%10*10b/10;}
6、 将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是将a数的十位和个位数依次放在c数的个位和百位上b数的十位和个位数依次放在c数的十位和千位上。例如当a45,b12,调用该函数后c2514。
Void fun (int a,int b,long *c)
{*c(b%10*1000(a%10)*100(b/10)*10(a/10); }
7、 将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是将a数的十位和个位数依次放在c数的百位和个位上b数的十位和个位数依次放在c数的千位和十位上。例如当a45b12调用该函数后c1425。
Void fun (int a,int b,long*c)
{*c(b/10)*1000(a/10)*100(b%10)*10(a%10);}
8、 将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是将a数的十位和个位数依次放在c数的百位和个位上b数的十位和个位数依次放在c数的十位和千位上。例如当a45b12调用该函数后c2415.
Void fun(int a,int b,int*c)
{*c(b%10)*1000(a/10)*100(b/10)*10(a%10);}
9、 将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是将a数的十位和个位数依次放在c数的十位和千位上b数的十位和个位数依次放在c数的百位和个位上。例如当a45时b12调用该函数后c5142。
Void fun(int a,int b,int*c)
{*ca%10*1000b/10*100a/10*10b%10;}
10、 求n以内不包括n同时能被5与11整除的所有自然数之和的平方根s并作为函数值返回。如n为1000时函数值应为s96.979379。
double fun(int n)
{double s0.0;int i;
for(i0;in;i)
If(i%5 0i%11 0)ssi;
ssqrt(s);return s;}
11、 计算并输出给定整数n的所有因子不包括1与自身的平方和规定n的值不大于100。如n的值为56则输出为sum1113。
long fun(int n)
{int i;long s0;
for(i2;in-1;i)
if(n%i 0)si*i;return s;}
12、 求n以内不包括n同时能被3与7整除的所有自然数之和的平方根s并作为函数值返回。若n为1000时s153.909064
double fun(int n)
{double s0;int i;
for(i0;in;i )
if (i%3 0i%7 0)s1;ssqrt(s); return s;}
13、 计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。如若给n输入20后则输出为s0.583333.
double fun(int n)
{int i;double sum0;
for(i1;in;i )
If(i%5 0||i%9 0)sum1.0/i; return sum;}
14、 计算并输出3到n之间所有素数的平方根之和。如若给n输入100后则输出为sum148.874270
double fun (int n)
{int m,k,i;double s0;
for(m3;mn;m){kaqrt(m);
for(i2;ik;i )
If(m%i 0)break;
If(ik1)ssqrt(m);}return s:}
15、 判断整数X是否是同构数。若是同构数函数返回1否则返回0。
int fun(int x)
(if(x10)return (! ((x*x-x)%10));
else return (! ((x*x-x)%100));}
106、用筛选法求出100之内的素数
Void fun (int *pt)
{int i,j,flag;*pt2;*pt;
for(i3;i100;i){flag1;
for(j2;ji;j )
If(i%j 0)flag0;
If(flag){*pti;*pt;}}*pt0;}
16、 返回小蚕需要多少天才能爬到树顶树高k厘米小蚕每天白天向上爬m厘米每天晚上因睡觉向下滑n厘米爬到顶后不再下滑nmk。例如若分别输入253、71、29给k、m、n则输出结果为6。
int day(int k,int m,int n)
{int days,height0;
for(days1;;days){heightm;if(heightk)return days;height-n;}}
17、 求Fibonacci数列中小于t的最大的一个数结果由函数返回。其中数列Fn的定义为F(0)0,F(1)1,F(n)F(n-1)F(n-2)例如t1000时函数值为987。
int fun(int t)
{int a1,b1,c0,i;
do{cab;ab;bc;}while(ct);
ca;return c;}
18、 求Fibonacci数列中大于T的最小的一个数结果由函数返回。其中Fibonacci数列Fn的定义为F00F11FnF(n-1)F(n-2 ) 例如当t1000时函数值为1597。
int fun(int t)
{int a1,b1,c0,i;
for(i4;it;i )
{if(ct) {cab;ab;bc; }
else break;}return c;}
19、 W是一个大于10的无符号整数若w是n(n≥2)位的整数则函数求出w的后n1位的数作为函数值返回。例如w值为5923则函数返回923若w值为923则函数返回23。
unsigned fun(unsigned w)
{if(w10000) return w%10000;
If(w1000) return w%1000;
If(w100) return w%100;
Ifw10return w%10;}
20、 对变量h中的值保留两位小数并对第三位进行四舍五入规定h中的值为正数。例如若h值为8.32433则函数返回8.32若h值为8.32533则函数返回8.33。
float fun (float h)
{long t;t(h*10005)/10;
Return (float)t/100;}
21、 利用以下所示的简单迭代方法求方程cos(x)-x0的一个实根。Xn-1cos(xn)迭代步骤如下1取x1初值为0.02x0x1把x1的值赋给x03x1cos(x0),求出一新的x1;4若x0-x1的绝对值小于0.000001则招待步骤(5),否则执行步骤25所求z1就是方程cos(x)-x0的一个实根作为函数值返回。输出结果Root0.739085
Root0.739085.
float fun0
{float x10.0,x0; do{x0x1;x1cos(x0);}while(fabs(x0-x1)le-6);
Return x1;}
22、 根据以下公式计算s,计算结果通过形指针sn传回s通过形参传入。SN1/1-1/31/5-1/7……(-1)^n/(2n-1)例如若n的值为11时S0.764601
void fun(float*sn,int n)
{int i;float s1;*sn0;
for(i0;in;i)
{*sn*sns*(1.0/(2*i1));s-s;}}
23、 S11/21/31/4……1 2n-11/2n如若给n输入12后 则输出为S3.775958。n的值要求大于1但不大于100。
double fun(int n)
{int i;double s0.0;
for(i1;in;i)
ss(1.0/(2*i-1)1.0/(2*1));return s;}
24、 计算s(1-1n(1)-1n(2)- (3)-…1nm)2s作为函数值返回。在C语言中可调用log(n)函数 求ln(n)。log函数的引用说明是double log( double x).如若 的值为15则函数值为723。57080
double fun(int m)
{int i;double s1.0;
for(i1;im;i)ss-log(i);
return(s*s);}
25、 计算下列级数和值由函数值返回。S1-xx2/2!-x2/3!……(-1* n/n!.如当n15,x0.5时值为 0.606531.
Double fun(double x,int n)
{int i,j1;double s1.0,s11.0;
For(i1;in;i){j-1*j;s1s1*i;
Ssj*pow(x,i)/s1;}return s;}
26、 根据以下公式计算s,计算结果作为函数值返回n通过形参传入。
S11/121/(123)……1/123……n。若n的值为11时值为1.833333。
float fun(int n)
{int i,s10;float s0.0;
for (i1;in;i){s1s1i;
ss1.0/s1;}return s;}
27、 根据以下公式求P的值结果由函数值带回。m与n为两个正数且要求mn。Pm/n!(m-n)! 例如m12,n8时运行结果为495.000000。
float fun (int m int n)
{int i;double p1.0;
for(i1;im;i) pp*i;
for(i1;in;i) pp/i;
for(i1;im-n;i)pp/i;
return p;}
28、 求p的值要求满足精度0.005即某项小于0.005时停止迭代。 p/211/31*2/3*51*2*3/3*5*71*2*3*4/3*5*7*9…1*2*3*…*n/(3*5*7*…*2n1),如果输入精度0.0005则程序输出3.140578。
double fun(double eps)
{double s1.0,s11.0;int n1;while(s1eps){s1s1*n/(2*n1);
sss1;n;}return 2*s;}
29、 S1/1×21/2×3……1/n×(n1)例如当n10时函数值为0.909091。
double fun(int n)
{int i;double s0.0;for(i1;in;i)ss1.0/(i*(i1));return s;}
30、 计算并输出给定10个数的方差。
S[ ∑(xk-x2) ]0.5 其中x2 K1
例如给定的10个数为95.089.076.095.088.072.085.081.090.056.0则输出为S11.730729。
Double fun(double x[10])
{double x10.0,s0.0;int i;
for(i0;i10;i)x1x1x[i];
x1x1/10;
for(i0;i10;i)
s(x[i]-x1)*(x[i]-x1);
return sqrt(s/10);}
31、 S1-1/21/3-1/4…1/2n-1-1/2n。例如若给n输入8后则输入为S0.662872。
double fun(int n)
{int i;double s0.0;
for(i1;in;i)
ss(1.0/(2*i-1)-1.0/(2*i));
Return s;}
32、 计算s(1n(1)1n(2)1n(3)…1n(m))0.5.可调用log(n)函数求ln(n)。若m的值为20则函数值为6.506583。
double fun(int m)
{int i;double s0.0;
for(i1;im;i)sslog(i);
return sqrt(s);}
33、 计算下列和值由函数值返回。S1xx2/2!x3/3!…xn/n!例如当n10,x0.3时函数值为1.349859。
S1xx2/2!x3/3!……xn/n例如当n10x0.3时函数值为1.349859。
double fun(double x,int n)
{int i;double s1.0,s11.0;
for(i1;in;i){s1s1*i;
sspow(x,i)/s1;}return s;}
34、 S1120.5120.530.5…120.530.5…120.530.5…n0.5如若给n输入20后则输出为S534.188884。
double fun(int n)
{int i;double s0.0,s10.0;
for(i1;in;i)
{s1s1pow(i,0.5);sss1;}
return s;}
35、 Sn11/11/21/31/4…1/n如若给n输入15则输出为s2.718282.
double fun(int n)
{double t,sn1.0;int i,j;
for(i1;in;i)
t1.0;for(j1;ji;j)t*j;
sn1.0/t;}return sn;}
36、 计算并输出当x0.97时下列多项 式的值直到[Sn-Sn-1]0.000001为止。
Sn10.5x(0.5*(0.5-1))/2!*x3(0.5*(0.5-1)*(0.5-2))/3!*x3…0.5*0.5-1*0.5-2*…0.5-n1/n!*xn.若给x输入0.21后则输出为s1.100000。
double fun(double x)
{double
S11.0,p1.0,sum0,s0,t1;
int n1;do{s0s1;sums0;t*n;p*(0.5-n1)*x;s1p/t;n;}while(fabs(s1-s0)le-6);return sum;}
二、数组题
37、 求出一个2×M整型二维数组中最大元素的值并将此值返回调用函数。
fun (int a[][M])
{int i,j,maxa[0][0];
for(i0;i2;i)
for(j0;jM;j)
if(maxa[i][j])maxa[i][j];
return max;}
38、 求出一个4×M整型二维数组中最小元素的值并将此值返回调用函数。
fun (int a[][M])
{int i,j,mina[0][0];
for(i0;i4;i)
for(j0;jM;j)
If(mina[i][j])mina[i][j];
Return min;}
39、 求出二维数组每列中最大元素并依次放入PP所指的一维数组中。
void fun(int tt[M][N],int pp[N])
{int i,j,max;
for(j0;jN;j){maxtt[0][j];
for(i0;iM;i)
If(tt[i][j]max)maxtt[i][j];pp[j]max;}}
40、 程序定义了N×N的二维数组给数组周边元素置0值。
fun (int w[][N])
{int i,j;
for(i0;iN;i)
for(j0;jN;j)
if(i 0︳︳i N-1︳︳j 0︳︳jN-1)
W[i][j]0;}
41、 程序定义了N×N的二维数组使数组中第一行元素中的值与倒数第一行元素中的值对调、第二行元素中的值与倒数第二行元素中的值对调、……、其他依次类推。
例如a数组中的值为
0 11 12 7 9
1 9 7 4 5
20 13 18 3 1
14 5 6 8 2
15 9 17 4 1
则返回主程序后a数组中的值应为
15 9 17 4 1
14 5 6 8 2
20 13 18 3 1
1 9 7 4 5
0 11 12 7 9
int fun(int a[][N])
{int i,j,k;
for(i0;iN/2;i)
for(j0;jN;j)
{ka[i][j];a[i][j]a[N-i-1][j];a[N-i-1][j]k;}}
42、程序定义了N×N的二维数组使数组中第一行元素中的值与最后一列元素中的值对调、第二列元素中的值与倒数第二列元素中的值对调、……、其他依次类推。例如a数组中的值为
0 11 12 7 9
1 9 7 4 5
20 13 18 3 1
14 5 6 8 2
15 9 17 4 1
则返回主程序后a数组中的值应为
9 7 12 11 0
5 4 7 9 1
1 3 18 13 20
2 8 6 5 14
1 4 17 9 15
Int fun(int a[][N])
{int i,j,k;
For(i0;iN/2;i)
For(j0;jN;j)
{ka[j][i];a[j][i]a[j][N-i-1];a[j][N-i-1]k;}}
43、下列程序定义了N×N的二维数组并在主函数中自动赋值。编写函数使数字右上半三角元素中的值乘m。例如若m的值为2a数组中的值为 a1 9 2 7
则返回主程序后a数组的值应为
2 18
2 14
int fun(int a[][N],int m)
{int i,j;
for(i0;iN;i)
for(jI;jN;j)a[i][j]*m;}
44、程序定义了N×N的二维数组使数组左下半三角元素中的值加上n。如若n的值为3a数组中值为
a 2 5 4
1 6 9
5 3 7
则返回主程序后a数组中的值应为
5 5 4
4 9 9
8 6 10
fun (int a[][N],int n)
{int i,j;
for(i0;iN;i)
for(j0;ji;j)
a[i][j]a[i][j]n;}
45、下列程序N×N的二维数组 并在主函数中赋值。编写函数求出数组周边元素的平方和并作为函数值返回给主函数中的s。例如若a数组中的值为
a0 1 2 7 9
1 11 21 5 5
2 21 6 11 1
9 7 9 10 2
5 4 1 4 1
则返回主程序后的s值310.
int fun (int w[][N])
{int i,j,k0;int s0;
for(i0;iN;i)
for(j0;jN;j)
if(i 0||iN-1||j 0||j N-1)
ssw[i][j]*w[i][j];return s;}
46、下列程序N×N的二维数组 并在主函数中赋值。求出数组周边元素的平均值并作为函数值返回给主函数中的s。若a数组中的值为 a 0 1 2 7 9
1 9 7 4 5
2 3 8 3 1
4 5 6 8 2
5 9 1 4 1
则返回主程序后的s值应为3.375。 double fun (int w[][N])
{int i,j,k0;double av0.0;
for(i0;iN;i)
for(i0;iN;j)
if(i 0||i N-1||j 0||j N-1)
{avavw[i][j];k;}return av/k;}
47、求出二维数组周边元素之和作为函数值返回。二维数组中的值在主函数中赋予。例如若二维数组中的值为
1 3 5 7 9
2 9 9 9 4
6 9 9 9 8
1 3 5 7 0
则函数值为61。
int fun(int a [M][N])
{int i,j,sum0;
for(i0;iM;i)
for(j0;jN;j)
if(i 0||i M-1||j 0||j N-1)
sumsuma[i][j];return sum;}
48、实现矩阵3行3列的转置即行列互换。例如若输入下面的矩阵
100 200 300
400 500 600
700 800 900
则程序输出
100 400 700
200 500 800
300 600 900
int fun (int array[3][3])
{int i,j,t;
for(i0;i3;i)
for(ji1;j3;j){tarray[i][j];
array[i][j]array[j][i];
array[j][i]t;}}
49、实现BAA’即把矩阵加上A的转置存放在矩阵B中。
输入下面矩阵 1 2 3
4 5 6
7 8 9 其转置矩阵为 1 4 7
2 5 8
3 6 9
则程序输出2 6 10
6 10 14
10 14 18
Void fun(int a[3][3],int b[3][3])
{int i,j;
for(i0;i3;i)
for(j0;i3;j)
b[i][j]a[i][j]a[j][i];}
50、将M行N列的二维数组中的数据按列的顺序依次放到一维数组中例如二维数组中的数据为
33 33 33 33
44 44 44 44
55 55 55 55
则一维数组中的内容应该是
334455334455334455334455。
Void fun(int (*s)[10],int *b,int *n,int ㎜ int m)
{int x,y;
For(x0;xnn;x)
For(y0,ymm;y)
{b[x*mmy]*(s[y]x);(*n);}}
51、将M行N列的二维数组中的数据按行的顺序依次放到一维数组中一维数组中数据的个数存放在形参n所指的存储单元中。若二维数组中的数据为
33 33 33 33
44 44 44 44
55 55 55 55
则一维数组中的内容应该是
333333334444444455555555.
Void fin (int (*s)[10],int*b, int*n, int mm, int m)
{int i,j,k0;
for(i0;imm;i)
for(j0;jnn;j)b[k]s[i][j];
*nk;}
52、求出一个M×N二维数组每行元素的和数并依次放入一个一维数组中传回主函数。例如若有以下二维数组
6 10 2 10 16
17 15 15 8 6
4 18 11 19 12
0 12 1 3 7
则输出44616423
fun (int a[][N],int b[])
{int i,j,sum0,n0,
for(i0;iM;i)
{for(j0;jN;j)suma[i][j];
b[n]sum;sum0;}}
53输出一个如下的n阶方阵。变量n文件c9670503.In中。例如若读入4或5则分别输出1 2 3 4
8 7 6 5
9 10 11 12
16 15 14 13
或
1 2 3 4 5
10 9 8 7 6
11 12 13 14 15
20 19 18 17 16
25 24 23 22 21
Void Mtrx(int)
{int a[M]{0},d0,I,j,k;} *fp;
Fpfopen(“dat52.dat”,”w”);
For(i1;in;i)
{for(j0;jn;j){d;a[j] if(i%2) for(k0;kn;k)
{printf(“%3d” ,
a[k]);fprintf(fp,”%3d”,a[k]);}
else for(kn-1;k0;k--)
{print(“\n”);fprintf(fp,”\n)
Fclose(fp);}
54、求数组的最小元素在数组中下标存放在k所指的存储单元中。如输 234,345,753,134,436,458,100 5,760则输出结果为6100。
int fun(int *s,int t,int )
{inti;*k0;for(i0;it;i)if(s[*k]s[i])*ki;}
55、找出一维数组元素中最大的值和它所在的下标最大值和它所在的下标通过形参传回。数组元素中的值已居主函数中赋予。主函数中x是数组名n是x中的数据个数max存放最大值index存放最大值所在元素的下标。
Void fun(int a[],int n, int*max,int*d)
{int i;*maxa[0];*d0;
for(i0;in;i)
if (*maxa[i]){*maxa[i];*di;}}
56、把20个随机数存入一个数组然后输出该数组中的最小值。
int fun(int list[],int size)
{int x,i;x0;
for(i1;isize;i)
if(list[x]list[i])xi;return x;}
57、将数组xx有n个元素的前k个元素kn移到数组的尾部变为后k个元素但是数组的这两段原前k个元素为一段、另外的n-k个元素为一段中元素的顺序不得改变。例如若输入7和 1 2 3 4 5 6 7再输入5则输出应为6 7 1 2 3 4 5。
Void Move(int n,int xx[],int k)
{int i,j,t;
for(i0;ik;i){txx[0];
for(j1;jn;j)
xx[j-1]xx[j];xx[n-1]t;}}
58、移动一维数组中的内容若数组中有n个整数要求把下标从p到n-1p≤n-1的数组元素平移到数组的前面一维数组中的原始内容为
123456789101112131415P的值为6。移动后一维数组中的内容应为78910101112131415123456。
void fun(int *w,int p,int n)
{int i,j,t;
for(ip;in-1;i){tw[n-1];
for(jn-2;j0;j- -)
W[j1]w[j];w[0]t;}}
59、移动一维数组中的内容若数组中有n个整数要求把下标从0到PP≤n-1的数组元素平移到数组的最后如一维数组中的原始内容应为12345678910101112131415P为3移动后一维数组中的内容应为567891011121314151234。
Void fun(int *w,int p,int n)
{int i,j,t;
For(i0;ip;i){tw[0];
For(j1;jn;j)
w[j-1]w[j];w[j-1]t;}}
60、删去一维数组中所有相同的数使之只剩一个。数组中的数已按由小到大的顺序排列函数返回删除后数组中数据的个数。若一维数组中的数据是
2223445666677899101010删除后数组中的内容应该是2345678910。
Int fun(int a[],int n)
{int i,j1;
for(i1;in;i)
if(a[j-1]!a[i])a[j]a[i];return j;}
61、求出能整除X且不是奇数的各整数并按从小到大的顺序放在PP所指的数组中这些除数的个数通过形参n返回。若X中的值为24则有6个数符合要求它们是24681224。
void fun(int x,int pp[],int*n)
{int i,j0;
For(i2;ix;ii2)
If(x%i 0)pp[j]i;*nj;}
62、求出能整除X且不是偶数的各整数并按从小到大的顺序放在PP所指的数组中这些除数个数通过形参n返回。若X中的值为30,则有4个数符合要求它们是13515。
void fun (int x,int pp[],int*n)
{int i,j0;
for(i1;ix;ii2)
if(x%i 0)pp[j]i;*nj;}
63、将大于整数m且紧靠m的k个非素数存入所指的数组中。如若输入155则应输出1618202122。
void fun(int m,int k,int xx[])
{int i,j,n;
for(im1,n0;nk;i)
for(j2;ji;j)
if(i%j 0){xx[n]i;break;}}
64、求出1到1000之内能被5或13整除、但不能同时被5和13整除的所有整数并将它们放在a所指的数组中通过n返回这些数的个数。
void fun(int *a,int *n)
{int i,j0;
for(i1;i1000;i)
if((i%5 0||i%13 0) i %65 !0)
a[j]i;*nj}
65、求出1到m(含m)之内能被7或11整除的所有整数放在数组a中通过n返回这些数的个数。若传给m的值为50输出7,11,14,21,22,28,33,35,42,44,49
void fun(int m,int *a,int *n)
{int i,j0;
for(i1;im;i)
If(i%7 0||i%11 0)a[j]i;*nj;}
66、求出1到1000之内能被7或11整除的所有整数但不能同时被7和11整除的所有整数并将它们放在a所指的数组中通过a返回这些数的个数。
void fun(int *a,int *n)
{int i,j0;
for(i1;i1000;i)
if((i%7 0||i%11 0)i%77!0)
a[j]i;*nj;}
67、将大于整数m且紧靠m的k个素数存入所指的数组中。例如若输入175则应输出1923293137。
void fun(int m,int k,int xx[])
{int i,j,n;
for(im1,n0;nk;i)
{for(j2;jI;j)if(i%j0)break;
If(ji)xx[n]i;}}
68、求出小于或等于lim的所有素数并放在aa数组中该函数返回所求出的素数的个数。
int fun(int lim,int aa[MAX])
{int i,j,k0;
for(i2;ilim;i)
{for(j2;ji;j)if(i%j 0)break;
if(ji)aa[k]i;}return k;}
69、将所有大于1小于整数m的非素数存入XX所指数组非素数的个数通过K传回。例如输入17则应输出46891012141516。
void fun(int m,int*k,int xx[])
{int i,j,n0;
for(i4;im;i)
{for(j2;ji;j)if(i%j 0)break;
if(ji)xx[n]i;}*kn;}
70、将所有大于1小于整数m的素数存入XX所指数组中系数的个数通过k传回。输入25则应输出2,3,5,7,11,13,17,19,23.
void fun(int m,int*k,int xx[])
{int i,j,t,n0;
for(i2;im;i)
{t1;for(j2;j1;j)
if(i%j 0){t0;break;}
if(t 1)xx[n]i;}*kn;}
71、m个人的成绩存放在score数组中编写函数将高于平均分的分数作为函数值返回将高于平均分的分数放在up所指的数组中。如当score数组中的数据为
243588769054596696时函数返回的人数应该是5up中的数据应为8876906696。
int fun(int score[],int m,int up[])
{int i,j0;float av0.0;
for(i0;im;i)avavscore[i]/m;
for(i0;im;i)
if(score[i]av)up[j]score[i];
return j;}
72、m个人的成绩存放在score数组中编写函数将低于平均分的分数作为函数值返回将低于平均分的分数放在below所指的数组中当score数组中的数据为
10,20,30,40,50,60,70,80,90时函数返回的人数应该是4below中的数据应为10,20,30,40.
int fun(int score[],int m,int below[])
{int i,j0;float av0.0;
for(i0;im;i)
av score[i]
avav/m;
for(i0;im;i)
if(score[i]av)below[j]score[i];
return j;}
73、计算n门课程的平均分计算结果作为函数值返回。若有5门课程的成绩是90.5728061.555则函数的值为71.80
float fun(float *a,int n)
{float av0.0;int i;
for(i0;in;i)avava[i];
Return (av/n);}
74、统计各年龄段的人数。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(j0;jM;j)b[j]0;
for(i0;iN;i)
if(a[i]100)b[10];
else b[a[i]/10];}
75、分别求出数组中所奇数之和以及所有偶数之和。形参n给出数组中数据的个数利用指针odd返回奇数之和利用指针even返回偶数之和。例如数组中的值依次为1923116则利用用指针odd返回奇数之和24利用指针even返回偶数之和8。
fun(int*a,int n,int*odd,int*even)
{int i;*odd*even0;
for(i0;in;i)
if(a[i]%21)*odda[i];
else*evena[i];}
76、删除bb数组中所有值为Y的元素。
void fun(int bb[],int *n,int y)
{int i,pos*n-1;
for(;pos0;pos--)
if(bb[pos] y)
{for(ios;i*n-1;i)
bb[i]bb[i1];(*n)- -;}}
77、求出数组dd中前k个数的小数的部分的和并返回此值。若输入4和101.91、213.87、345.79、420.83则输出3.4。
double Acc(int k,double dd[])
{int i,a;double b,sum0;
for(i0;ik;i){add[i];
bdd[i]-a;resultb;}return sum;}
78、求出数组PP中n个数的整数部分的和并返回此值。若输入4和11.91、23.87、35.79、40.83则输出109.0整数部分的值应小于10的16次方。
Double Pbt(int n,double pp[])
{int i,a;double sum0;
for(i0;in;i){app[i];suma;}
return sum;}
79、计算并输出给定数组长度为9中每相邻两个元素之平均值的平方根之和。例如给定数组中的9个元素依次为12.0、34.0、4.0、23.0、34.0、45.0、18.0、3.0、11.0输出应为S35.951014。
double fun(double x[9])
{int i;double avg0.0,sum0.0;
for(i0;i8;i){avg(x[i]x[i1])/2;
sumsqrt(avg);}return sum;}
三、字符题
80、将字符串ss中所有下标为偶数位置上的字母转化为大写若该位置上不是字母则不转换。若输入abc4Efg,则应输出AbC4EfG.
void fun( char *ss)
{int i;
for(i0;ss[i]!’\0’;i)
{if(i%2 0ss[i]’a’ss[i]’z’)
ss[i]ss[i]-32;}}
81、将ss所指字符串中所有下标为偶数位置的字母转换为小写若该位置上不是字母则不转换。若输入ABC4efG,则应输出aBc4efg.
void fun(char *ss)
{int i;
for(i0;ss[i]!’\0’;i)
{if(i%20ss[i]’A’ss[i]’Z’)
ss[i]ss[i]!32;}
82、将s所指字符串中下标为偶数同时ASCII值也为偶数的字符删除s中剩余的字符形成一个新串放在t所指的数组中。例如若s所指字符串中的内容为“ABCDEFG12345”最后t所指的数组中的内容应是“ABCDEFG135”。
void fun(char *s,char t[])
{int i,slenth,n0;
slenthstrlen(s);
for(i0;islenth;i)
{if(s[i]%20i%20)
else t[n]s[i];}t[n] \0;}
83、将s所指字符串中下标为奇数、同时ASCII值也为奇数的字符删除串中剩余的字符形成一个新串放在t所指的数组中。例如若s所指串中的内容为“ABCDEFG12345”最后t所指的数组中的内容是“ABCDEFG24”。
void fun(char *s,char t[])
{int i,slenth,n0;
slenthstrlen(s);
for(i0;islenth;i)
{if(i%2!0s[i]%2!0);
else t[n]s[i];}t[n]’\0’;}
84、将s所指字符串中下标为奇数同时ASCII值为奇数的字符删除s中剩余的字符形成的新串放在t所指的数组中。例如若s所指字符串中的内容为”ABCDEFG12345”最后t所指的数组中的内容应是“ACEG12345”。
Void fun(char*s,char t[])
{int i,slenth,n0;
slenthstrlen(s);
for(i0;islenth;i)
{if(i%2!0s[i]%20);
else t[n]s[i];}t[n]’\0’;}
85、将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除s中剩余的字符形成的新串放在t所指的数组中。例如若s所指字符串中的内 容为”ABCDEFG12345”则在t所指数组中的内容应是BDF12345。
void fun(char*s,char t[])
{int i,j0,n
strlen(s);
for(i0;in;i)
if(!(i%20s[i]%2!0))
t[j]s[i];t[j]’\0’;}
86、将s所指字符中下标为偶数的字符删除串中剩余字符形成的新串放在t所指数组中。例如当s所指字符串中的内容为ABCDEFGHIJK则在t所指数组中的内容应是BDFHJ.
void fun(char *s,char t[])
{int i,j0,kstrlen(s);
For(i1;ik;ii2)t[j]s[i];t[j]’\0’;}
87、将s所指字符中下标为奇数的字符删除串中剩余字符形成的新串放在t所指数组中。例如当s所指字符串中的内容为siegAHdied,则在t所指数组中的内容应是seAde.
Void fun(char*s,char t[])
{int i,j0,kstrlen(s);
For(i1;ik;ii2)t[j]s[i];t[j]’\0’;}
88、将s所指字符串中ASCII值为偶数的字符删除串中剩余字符形成一新串放在t所指的数组中。例如若 所指字符串中的内容为ABCDEFG12345,最后t所指的数组 内容应是ACEG135。
89、将s所指字符串中ASCII值为偶数的字符删除串中剩余字符形成一新串放在t所指的数组中。若s 所指字符串中的内容为ABCDEFG1234 最后t所指的数组 的内容应是BDF24。
Void fun(char*s,char t[])
{int i,j0,
nstrlen(s);
For(i0;in;i)
If(s[i]%20)
t[j]s[i];t[j]’\0’;}
90、将s所指字符串中除了下标为奇娄同时ASCII值也为奇数的字符外其余的全部删除串中剩余字符所形成的一个新串放在t所指的数组中。若s所指字符串中的内容为ABCDEFG12345最后t所指的数组中的内容应是135。
Void fun(char*s,char t[])
{int i,j0,n;n
strlen(s);
For(i0;in;i)
If(i%2!0s[i]%2!0)
T[j]s[i];t[j]’\0’;}
91、将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外其余的全部删除串中剩余字符所形成的一个新串放在t所指的数组中。若s所指字符串中的内容为ABCDEFG123456最后t所指的数组中的内容应是246。
Void fun(char *s,char t[])
{int i,j0;
for(i0;s[i]!’\0’;i)
if(i%2 0s[i]%2 0)
t[j]s[i];t[j]’\0’;}
92、将s所指字符串中除了下标为偶数、同时ASCII码值为奇数的字符之外其余的所有字符删除串中剩余字符形成的一个新串放在t所指的数组中。例如若s所指字符串中的内容为ABCDEFG12345最后t所指的数组中的内容应是ACEG。
Void fun(char *s,char t[])
{int i,j0;
for (i0;s[i]!’\0’
;i)
{if(i%20s[i]2!0)
t[j]s[i];}t[j]’\0’;}
93、将s所指字符串中除了下标为奇数、同时ASII值为偶数的字符外其余的全部删除串中剩余字符所形成的一个新串放在t所指的数组中。例如若S所指字符串中的内容为edB2A4Dsdg,最后t所指数组中的内容应是d24。
void fun(char*s,char t[])
{int i,j0;
for(i0;s[i]!\0;i)
if(i%2!0s[i]%20)
t[j]s[i];t[j]\0;}
94、除了尾部的*号之外将字符串中其他*号全部删除。形参p已指向字符串中最后一个字母。不得使用字符串函数例如若字符串中的内容为****A*BC*DEF*G******,删除后字符串中的内容应当是ABCDEFG******.
void fun(char *a,char *p)
{char*ta;
for(;tp;t)
if(*t!*)*(a)*t;
for(;*t!\0;t)
*(a)*t;*a\0;}
95、删除字符串中所有的*号不得使用字符串函数。例如若字符串中的内容为****A*BC*DEF*G*******删除后字符串中的内容则应当是ABCDEFG。
void fun(char *a)
{int i,j0;
for(i0;a[i]!\0;i)
if(a[i]!*)a[j]a[i],a[j]\0;}
96、除了字符前导和尾部的*号之外将串中其他*号全部删除。形参h已指向字符串中第一个字母形参P已指向字符串中最后一个字母。不得使用字符串函数。若字符串中的内容为***A*BC*DEF*G********删除后字符串中的内容则应当是****ABCDEFG********。
void fun(char *a,char *h,char *p)
{int i0;char *qa;
while(qh){a[i]*q;q;}
while(qp)
{if(*q!*)a[i]*q;q;}
while(*q){a[i]*q;q;}
a[i]\0;}
97、除了字符串前导的*号之外将串中其他*号全部删除。不得使用字符串函数。例如若字符串中的内容为****A*BC*DEF*G********删除后字符串中的内容则应当是****ABCDEFG。
void fun(char *a)
{int i0;char *pa;
while(*p*p*)
{a[i]*p;p;}
while(*p)
{if(*p!*)a[i]*p;p;}
a[i]\0;}
98、将字符串尾部的*号全部删除前面和中间的*号不删除。例如若字符串中的内容为***A*BC*DEF*G*******删除后的内容则应当是****A*BC*DEF*G。
void fun (char *a)
while(*a!\0)a;a--;
while(*a*)a--;*(a1)\0;}
99、只删除字符串前导和尾部的*号串中字母之间的*都不删除。形参n给出了字符串的长度,形参h给出了字符串中前导*号的个数形参e给出了字符串中最后*号的个数。不得 使用字符串函数例如若字符串中的内容为****A*BC*DEF*G*******删除后字符串中的内容则应当是A*BC*DEF*G。
void fun(char *a,int n,int h,int e)
{int i,j0;
for(ih;in-e;i)
a[i]a[i];a[j]\0;}
100、将字符串中的前导*号全部删除中间和后面的*号不删除。例如若字符串中的内容为****A*BC*DEF*G*******删除后的内容则应当是A*BC*DEF*G*******。
void fun(char *a)
{char *pa;while(*p*p;
for(;*p!0;p,a)
*a*p;*a\0;}
101、使字符串中前部的*号不得多余n个若多余n个则删除多余的*号若少于或等于n个则什么也不做字符串中间和尾部的*号不删除。例如若字符串中的内容为****A*BC*DEF*G*******若n的值为2删除后字符串中的内容则应当是****A*BC*DEF*G*******。n的值为4则字符串中的内容为****A*BC*DEF*G*******。n的值在主函数中输入。不得使用字符串函数。
void fun(char *a,int n )
{int i0,k0;char *p,*t;
pta;while(*t*){k;t;}
if(kn){while(*p){a[i]*(pk-n);
i;p;}a[i]\0;}}
102、使字符串中尾部的*号不得多于n个若多于n个则删除多余*号若少于或等于n个则什么也不做字符串中间和前面的*号不删除。例如字符串中的内容为***A*BC*DEF*G*******若n的值为4删除后字符串中的内容则应当是***A*BC*DEF*G****若n的值为7则字符串中的内容仍为****A*BC*DEF*G****; n的值在主函数中输入。
void fun(char *a,int n)
{int i0,k0;char *p,*t;pta;
while(*t)t;t--;
while(*t*){k;t--;}t;
if(kn){while(*pptn){a[i]*p;
p;}a[i]\0;}
103、将字符串中的前导*号全部移到字符串的尾部。若字符串中的内容为********A*BC*DEF*G****移动后字符串中的内容应当是A*BC*DEF*G***********.
void fun(char *a)
{int i0,n0;char *pa;
while(*p*){n,p;}
while(*p){a[i]*p;p;}
while(n!0){a[i]*;n--;}
a[j]\0;}
104、从字符串中删除指定的字符。同一字母的大、小写按不同字符处理。例如若程序执行时输入字符串为turbo c and borland c从键盘上输入字符n则输出后变为turbo c ad borlad c。如果输入的字符在字符串中不存在字符串照原样输出。
int fun(char s[],int c)
{int i0;char *p;ps;
while(*p){if(*p!c){s[i]*p;p;}
s[i]\0;}
105、删除一个字符串中指定下标的字符。其中a指向原字符串删除后的字符串存放在b 所指的数组中n中存放指定的下标。例如输入一个字符串world然后输入3则调用该函数后的结果为word。
void fun(char a[],char b[],int n)
{int i,k0;
for(i0;a[i]!\0;i)
if(i!n)b[k]a[i];b[k]\0;}
106、删除字符串规定下标开始的n个字符。例如字符串内容为HellolloWorld!,k中的值为5n中的值为3则调用该函数的结果为Hello World!
void fun(char *a,int k,int n)
{int i;ik;
while(a[i-1]!\0)
{a[i]a[in];ii1;}}
107、删除字符串中的数字字符。例如输入字符串48CTYP9E6则输出CTYPE.
void fun(char *s)
{int i,j0;char str[100],*p;ps;
while(*p!\0)}
{if(*p0)||*p9)
str[j]*p;p;}str[j]\0;ps;
for(i0;ij;i)
p[i]str[i];p[i]\0;}
108、删除字符串中的所有空格。如输入asd af aa z67,则输出为asdafaaz67.
int fun (char *str)
{int i,j0;
for(i0;str[i]!\0;i)
if(str[i]!)str[j]str[i];
str[j]\0}
109、把字符串中的内容逆置。例如字符串中原有的字符串为abcdefg,则调用该函数后串中的内容为gfedcba。
fun(char *s)
{char ch;int i0,n;
nstrlen(s)-1;
while(i(n1)/2)
{chs[i];s[i]s[n];s[n]ch;i;n--;}}
110、判断字符串是否为回文若是则函数返回1主函数中输出YES否则返回0主函数中输出NO。回文是指顺读和倒读都一样的字符串。例如字符串LEVEL是回文而字符串123312就不是回文。
int fun(char *str)
{int i,n0,fg1;char *pstr;
while(*p){n;p;}
for(i0;in/2;i)
if(str[i]str[n-1-i]);
else{fg0;break;}return fg;}
111、在字符串中的所有数字字符前加一个$字符。例如输入A1B23CD45则输出为A$1B$2$3CD$4$5.
void fun(char *s)
{charp[80];int i0,j0;
while(s[i]!/0)
{if((s[i]0(s[i]9))
{p[j]$;p[j1]s[i];jj2;}
else {p[j]s[i];jj1;}i;}
p[j]\0;strcpy(s,p);}
112、统计在tt字符串中’a’到’z’26个字母各自出现的次数并依次放在pp所指数组中。例如当输入字符串abcdefgabcdeabc后程序的输出结果应该是33322110000000000000000000。
void fun(char*tt,int pp[])
{int i;
for(i0;i26;i)pp[i]0;
for(;*tt!\0;tt)
if(*tta*ttz)
pp[*tt-a];}
113、统计一行字符串中单词的个数作为函数值返回。一行字符串在主函数中输入规定所有单词由小写字母组成单词之间有若干个空格隔开一行的开始没有空格。
int fun(char *s)
{int i,j0;
for(i0;s[i]!/0;i)
if(s[i]!(s[i1]||s[i1]\0))
i;return j;}
114、统计字符串S在字符串str中出现的次数。例如若输入字符串“12 123 12345”和“23”则应输出2表示字符串“23”在字符串“12 123 12345”中出现了两次。若输入字符串“33333”和“33”则应输出4表示字符串“33”在字符串“33333”出现了四次。
int MySearch(char* str;char* s)
{char *p;int n0;
for(;*str;)
if((pstrstr(str,s))!NULL)
{n;strp1;}
else str;return(n);}
115、统计一个长度为2的字符串在另一个字符串中出现的次数。如假定输入的字符串为asd asasdfg asd as zx67 asd mklo,子字符串为as则应当输出6。
int fun(char *str, char *substr)
{int i,j0;
for(i0;str[i1]!\0;i)
if(str[i]substr[0]str[i1]substr[1])
j;return j;}
116、将一个数字字符串转换为一个整数不得调用字符串函数。例如若输入字符串“-1234”则函数把它转换为整数值-1234。
long fun(char *p)
{long n0;int flag1;
if(*p-){p;flag-1;}
else if(*p)p;
while(*p!\0){nn*10*p-0;p;}
return n*flag;}
117、将字符串tt中的小写字母都改为对应的大写字母其它字符不变并返回修改后的字符串。例如若输入字符串“Ab、cD”则输出字符串“ABCD”。
char* EXUL(char tt[])
{for(;*tt;tt)
if((*tta(*tt z))*tt32;}
118、把字符串中所有的字符前移一个位置串中的第一个字符移到最后。例如原有的字符串为Mn.123xyZ,则调用该函数后串中的内容为n.123xyZM。
fun(char *s)
{int i,length;
char tmp;lengthstrlen(s);
if(length0)return;tmps[0];
for(i0;ilength-1;i)
s[i]s[i1];s[length-1]tmp;}
119、把字符串中所有的字母改写在该字母的下一个字母最后一个字母z改写成字母a。大写字母仍为大写字母小写字母仍为小写字母其他的字符不变。例如原有的字符串为Mn.123xyZ,则调用该函数后串中的内容为No.123yzA。
fun(char *s)
{int i,length;
lengthstrlen(s);
for(i0;ilength;i)
{if(!((s[i]as[i]z)||(s[i]A}s[i]Z)))continue;
switch(s[i])
{casez:s[i]a;break;
caseZ:s[i]A;break;
defaule:s[i]1;break;}}}
120、将字符串ss中所有下标奇数位置上的字母转换为大写若该位置上不是字母则不转换。例如若输入“abc4EFG”,则应输出“aBc4EFG”.
void fun(char *ss)
{int i,n0;char *pss;
while(*p){n;p;}
for(i0;in;i)
if((ss[i]ass[iz’)(i%2!0)
ss[i]ss[i]-32;ss[i]\0;}
121、将字符串tt中的每个单词的首字符改为对应的大写字母首字符后的字母都改为对应的小写字母其它字符不变并返回修改后的字符串。例如若输入“ab,cD Boy!”则应输出字符串为“Ab, Cd Boy!”.
charEXUL(char tt[])
{int isfirst1;int i ,
Lenhth;lengthstrlen(tt);
For(i0;ilength;i)
{if(tt[i]’a’tt[i]’z’){tt[i]isfirst?(tt[i]’A’-‘a’);tt
122、移动字符串中的内容移动 则是把第1到第m个字符平移到 串的最后把第m1到最后的字到字符串的前部。例如字符串 有的内容为ABCDEFGHIJKm的 移动后字符串中的内容应该 DEFGHIJKABC.
void fun (char *w,int m)
{int i,j;char t;
for(i1;im;i){tw[0];
for(j1;w[j]!\0;j)
w[j-1]w[j];w[j-1]t;}}
123、将M行N列的二维数组中的字符数据按列的顺序依次放到一个字符串中。例如若二维数组中的数据为
W W W W
S S S S
H H H H
则字符串中的内容应是WSHWSHWSHWSH.
void fun(char (*s)[N],char *b)
{int i,j,k0;
for(i0;iN;i)
for(j0;jM;j)b{k}s[j][i];
b[k]\0;}
124、将放在字符串数组中的M个字符串每串的长度不超过N按顺序合并组成一个新的字符串。例如若字符串数组中的M个字符串为
AAAA
BBBBBBB
CC
则合并后的字符串内容应该是
AAAABBBBBBBCC
Void fun(char a[M][N],char *b)
{int i,j,k0;
for(i0;iM;i)
for(j0;a[i][j]!\0;j)
b[k]a[i][j];b[k]\0;}
125、求出SS所指字符串中指定字符的个数并返回此值。例如若输入字符串123412132输入字符1则输出3。
int fun(char *ss, char c)
{int i0;
for(;*ss!\0;ss)
if(*ssc)i;return i;}
126、实现两个字符串的连接不使用库函数strcat即把p2所指的字符串连接到p1所指的字符串后若分别输入下面两个字符串FirstString和SecondString则程序输出
irstStringSecondString
void fun(char p1[],char p2[])
{int i,j;
for(i0;p1[i]!\0;i);
for(j0;p2[j]!\0;j)
p1[i]p2[j];p1[i]\0;}
127、对长度为7个字符的字符串除首、尾字符外将其余5个字符按ASCII码降序排列。例如若原来的字符串为CEAedca则排序后输出为CedcEAa.
int fun(char *s, int num)
{char t;int i,j;
for(i1;inum-2;i)
for(ji1;jnum-1;j)
if(s[i]s[j])
{ts[i];s[i]s[j];s[j]t;}}
128、从传入的num个字符中找出最长的一个字符串并通过形参指针max传回该串地址用****作为结束输入的标志。
fun(char (*a)[81],int num,char *max)
{int i0;maxa[0];
for(i0;inum;i)
if(strlen(max)strlen(a[i]))
maxa[i];return max;}
129、比较两个字符串的长度不得调用字符串长度的函数函数返回较短的字符串。若两个字符串长度相等则返回第1个字符串。例如输入nanjingCRnanchangCRCR为回车键函数将返回nanjing。
char *fun(char *s,char *t)
{int i,j;
for(i0;s[i]!\0;i);
for(j0;t[j]!\0;j);
if(ij)return s;else return t;}
130、比较两个字符串的长度不得调用C语言提供的求字符串的函数函数返回较长的字符串。若两个字符串长度相等则返回第1个字符串。例如输入beijingCRshanghaiCRCR为回车键函数将返回shanghai。
char *fun(char *s,char *t)
{int i,j;
for (i0;s[i]!\0;i);
for(j0;t[j]!\0;j);
if(ij)return s;else return t;}
四、结构题
131、N名学生的成绩已在主函数中放入一个带头节点的链表结构中h指向链表的头节点。找出学生的最低分由函数值返回。
double fun(STREC *h)
{double minh-s;
while(h!NULL)
{if(minh-s) minh-s;h-h-next;}
return min;}
132、N名学生的成绩已在主函数中放入一个带头节点的链表结构中h指 链表的头节点。的出学生的最高分由函数值返回。
double fun(STREC *h)
{ double maxh-s;
while(h!NULL)
{if(maxh-s) maxh-s; h-h-next;}return max;}
133、已知学生的记录由学号和学习成绩构成N名学生的数据已存入a结构体数组中。找出成绩最低的学生记录通过形参返回主函数规定只有一个最低分。
fun(STU a[],STU *s)
{int i;*sa[0];
for(i0,iN;i)
if(s-sa[i].s)*sa[i];}
134、已知学生的记录由学号和学习成绩构成N名学生的数据已存入a结构体数组中。找出成绩最高的学生记录通过形参返回主函数规定只有一个最高分。
fun(STU a[], STU *S)
{int i;*sa[0];
for(i0,iN;i)
if(s-sa[i].s)*sa[i];}
135、学生的记录由学号和成绩组成N名学生的数据已在主函数中放入结构体数组s中把分数最低的学生数据放在b所指的数组中。注意分数低的学生可能不只一个函数返回分数最高学生的人数。
int fun (STREC *a, STREC *b)
{int i,j0,min
a[0].s;
for(i0;iN;i)
if(mina[i].s)mina[i].s;
for(i0;iN;i)
if(mina[i].s)b[j]a[i];
return j;}
136、学生的记录由学号和成绩组成N名学生的数据已在主函数中放入结构体数组s中编写函数把分数最高的学生数据放在h所指的数组中。注意分数高的学生可能不只一个函数返回分数最高学生的人数。
int fun (STREC *a, STREC *b)
{int i,j0,min
a[0].s;
for(i0;iN;i)
if(maxa[i].s)maxa[i].s;
for(i0;iN;i)
if(maxa[i].s)b[j]a[i];return j;}
137、学生的记录由学号和成绩组成N名学生的数据已在主函数中放入结构体数组s中编写函数返回指定学号的学生数据指定的序号在主函数中输入。若没找到指定的学号在结构体变量中给学号置空串给成绩置-1作为函数值返回。
STREC fun(STREC *a, char *b)
{int i;STREC str{\0,-1};
for(i0;iN;i)
if(strcmp(a[i].num,b)0)
stra[i];return str;}
138、学生的记录由学号和成绩组成N名学生的数据已在主函数中放入结构体数组s中编写函数返回指定成绩的学生数据指定的成绩在主函数中输入。若没找到指定的成绩在结构体变量中给学号置空串给成绩置-1作为函数值返回。
STREC fun(STREC *a, int b)
{int i;STREC str{\0,-1};
for(i0;iN;i)
if(a[i].sb)stra[i];
return str;}
139、学生的记录由学号和成绩组成N名学生的数据已在主函数中放入结构体数组s中编写函数把低于平均分的学生数据放在b所指的数组中低于平均分的学生人数通过形参n传回平均分通过函数值返回。
double fun(STREC*a, STREC*b,int*n)
{int i,j0;double av0.0;
for(i0;iN;i)avava[i].s;
avav/N;
for(i0;iN;i)
if(a[i].sav) b[j]a[i];
*nj;return av;}
140、学生的记录由学号和成绩组成N名学生的数据已在主函数中放入结构体数组s中编写函数把高于等于平均分的学生人数通过形参n传回平均分通过函数值返回。
double fun(STREC *a,STREC *b,int *n)
{int i;double av0.0;*n0;
for(i0;iN;i)avava[i].s;
avav/N;
for(i0;iN;i)
if(ava[i].s){b[*n]a[i];*n*n1;}
return av;}
141、学生的记录由学号和成绩组成N名学生的数据已在主函数中放入结构体数组s中编写函数把高于等于平均分的学生数据放在b所指的数组中低于平均分的学生数据放在c所指的数组中高于等于平均分的学生人数通过形参n传回低于平均分的学生人数通过形参n传回低于平均分的学生人数通过形参m传回平均分通过函数值返回。
double fun(STREC *a,STREC *b,STREC *c,int *n,int*m)
{int i;double av0.0;*n0;*m0;
for(i0;iN;i)
avav/N;
for(i0;iN;i)
if(ava[i].s){b[*n]a[i];*n*n1;}
else{c[*m]a[i];*m*m1;}
return av;}
142、学生的记录由学号和成绩组成N名学生的数据已在主函数中放入结构体数组s中编写函数按分数的高低排列学生的记录低分在前。
int fun (STREC a[])
{int i,j;STREC t;
for(i1;iN;i)
for(j0;jN-1;j)
if(a[j].sa[j1].s)
{ta[j];a[j]a[j1];a[j1]t;}}
143、学生的记录由学号和成绩组成N名学生的数据已在主函数中放入结构体数组s中编写函数按分数的高低排列学生的记录高分在前。
int fun(STREC a[])
{int i,j;STREC t;
for(i1;iN;i)
for(j0;jN-1);j)
if(a[j];sa[j1].s)
{ta[j];a[j]a[j1];a[j1]t;}}
144、学生的记录由学号和成绩组成N名学生的数据已在主函数中放入结构体数组s中编写函数把指定分数范围之外的学生数据放在b所指的数组中分数范围之外的学生人数由函数值返回。例如输入的分数是80和89则应当把分数低于80和高于89的学生数据进行输出不包含80分和89分的学生数据。主函数中把80放在low中把89放在heigh中。
int fun (STREC *a,STREC *b,int 1,int h)
{int i,j0;
for(i0;iN;i)
of((a[i].s0a[i].s1)||(a[i].s100))
b[j]a[i];return j;}
145、学生的记录由学号和成绩组成N名学生的数据已在主函数中放入结构体数组s中编写函数把指定分数范围内的学生数据放在b所指的数组中分数范围内的学生人数由函数值返回。若输入的分数是60和69则应当把分数在60到69的学生数据进行输出包含60分和69分的学生数据。主函数中把60放在low中把69放在heigh中。
int fun(STREC *a,STREC *b,int 1, int h)
{int i,j0;
for(i0;iN;i)
if(a[i].s1a[i].sh)
b[j]a[i];return j;}
146、某学生的记录由学号、8门课成绩和平均分组成学号和8门课的成绩已在主函数中给出。编写函数求出该学生的平均分放在记录的ave成员中。若学生的成绩是
85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应当是78.875。
void fun(STREC *p)
{int i;p-ave0.0;
for(i0;iN;i)p-avep-s[i];
p-avep-ave/N;}
147、N名学生的成绩已在主函数中放入一个带头节点的链表结构中h指向链表的头节点。编写函数求出平均分由函数值返回。例如若学生的成绩是85766991726487则平均分应当是78.625。
double fun(STREC *h)
{double av0.0;STREC *ph-next;
while(p!NULL){avavp-s;
pp-next;}return av/N}