二级 C语言考试机试满分原题 - 图文

更新时间:2024-01-16 12:15:02 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

类型一:调整一个数的个、十、百、千位 1.请编写函数fun,其功能是:将两个两位数的正整数a、b合并2.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的百位和个位上。例如,当a=45,b=12,调用该函数后在c数的千位和十位上。例如,当a=45,b=12,调用该函数后c=4152。 c=1524。 *c=(a/10)*1000+(b/10)*100+(a)*10+(b); *c=(b/10)*1000+(a)*100+(b)*10+(a/10); *fw str str STYPE FILE Fp void fun(long s,long *t) for( i=0; i<=sl; i ++) 把s后字母改为小写L sl=sl*10; t[2*sl] = '\\0'; 3.请编写函数fun,其功能是:将两个两位数的正整数a、b合并4.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的十位和千位上。例如,当a=45,b=12,调用该函数后在c数的百位和个位上。例如,当a=45,b=12,调用该函数后c=2514。 c=5142。 *c=(b)*1000+(a)*100+(b/10)*10+(a/10); *c=(a)*1000+(b/10)*100+(a/10)*10+(b); fp fclose(fp) fname \ if (d%2==0) for ( i=j+1; i<=n-1 ; i++ ) s /= 10; p=i; 5.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的个位和百位上。例如,当a=45,b=12,调用该函数后c=5241。 *c=(a)*1000+(b)*100+(a/10)*10+(b/10); k N-1 temp fun(int a[][M], int m) a[j][k]=(k+1)*(j+1); 7.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的千位和十位上。例如,当a=45,b=12,调用该函数后c=1425。 *c=(b/10)*1000+(a/10)*100+(b)*10+(a); 0 x t++ int i,s1; s后面是小写的L t[i] = s[sl-i-1]; 6.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。例如,当a=45,b=12,调用该函数后c=2415。 *c = (b)*1000+(a/10)*100+(b/10)*10+a; struct student * a->score[i] a char *fun(char (*sq)[M]) return sp; 8.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的个位和百位上。例如,当a=45,b=12,调用该函数后c=4251。 *c=(a/10)*1000+(b)*100+(a)*10+(b/10); 1 s i*10 int fun(int n,int xx[][M]) printf(\

类型二:与*号有关的操作

1

9.请编写函数fun,它的功能是:将字符串中的前导*号全部删除,中间和尾部的*号不删除。 删除前导*号 int j=0; char *p = a ; while(*p == '*') p++ ; while(*p) { a[j++] = *p ; p++; } a[j]=0 ; [N] t[i][j] t[j][i] #define FU(m,n) ((m)/(n)) return(value); 11.请编写函数fun,它的功能是:除了字符串前导和尾部的*号之外,将串中其他*号全部删除。 只删除中间*号 int j=0; char *q=a; while(*q && q < h) a[j++] = *q++ ; while(*h && *p && h < p) { if(*h != '*') a[j++] = *h ; h++; } while(*p) a[j++] = *p++ ; a[j] = 0 ; sum=0 t[i][i] 1 double r; while(fabs(m-n)>0.001) 13.请编写函数fun,它的功能是:将字符串尾部的*号全部删除,前面和中间的*号不删除。 删除串尾*号 char *p = a ; while(*p) p++ ; p-- ; while(*p == '*') p-- ; p++ ; *p = 0 ; N i -1 a2=k/10; return i; 15.请编写函数fun,它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。 删除前导和尾部* char *p=a ; int j=0,len=0; while(*p) {p++; len++;} while(jn) { i=n;j=k; for(; a[j] !=0 ; j++) a [i++]=a[j]; a[i] = 0; } M N 0

10.请编写函数fun,它的功能是:除了尾部的*号之外,将字符串中其他*号全部删除。形参p已指向字符串中最后的一个字母。 除尾部*号,其余*删除 char *q=a; int j=0; while(*q && q a[mid]) 12.请编写函数fun,它的功能是:删除字符串中所有的*号。 删除串中所有*号 int j =0 ; char *p=a; while(*p) {if(*p != '*') a[j++]=*p ; p++ ; } a[j]=0; 1 j++ j t=a;a=b;b=t; return(b); 14.请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其他*号全部删除。 除前导*外其他删除* int i=0,k; while(a[i]=='*') i++; k=i; while(a[i]!='\\0') { if(a[i] != '*') a[k++]=a[i]; i++; } a[k]='\\0'; N k ss[i] int k=0; while( *p || *q ) 16.请编写函数fun,它的功能是:使字符串中尾部的*号不得多于n个 串尾部*号不多于n个 char *p=a ; int j=0; while(*p) p++; p--; while(*p == '*') p--; p++; while(j0;n--) *q++='*'; *q='\\0'; a b.name score[i] s[j++]=s[i]; 2

t=1; return(2*s); s[j]=0; 19.编写一个函数,从传入的num个字符串中找出最长的一个字符串,并通过形参指针max传回该串地址 (用****作为结束输入的标志)。 int i,k=0,maxlen; maxlen=strlen(a[k]); for(i=1;i maxlen) { maxlen = strlen(a[i]) ; k = i ; } } *max=a[k]; [N] i i+1 aa[i]=m%k; printf(\ 类型三:与下标或ASCII码有关 20.请编写一个函数fun,它的功能是:将ss所指字符串中所有21.请编写—个函数void fun(char *ss),其功能是:将字符下标为奇数位置上的字母转换为大写(若该位置上不是字母,串ss中所有下标为奇数位置上的字母转换为大写(若该位置则不转换)。 上不是字母,则不转换)。 下标奇数位置子母改大写 下标奇数位置子母改大写 char *p = ss ; int i = 0 ; int i ; while(*p) { for(i = 1 ; i < strlen(*ss) ; i+=2) if((i % 2) && (*p >= 'a' && *p <= 'z')) *p -= 32 ; { p++ ; i++ ; } if(ss[i]>= 'a' && ss[i]<= 'z') ss[i]-=32; return ss ; } NULL n head,ch k N a[k][i] for (i = 0,t = 0; p[i] ; i++) for( i = strlen( t )-1; i; i-- ) c[t]= '\\0'; if(t[j]>t[j+1]) 22.请编写函数fun,其功能是:将s所指字符串中下标为偶数的23.编写函数fun,对长度为7个字符的字符串,除首、尾字符外,字符删除,串中剩余字符形成的新串放在t所指数组中。 将其余5个字符按ASCII码降序排列。 下标为偶数字符删除 除首尾外其余ASCII码降序 char ch ; int i, j ; int i, j = 0 ; for(i = 1 ; i < 6 ; i++) for(i=1; i

3

26.请编写函数fun,其功能是:将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全都删除 除下标偶数同时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 ; *n next head a = NULL; if(*r==*p) 27.请编写函数fun,其功能是:将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所有字符都删除 除下标奇数同时ASCII码也为奇数外其余字符删除 int i, j = 0 ; for(i = 1 ; i < strlen(s) ; i += 2) if(s[i] % 2) t[j++] = s[i] ; t[j] = 0 ; 0 i++ 2.0*i void fun (char *s, char *t) t[2*d]=0; 28.请编写函数fun,其功能是:将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,s中剩余的字符形成的新串放在t所指的数组中。 将下标为偶数同时ASCII码为奇数删除 int i, j = 0 ; for(i = 0 ; i < strlen(s) ; i++) if(!((i % 2) ==0 && (s[i] % 2))) t[j++] = s[i] ; t[j] = 0 ; j k p while(inext q p->next t=(STU *)calloc(sizeof(STU),m); while(*s) s++; t[k]=b[j]; 31.请编写一个函数fun,它的功能是:找出一维整型数组元素32.请编写一个函数int fun(int *s,int t,int *k),用来求出数组的中最大的值和它所在的下标,最大的值和它所在的下标通过最大元素在数组中的下标并存放在k所指的存储单元中。 形参传回。 求数组最大元素及下标 int i, pos = 0, max = *s ; 找出一维数组最大值及其下标 for(i = 1 ; i < t ; i++) int i ; { if(max < *(s + i)) *max=a[0];*d = 0 ; { max = *(s + i) ; pos = i ; } } for(i = 1; i < n; i++) *k = pos ; if(*max < a[i]) { *max = a[i]; *d = i ; } n++ 0 s++ 1 2*i (-1) t+=s[k]; k++; *ave=ave; if (m == k ) 33.请编写函数fun(inta[][N],int n),该函数的功能是:使数组左34.请编写函数fun(int a[][N],int n),该函数的功能是:使数组右下半三角元素中的值乘以n。 上半三角元素中的值乘以m。 左下三角元素乘n 右上三角元素同乘m int i, j; int i, j; for(i = 0 ; i < N ; i++) for(i = 0 ; i < N ; i++) for(j = 0 ; j <= i; j++) a[i][j] *= n ; for(j = i ; j < N ; j++) a[i][j] *= m ; *av i x[j] STU score[i] &std float fun(int n) if(k>0) for (i=2; i<=n; i++) else if(k==0) 4

35.请编写函数fun(int a[][N]),该函数的功能是:使数组左下半三角元素中的值全部置成0。 左下三角元素置0 int i, j; for(i = 0 ; i < N ; i++) for(j = 0 ; j <= i; j++) a[i][j] = 0 ; *std PERSON std int k,q,i; pt[i] = str[k][i] ; 36.请编一个函数求出二维数组每列中最小元素,并依次放入pp所指一维数组中。 二维数组每列最小元素 int i,j, min, k ; for(i = 0 ; i < N ; i++) { min = tt[0][i] ; k = 0 ; for(j = 1 ; j < M ; j++) if(min > tt[j][i]) {min=tt[j][i] ; k = j ; } pp[i] = tt[k][i] ; } *std std[i].age max.name void fun ( int*a, int*b ) t=*b;*b=*a;*a=t; 38.编写程序,实现矩阵(3行3列)的转置(即行列互换)。 矩阵转置 int i,j,arr[3][3] ; memcpy(arr, array, 9*sizeof(int)) ; for(i = 0 ; i < 3 ; i++) for(j = 0 ; j < 3 ; j++) array[i][j] = arr[j][i] ; N break n sum=0; scanf(\ 40.请编写函数fun,该函数的功能是:将M行N列的二维数组中的数据,按行的顺序依次放到一维数组中。 按行顺序33 33 33 33 44 44 44 44 int i, j, k ; for(i = 0 ; i < mm ; i++) for(j = 0 ; j < nn ; j++) {k = i * nn + j ; b[k] = s[i][j] ; } *n = mm * nn ; h->next p->next > p=h->next; p=p->next; 42.请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的s。 数组周边元素的平均值 int i, j, n=0; double sum=0; for ( i =0; i upfst(char *p) 44.请编写函数fun,该函数的功能是:实现B=A+A’,即把矩阵A加上矩阵A的转置,存放在矩阵B中。 B=A+A? 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] ; } && '\\0' s[j] for(i=2; i<=m; i++) y+=1./(i*i); 37.请编写一个函数fun,它的功能是:求出—个2×M整型二维数组中最大元素的值,并将此值返回调用函数。 求二维数组中最大元素的值 int i, j, max=a[0][0]; for(i=0; i<2; i++) for(j=0; j

45.请编写一个函数fun,它的功能是:计算n门课程的平均分,计算结果作为函数值返回。例如:若有5门课程的成绩是:90.5,72,80,61.5,55,则函数的值为71.80。 n门课程平均分71.8 int i; float ave=0.0; for(i=0; iave = a->ave + a->s[i] ; a->ave /= N ; a[i] a[j] a[j] switch(g) case 1: case 2:return 1; 49.请编写函数fun,它的功能是:把低于平均分的学生数据放在b所指的数组中。 低于平均分的学生数据 int i ; double ave = 0.0 ; *n = 0 ; for(i = 0 ; i < N ; i++) ave = ave + a[i].s ; ave /= N ; for(i = 0 ; i < N ; i++) if(a[i].s < ave) { b[*n]=a[i] ; (*n)++; } return ave ; *a 2 i+1 sum=0.0; if((i+1)%5==0) 51.请编写函数fun,它的功能是:找出学生的最高分,由函数值返回。 找出学生最高分由函数值返回 double max=h->s; STREC *p; p=h->next; while(p) { if(p->s>max ) max=p->s; p=p->next; } return max; fp == fp n=strlen(aa) ; ch=aa[i]; 53.请编写函数fun,它的功能是:把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。 高于等于平均分的学生数据 double t=0 ; int i ; *n = 0 ; for(i = 0 ; i < N ; i++) t = t + a[i].s ; t = t / N ; for(i = 0 ; i < N ; i++) if(a[i].s > t) b[(*n)++] = a[i] ; return t ; ->sno ->name &t double fun(double a, double x0) if( fabs(x1-x0)>0.00001 ) 46.N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:求出平均分,由函数值返回。 N名学生的成绩的平均分,78.625 STREC *p=h->next; double av=0.0; int n = 0 ; while(p!=NULL) { av = av + p->s ; p=p->next; n++; } av /= n ; return av ; char ch<='9' '0' b[k]=*p; b[k++]= ? ?; 48.请编写函数fun,该函数的功能是:找出成绩最高的学生记录。 找出成绩最高学生纪录(规定只有一个最高分) 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] ; std[i].year std[i] n IsPrime ( int n ) if(!( n%i )) 50.请编写函数fun,它的功能是:把分数最高的学生数据放在b所指的数组中,注意:分数最高的学生可能不只一个,函数返回分数最高的学生的人数。 把分数最高学生数据放在b所指数组中,分数最高的学生可能不只一个 int i, max = a[0].s, n=0; for(i = 1; i < N; i++) if(max < a[i].s) max = a[i].s ; for(i = 0; i < N; i++) if(max==a[i].s) b[n++] = a[i] ; return n; 1 i t float k; if(*a<*c) 52.请编写函数fun,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。 低于平均分的人作为函数值返回 float av=0.0 ; int i, j=0 ; for(i=0; iscore[i]) below[j++]=score[i]; return j; j 0 i++ for(i=2; i<=m; i++) y-=1.0/(i*i); 54.请编写函数fun,它的功能是:把分数最低的学生数据放在b所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生的人数。 分数最低学生数据放在b所指数组 int i, j = 0, min=a[0].s ; for(i = 0 ; i < N; i++) { if(min > a[i].s) { j = 0 ; b[j++] = a[i] ; min = a[i].s ; } else if(min == a[i].s) b[j++] = a[i] ; } return j ; struct student a.name a.score[i] if(p==n) return -1; a[i]=a[i+1]; 6

55.请编写函数fun,该函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。 找出成绩最低学生纪录 int i, min = a[0].s, j = 0; for(i = 1 ; i < N ; i++) if(min > a[i].s) { j = i ; min = a[i].s ; } *s = a[j] ; 0 x[i]/N j++ double fun(int m) for( i = 100;i <= m;i += 100 ) 56请编写函数fun,它的功能是:按分数的高低排列学生的记录,高分在前。 按分数高低排列学生纪录,高分在前 STREC tmp; int i,j; for(i = 0; i < N; i++) for(j = i+1; j < N; j++) if(a[i].s < a[j].s) {tmp = a[i]; a[i] = a[j]; a[j] = tmp; } 999 t/10 x void fun (long s, long *t) while(s>0) 57.请编写函数fun,它的功能是:函数返回指定学号的学生数58.请编写函数fun,它的功能是:把指定分数范围内的学生数据,指定的学号在主函数中输入。 据放在b所指的数组中,分数范围内的学生人数由函数值返返回指定学号学生数据 回。 STREC c ; int i ; 指定分数范围内的数据 c.num[0] = '\\0' ; c.s = -1 ; int i,j = 0 ; for(i = 0 ; i < N ; i++) for(i = 0 ; i < N ; i++) if(strcmp(a[i].num, b)==0) if(a[i].s >= l && a[i].s <= h) b[j++] = a[i] ; { strcpy(c.num, a[i].num) ; return j ; c.s=a[i].s; break ; } return c ; struct student n-1 n/2 i a[n-i-1] a[i].name,a[j].name n= *p-'0'; q=p+i; n=n*8+*p-'0'; while(q>p) 类型六:字符和字符串操作 59.请编写一个函数fun,它的功能是:比较两个字符串的长度,60.编写函数fun,该函数的功能是:从字符串中删除指定的字返回较长的字符串。若两个字符串长度相同,则返回第一个字符。同一字母的大、小写按不同字符处理。 符串。 删除给定的字符 char *p = s ; int i = 0 ; 返回较长字符串 while(*p) int i; char *p=s, *q=t; { if(*p != c) s[i++] = *p ; for(i=0;*p && *q; i++) { p++; q++; } p++ ; } if(*p == 0 && *q == 0) return s ; s[i] = 0 ; if(*p) return s ; else return t ; k len ss[i][j] next t->data t result *=n--; result fun (char *a) printf(\,*a) ; 61.请编写函数fun,它的功能是:求出ss所指字符串中指定字62.请编写一个函数void fun(char *tt,int pp[]),统计在字符串符的个数,并返回此值。 中'a'到'z'26个字母各自出现的次数,并依次放在pp所指数组求ss指定字符个数 中。 int cnt = 0 ; char *p = ss ; 统计26个字母出现次数 while(*p) { char *p = tt ; int i ; if(*p == c) cnt++ ; for(i = 0 ; i < 26 ; i++) pp[i] = 0 ; p++ ; } while(*p) { return cnt ; if(*p >= 'a' && *p <= 'z') pp[*p - 'a'] += 1 ; p++ ; } j++ s[i]=t1[i] j 1 s[k] c for (j = i + 1;j < 6;j++) *(pstr+i)=*(pstr+j); long s = 0, t = 0 ; t=t/10; 63.请编写一个函数void fun(char a[],char b[],int n),其功能是:64.请编写函数fun,该函数的功能是:统计一行字符串中单词删除一个字符串中指定下标的字符。 的个数,作为函数值返回。 删除指定下标字符 统计一行串中单词个数 strncpy(b, a, n) ; int k = 1 ; b[n] = 0 ; while(*s) { if(*s == ' ') k++ ; strcat(b, a + n + 1) ; s++ ; } return k ; t=i i '\\0' filename fp fp while(fabs(t)>=num) p=(NODE *)malloc(sizeof(NODE)); t=s/n; return h; 7

65.请编写函数fun,该函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。 M个字符串合并成新串 int i; *b=0; for(i = 0 ; i < M ; i++) strcat(b, a[i]) ; next 0 r r=t; if(*r==0) 67.编写一个函数fun,它的功能是:实现两个字符串的连接(不使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串后。 实现两个字符串连接 char *p=p1; while(*p)p++; while(*p2) *p++=*p2++; *p=0; 0 10*x n/10 *t=0; if(d%2!=0) 69.请编一个函数fun(char *s),该函数的功能是把字符串中的内容逆置。 字符串逆置 strrev(s); i+1 k=j t void fun(char *str, char ch) if(*str!=ch) str[1] = 0; 66.请编写函数fun,该函数的功能是:判断字符串是否为回文?若是则函数返回1,主函数中输出YES,否则返回0,主函数中输出N0。回文 int i, j = strlen(str) ; for(i = 0 ; i < j / 2 ; i++) if(str[i] != str[j - i - 1]) return 0 ; return 1 ; double f1 f2 p=h->next; p=p->next; 68.请编写一个函数,用来删除字符串中的所有空格。 删除字符串中所有空格 char *p = str ; int i = 0 ; while(*p) { if(*p != ' ') str[i++] = *p ; p++ ; } str[i] = 0 ; 0 || 1 t-=1.0/i; return t; 70.请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数 -1234 数字字符串转换为整数 int i, len, t; long x=0; len=strlen(p); if(p[0]=='-') { t=-1; len--; p++; } else t=1; while(*p) x = x*10-48+(*p++); 10 0 x if (n==0) result *= n--; 71功能是:移动字符串中的内容,移动的规则如下:把第1到第72.编写一个函数,该函数可以统计一个长度为2的字符串在m个字符,平移到字符串的最后,把第m+1到最后的字符移到另一个字符串中出现的次数。 字符串的前部。 统计子串出现的次数 int cnt = 0 ; char *p = str, *q ; 1第m个字符移到串后 while(*p) { q = strstr(p, substr) ; int i,j; char t; for(i=1;i<=m;i++) {t=w[0]; if(q == NULL) break; for(j=1;w[j]!='\\0';j++) w[j-1]= w[j] ; w[j-1] =t; } p = q + strlen(substr) ; cnt++ ; } return cnt ; double f1 f2 N len *n=len char *fun(char *s,char *t) t += 1.0/i; ss++; return t; tt++; 类型七:套用公式计算型 73.编写函数fun,函数的功能是:根据以下公式计算s,计算结74.编写函数fun,它的功能是:利用以下所示的简单迭代方法果作为函数值返回;n通过形参传入。求方程cos(x)-x=0的一个实根。Xn+1=cos(Xn) s=1+1/(1+2)+1/(1+2+3)+.......+1/(1+2+3+4+......+n), cos(x)-x=0的一个实根 0.739085 若n的值为11时,函数的值为1.833333。 int i,j,t; float s=0; float x0, x1=0.0; for(i=1;i<=n;i++) do { x0=x1; x1=cos(x0); { t=0; for(j=1;j<=i;j++) t+=j; s=s+1./t; } } while(fabs(x0-x1)>0.000001); return s; return x1; '\\0' 0 c i++ m m double sum=0.0; while ((high >= 2) && (n < 10) ) sum /= c; yes=0; break; 8

76.请编写函数fun,其功能是:计算并输出下列多项式值: Sn=1+1/1!+1/2!+1/3!+1/4!+…+1/n! 若主函数从键盘给n输入15,则输出为s=2.718282。 double s=1 ; long t=1; int i; for(i=1; i<=n; i++) { t=t*i; s+=1./t; } return s; 1 -1 t for(i=1; i<=3; i++) if(k>=0 && k<=6) 78.请编写函数fun,其功能是:计算并输出下列多项式值: Sn=(1-1/2)+(1/3-1/4)+...+(1/(2n-1)1/2n) 若输入8后,则输出为S=0.662872。 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; j=2 i j sum=j=0; if(sum%4==2) 80.编写函数fun,它的功能是:根据以下公式求P的值,结果由函数值带回。m与n为两个正整数且要求m>n。p=m!/n!(m-n)!。 m=12,n=8,运行结果为495.000000。 float p; p=1.0*jc(m)/jc(n)/jc(m-n) ; return p; *s s++ n int j, c=0; float xa=0.; if (x[j] )>=xa) 82.请编写函数fun,它的功能是计算下列级数和,和值由函数值返回。 75. 若m的值为20,则fun函数值为6.506583。 double s = 0.0 ; int i ; for(i = 1 ; i <= m ; i++) s += log(1.0 * i) ; s = sqrt(s) ; return s ; 0 j-- j double f( double x) return s; 77.请编写函数fun,其功能是:计算并输出当x<0.97时下列多项式的值,直到|Sn-S(n-1)|<0.000001为止。Sn=1+0.5x+0.5(0.5-1)/2!x(2)+...+ 0.5(0.5-1)(0.5-2) .....(0.5-n+1)/n!x(n) 输入0.21后,则输出为s=1.100000。 double s1=1.0,p=1.0,sum=0.0,s0,t=1.0; int n=1; do{s0=s1;sum+=s0; t*=n;p*=(0.5-n+1)*x; s1=p/t; n++;}while(fabs(s1-s0)>1e-6); return sum; x n fabs(t) for(i=1; i<=y; i++) t=t00; 79.请编写函数fun,其功能是:计算并输出 S=1+(1+2^0.5)+(1+2^0.5+3^0.5)+……+ (1+2^0.5+3^0.5+……+n^0.5) 输入20后,则输出为s=534.188884。 int i; double fac=1.0; double sum=1.0; for(i=2;i<=n;i++) { fac+=sqrt(i); sum+=fac; } return sum; a a b c=c+32; c=c+5; 81.编写函数fun,它的功能是:计算并输出下列级数和:S=1/1*2+1/2*3+...+1/n(n+1) n=10时,函数值为0.909091。 double s = 0.0 ; int i ; for(i = 1 ; i <= n ; i++) s = s + 1.0 / (i * (i + 1)) ; return s ; *s 1 k[n] double fun(int k) return s; x2x3xnS=1+x+2!+3!+……+n! 当n=10,x=0.3时,函数值为1.349859。 double s = 1.0, y = x ; int i ; for(i = 1 ; i <= n ; i++) { s += y / (double)jc(i) ; y *= x ; } return s ; i ps[j] tp double fun(int n) return sum; 83.请编写一个函数fun,它的功能是:根据以下公式求π的值 84. 请编写函数fun,其功能是:计算并输出下列多项式求π的值 值:s=1+1/(1*2)+1/(1*2*3)+..1/(1*2*3...*50) double s=1.0; 例如,若主函数从键盘给n输入50后,则输出为S=1.718282。 float n=1.0,t=1,pi=0; double t,sn=1.0; int i,j; while((fabs(s))>=eps) for(i=1;i

9

85.请编写函数fun,它的功能是:求出1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数 能被7或11整除,但不能同时被7和11整除 int i ; *n = 0 ; for(i = 7 ; i < 1000 ; i++) if(((i % 7) == 0 || (i % 11) == 0) && (i % 77) != 0) a[(*n)++] = i ; s[i] '9' *t=n t=*x;*x=y; return(t); 86.请编写一个函数fun,它的功能是:求出1到m之内(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。 能被7或11整除 int i ; *n=0 ; for(i=7 ; i<=m; i++) if((i % 7 == 0) || (i % 11 == 0)) a[(*n)++]=i ; q next next p = j; p = i; 88.请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。 能整除形参x且不是偶数的各整数 int i; *n=0; for(i=1; i <= x; i++) if((x % i== 0) && (i % 2)) pp[(*n)++]=i; t,s s[i] '\\0' if(i%k==0) if (k == i) 87.编写函数fun,它的功能是:求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s,并作为函数值返回。例如,若n为1000时,函数值应为s=153.909064。 同时能被3与7整除的所有自然数之和的平方根 double sum=0.0; int i; for(i=21; i<=n; i++) if((i % 3==0) && (i % 7==0)) sum+=i; return sqrt(sum) ; '0' s++ sum if ((k == 0) || (k == 0)) } 89.请编写函数fun,它的功能是:计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。 N以内能被5或9整除的所有自然数倒数之和 int i; double sum=0.0; for(i=1; i<=n; i++) if(i%5 == 0 || i%9 == 0) sum+=1.0/i; return sum; a[i] a[i] 0 y=1; d=a-i; 类型九:其它各类计算 90.请编写函数fun,它的功能是:求Fibonacci数列中大于t的91.请编写函数fun,其功能是:将所有大于1小于整数m的非最小的一个数,结果由函数返回。 素数存入xx所指数组中,非素数的个数通过k传回。 fibonacci 大于1小于m的非素数 int f0 = 0, f1 = 1, f ; int i,j;*k=0; do { f = f0 + f1 ;f0 = f1 ; f1 = f ; } while(f < t) ; for( i=2; i (i/2)) aa[k++] = i; } return k; return s; a[0][i] < x,y i t++ count int fun(int *x,int *y) int fun(int a,int b,int c) t=*x;*x=*y;*y=t; else retrun 1; 10

94.请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m 的k个素数存入xx所指的数组中。 大于整数m且紧靠m的k个素数 int i,j=0,p=m+1; do { for( i=2;i=p) xx[j++]=p; p++;} while(j 10) b[M - 1]++ ; else b[j]++ ; } “rb” > fwrite p=s; while(*p++); 95.请编写一个函数 unsigned fun(unsigned w),w是一个大于10的无符号整数,若w是n(n≥2)位的整数,则函数求出w的后n-1位的数作为函数值返回 5923=〉923 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 ; tt tt.score[i] std m=i; if(a[k]>a[m]) m=k; 97.请编写函数fun,其功能是:计算并输出给定数组(长度为9)中每相邻两个元素之平均值的平方根之和。s=35.951014 相邻两元素平均值平方根之和 int i ; double avg=0.0,sum=0.0; for (i=0;i<8;i++) { avg=(x[i]+x[i+1])/2; sum+=sqrt(avg); } return sum; x x t d=1; s=0; d=d/10; 99.请编写一个函数fun,它的功能是:计算并输出给定整数n的所有因子(不包括1与自身)之和。规定n的值不大于1000。sum=763 整数n的所有因子 int s = 0, i ; for(i = 2 ; i < n ; i++) if(n % i == 0) s +=i ; return s ; && 32 ch void fun(int *a) a[j]=a[j-1]; 11

94.请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m 的k个素数存入xx所指的数组中。 大于整数m且紧靠m的k个素数 int i,j=0,p=m+1; do { for( i=2;i=p) xx[j++]=p; p++;} while(j 10) b[M - 1]++ ; else b[j]++ ; } “rb” > fwrite p=s; while(*p++); 95.请编写一个函数 unsigned fun(unsigned w),w是一个大于10的无符号整数,若w是n(n≥2)位的整数,则函数求出w的后n-1位的数作为函数值返回 5923=〉923 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 ; tt tt.score[i] std m=i; if(a[k]>a[m]) m=k; 97.请编写函数fun,其功能是:计算并输出给定数组(长度为9)中每相邻两个元素之平均值的平方根之和。s=35.951014 相邻两元素平均值平方根之和 int i ; double avg=0.0,sum=0.0; for (i=0;i<8;i++) { avg=(x[i]+x[i+1])/2; sum+=sqrt(avg); } return sum; x x t d=1; s=0; d=d/10; 99.请编写一个函数fun,它的功能是:计算并输出给定整数n的所有因子(不包括1与自身)之和。规定n的值不大于1000。sum=763 整数n的所有因子 int s = 0, i ; for(i = 2 ; i < n ; i++) if(n % i == 0) s +=i ; return s ; && 32 ch void fun(int *a) a[j]=a[j-1]; 11

本文来源:https://www.bwwdw.com/article/5wdo.html

Top