CCF历年真题C语言答案解析.docx

上传人:b****3 文档编号:7002659 上传时间:2023-05-10 格式:DOCX 页数:31 大小:19.92KB
下载 相关 举报
CCF历年真题C语言答案解析.docx_第1页
第1页 / 共31页
CCF历年真题C语言答案解析.docx_第2页
第2页 / 共31页
CCF历年真题C语言答案解析.docx_第3页
第3页 / 共31页
CCF历年真题C语言答案解析.docx_第4页
第4页 / 共31页
CCF历年真题C语言答案解析.docx_第5页
第5页 / 共31页
CCF历年真题C语言答案解析.docx_第6页
第6页 / 共31页
CCF历年真题C语言答案解析.docx_第7页
第7页 / 共31页
CCF历年真题C语言答案解析.docx_第8页
第8页 / 共31页
CCF历年真题C语言答案解析.docx_第9页
第9页 / 共31页
CCF历年真题C语言答案解析.docx_第10页
第10页 / 共31页
CCF历年真题C语言答案解析.docx_第11页
第11页 / 共31页
CCF历年真题C语言答案解析.docx_第12页
第12页 / 共31页
CCF历年真题C语言答案解析.docx_第13页
第13页 / 共31页
CCF历年真题C语言答案解析.docx_第14页
第14页 / 共31页
CCF历年真题C语言答案解析.docx_第15页
第15页 / 共31页
CCF历年真题C语言答案解析.docx_第16页
第16页 / 共31页
CCF历年真题C语言答案解析.docx_第17页
第17页 / 共31页
CCF历年真题C语言答案解析.docx_第18页
第18页 / 共31页
CCF历年真题C语言答案解析.docx_第19页
第19页 / 共31页
CCF历年真题C语言答案解析.docx_第20页
第20页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

CCF历年真题C语言答案解析.docx

《CCF历年真题C语言答案解析.docx》由会员分享,可在线阅读,更多相关《CCF历年真题C语言答案解析.docx(31页珍藏版)》请在冰点文库上搜索。

CCF历年真题C语言答案解析.docx

CCF历年真题C语言答案解析

题1:

出现次数最多的数

#include

intmain()

{

inti,j,n,s;

intt=1;

inta[10001]={0};

scanf("%d",&n);

for(i=0;i

{

scanf("%d",&s);//下标为输入值,每个数组值为输入频数

a[s]++;

if(a[s]>a[t])t=s;

if(a[s]==a[t])t=(s

s:

t);

}

printf("%d",t);

return0;

}

题2:

ISBN号码

#include

intmain()

{

intsum=0;

chara[13]={'\0'};

gets(a);

sum=(a[0]-'0')*1+(a[2]-'0')*2+(a[3]-'0')*3+(a[4]-'0')*4+(a[6]-'0')*5+(a[7]-'0')*6+(a[8]-'0')*7+(a[9]-'0')*8+

(a[10]-'0')*9;

if((sum%11==a[12]-'0')||(sum%11==10&&a[12]=='X'))//注意正确情况几种类型

{

printf("Right");

}

else

{

if(sum%11==10)

a[12]='X';

else

a[12]=sum%11+'0';

puts(a);

}

return0;

}

题3:

相反数

#include

intmain()

{

inti,j,n,t=0;

inta[501];

scanf("%d",&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++;

}

}

printf("%d",t);

return0;

}

题4:

窗口

#include

typedefstructwindow1{

intx1,x2,y1,y2,order;

}window;

voidInputwindow(windowws[],intn)

{

inti;

for(i=1;i<=n;i++)

{

scanf("%d%d%d%d",&ws[n-i].x1,&ws[n-i].y1,&ws[n-i].x2,&ws[n-i].y2);

ws[n-i].order=i;

}

}

intgetpos(windowws[],intn,intx,inty)

{

inti;

for(i=0;i

{

if(x>=ws[i].x1&&x<=ws[i].x2&&y>=ws[i].y1&&y<=ws[i].y2)

{

returni;

}

}

return-1;

}

voidmovewindow(windowws[],intn,intpos)

{

windoww=ws[pos];

inti;

for(i=pos-1;i>=0;i--)

{

ws[i+1]=ws[i];

}

ws[0]=w;

}

intmain()

{

inti,n,m,x,y,pos;

scanf("%d%d",&n,&m);

windowws[n];

Inputwindow(ws,n);

for(i=0;i

{

scanf("%d%d",&x,&y);

pos=getpos(ws,n,x,y);

if(pos==-1){

printf("IGNORED\n");

}

else{

printf("%d\n",ws[pos].order);

movewindow(ws,n,pos);

}

}

return0;

}

题5:

相邻数对

#include

#include

intmain()

{

inti,j,n,t=0;

inta[1001];

scanf("%d",&n);

for(i=0;i

{

scanf("%d",&a[i]);

}

for(i=0;i

{

for(j=i+1;j

{

if(abs(a[i]-a[j])==1)t++;

}

}

printf("%d",t);

return0;

}

题6:

画图

#include

intmain()

{

inti,j,n,k,t=0;

inta[101][4];

scanf("%d",&n);

for(i=0;i

{

scanf("%d%d%d%d",&a[i][0],&a[i][1],&a[i][2],&a[i][3]);

}

for(i=0;i<101;i++)

{

for(j=0;j<101;j++)

{

for(k=0;k

{

if(j>=a[k][0]&&j=a[k][1]&&i

break;

}

if(k

t++;

}

}

printf("%d",t);

return0;

}

题7:

门禁系统

#include

intmain()

{

inti,n,s=0;

inta[1001]={0};

scanf("%d",&n);

for(i=0;i

{

scanf("%d",&s);

a[s]++;

printf("%d",a[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("%d",a[j][i]);

}

else

{

printf("%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)

printf("");

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;i--)//i为从后找起的频数

{

for(j=0;j<1001;j++)//数组下标从小到大

{

if(a[j]==i)//找自己

{

printf("%d%d\n",j,a[j]);

}

}

}

return0;

}

题11:

数列分段

#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]!

=a[i+1])t++;

}

printf("%d",t+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=1;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

intmain()

{

intn,sum=0;

scanf("%d",&n);

while(n)

{

sum=sum+n%10;

n=n/10;

}

printf("%d",sum);

return0;

}

题14:

消除类游戏

#include

intmain()

{

inti,j,k,n,m,t=1;

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

{

while(a[i][j]==a[i+1][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

{

for(j=0;j

{

if(b[i][j])a[i][j]=0;//将找到的赋0

}

}

for(i=0;i

{

for(j=0;j

{

printf("%d",a[i][j]);

}

printf("\n");

}

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("%d",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;i++)

{

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-1][y[j]+n-1]=1;

}

break;

}

}

}

for(i=0;i<15;i++)

{

for(j=0;j<10;j++)

{

printf("%d",a[i][j]);

}

printf("\n");

}

return0;

}

题17:

最大波动

#include

#include

intmain()

{

inti,n,t=0;

inta[1001]={0};

scanf("%d",&n);

for(i=0;i

{

scanf("%d",&a[i]);

}

for(i=0;i

{

if(t

{

t=abs(a[i]-a[i+1]);

}

}

printf("%d",t);

return0;

}

题18:

火车购票

#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("%d",&t);

flag=0;

for(j=0;j<20;j++)

{

if(b[j]>=t)//有连续座位

{

for(k=1;k<=t;k++)

{

printf("%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("\n");//注意换行的情况

}

}

return0;

}

题19:

中间数

#include

intmain()

{

inti,j,n,zuo,you;

intt=-1;

inta[1001];

scanf("%d",&n);

for(i=0;i

{

scanf("%d",&a[i]);

}

for(i=0;i

{

zuo=0;//注意初始化

you=0;

for(j=0;j

{

if(a[i]>a[j])

zuo++;

if(a[i]

you++;

}

if(zuo==you)

{

t=a[i];

}

}

printf("%d",t);

return0;

}

题20:

工资计算

#include

intmain()

{

inti,t;

intx=0;

scanf("%d",&t);

if(t<=3500)

{

printf("%d",t);

}

for(i=3600;i<=100000;i=i+100)

{

if(i>=3600&&i<=5000)

{

x+=(i-3500)*0.03;

}

if(i>=5100&&i<=8000)

{

x+=(i-5000)*0.1+45;

}

if(i>=8100&&i<=12500)

{

x+=(i-8000)*0.2+45+300;

}

if(i>=12600&&i<=38500)

{

x+=(i-12500)*0.25+45+300+900;

}

if(i>=38600&&i<=58500)

{

x+=(i-38500)*0.3+45+300+900+6500;

}

if(i>=58600&&i<=83500)

{

x+=(i-58500)*0.35+45+300+900+6500+6000;

}

if(i>=83600)

{

x+=(i-83500)*0.45+45+300+900+6500+6000+8750;

}

if(i-x==t)

{

printf("%d",i);

break;

}

}

return0;

}

题21:

分蛋糕

#include

intmain()

{

inti,n,k;

intsum=0,t=0;

inta[1001];

scanf("%d%d",&n,&k);

for(i=0;i

{

scanf

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2