江苏计算机C语言上机试题45道.docx
- 文档编号:5326318
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:60
- 大小:31.44KB
江苏计算机C语言上机试题45道.docx
《江苏计算机C语言上机试题45道.docx》由会员分享,可在线阅读,更多相关《江苏计算机C语言上机试题45道.docx(60页珍藏版)》请在冰豆网上搜索。
江苏计算机C语言上机试题45道
45置换矩阵中的某个特定数。
#include
#include
voidmatrix_change(intx[][3],intn)
{
inti,j,k,t[5]={0},max,maxi,maxj,v;
max=x[0][0];maxi=maxj=0;
for(i=0;i for(j=0;j<3;j++) if(x[i][j]>max){max=x[i][j];maxi=i;maxj=j;} k=0; while(max>0){t[k++]=max%10;max=max/10;} for(i=0;i for(j=0;j if(t[j] for(i=0;i max=max*10+t[i]; x[maxi][maxj]=max; } voidmain() { inta[3][3]={4,8,16,32,64,128,256,512,1024},i,j;FILE*fp; matrix_change(a,3); fp=fopen("myf2.out","w"); if(fp==NULL) {printf("can'topenfile");return;} for(i=0;i<3;i++) {for(j=0;j<3;j++) {fprintf(fp,"%5d",a[i][j]);printf("%5d",a[i][j]);} printf("\n"); fprintf(fp,"\n"); } printf("\nMyexamnumberis: WLJY001\n"); fprintf(fp,"\nMyexamnumberis: WLJY001\n"); fclose(fp); getch(); } 44找出满足下列条件的整数对(m,n): (1)m小于n (2)a(m)=a(n)=m+n+1,其中a(m)表示m的所有因子和,a(n)同上; #include #include intfactor(intn) {inti,s=0; for(i=1;i<=n;i++) if(n%i==0)s=s+i; returns; } intfun(intn,inta[][2]) {inti,j,g1,g2,k=0; for(i=2;i<=n;i++) { g1=factor(i); for(j=1;j { g2=factor(j); if(g1==g2&&g1==i+j+1) {a[k][0]=j;a[k++][1]=i;} } } returnk; } voidmain() { FILE*fp;inti,n,m,a[100][2]; if((fp=fopen("myf2.out","w"))==NULL) {printf("Thefilecallnotopen! ");exit(0);} scanf("%d",&n); m=fun(n,a); for(i=0;i { printf("(%d,%d)\n",a[i][0],a[i][1]); fprintf(fp,"(%d,%d)\n",a[i][0],a[i][1]); } printf("\nMyexamnumberis: WLJY001\n"); fprintf(fp,"\nMyexamnumberis: WLJY001\n"); fclose(fp); getch(); } 43将一个十进制整数m转换成r进制整数的字符串表示形式。 #include #include voidtrdec(char*str,intidec,intibase) {charch; inti,idr,k=0; while(idec! =0) { idr=idec%ibase; if(idr>=10) str[k++]=idr-10+'A'; else str[k++]=idr+'0'; idec/=ibase; } for(i=0;i {ch=str[i]; str[i]=str[k-i-1]; str[k-i-1]=ch; } str[k]='\0'; } voidmain() { intx;charstr[20];FILE*fp; if((fp=fopen("myf2.out","w"))==NULL) {printf("Thefilecannotopen! ");exit(0);} printf("Enteranumber");scanf("%d",&x); trdec(str,x,2); printf("%sB,",str);fprintf(fp,"%sB,",str); trdec(str,x,8); printf("%sQ,",str);fprintf(fp,"%sQ,",str); trdec(str,x,16); printf("%sH\n",str);fprintf(fp,"%sH\n",str); printf("\nMyexamnumberis: WLJY001\n"); fprintf(fp,"\nMyexamnumberis: WLJY001\n"); fclose(fp); } 42已知x数组中存储的n接矩阵有一个鞍点(鞍点是指该位置上的数十所在行的最大数,同时也是所在列的最小数),程序实现将矩阵中鞍点所在列移动到最右侧。 #include #include #defineN4 voidmove(inta[][N]) { inti,j,k,f,t,m,mj; for(i=0;i { m=a[i][0];mj=0;f=1; for(j=0;j if(a[i][j]>m) { m=a[i][j];mj=j; } for(k=0;k if(a[k][mj] f=0; if(k>=N)break; } if(f) { printf("Andian: a[%d][%d]\n",i,mj); for(i=0;i { t=a[i][mj]; for(j=mj;j a[i][j]=a[i][j+1]; a[i][N-1]=t; } } } voidmain() { intx[N][N]={{1,3,2,0},{4,6,5,-1},{7,9,8,0},{-1,10,3,2}},i,j; for(i=0;i { for(j=0;j printf("%3d",x[i][j]); printf("\n"); } printf("\n"); move(x); for(i=0;i { for(j=0;j printf("%3d",x[i][j]); printf("\n"); getch(); } } 41在给定的范围内查找满足特定条件的整数。 #include #include #include intfind(longn1,longn2,longx[]) {longi,y; intj,m=0,k=0,f,t[10],d[10]; for(i=n1;i<=n2;i++) {for(j=0;j<10;j++)d[j]=0; y=i*i; f=1;m=0; for(j=2;j if(i%j==0){f=0;break;} if(! f)continue; while(y>0){t[m++]=y%10;y=y/10;} for(j=0;j { d[t[j]]++; if(d[t[j]]>1){f=0;break;} } if(f) x[k++]=i; } returnk; } main() { longa[50],i,n; FILE*fp=fopen("myf2.out","w"); if(fp==NULL){printf("can'topenfile");return;} n=find(1000,1500,a); for(i=0;i {printf("\n%ld%ld",a[i],a[i]*a[i]); fprintf(fp,"\n%ld%ld",a[i],a[i]*a[i]);} printf("\nMyexamnumberis: WLJY001\n"); fprintf(fp,"\nMyexamnumberis: WLJY001\n"); fclose(fp); getch(); } 40求级数的前n项之和。 编写函数doublefun(doublex,intn) #include #include #include #defineN40 doublefun(doublex,intn) {doubles=0,y; longinti,j,a[N]={1,1}; for(i=2;i<=n;i++) a[i]=a[i-2]+a[i-1]; for(i=1;i<=n;i++) {y=1; for(j=1;j<=a[i];j++) y*=x; s+=y/(a[i-1]*a[i]); } returns; } main() { doublex,s;intn; FILE*fp; fp=fopen("myf2.out","w"); if(fp==NULL) {printf("Thefilecannotopen! ");exit(0);} printf("inputnandx: "); scanf("%d,%lf",&n,&x); s=fun(x,n); printf("s=%lf\n",s); fprintf(fp,"s=%lf\n",s); printf("\nMyexamnumberis: WLJY001\n"); fprintf(fp,"\nMyexamnumberis: WLJY001\n"); fclose(fp); getch(); } 39求级数的前n项之和。 编写函数doublefun(doublex,doubleeps)功能是对于给定的x计算下列级数前n项的和,直到第n项的绝对值小于eps为止。 #include #include #include doublefun(doublex,doubleeps) {doubles=x,t=x,temp=x; intn=1,flag=1; while(fabs(t)>=eps) {flag=-flag; temp*=x*x*(2*n-1)/(2.0*n); t=flag*temp/(2.0*n+1); s+=t;n++; } returns; } main() { doublex,s,eps;FILE*fp; fp=fopen("myf2.out","w"); if(fp==NULL) {printf("thefilecannotopen! ");exit(0)} scanf("%lf",&x); while(fabs(x)>1)scanf("%lf",&x); scanf("%lf",&eps); s=fun(x,eps); printf("s=%lf\n",s); fprintf(fp,"s=%lf\n",s); printf("\nMyexamnumberis: WLJY001\n"); fprintf(fp,"\nMyexamnumberis: WLJY001\n"); fclose(fp); getch(); } 38验证: 任意一个四位数不全相同的四位正整数经以下变换后均能变成6174,编程实现这个验证过程,输出变换过程所产生四位数及变成6174的步骤次数。 编写函数intjudge(intn,inty[]) #include"stdio.h" #include #include"stdlib.h" intjudge(intn,inty[]) { inta[4],x,i,j,t,step=0; x=n; do { for(i=0;i<4;i++) {a[i]=x%10;x/=10;} for(i=0;i<4;i++) for(j=i+1;j<4;j++)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 江苏 计算机 语言 上机 试题 45