二级C语言题库自己整理的.docx

上传人:s****u 文档编号:12770108 上传时间:2020-05-23 格式:DOCX 页数:13 大小:44.32KB
返回 下载 相关 举报
二级C语言题库自己整理的.docx_第1页
第1页 / 共13页
二级C语言题库自己整理的.docx_第2页
第2页 / 共13页
二级C语言题库自己整理的.docx_第3页
第3页 / 共13页
点击查看更多>>
资源描述
多项式的求值 20、根据以下公式p的值,结果由函数值带回。m与n为两个正整数且要求mn。m=12,n=8,结果为495.000000(1)*s s+ n(2)int j,c=0;float xa=0.0;if(xj=xa)(3)float fun(int m, int n) float p; p=1.0*jc(m)/jc(n)/jc(m-n) ; return p;22、计算并输出下列多项式的值。例如,当n=10时,函数值为0.909091(1)*s 1 kn(2)double fun(int k)return s;(3)double fun(int n) int i; double s=0.0; for(i=1;i=n;i+) s=s+1.0/(i*(i+1); return s;23、计算下列级数和,和值由函数值返回。例如,当n=10,x=0.3时,函数值为1.349859.(1)i psj tp(2)double fun(int n)return sum;(3)double fun(double x, int n) int i; double s=1.0,s1=1.0; for(i=1;i=n;i+)s1=s1*i; s=s+pow(x,i)/s1; return s;40、根据以下公式计算S,并将结果作为函数值返回,n通过形参传入。若n=11,函数值为1.833333(1)0 0 c(2)double sum = 0.0; sum /= c;(3)float fun(int n) int i,s1=0; float s=0.0; for(i=1;i=n;i+) s1=s1+i; s=s+1.0/s1; return s; 48、求Fibonacci数列中大于t的最小的数,结果由函数返回。(1)N N-1 0(2) s=s+ (n+1.0)/n;return t;(3)int fun( int t)int f0 = 0, f1 = 1, f ; do f = f0 + f1 ; f0 = f1 ; f1 = f ; while(f =eps) s1=s1*n/(2*n+1); s=s+s1; n+; return 2*s;75计算并输出S=1+(1+20.5)+(1+20.5+30.5)的值。(1)a(2)a(3)b(1)c=c+32;(2)c=c+5;double fun(int n)int i;double s=0.0,s1=0.0;for(i=1;i=n;i+)s1=s1+pow(i,0.5);s=s+s1;return s;81计算并输出给定整数n的所有因子(不含1和本身)之和。规定n的值不大于1000. (1)& (2)A (3)ch(1)void fun(int*a)(2)aj=aj-1;int fun(int n)int s=0,i;for(i=2;i=n-1;i+) if(n%i=0)s+=i;return s;82计算并输出如下多项式的值。Sn=1+1/2!+.+1/n!(1)1.0 (2)-1 (3)t(1)for(i=1;i=0&k=6)double fun(int n)double t,sn=1.0;int i,j;for(i=1;i=n;i+)t=1.0;for(j=1;j=i;j+)t*=j;sn+=1.0/t;return sn;83计算并输出当x0.97时,如下多项式的值,直到|Sn-Sn-1|0.000001为止。Sn=1+0.5x+0.5(0.5-1).(0.5-n+1)/n!(1)x(2)n(3)fabs(t)(1)for(i=1;i=1e-6);return sum;84计算并输出给定10个数的方差。(1)1.0(2)1(3)i(1)k=i;(2)b=k%10;double fun(double x10)double x1=0.0,s=0.0;int i;for(i=0;i10;i+)x1=x1+xi;x1=x1/10; for(i=0;i10;i+)s=s+(xi-x1)*(xi-x1);return sqrt(s/10); 85 计算并输出给定数组(长度9)中每相邻两个元素的平均值的平方根之和。(1)x(2)n(3)t(1)d=1;(2)s=0;(3)d=d/10;double fun(double x9)double sum=0.0;int i,j=1;for(i=0;i9;i+)if(j=8)sum+=sqrt(xi+xi+1)/2.0);j+; return sum;86计算并输出下列多项式的值,S=(1-1/2)+.+1/(2n-1)-1/2n。(1)j=2(2)i(3)j(1)int i,j=0,k,sum;(2)if(sum%4=2)double fun(int n)int i;double s=0.0;for(i=1;i=n;i+)s=s+(1.0/(2*i-1)-1.0/(2*i); return s;87计算下列多项式值。S=1+1/(1*2)+.1/(50)!。(1)n%10(2)break(3)break(1)if(t=0)(2)*zero=count;double fun(int n)double sum=0,tmp=1;int i;for(i=1;i=2)&(n=1e-6);return x1;96功能计算s=根号下(ln(1)+ln(m),s作为函数值返回。(1)0(2)j-(3)j(1)double f(double x)(2)return s;double fun( int m ) int i;double s=0.0;for(i=1;i fwrite(2)p=s;while(*p+);(3)void fun(int *a, int *b)int i,j; for(j=0;jM;j+)bj=0; for(i=0;i=100) b10+; else bai/10+; 76 w是一个大于10的无符号整数,求出w的后n-1位的数作为函数值返回。(1)tt (2)tt.scorei (3)std(1)void fun(int*a,int n)(2)m=i;unsigned fun(unsigned w)int n=1,j,s=1;unsigned t;t=w;while(t=10)t=t/10;n+;for(j=1;jn;j+)s=s*10;return w%s;106 判断形参n中的正整数是几位数(输入数据的位数不超过4),并将结果通过函数值返回。(1)leap (2)day (3)1(1)double sum=0.0;(2)for(i=0;in;i+)(3)sum+=stdi.score0;int fun(int n)int bits=1;while(n/10) bits+;n=n/10;return bits;107在形参指针所指的4个整数找出最大值和最小值,最大的放在a中,最小的放在d中。(1)STU(2)|(3)k(1)for(i=1;in;i+)(2)*k=m(3)if(t=0)void fun(int *a, int *b, int *c, int *d)int max,min;max=min=*a;if(max*b)min=*b;if(max*c)min=*c;if(max*d)min=*d;*d=min;*a=max;数组、矩阵的运算3、下列程序定义了NN的二维数组,并在主函数中自动赋值。请编写函数fun(int a N,int m),使数组右上半三角元素中的值乘以m。(1)*av i xj(2)floatfun(intn) for(i=2;i=n;i+)(3)void fun(int a N, int m)int i,j;for(j=0;jN;j+)for(i=0;i=j;i+)aij=aij*m; 4、下列程序定义了NN的二维数组,并在主函数中自动赋值。求出数组周边元素的平均值并作为函数值返回给主函数中的s。(1)s/N j+ -1(2)void upfst(char *p)(3)double fun (int w N)int i,j,k=0;double av=0.0;for(i=0;iN;i+)for(j=0;jN;j+)if(i=0|i=N-1|j=0|j=N-1) av=av+wij; k+;return av/k; 5、求出二维数组周边元素之和,作为函数值返回。(1)xi/N j+ i+(2)viod fun(char *s,int num5) numk=0; switch(*s)(3) int fun( int a MN)int i,j,sum=0;for(i=0;iM;i+)for(j=0;jN;j+)if(i=0|i=M-1|j=0|j=N-1) sum=sum+aij; return sum;7、编写程序,实现矩阵(3行、3列)的转置。(1)N break n(2)sum=0;scanf(”%d”,&aij);(3)void fun (int array33)int i,j,t;for(i=0;i3;i+) for(j=i+1;jnext p-next (2)p=h-next ; p=p-next ;(3)void fun (int (*s)10, int *b, int *n, int mm, int nn)int i,j,k=0;for(i=0;imm;i+) for(j=0;jnn;j+)bk+=sij;*n=k; 34、将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。(1)NODE next r(2) if(i%2 !=0 | si%2=0) tj=0;(3)void fun (int (*s)10, int *b, int *n,int mm, int nn)int i,j;for(j=0;jnn;j+) for(i=0;imm;i+)b*n=*(*(s+i)+j);*n=*n+1; 39、将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。(1)FILE* fp ch(2)sj+=si;sj=0;(3)void fun(char (*s)N,char *b)int i,j,k=0;for(i=0;iN;i+) for(j=0;jM;j+)bk+=sji;bk=0;33、实现B=A+AT,即将矩阵A加上A的转置,存放在矩阵B中。(1)& 0 sj(2)for(i = 2 ; i = m ; i+)y += 1.0 / (i * i) ;(3)void fun ( int a33, int b33)int i,j; for(i=0;i3;i+) for(j=0;j1)(3)void fun(int a N, int n)int i,j;for(i=0;iN;i+)for(j=0;j=i;j+)aij=aij*n;59、下列程序定义了NN的二维数组,并在主函数中自动赋值。使数组左下半三角元素中的值全部置0。(1)std PERSON std(2)int k, q, i;pti = strki ;(3)void fun (int aN) int i,j; for(i=0;iN;i+) for(j=0;j (t+1)(2)double fun ( int n )s = s + (double)a / b;(3)int fun (int aM)int i,j,max=a00;for(i=0;i2;i+)for(j=0;jM;j+)if(maxdata;(3)程序void fun( char (*t)M, int *a ,int *c)int i=0,j=0;*a=0;*c=0;for(i=0;iM;i+)for(j=0;jM;j+)if(tij=A) (*a)+;if(tij=C) (*c)+;19、int fun(int *s,int t,int *k),用来求出数组中的最大元素在数组中的下标并存放在k所指向的存储单元中。(1)n+ 0 s+(2)t+=sk;*aver=ave;(3)int fun(int *s,int t,int *k)int i;*k=0; for(i=0;it;i+)if(s*ksi) *k=i; return s*k; 31、找出一维整形数组元素中最大的值及其所在的下标,并通过形参传回。(1)1 2*i (-1)(2)k+; if(m=k)(3)void fun(int a,int n, int *max, int *d) int i; *max=a0; *d=0; for(i=0;in;i+) if(*maxnext q p-next(2)while(*s)s+;(3)void fun(int *w, int p, int n)int i,j,t;for(i=p+1;ii-p-1;j-)t=wj;wj=wj-1;wj-1=t;42、删除一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列。(1)FILE* fclose(fp) fp(2)t=calloc(m,sizeof(STU);tk=bj;(3)int fun(int a, int n) int i,j=1; for(i=1;in;i+) if(aj-1!=ai) aj+=ai; return j; 60、tt指向一个M行N列的二维数组,求出二维数组中每列中的最大元素,并依次放入pp所指的一位数组中。(1)std0 stdi.age max.name(2)void fun(int *a,int *b)t=*b;*b=*a;*a=t;(3)void fun(int ttMN,int ppN) int i,j,max;for(j=0;jN;j+) max=tt0j; for(i=0;imax) max=ttij; ppj=max;27、查找x在s所指数组中下标的位置,并作为函数值返回,若x不存在,则返回-1.(1)i%5 n ai(2)return t;for(i=0;iN;i+) ti=xi;xi+1=findmid(a,b,c);(3) int fun( int *s, int x)int i;for(i=0;iN;i+)if(x=si) return i;return -1;学号、成绩、平均分2、已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。找出成绩最低的学生记录(规定只有一个最低分)(1)0.0 xi/N j+(2)double fun(int m) for(i=100;i=m;i+=100)(3)fun(STU a, STU *s) int i; *s=a0; for(i=0;isai.s)*s=ai;95学生记录由学号和成绩组成,n名学生的数据进入主函数中的结构体数据中,功能是,分数最低的学生数据放入b所指的数组中。最低的可能好几个,函数返回分数最低的学生人数。(1)*fw(2)str(3)str(1)void fun(long s,long*t)(2)sl=sl*10;int fun( STREC *a, STREC *b )int i,j=0,min=a0.s;for(i=0;iai.s)min=ai.s; for(i=0;iN;i+)if(min=ai.s) bj+=ai;return j; 71、学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中。把分数最高的学生数据放在b所指的数组中。分数最高的学生可能不止一个,函数返回分数最高的学生人数。(1)1 i ap+i(2)float k;if( *a*c )(3)int fun( STREC *a, STREC *b )int i,j=0,max=a0.s; for(i=0;iN;i+) if(maxai.s) max=ai.s; for(i=0;iN;i+) if(max=ai.s) bj+=ai; return j;49、学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中。把低于平均分的学生数据放入b所指的数组中,低于平均分的学生人数通过形参n传回。(1)a 2 i+1(2)sum=0.0;if(i+1)%5=0)(3)double fun( STREC *a, STREC *b, int *n ) int i,j=0; double av=0.0; for(i=0;iN;i+) av=av+ai.s; av=av/N; for(i=0;iN;i+) if(ai.ssno (2)-name (3)&t(1)double fun(double a,double x0)(2)if(fabs(x1-x0)=0.00001)double fun( STREC *a, STREC *b, int *n )int i;double av=0.0;*n=0;for(i=0;iN;i+)av=av+ai.s;av=av/N; for(i=0;iN;i+) if(avp)(3)int fun( STREC *a,STREC *b,int l, int h )int i,j=0; for(i=0;i=l&ai.s=h) bj+=ai; return j; 57、已知学生的记录由学号和成绩构成,N名学生的数据已放入a结构体数组s中。找出成绩最高的学生记录,通过形参返回主函数。(1)stdi.year stdi n(2)IsPrime(int n) if(!(n%i)(3)fun(STU a, STU *s) int i; *s=a0; for(i=0;isai.s) *s=ai;66、某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,求出该学生的平均分,并放入记录的ave成员中。(1)ai aj aj (2)去掉分号case1:case2:return1;(3)void fun(STREC *a) double ave=0.0; int i; for(i=0;iave=a-ave+a-si; a-ave/=N;67、N名学生的成绩已在主函数中放入一个带头结点的链表结构中,h指向链表的头结点。求出平均分,并由主函数值返回。(1)char chnext; while(p!=NULL) ave=ave+p-s; p=p-next; return ave/N;70、计算n门课程的平均分,结果作为函数值返回,(1)x p s(2)long k=1;num/=10 ;(3)float fun ( float *a , int n )int i;float av=0.0; for(i=0; in;i+)av=av+ai; return(av/n);16、m个人的成绩存放在score数组中,将低于平均分的人数作为函数值返回。(1)j 0 i+(2)for(i=2;i=m;i+)y-=1.0/(i*i);(3)int fun(int score,int m, int below)int i,j=0;float av=0.0;for(i=0;im;i+)av=av+scorei/m; for(i=0;im;i+)if(scoreiav) belowj+=scorei;return j; 30、将一组得分中,去掉一个最高分和一个最低分,然后求平均值,并通过函数返回。(1)ai m%10 m/10(2)bi=ai0;for(j=1;jai j)(3)double fun(double a , int n) double sum=0,max,min;int i; max=min=a0; for(i=0;in;i+) sum=sum+ai;if(maxai)min=ai; sum=sum-max-min; return(sum/(n-2);91学生记录由学号成绩组成,N名学生数据放入主函数结构体数组s中,函数功能返回该学号的学生数据,找不到返回-1。(1)n/2 (2)i (3)an-i-1(1)n=*p-0;(2)n=n*8+*p-0;STREC fun( STREC *a, char *b )int i;STREC str=0,-1; for(i=0;i0)void fun( STREC a )int i,j;STREC t;for(i=1;iN;i+)for(j=0;jN-1;j+)if(aj.ss;while(h!=NULL) if(maxs) max=h-s;h=h-next;return max;整除、素数17、void fun(int x,int pp ,int *n),求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。(1)t,s si 0(2) if(i%k=0)if(k=i)(3)void fun (int x, int pp, int *n)int i,j=0;for(i=1;i=x;i=i+2) if(x%i=0) ppj+=i;*n=j;21、求小于形参n同时能被3与7整除的所有自然数之和的平方根,并作为函数值返回。(1)48 s+ sum(2)if(k%13=0)|(k%17=0)return m;(3)double fun( int n) double sum=0.0; int i; for(i=21; i=n; i+) if(i % 3=0) & (i % 7=0) sum+=i; return sqrt(sum) ;63、求出11000之间能被7或11整除,但不能同时被7和11整除的所有整数,并将其放在a所指的数组中(1)si 9 *t=n(2)t = *x ; *x = y ;return(t) ;(3)void fun (int *a, int *n)int i,j=0; for(i=1;i=1000;i+) if(i%7=0|i%11=0)&i%77!=0) aj+=i; *n=j; 73计算并输出n(包括n)以内所有能被5或9整除的自然数的倒数之和。填空(1)ai (2)ai (3)0 改错(1)y=1; (2)d=a-i;double fun(int n)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;103函数功能将1到m(含m)之间能被7或11整除的所有整数放在数组a中,并通过n返回这些数的个数。(1)q(2)next(3)next(1)p=j;(2)p=i;void fun ( int m, int *a , int *n )int i,j=0;for(i=1;i=m;i+)if(i%7=0|i%11=0) aj+=i;*n=j; 8、int fun(int lim,int aaMAX),其功能是求出小于或等于lim的所有素数,并放在aa数组中(1)a0 i x,y(2)void fun(int *x,int *y)t=*x; *x=*y; *y=t(3)int fun(int lim, int aaMAX)int i,j,k=0;for(i=2;i=lim;i+) for(j=2;j=i) aak+=i; return k; 18、void fun(int m,int k,int xx ),将大于整数m且紧靠m的k个素数存入所指的数组中。(1)s - return0(2)double fun(int n)s=s+(double)a/b;(3)void fun(int m,int k,int xx) int i,j,n; for(i=m+1,n=0;nk;i+) for(j=2;j=i) xxn+=i;68、将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k返回。(1)M = a)&( tti = z ) )tti -= 32;(3)void fun( int m, int *k, int xx )int i,j,n=0;for(i=4;im;i+) for(j=2;ji;j+)if(i%j=0) break;if(ji) xxn+=i;*k=n; 74计算并输出3-n之间所有素数的平方根之和。(1)i (2)t+ (3)count (1)return 3;(2)return 1;double fun(int n) int m,k,i;double s=0.0;for(m=3;m=n;m+)k=sqrt(m);for(i=2;i=k+1)s+=sqrt(m);return s;正整数合并15、将a、b中的两个正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的的十位和千位上。a=45,b=12.c=5241(1)k N-1 temp(2)void fun(int a M,int m)ajk=(k+1)*(j+1)(3)*c=(a%10)*1000+(b%10)*100+(a/10)*10+(b/10);35、将两个两位数的正整数a、b合并成一个整数放在c中。合并的方式是:将a数的十位数和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。(1)struct tudent a.name a.scorei(2)if(p=n) return -1;ai=ai+1; (3)void fun(int a, int b, long *c)*c=a/10+(b%10)*10+(a%10)*100+(b/10)*1000;44、将a、b两个两位正整数合并成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的千位和十位上。(1)0 x t+(2)int i,sl;ti = ssl-i-1;(3)void fun(int a, int b, long *c)*c=a%10+(b%10)*10+(a/10)*100+(b/10)*1000;46、将两个两位正整数a、b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和百位上,b数的十位和个位数依次放在c数的十位和个位上。(1)fp fclose(fp) fname(2)for ( i=j+1; i0 i*10(2)int fun(int n, int xxM)printf( %d , xxij );(3)void fun(int a, int b, long *c)*c=b/10+(a%10)*10+(b%10)*100+(a/10)*1000;53、将两个两位数的正整数a、b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在数c的十位和千位上,b数的十位和个位数依次放在c数的百位和个位上。(1)*n next head(2)a=NULL;if ( *r = *p )(3)void fun(int a, int b, long *c)*c=b%10+(a/10)*10+(b/10)*100+(a%10)*1000;54、将两个两位数的正整数a、b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在数c的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。(1)STYPE FILE fp(2)for( i=0; iscorei(3)a(1)char *fun(char(*sq)M)(2)return sp;void fun(int a, int b, long *c)*c=a%10+(b/10)*10+(a/10)*100+(b%10)*1000;
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!