1返回指定学生数据,指定学号在主函数中输出。若没找到指定学号在结构体变量中给学号置空串,给成绩置-1,作为函数值返回
int i;
STREC t={"\0",-1};
for(i=0;i { if(strcmp(a[i].num,b)==0) {t=a[i];break;} } return t; 2.将S所指字符串中ASCLL值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中 int i,k=0; for(i=0;s[i]!='\0';i++) {if(s[i]%2!=0) t[k++]=s[i]; } t[k]='\0'; 3将字符串尾的x号全部删除,前面和中间的不删除 int len=0; while(a[len]!='\0') {len++ } len=len-1; while(a[len]=='*') {len--; } a[len+1]='\0' 4统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。 int i,k=1; for(i=1;s[i]!='\0';i++) {if(s[i]>='a'&&s[i]<='z'&&s[i-1]==' ') k++; } return k; 5编写函数fun,函数的功能是求出小于或等于lim的所有素数并放在aa数组中,函数返回所求出的素数的个数。函数fun中给出的语句公供参考 int x,i,k=0; for(x=1;x<=lim;x++) {for(i=2;i {if(x%i==0) break; } if(i==x) aa[k++]=x; } return k; 6计算s=根号下ln1+..ln(m),s作为函数值返回 double s=0; int i; for(i=1;i<=m;i++) {s=s+log(i); } return sqrt(s); 7删除一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。 int i,k=1; for(i=0;i {if(a[k-1]!=a[i]) a[k++]=a[i]; } return k; 8将ss所指字符串中所有下标为奇数位置上的字母转换为大写,该位置上不是字母,则不转换。 int i; for(i=0;ss[i]!='\0';i++) {if(i%2!=0&&ss[i]>='a'&&ss[i]<='z') ss[i]=ss[i]-32; } 9求出数组周边元素平均值病作为函数值返回给主函数中的s double sum=0; int i,j; for(i=0;i {for(j=0;j {sum=sum+w[i][j]; if(i==0||i==N-1||j==0||j==N-1) } } return sum/(4*N-4); 10对变量h中的值保留两位小数,病对第三位四舍五入(h中的数值为正数)return (long) (h*100+0.5)/100.0 11将M行N列的二维数组中的数据,按列顺序依次放到一个字符串中 int i,j,k=0; for(j=0;j {for(i=0;i {b[k++]=s[i][j]; } } b[k]='\0'; 12移动字符串中的内容,移动规则:把第一个到第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; } 13若有n个整数,要求把下标从0到p平移到最后 int i,j,t; for(i=0;i<=p;i++) {t=w[0]; for(j=1;j<=n;j++) {w[j-1]=w[j]; } w[j-1]=t; } 14计算并输出给定10个数方差 double sum=0,t=0; int i; for(i=0;i<10;i++) {t=t+x[i]; } t=t/10; for(i=0;i<10;i++) {sum=sum+(x[i]-t)*(x[i]-t); } return sqrt(sum/10); 15求出二维数组周边元素之和,作为函数值返回。二维数组中的数值在主函数中赋予 int i,j,sum=0; for(i=0;i {for(j=0;j {if(i==0||i==M-1||j==0||j==N-1) sum=sum+a[i][j]; } } return sum; 16将放在字符串中的m个字符串按顺序合并成一个新的字符串 int i,j,k=0; for(i=0;i {for(j=0;a[i][j]!='\0';j++) {b[k++]=a[i][j]; } } b[k]='\0'; 17把分数最低的学生数据放在B所指的数组中,注意:分数最低的学生可能不止一个,返回人数 int i,k=0,min; min=a[0].s; for(i=1;i {if(min>a[i].s) min=a[i].s; } for(i=0;i {if(a[i].s==min) b[k++]=a[i]; } return k; 18利用简单迭代方法求cos(x)-x=0的一个实根。Xn+1=cos(Xn) float x0,x1; x1=0.0; do {x0=x1; x1=cos(x0); } while(fabs(x0-x1)>=0.000001); return x1; 19将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。 int i,j,k=0; {for(i=0;i {b[k++]=s[i][j]; } } *n=k; 20将二维数组按列的顺序放到一维数组 int i,j,k=0; for(j=0;j {for(i=0;i {b[k++]=s[i][j]; } } *n=k; 21将两个两位数的正整数a.b合并形成一个整数放c中。合并的方式是:a的十位和个位放c的千位和十位。b的十位·· *c=a/10*1000+b/10*100+a%10*10+b%10; 22请编写一个函数void fun()统计a到z26个字母各自出现次数,并写入PP中 int i; for(i=0;i<26;i++) {pp[i]=0; } for(i=0;tt[i]!='\0';i++) {if(tt[i]>='a'&&tt[i]<='z') pp[tt[i]-'a']++; } 23找出成绩最低的学生记录,通过形参返回主函数 int i,k,min; min=a[0].s; k=0; for(i=1;i {if(min>a[i].s) {min=a[i].s;k=i;} } *s=a[k]; 24求一个2xM二维数组最大元素值,并将此值返回调用函数 int i,j,max=a[0][0]; for(i=0;i<2;i++) {if(max } } return max; 25使数组左下三角元素中的值乘n int i,j; for(i=0;i {for(j=0;j {if(i>=j) a[i][j]=a[i][j]*n; } } 26M行N列二维数组按行顺序放在一维数组中,一维数组中数据个数放在形参n所指的存储单元中 int i,j,k=0; for(i=0;i {for(j=0;j {b[k++]=s[i][j]; } } *n=k; 27计算输出n包括n以内能被5或9整除的所有自然数的倒数之和 double s=0; int i; for(i=1;i<=n;i++) {if(i%5==0||i%9==0) s=s+1.0/i; } return s; 28判断字符串是否回文?若是,函数返回1,主函数中输出:YES否侧返回0,主函数中输出NO。 int i,len=0; while(str[len]!='\0') {len++; } for(i=0;i {if(str[i]!=str[len-1-i]) break; } if(i==len/2) return 1; else return 0; 30求1到1000内能被7或11整除但不能同时被7和11整除的所有整数并将他们放在a所指ude数组中。 int i,k=0; for(i=1;i<=1000;i++) {if(i%7==0&&i%11!=0||i%11==0&&i%7!=0) a[k++]=i; } *n=k; 31找出学生最高分,由函数值返回 double max; STREC *p=h->next; max=p->s; while(p!=NULL) {if(p->s>max) max=p->s; p=p->next } return max; 32只删除字符串前和后的星号,串中字母之间的星号不能删除.形参n给出的字符串的长度,形参h给出的字符串中前导星号的个数, int i,k=0; for(i=h;i {a[k++]=a[i]; } a[k]='\0'; 33把制定分数范围内的学生数据放在b所指的数组中,分数范围内的学生个数由函数值返回 int i,k=0; for(i=0;i {if(a[i].s>=l&&a[i].s<=h) b[k++]=a[i]; } return k; 34计算n门课程平均分,计算结果作为函数值返回 float s=0; int i=0; for(i=0;i {s=s+a[i]; } return s/n; 36除了尾部的星之外,将字符串中其他星号全部删除,形参P已指向字符串中最后的一个字母。 int i,k=0; for(i=0;i {if(a[i]!='*') a[k++]=a[i]; } for(i=p-a;a[i]!='\0';i++) {a[k++]=a[i]; } a[k]='\0'; 37使数组右上半三角元素中的值乘m double t=1,s=1; int n=1; while(fabs(t)>=0.000001) {t=t*(0.5-n+1)*x/n; s=s+t; n++; } return s; 38sn=1+(0.5x+0.5(0.5-1)除2!)x平方 double t=1,s=1; int n=1; while(fabs(t)>=0.000001) {t=t*(0.5-n+1)*x/n; s=s+t; n++; } return s; 39把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生个数通过形参n返回 double sum=0; int i,k=0; for(i=0;i {sum=sum+a[i].s; } for(i=0;i {if(a[i].s>=sum/N) b[k++]=a[i]; } return sum/N; 41将字符串中的前导星号全部移到字符串的尾部 int i; char t; while(a[0]=='*') {t=a[0]; for(i=1;a[i]!='\0';i++) {a[i-1]=a[i]; } } a[i-1]=t; 42找出一维数组元素中最大的值和它所在的下标,最大的值和他所在的下表通过形参传回。int i; *max=a[0]; *d=0; for(i=1;i {if(*max } 43把地狱平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回 int i,k=0; double s=0; for(i=0;i { s=s+a[i].s; } s=s/N; for(i=0;i { if(a[i].s } *n=k; return s; 44使字符串的前导星号不得多于n个;若多于n个,侧删除多余的星号;若少于或等于n 个,侧什么也不做 int i,k=0,p=0; while(a[p]=='*') {p++; } {for(i=p-n;a[i]!='\0';i++) {a[k++]=a[i]; } } a[k]='\0'; 45除了字符串前导的星号之外,将串中其他的星号全部删除。 int i,k=0; while(a[k]=='*') {k++; } for(i=k;a[i]!='\0';i++ {if(a[i]!='\0';i++) a[k++]=a[i]; } a[k]='\0'; 47将所有大于1小于整数m的非素数放入xx所指数组中,非素数的个数通过k传回 int x,i,n=0; for(x=2;x {for(i=2;i {if(x%i==0) break; } if(i!=x) xx[n++]=x; } *k=n; 48求出1到m内(含m)能被7或11整除的所有的整数放在数组a中,通过n返回这些数的个数 int i,k=0; for(i=1;i<=m;i++) {if(i%7==0||i%11==0) a[k++]=i; } *n=k; 49s=1+x+x n次方除以n! double s=1,t=1; int i=1; for(i=1;i<=n;i++) {t=t*x/i; s=s+t; } 51计算并输出下列级数和:s=1除以1乘以2+1除以2乘以3+......+1除以n(n+1)double s=0; int i; for(i=1;i<=n;i++) {s=s+1.0/(i*(i+1)); } return s; 52 根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。s=1加上1除以(1+2)+1除以(1+2+3).......加上1除以(1+2+3+4+...+n) float s=0,t=0; int i; for(i=1;i<=n;i++) {t=t+i; s=s+1.0/t; } return s; 53计算并输出给定数组(长度为9)中每相邻两个元素之平均值的平方根之和 double s=0; int i; for(i=0;i<8;i++) {s=s+sqrt((x[i]+x[i+1])/2); } return s; 54删除一个字符串中指定下标的字符。其中,a指向原字符串,删除指定字符后的字符串存放在b所指的数组中,n中存放指定的下标。 int i,k=0; for(i=0;a[i]!='\0';i++) {if(i!=n) b[k++]=a[i]; } b[k]='\0'; 55求小于形参n同时能被3与7整除的所有自然数之和的平方根,并作为函数值返回double s=0; int i; for(i=1;i {if(i%3==0&&i%7==0) s=s+i; } return sqrt(s); 56根据以下公式求p的值,结果由函数值带回。m与n为两个正整数且要求m大于n。p=m!除以n!(m-n)! int i; float t1=1,t2=1,t3=1; for(i=1;i<=m;i++) {t1=t1*i; if(i==n) t2=t1; if(i==m-n) t3=t1; } 57删除字符串中的全部前导星号,中间和尾部的星号不删除 int i=0,k=0; while(a[i]=='*') {i++; } for(i=i;a[i]!='\0';i++) {a[k++]=a[i]; } a[k]='\0'; 58求出数组最大元素下标并存在k所指定的存储单元中 int i,max; max=s[0]; *k=0; for(i=1;i {if(max {max=s[i];*k=i;} } 59将s所指字符串中下标为偶数的删除,串中剩余字符形成的新串放在t所指数组中。 int i,k=0; for(i=0;s[i]!'\0';i++) {if(i%2!=0) t[k++]=s[i]; } t[k]='\0'; 61计算病输出给定整数n所有因子之和。规定n的值不大于1000 int i,s=0; for(i=2;i {if(n%i==0) s=s+i; } return s; 62将大于形参m紧靠m的k个素数存入xx int x,i,n=0; for(x=m+1; ;x++) {for(i=2;i {if(x%i==0) break; } if(i==x) xx[n++]=x; if(n==k) break; } 63、二维数组是数坐下半三角的元素中的值全部为0 int i,j; for (i=0;= { for (j=0;j { if (i>=j) a[i][j]=0; } } 64删除字符串中所有空格 int i,k=0; for(i=0;str[i]!='\0';i++) {if(str[i]!=' ') str[k++]=str[i]; } str[k]='\0'; 65长度为7除首尾其余5个按ASC降序排列 int i,j; char t; for(i=1;i {for(j=i+1;j {if(s[i] {t=s[i];s[i]=s[j];s[j]=t;} } } 66比较字符串长度返回较长字符串,若2个字符串长度相同,则返回第一个字符串int k=0,n=0; while(s[k]!='\0') {k++; } while(t[n]!='\0') {n++; if(k>=n) return s; else return t; 67删除所有星号,在编写时,不得使用c语言提供的字符串函数 int i,k=0; for(i=0;a[i]!='\0';i++) {if(a[i]!='*') a[k++]=a[i]; } a[k]='\0'; 68s所指将字符串除了下标为偶数同时ACS值也为偶数外其余删除;串中剩余字符所形成的一个新字符串放在t所指的数组中 int i,k=0; for(i=0;s[i]!='\0';i++) {if(i%2==0&&s[i]%2==0) t[k++]=s[i]; } t[k]='\0'; 69从s所指字符串中删除指定字符。统一字母大小写按不同字符处理 int i,k=0; for(i=0;s[i]!='\0';i++) {if(s[i]!=c) s[k++]=s[i]; } s[k]='\0'; 70按分数高低排列学生的记录,高分在前 int i,j; STREC t; for(i=0;i {for(j=i+1;j