CCF历年真题C语言答案doc.docx
- 文档编号:5234635
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:27
- 大小:68.51KB
CCF历年真题C语言答案doc.docx
《CCF历年真题C语言答案doc.docx》由会员分享,可在线阅读,更多相关《CCF历年真题C语言答案doc.docx(27页珍藏版)》请在冰豆网上搜索。
CCF历年真题C语言答案doc
题1:
出现次数最多的数
#include
intmain()
{
inti,j,n,s;
intt=1;
inta[10001]二{0};
scanf(z,%d/z,&n);
for(i=0;i { scanf&s);//下标为输入值,每个数组值为输入频数 a[s]++; if(a[s]>a[t])t=s; if(a[s]==a[t])t=(s s: t); } printf(,z%dz,,t); return0; } 题2: ISBN号码 #include intmdin() { intsum二0; chara[13]={'\0'}; gets(a); sum=(a[0]-'O')*1+(a[2]一'O')*2+(a[3]一'O')*3+(a[4]一'O')*4+(a[6]-,0')*5+(a[7]一’O')*6+(a[8]-,O')*7+(a[9]一’O')*8+(a[10]-’0')*9; if((sum%ll==a[12]~,)II(sum%ll==10&&a[12]==,X'))//注意正确情况几种类型 { printf("Right"); } else { if(sum%11==10) a[12]=,X,; else a[12]=sum%11+,O'; puts(a); return0; 题3: 相反数 #include intmain() { inti,j,n,t=0; inta[501]; scanf(/z%dz/,&n); for(i=0;i { scanf("%d",&a[i]); } for(i=0;i { for(j二i+1;j { if(a[i]+a[j]==0)t++; } } printft); return0; 题4: 窗口 #include typedefstructwindowl{ intxl,x2,yl,y2,order; }window; voidInputwindow(windowws[],intn) { inti; for(i=l;i<=n;i++) { scanf("%d%d%d%d: &ws[n-i].xl,&ws[n~i].yl,&ws[n~i].x2,&ws[n~i].y2);ws[n-i].order=i; } } intgetpos(windowws[],intn,intx,inty) for(i=0;i if(x>=ws[i].xl&&x<=ws[i].x2&&y>二\vs[i].yl&&y<=ws[i].y2){ returni; } } return-1; } voidmovewindow(windowws[],intn,intpos) { windoww-ws[pos]; inti; for(i=pos~l;i>=0;i--) { ws[i+l]二ws[i]; } ws[0]=w; } intmain() { inti,n,m,x,y,pos; scanf(,z%d%d,z,&n,&m); windowws[n]; Inputwindow(ws,n); for(i=0;i { scanf(zz%d%d,/,&x,&y); pos二getpos(ws,n,x,y); if(pos~~l){ printf(z/lGN0RED\nz/); } else{ printf("%d\rT,ws[pos].order);movewindow(ws,n,pos); } } return0; } 题5: 相邻数对 #include #include 5nclude〈sc+dio.h〉 intmain。 宀 inti"j;;tHm int匕101二4〕- scanf(、£d、「Kn)【 for(iH0八i〈rui丰) 亠 scanf(、豪d%d%d%d、「0a〔i二orGa〔i〕〔口烬〔i二2〕y邑i〕〔3三 ) for(iH0八i〈lori丰) 亠 for(jH9j〈10r7j++) 亠 for(kH0;k〈三罕+) 亠 if(j〉2k〕a第j〈a〔k二2〕&&i〉Ha〔EE第i〈a〔k二3〕)break- ) if(k〈n)t+,t intmain。 亠 inti" inta〔100亍scanf(、棗d、「$n)- for(iHsi〈rui++) 亠 scanf(、、瓷、「0a〔i〕)八 ) for(iHsi〈n—rri丰) 亠 『or(jHi+rrj〈n二++) 亠 if(abs(a〔i〕—as)Hl)t++ ) ) prinbf(、9d、「t)- return0- ®6“Bs printf(*%d,z,t);return0; } 题7: 门禁系统 #include intmain() { inti,n,s=0; inta[1001]={0}; scanf("%d",&n); for(i=0;i { scanf(,z%d,z,&s); a[s]++; printf(,z%da[s]); } return0; } 题8: z字形扫描 #include intmain() { inti,j,k,n; inta[500][500]; scanf("%d",&n); for(i=0;i { for(j=0;j { scanf("%d",&a[i][j]); } } for(k=0;k<2*n-1;k卄) { for(i=0;i { for(j=0;j if(i+j==k) if(k%2==0) { printf(,z%d“,a[j][i]); } else { printf(z,%d”,a[i][j]); return0; } 题9: 图像旋转 #include ^defineN1000 inta[N][N]; intmain() { inti,j,n,m; scanf("%d%d",&n,&m); for(i=0;i { for(j=0;j { scanf("%d: &a[i][j]); } } for(j=1;j<=m;j++) { for(i=0;i { if(i! =0) printffzz);printf("%d",a[i][m-j]); } printf("\n"); return0; 题10: 数字排序 #include intmain() { inti,j,n,s=0; inta[1001]={0};//注意初始化赋值 scanf("%d",&n); for(i=0;i { scanf("%d",&s); a[s]++; } for(i二1001;i>0;1-)//i为从后找起的频数 { for(j=0;j<1001;j++)//数组下标从小到大{ if(a[j]二二i)//找自己 { printf(,z%d%d\nz/,j,a[j]); return0; 题11: 数列分段 #include intmain() { inti,n,t二0; inta[1001]; scanf&n); for(i=0;i { scanf&a[i]); } for(i=0;i { if(a[i]! =a[i+1])t++; } printft+1); return0; 题12: 日期计算 #include intmain() { inty,d,day,i; intmouth[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};scanf("%d%d",&y,&d); if((y%4=0&&y%100! =0)||(y%400二二0)) { mouth[2]卄; } for(i二] { I;i<13;i++) if(d{ >mouth[i]) d 二d-mouth[i]; if(d二二0) { d=mouth[i];break; } elsebreak;〃注意中断,确保月份不出错} printf(//%d\n%d,,)i,d); return0; 题13: 数位之和 #include intmdin() { intn,sum=0;scanf(z,%d/z,&n);while(n) { sum=sum+n%10;n=n/10; return0; 题14: 消除类游戏 #include intmdin() { inti,j,k,n,m,t=l; inta[31][31]={0}; intb[31][31]={0}; scanf("%d%d",&n,&m); for(i=0;i { for(j=0;j { scanf("%d",&a[i][j]); } } for(i=0;i { for(j=0;j { while(a[i][j]==a[i][j+1])//check行{ j++; if(j==m)break; t++; if(t>=3) { for(k=j-t+1;k<=j;k++) { b[i][k]=1; } } } t二1; for(j=0;j for(i=0;i whi1e(a[i][j]==a[i+l][j])//check列 { i++; if(i==n)break; t++; if(t>=3) { for(k=i-t+1;k<=i;k++) { b[k][j]=1; } } } t二1; } } for(i=0;i〈n;i++) { for(j=0;j { if(b[i][j])a[i][j]=0;//将找到的赋0 } } for(i=0;i { for(j=0;j { printf(z/%d"、a[i][j]); } printf(z/\n,z); } return0; } 题15: 折点计数 #include intmain() { inti,n,t=0; inta[1001]; scanf("%d〃,&n); for(i=0;i scanf("%d",&a[i]); } for(i=0;i { if((a[i+1]a[i]&&a[i+1]>a[i+2]))t++; } printf(z/%dz,,t); return0; } 题16: 俄罗斯方块 #include intmain() { inti,j,n; intk=0,count二0,down二0; intx[4],y[4]; inta[15][10]; intb[4][4]; for(i=0;i<15;i++) { for(j=0;j<10;j++) { scanf("%d",&a[i][j]); } } for(i=0;i<4;讥+) { for(j=0;j<4;j++) { scanf("%d",&b[i][j]); } } scanf("%d",&n); for(i=0;i<4;i++) { for(j=0;j<4;j卄) { if(b[i][j]==1) x[k]=i; y[k]=j; k++; } } while (1) { for(i=0;i<4;i++) { if(a[x[i]+down][y[i]+n-1]二二0) { count++; } } if(count==4) { down++; count=0; } else { if(x[i]+down==14) { for(j=0;j<4;j卄) { a[x[j]+down][y[j]+n-1]二1; } break; } else { for(j=0;j<4;j++) { a[x[j]+down-l][y[j]+n-1]二1;} break; } } } for(i=0;i<15;i卄) { for(j=0;j<10;j++) printf(,z%d"、a[i][j]); printf(z/\n/z); } return0; } 题17: 最大波动 #include #include intmain() { inti,n,t=0; inta[1001]={0}; scanf(z,%d/z,&n); for(i=0;i { scanf&a[i]); } for(i=0;i i卄) { if(t t=abs(a[i]-a[i+1]); } } printf(z/%d,z,t); return0; } 题1&火车购票 #include intmain() { inti,j,n,t,k; intflag; inta[100]={0}; intb[20]={0};scanf("%d",&n); for(i=0;i<20;i++) b[i]=5; for(i=0;i { scanf(,z%d,z,&t); flag=0; for(j=0;j<20;j++) { if(b[j]>=t)〃有连续座位 { for(k=1;k<=t;k++) { printf(z/%d”,j*5+(5-b[j])+k);} printf(〃\n〃); b[j]=b[j]-t; flag=1; break; } } if(flag==0&&t>0)//无连续座位且有人买票 { for(j=0;j<20;j++) { while(b[j]>=1)〃分散买票 { printf(,? %d”,j*5+(5-b[j])+1); t—; b[j]—; } } printf(z/\nz/);//注意换行的情况 } } return0; } 题19: 中间数 #include intmain() { inti,j,n,zuo,you; intt=-1; inta[1001]; scanf("%d: &n);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CCF 历年 语言 答案 doc