int i;
long s=0;
for(i=2;i if(n%i==0) s+=i*i; return s; } main() { int n; 41.程序设计题 假定输入的字符串中只包含字母和*号。请编写函数fun(),它的功能是:除了尾部的*号之外,将字符串中其他*号全部删除。形参p已指向字符串中最后一个字母。在编写函数时,不得使用C语言的字符串函数。 例如,若字符串中的内容为****A*BC*DEF*G* *****,删除后,字符串中的内容应当是ABCDEFG* *****。 #include 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'; /*在字符串尾加上结束标记符*/ } main() { char s[81],*t; printf(\ 42.程序设计题 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun(),它的功能是:把低于平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。 #include double fun(STREC *a,STREC *b,int *n) { int i,j=0; double av=0.0; for(i=0;i for(i=0;i if(a[i].s 43.程序设计题 请编写函数fun(),该函数的功能是:实现B=A+A′,即把矩阵A加上A的转置,存放在矩阵B中。计算结果在main()函数中输出。 例如,输入下面矩阵: 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 #include #include 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]; } main() { FILE *fp; int a[3][3]={{1,2,3},{4,5,6},{7,8,9}},t[3][3]; int i, j; 44.程序设计题 请编写一个函数void fun(char orig[],char result[],int flg),其功能是:删除一个字符串中指定下标的字符。其中,orig指向原字符串,删除后的字符串存放在result所指的数组中,flg中存放指定的下标。 #include #include void fun(char orig[],char result[],int flg) { int n,m=0; for(n=0;n result[m]=orig[n]; m++; } result[m]='\\0'; } main() { char s1[NUM],s2[NUM]; int flg; FILE *out; printf(\ gets(s1); 45.程序设计题 已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun(),该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。 #include typedef struct ss /*定义结构体*/ { char num[10]; int s; }STU; fun(STU a[],STU *s) { int i; *s=a[0]; for(i=0;i main() { FILE *fp; STU a[N]={{\46.程序设计题 请编写函数fun(),其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。 例如,输入17,则应输出4 6 8 9 10 12 14 15 16。 #include void fun(int m,int *k,int xx[]) { int i,j,n=0; for(i=2;i for(j=2;j *k=n; } main() { int m,n,zz[100]; 47.程序设计题 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun(),它的功能是:按分数的高低排列学生的记录,高分在前。 #include int fun(STREC a[]) { int i,j; STREC t; for(i=1;i main() { STREC s[N]={{\ {\{\48 程序设计题 编写函数fun,其功能是统计一个长度为2的字符串在另一个字符串中出现的次数。例如,假定输入的字符串为asdasasdfgasdaszx67asdmklo,子字符串为as,则应当输出6。 #include int fun(char *str,char *substr) { int i,j=0; for(i=0;str[i+1]!='\\0';i++) if(str[i]==substr[0]&& str[i+1]==substr[1]) j++; return j; } main() { char str[81],substr[3]; int n; system(\ printf(\输入主字符串: \ gets(str); printf(\输入子字符串: \ gets(substr); puts(str); 49 程序设计题 下列程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(),功能为:使数字右上半三角元素中的值乘以m。 例如,若m的值为2,a数组中的值为 a=1 9 2 7 则返回主程序后a数组的值应为 2 18 2 14 #include