1、当a=45,b=12时,调用该函数后,c=4152 *c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10); 2、当a=45,b=12时,调用该函数后,c=1524 *c=(b/10)*1000+(a%10)*100+(b%10)*10+(a/10); 3、当a=45, b=12时, 调用该函数后, c=2514 *c=(b%10)*1000+(a%10)*100+(b/10)*10+(a/10); 4、当a=45,b=12时,调用该函数后,c=5142 *c=(a%10)*1000+(b/10)*100+(a/10)*10+(b%10); 5、计算n门课程的平均分。若有5门课程的成绩是:90.5, 72, 80, 61.5, 55 则函数的值为:71.80 int i; float ave=0.0; for(i=0; i
= 'a' && ss[i] <= 'z') ss[i] -= 32 ; } 11、将s所指字符串中ASCII值为偶数的字符删除 int i, j = 0 ; for(i = 0 ; i < strlen(s); i++) if(s[i] % 2) t[j++] = s[i] ; t[j] = 0 ; 14、使数组左下三角元素中的值全部置成0 int i, j; for(i = 0 ; i < N ; i++) for(j = 0 ; j <= i; j++) a[i][j] = 0 ; 7、求出1到m之间(含m)能被7或11整除的所有整数放在数组a中 int i ; *n=0 ; for(i=7 ; i<=m; i++) if((i % 7 == 0) || (i % 11 == 0)) a[(*n)++]=i ; 10、将s所指字符串中下标为偶数的字符删除 int i, j = 0 ; for(i = 1 ; i < strlen(s); i+=2) t[j++] = s[i] ; t[j] = 0 ; 13、使数组左下三角元素中的值乘以n int i, j; for(i = 0 ; i < N ; i++) for(j = 0 ; j <= i; j++) a[i][j] *= n ; 6、比较两个字符串的长度。返回较长的字符串。 int i; char *p=s, *q=t; for(i=0;*p && *q; i++) { p++; q++; } if(*p == 0 && *q == 0) return s ; if(*p) return s ; else return t ; 9、将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全都删除 int i, j = 0 ; for(i = 0 ; i < strlen(s) ; i += 2) if(s[i] % 2 == 0) t[j++] = s[i] ; t[j] = 0 12、找出成绩最高的学生记录 int i, max = a[0].s, j = 0; for(i = 1 ; i < N ; i++) if(max < a[i].s) { j = i ; max = a[i].s ; } *s = a[j] ; 15、求出二维数组每列中最小元素 int i,j,min,k; for(i=0;itt[j][i]){min=tt[j][i];k=j;} pp[i]=tt[k][i]; } 18、从s所指的字符串中删除给定的字符 char *p = s ; int i = 0 ; while(*p) { if(*p != c) s[i++] = *p ; p++ ; } s[i] = 0 ; 16、若 w 是 n (n ≥ 2)位的整数,函数求出w的低 n-1位的数作为函数值返回 if(w>10000) w %= 10000 ; else if(w>1000) w %= 1000 ; else if(w>100) w %= 100 ; else if(w>10) w %=10 ; return w ; 17、字符串中的内容逆置 char b[N] ; int i = 0, j ; memset(b, 0, N) ; for(j = strlen(s) - 1 ; j >= 0 ; j--) b[i++] = s[j] ; strcpy(s, b) ; 19、除首、尾字符外,将其余5个字符按ASCII码降序排列。 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 ; } } 20、子字符串在另一个字符串中出现的次数 int cnt = 0 ; char *p = str, *q ; while(*p) { q = strstr(p, substr) ; if(q == NULL) break; p = q + strlen(substr) ; cnt++ ; } return cnt ; 22、求出ss所指字符串中指定字符的个数,并返回此值。例如,若输入字符串: 123412132,输入字符为: 1,则输出:3。 int cnt=0 ; char *p=ss ; while(*p) { if(*p==c)cnt++;p++;} return cnt; 25、统计在tt所指字符串中'a' 到 'z' 26个小写字母各自出现的次数 char *p = tt ; int i ; for(i=0;i<26;i++) pp[i]=0 ; while(*p){ if(*p>='a'&&*p<='z') pp[*p-'a']+=1; p++; } 28、迭代方法求方程:cos(x)-x=0的一个实根:xn+1=cos(xn) float x0, x1=0.0; do { x0=x1; x1=cos(x0); }while(fabs(x0-x1)>0.000001); return x1; 31、将字符串中的前导*号全部删除,中间和尾部的*号不删除字符串:*******A*BC*DEF*G****,删除后是:A*BC*DEF*G**** int j=0;char *p=a; while(*p=='*')p++; while(*p) {a[j++]=*p;p++;} a[j]=0 ; 23、实现B=A+A', 即把矩阵A加上A的转置, 存放在矩阵B中 int c[3][3] ; int i, j ; for(i=0;i<3;i++) for(j=0;j<3;j++) {c[i][j]=a[j][i]; b[i][j]=a[i][j]+c[i][j]; } 26、删除一个字符串中指定下标的字符 strncpy(b, a, n) ; b[n] = 0 ; strcat(b, a + n + 1) ; 21、将所有大于1小于整数m的非素数存入xx所指数组中, 非素数的个数通过k传回。例如,若输入:17,则应输出:4 6 8 9 10 12 14 15 16。 int isP(int m) { int j, tag = 0 ; for(j=2;jnext; double av=0.0; int n=0; while(p!=NULL) {av=av+p->s; p=p->next; n++;} av/=n; return av; 43、计算当x<0.97 2Sn=1+0.5x+0.5*(0.5-1)x/2!+… int n=1; double sn=1; double xn=1,xn1=0; while(fabs(xn-xn1)>=0.000001) {xn=xn*x*(0.5-n+1)/n; n+=1;sn+=xn;} return(sn); 46、计算Sn=1-1/2+1/3-1/4+1/5… int i; double sum=0.0; if(n>1&&n<=100) {for(i=1;i<=n;i++) sum+=1.0/(2*i-1)-1.0/(2*i); } return sum; 35、除了字符串尾部的*号不得多于n个 char *p=a; int j=0; while(*p)p++;p--;/*求串长*/ while(*p=='*')p--;/* 串右'*' */ p++; while(jave=a->ave+a->s[i]; a->ave/=N ; 39、返回指定学号的学生数据。若没有找到,学号置空串,成绩置-1 STREC c; int i; c.num[0]='\\0'; c.s=-1; for(i=0;i=eps) {s+=t;n++;t=t*n/(2.0*n+1);} return (s*2.0); 59、将s字符串中除了下标为奇数、ASCII值也为奇数的字符之外,其余的所有字符都删除 int i,j=0; for(i=1;ia[i].s) {j=i;min=a[i].s;} *s=a[j]; 65、求出二维数组周边元素之和 int tot=0,i,j; for(i=0;iscore[i])below[j++]=score[i]; return j; 76、求出数组的最大元素及下标 int i,pos=0,max=*s; for(i=1;i(i/2))aa[k++]=i;} return k; 71、下标为奇数位置上的字母转换为大写 char *p=ss; int i=0; while(*p) {if((i%2)&&(*p>='a'&&*p<='z'))*p-=32; p++; i++;} return ss; 74、能整除形参x且不是偶数的各整数,按从小到大的顺序放在pp数组 int i; *n=0; for(i=1;i<=x;i++) if((x%i==0)&&(i%2)) pp[(*n)++]=i; 77、求P的值 P=m!/(n!*(n-m)!) 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;} 80、求S S=1+x+x2/2!+x3/3!+…+xn/n! long jc(int n) {long s=1;int i; for(i=1;i<=n;i++)s*=i; return s;} double fun(double x,int n) {double s=1.0,y=x;int i; for(i=1;i<=n;i++){ s+=y/(double)jc(i);y*=x;} return s;} 83、只删除字符串前导和尾部的*号,串中字母之间的*号都不删除 69、从num个字符串中找出最长的一个字符串 int i,k=0,maxlen; maxlen=strlen(a[k]); for(i=1;imaxlen) {maxlen=strlen(a[i]);k=i;} } *max=a[k]; 72、当a=45,b=12。调用该函数后,c=5241 *c=(a%10)*1000+(b%10)*100+(a/10)*10+(b/10); 75、将大于形参m且紧靠m的k个素数存入xx所指的数组中。 int i,j=1,t=m+1; while(j<=k) {for(i=2;i0;n--)*q++='*'; *q='\\0'; 88、当a=45,b=12。调用该函数后,c=2415 *c = (b%10)*1000+(a/10)*100 +(b/10)*10+a%10; char *p=a ; int j=0,len=0; while(*p) {p++; len++;} while(jt)b[(*n)++]=a[i]; return t; 、把指定分数范围内的学生数据放在b数组中 int i,j=0; for(i=0;i=l&&a[i].s<=h) b[j++]=a[i]; return j; 92、将二维数组中的数据,按行的顺序依次放到一维数组中 int i,j,k; for(i=0;in) { i=n;j=k; for(;a[j]!=0;j++) a[i++]=a[j]; a[i] = 0; } 87、把分数最低的学生数据 int i, j = 0, min=a[0].s ; for(i = 0 ; i < N; i++) if(min > a[i].s) min = a[i].s ; for(i = 0 ; i < N; i++) if(min == a[i].s) b[j++] = a[i] ; return j ; 90、找出学生的最高分,由函数值返回 double max=h->s; STREC *p; p=h->next; while(p) {if(p->s>max)max=p->s; p=p->next;} return max; 93、二维数组中的数据, 按列的顺序 依次放到一维数组 int i,j,np=0; for(i=0;i10)b[M-1]++;else b[j]++; } 91、判断字符串是否为回文? int i,j=strlen(str); for(i=0;i