二级C语言最新题库 自己整理的.docx
- 文档编号:8764463
- 上传时间:2023-05-14
- 格式:DOCX
- 页数:40
- 大小:25.37KB
二级C语言最新题库 自己整理的.docx
《二级C语言最新题库 自己整理的.docx》由会员分享,可在线阅读,更多相关《二级C语言最新题库 自己整理的.docx(40页珍藏版)》请在冰点文库上搜索。
二级C语言最新题库自己整理的
多项式的求值
20、根据以下公式p的值,结果由函数值带回。
m与n为两个正整数且要求m>n。
m=12,n=8,结果为495.000000
(1)*ss++n
(2){intj,c=0;floatxa=0.0;
if(x[j]>=xa)
(3)
floatfun(intm,intn)
{
floatp;
p=1.0*jc(m)/jc(n)/jc(m-n);
returnp;
}
22、计算并输出下列多项式的值。
例如,当n=10时,函数值为0.909091
(1)*s1k[n]
(2)doublefun(intk)
returns;
(3)
doublefun(intn)
{
inti;
doubles=0.0;
for(i=1;i<=n;i++)
s=s+1.0/(i*(i+1));
returns;
}
23、计算下列级数和,和值由函数值返回。
例如,当n=10,x=0.3时,函数值为1.349859.
(1)ips[j]tp
(2)doublefun(intn)
returnsum;
(3)
doublefun(doublex,intn)
{
inti;
doubles=1.0,s1=1.0;
for(i=1;i<=n;i++)
{s1=s1*i;s=s+pow(x,i)/s1;
}
returns;
}
★40、根据以下公式计算S,并将结果作为函数值返回,n通过形参传入。
若n=11,函数值为1.833333
(1)00c
(2)doublesum=0.0;
sum/=c;
(3)
floatfun(intn)
{
inti,s1=0;
floats=0.0;
for(i=1;i<=n;i++)
{s1=s1+i;
s=s+1.0/s1;
}
returns;
}
★48、求Fibonacci数列中大于t的最小的数,结果由函数返回。
(1)NN-10
(2)s=s+(n+1.0)/n;
returnt;
(3)
intfun(intt)
{
intf0=0,f1=1,f;
do{
f=f0+f1;
f0=f1;
f1=f;
}while(f returnf; } ★62、根据以下公式求π的值。 程序运行后,若输入精度0.0005,则程序应输出为3.140578 (1)0n(t*t) (2)for(i=0;str[i];i++) if(substr[k+1]=='\0') (3) doublefun(doubleeps) { doubles=1.0,s1=1.0; intn=1; while(s1>=eps) {s1=s1*n/(2*n+1); s=s+s1; n++; } return2*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; doublefun(intn) { inti; doubles=0.0,s1=0.0; for(i=1;i<=n;i++) {s1=s1+pow(i,0.5); s=s+s1; } returns; } 81计算并输出给定整数n的所有因子(不含1和本身)之和。 规定n的值不大于1000. (1)&& (2)’A’(3)ch (1)voidfun(int*a) (2)a[j]=a[j-1]; intfun(intn) { ints=0,i; for(i=2;i<=n-1;i++) if(n%i==0) s+=i; returns; } } 82计算并输出如下多项式的值。 Sn=1+1/2! +..+1/n! (1)1.0 (2)-1(3)t (1)for(i=1;i<=3;i++) (2)if(k>=0&&k<=6) doublefun(intn) { doublet,sn=1.0; inti,j; for(i=1;i<=n;i++) { t=1.0; for(j=1;j<=i;j++) t*=j; sn+=1.0/t; } returnsn; 83计算并输出当x<0.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<=y;i++) (2)t=t%1000; doublefun(doublex) { doubles1=1.0,p=1.0,sum=0.0,s0,t=1.0; intn=1; do { s0=s1; sum+=s0; t*=n; p*=(0.5-n+1)*x; s1=p/t; n++; } while(fabs(s1-s0)>=1e-6); returnsum; } 84计算并输出给定10个数的方差。 (1)1.0 (2)1(3)i (1)k=i; (2)b=k%10; doublefun(doublex[10]) { doublex1=0.0,s=0.0; inti; for(i=0;i<10;i++) x1=x1+x[i]; x1=x1/10; for(i=0;i<10;i++) s=s+(x[i]-x1)*(x[i]-x1); returnsqrt(s/10); } 85计算并输出给定数组(长度9)中每相邻两个元素的平均值的平方根之和。 (1)x (2)n(3)t (1)d=1; (2)s=0;(3)d=d/10; doublefun(doublex[9]) { doublesum=0.0; inti,j=1; for(i=0;i<9;i++) if(j<=8) { sum+=sqrt((x[i]+x[i+1])/2.0);j++; } returnsum; } 86计算并输出下列多项式的值,S=(1-1/2)+..+[1/(2n-1)-1/2n]。 (1)j=2 (2)i(3)j (1)inti,j=0,k,sum; (2)if(sum%4==2) doublefun(intn) { inti; doubles=0.0; for(i=1;i<=n;i++) s=s+(1.0/(2*i-1)-1.0/(2*i)); returns; } 87计算下列多项式值。 S=1+1/(1*2)+..1/(50)! 。 (1)n%10 (2)break(3)break (1)if(t==0) (2)*zero=count; doublefun(intn) { doublesum=0,tmp=1; inti; for(i=1;i<=n;i++) { tmp=tmp*i; sum+=1.0/tmp; } returnsum; } 93利用下面的简单迭代方法求方程cos(x)=0的实根。 Xn-1=cos(Xn) (1)i++ (2)m(3)m (1)while((high>=2)&&(n<10)) (2)yes=0;break; doublefun() { doublex0,x1; x1=0.0; do { x0=x1; x1=cos(x0); }while(fabs(x0-x1)>=1e-6); returnx1; } ★96功能计算s=根号下(ln (1)+…ln(m)),s作为函数值返回。 (1)0 (2)j--(3)j (1)doublef(doublex) (2)returns; doublefun(intm) { inti; doubles=0.0; for(i=1;i<=m;i++) s=s+log(i); returnsqrt(s); } 其他类 ★6、floatfun(doubleh),该函数的功能是: 使变量h中的值保留两位小数,并对第三位进行四舍五入 (1)’0’s++ ctod(a)+ctod(b) (2)voidfun(char*s,int*a,int*b) *a=*a+1 *b=*b+1 (3)floatfun(floath) { longt; t=(h*1000+5)/10; return(float)t/100; } ★25、统计各年龄段的人数。 (1)“rb”>fwrite (2)p=s; while(*p++); (3) voidfun(int*a,int*b) { inti,j; for(j=0;j b[j]=0;for(i=0;i if(a[i]>=100) b[10]++; else b[a[i]/10]++; } 76w是一个大于10的无符号整数,求出w的后n-1位的数作为函数值返回。 (1)tt (2)tt.score[i](3)std (1)voidfun(int*a,intn) (2)m=i; unsignedfun(unsignedw) { intn=1,j,s=1; unsignedt; t=w; while(t>=10) { t=t/10; n++; } for(j=1;j s=s*10; returnw%s; } ★106判断形参n中的正整数是几位数(输入数据的位数不超过4),并将结果通过函数值返回。 (1)leap (2)day(3)1 (1)doublesum=0.0; (2)for(i=0;i (3)sum+=std[i].score[0]; intfun(intn) { intbits=1; while(n/10) { bits++; n=n/10; } returnbits; } ★107在形参指针所指的4个整数找出最大值和最小值,最大的放在a中,最小的放在d中。 (1)STU (2)||(3)k (1)for(i=1;i (2)*k=m(3)if(t==0) voidfun(int*a,int*b,int*c,int*d) { intmax,min; max=min=*a; if(max<*b) max=*b; if(min>*b)min=*b; if(max<*c)max=*c; if(min>*c)min=*c; if(max<*d)max=*d; if(min>*d)min=*d; *d=min; *a=max; } 数组、矩阵的运算 3、下列程序定义了N×N的二维数组,并在主函数中自动赋值。 请编写函数fun(inta[][N],intm),使数组右上半三角元素中的值乘以m。 (1)*avix[j] (2)floatfun(intn)for(i=2;i<=n;i++) (3) voidfun(inta[][N],intm) { inti,j; for(j=0;j for(i=0;i<=j;i++) a[i][j]=a[i][j]*m; } ★4、下列程序定义了N×N的二维数组,并在主函数中自动赋值。 求出数组周边元素的平均值并作为函数值返回给主函数中的s。 (1)s/Nj++-1 (2)voidupfst(char*p) (3)doublefun(intw[][N]) { inti,j,k=0; doubleav=0.0; for(i=0;i for(j=0;j if(i==0||i==N-1||j==0||j==N-1) {av=av+w[i][j]; k++; } returnav/k; } 5、求出二维数组周边元素之和,作为函数值返回。 (1)x[i]/Nj++i++ (2)viodfun(char*s,intnum[5])num[k]=0; switch(*s) (3) intfun(inta[M][N]) { inti,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]; returnsum; } ★7、编写程序,实现矩阵(3行、3列)的转置。 (1)Nbreakn (2)sum=0; scanf(”%d”,&a[i][j]); (3) voidfun(intarray[3][3]) { inti,j,t; for(i=0;i<3;i++) for(j=i+1;j<3;j++) {t=array[i][j]; array[i][j]=array[j][i]; array[j][i]=t; } } ★12、将M行N列的二维数组中的数据,按行的顺序依次存放到一维数组中。 (1)h->nextp->next> (2)p=h->next; p=p->next; (3) voidfun(int(*s)[10],int*b,int*n,intmm,intnn) { inti,j,k=0; for(i=0;i for(j=0;j b[k++]=s[i][j]; *n=k; } 34、将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。 (1)NODEnextr (2)if(i%2! =0||s[i]%2==0) t[j]=0; (3) voidfun(int(*s)[10],int*b,int*n,intmm,intnn) { inti,j; for(j=0;j for(i=0;i { b[*n]=*(*(s+i)+j); *n=*n+1; } } ★39、将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。 (1)FILE*fpch (2)s[j++]=s[i]; s[j]='\0'; (3) voidfun(char(*s)[N],char*b) { inti,j,k=0; for(i=0;i for(j=0;j b[k++]=s[j][i]; b[k]='\0'; } 33、实现B=A+AT,即将矩阵A加上A的转置,存放在矩阵B中。 (1)&&0s[j] (2)for(i=2;i<=m;i++) y+=1.0/(i*i); (3) voidfun(inta[3][3],intb[3][3]) { inti,j; for(i=0;i<3;i++) for(j=0;j<3;j++) b[i][j]=a[i][j]+a[j][i]; } 58、程序定义了N×N的二维数组,并在主函数中自动赋值。 使数组左下半三角元素中的值乘以n。 (1)STU score[i] &std (2)if(k>1) (3) voidfun(inta[][N],intn) { inti,j; for(i=0;i for(j=0;j<=i;j++) a[i][j]=a[i][j]*n; } ★59、下列程序定义了N×N的二维数组,并在主函数中自动赋值。 使数组左下半三角元素中的值全部置0。 (1)std[] PERSON std (2)intk,q,i; pt[i]=str[k][i]; (3) voidfun(inta[][N]) { inti,j; for(i=0;i for(j=0;j<=i;j++) a[i][j]=0; } ★61、找出2×M整形二维数组中最大元素的值,并将此值返回调用函数。 (1)3.0>(t+1) (2)doublefun(intn) s=s+(double)a/b; (3) intfun(inta[][M]) { inti,j,max=a[0][0]; for(i=0;i<2;i++) for(j=0;j if(max max=a[i][j]; returnmax; } ★新增2、分别统计形参t所指二维数组中字母A和C的个数。 填 (1)a=0,b=0,k; (2)(k! =0) (3)scanf("%d",&k); 改 (1)intt=0; (2)while(p) (3)t=t+p->data; (3)程序 voidfun(char(*t)[M],int*a,int*c) { inti=0,j=0; *a=0; *c=0; for(i=0;i { for(j=0;j { if(t[i][j]=='A') (*a)++; if(t[i][j]=='C') (*c)++; } } } 19、intfun(int*s,intt,int*k),用来求出数组中的最大元素在数组中的下标并存放在k所指向的存储单元中。 (1)n++0s++ (2)t+=s[k]; *aver=ave; (3) intfun(int*s,intt,int*k) { inti; *k=0; for(i=0;i if(s[*k] returns[*k]; } ★31、找出一维整形数组元素中最大的值及其所在的下标,并通过形参传回。 (1)12*i(-1) (2)k++; if(m==k) (3) voidfun(inta[],intn,int*max,int*d) { inti; *max=a[0]; *d=0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级C语言最新题库 自己整理的 二级 语言 最新 题库 自己 整理
![提示](https://static.bingdoc.com/images/bang_tan.gif)