操作题 1套
请编写函数fun,其功能是:找出2×M整型二维数组中最大元素的值,并将此值返回调用函数。
int fun (int a[][M]) {
int i,j,max=a[0][0]; for(i=0;i<2;i++)
for(j=0;j if(max 2套 编写函数fun,其功能是:根据以下公式求π的值(要求精度0.0005,即某项小于0.0005时停止迭代)。 ?11?21?2?31?2?3?41?2?…?n?1?????……?233?53?5?73?5?7?93?5?…??2n?1? 程序运行后,若 输入精度0.0005,则程序应输出为3.14…。 double fun ( double eps) { double s=1.0,s1=1.0; int n=1; while(s1>=eps) /*当某项大于精度要求时,继续求下一项*/ {s1=s1*n/(2*n+1); /*求多项式的每一项*/ s=s+s1; /*求和*/ n++; } return 2*s; } 3套 编写函数fun,其功能是:求出1~1000之间能被7或11整除,但不能同时被7和11整除的所有整数,并将其放在a所指的数组中,通过n返回这些数的个数。 void fun (int *a, int *n) { int i,j=0; for(i=1;i<=1000;i++) /*求1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数,并放入数组a中*/ if((i%7==0||i==0)&&iw!=0) a[j++]=i; *n=j; } 4套 规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:删除字符串中所有的*号。编写函数时,不得使用C语言提供的字符串函数。 例如,字符串中的内容为:****A*BC*DEF*G*******,删除后字符串中的内容应当是:ABCDEFG。 void { } 5套 fun( char *a ) int i,j=0; for(i=0;a[i]!='\\0';i++) if(a[i]!='*') a[j++]=a[i]; /*若不是要删除的字符'*'则留下*/ a[j]='\\0'; 编写函数fun,其功能是:实现两个字符串的连接(不要使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串的后面。 例如,分别输入下面两个字符串: FirstString-- SecondString 程序输出: FirstString--SecondString 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成员中。 例如,学生的成绩是:85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应为78.875。 void fun(STREC *a) { int i; a->ave=0.0; for(i=0;i a->ave=a->ave+a->s[i]; /*求各门成绩的总和*/ a->ave/=N; /*求平均分*/ } 7套 N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,其功能是:求出平均分,并由函数值返回。 例如,若学生的成绩是:85 76 69 85 91 72 64 87,则平均分应当是:78.625。 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套 编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k返回。 例如,若输入17,则应输出:4 6 8 9 10 12 14 15 16。 void fun( int m, int *k, int xx[] ) { int i,j,n=0; for(i=4;i if(i%j==0) break; if(j *k=n; /*返回非素数的个数*/ } 9套 编写函数fun,其功能是:求ss所指字符串中指定字符的个数,并返回此值。 例如,若输入字符串123412132,输入字符为1,则输出3。 int fun(char *ss, char c) { int i=0; for(;*ss!='\\0';ss++) if(*ss==c) i++;/*求出ss所指字符串中指定字符的个数*/ return i; } 10套 编写函数fun,其功能是:计算n门课程的平均分,结果作为函数值返回。 例如:若有5门课程的成绩是:90.5,72,80,61.5,55,则函数的值为:71.80。 float fun ( float *a , int n ) { int i; float av=0.0; for(i=0; i return(av/n); /*返回平均值*/ 11套 学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:把分数最高的学生数据放在b所指的数组中。注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。 19:11:45 邓安琪 2016/3/23 19:11:45 int fun( STREC *a, STREC *b ) { int i,j=0,max=a[0].s; /*找出最大值*/ for(i=0;i if(max if(max==a[i].s) b[j++]=a[i]; /*找出成绩与max相等的学生的记录,存入结构体b中*/ return j; /*返回最高成绩的学生人数*/ } 12套 规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:除了字符串前导的*号之外,将串中其它*号全部删除。在编写函数时,不得使用C语言提供的字符串函数。 例如,字符串中的内容为:****A*BC*DEF*G*******,删除后,字符串中的内容应当是:****ABCDEFG。 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套 编写函数void fun(char *tt,int pp[]),统计在tt所指的字符串中'a'到'z'26个小写字母各自出现的次数,并依次放在pp所指的数组中。 例如,当输入字符串abcdefgabcdeabc后,程序的输出结果应该是: 3 3 3 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 void fun(char *tt, int pp[]) { int i; for(i=0;i<26;i++) pp[i]=0; /*初始化pp数组各元素为0*/ for(;*tt!='\\0';tt++) if(*tt>='a'&&*tt<='z') pp[*tt-'a']++; } 14套 规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:将字符串尾部的*号全部删除,前面和中间的*号不动。 例如,字符串中的内容为:\,删除后,字符串中的内容应当是:\。在编写函数时,不得使用C语言提供的字符串函数。 void fun( char *a ) { while(*a!='\\0') a++; a--; /*指针a指向字符串的尾部*/ while(*a=='*') a--; /*指针a指向最后一个字母*/