CCF歷年真題C語言答案_第1頁
CCF歷年真題C語言答案_第2頁
CCF歷年真題C語言答案_第3頁
CCF歷年真題C語言答案_第4頁
CCF歷年真題C語言答案_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

題1:出現(xiàn)次數(shù)最多的數(shù)

#include<stdio.h>

intmain()

(

inti,j,n,s;

intt=1;

inta[10001]={0};

scanf&n);

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

{

scanf(〃%d〃,&s);〃下標為輸入值,每個數(shù)組值為輸入頻數(shù)

a[s]++;

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

if(a[s]==a[t])t=(s<t?s:t);

)

printf(〃%d〃,t);

return0;

)

題2:ISBN號碼

#include<stdio.h>

intmain()

(

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]-'O')||(sum%ll=10&&a[12]=,X,))〃注意正確情況幾種類型

{

printf("Right");

)

else

(

if(sum%ll==10)

a[12]='X';

else

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

puts(a);

return0;

題3:相反數(shù)

#include<stdio.h>

intmain()

(

inti,j,n,t=0;

inta[501];

scanf(〃%d〃,&n);

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

{

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

)

for(i=0;i<n-l;i++)

{

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

{

if(a[i]+a[j]=0)t++;

)

)

printf(〃%d〃,t);

return0;

)

題4:窗口

#include<stdio.h>

typedefstructwindowl{

intxl,x2,yl,y2,order;

}window;

voidInputwindow(windowws[],intn)

{

inti;

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

{

scanf(/z%d%d%d%d/z,&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)

inti;

for(i=0;Kn;i++)

if(x>=ws[i].xl&&x<=ws[i].x2&&y>=ws[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(〃%d%d〃,&n,&m);

windowws[n];

Inputwindow(ws,n);

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

{

scanf&x,&y);

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

if(pos==-l){

printf(z,IGN0RED\nz,);

}

else{

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

movewindow(ws,n,pos);

}

}

return0;

)

題5:相鄰數(shù)對

#include<stdio.h>

#include<math.h>

intmain()

inti,j,n,t=O;

inta[1001];

scanf(〃%d〃,&n);

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

(

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

)

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

{

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

{

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

}

)

printf(,z%d,z,t);

return0;

題6:畫圖

#include<stdio.h>

intmain()

(

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

inta[101][4];

scanf(〃%d〃,&n);

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

{

scanf(,z%d%d%d%d,z,&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<n;k++)

{

if(j>=a[k][0]&&j<a[k][2]&&i>=a[k][l]&&i<a[k][3])

break;

)

if(k<n)

t++;

printf(z/%d,z,t);

return0;

題7:門禁系統(tǒng)

#include<stdio.h>

intmain()

{

inti,n,s=0;

inta[1001]={0};

scanf(〃%d〃,&n);

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

(

scanf(〃%d〃,&s);

a[s]++;

printf(zz%d〃,a[s]);

)

return0;

題8:z字形掃描

#include<stdio.h>

intmain()

{

inti,j,k,n;

inta[500][500];

scanf(〃%d〃,&n);

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

{

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

(

scanf&a[i][j]);

}

)

for(k=0;k<2*n-1;k++)

{

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

(

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

if(i+j=k)

if(k%2==0)

{

printf(〃%da[j][i]);

}

else

{

printf(〃%da[i][j]);

)

}

return0;

)

題9:圖像旋轉(zhuǎn)

#include<stdio.h>

#defineN1000

inta[N][N];

intmain()

(

inti,j,n,m;

scanf(,z%d%dzz,&n,&m);

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

{

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

(

scanf(,/%dz,,&a[i][j]);

}

)

for(j=1;j<=m;j++)

{

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

(

if(i!=0)

printf(〃〃);

printf(,z%dzz,a[i][m-j]);

}

printf(〃\n〃);

)

return0;

題10:數(shù)字排序

#include<stdio.h>

intmain()

{

inti,j,n,s=0;

inta[1001]={0};〃注意初始化賦值

scanf(〃%d〃,&n);

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

{

scanf(〃%d〃,&s);

a[s]++;

)

for(i=1001;i>0;i—)〃i為從后找起的頻數(shù)

{

for(j=0;j<1001;j++)〃數(shù)組下標從小到大

(

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

(

printf(z,%d%d\nzz,j,a[j]);

)

return0;

題11:數(shù)列分段

#include<stdio.h>

intmain()

{

inti,n,t=0;

inta[1001];

scanf(〃%d〃,&n);

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

{

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

)

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

{

if(a[i]!=a[i+1])t++;

printft+1);

return0;

題12:日期計算

#include<stdio.h>

intmain()

(

inty,d,day,i;

intmouth[13]={0,31,28,31,30,31,30,31,31,30,31,30,31);

scanf(,z%d%d/z,&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(,z%d\n%dzz,i,d);

return0;

題13:數(shù)位之和

#include<stdio.h>

intmain()

{

intn,sum=0;

scanf(〃%d〃,&n);

while(n)

{

sum二sum+n%10;

n=n/10;

printf(〃%d〃,sum);

return0;

題14:消除類游戲

#include<stdio.h>

intmain()

(

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

inta[31][31]={0};

intb[3L][31]={0};

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

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

{

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

(

scanf&a[i][j]);

)

)

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

{

for(j=0;j<m;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<m;j++)

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

while(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<m;j++)

{

if(b[i][j])a[i][j]=0;〃將找到的賦0

}

)

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

{

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

(

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

}

printf(〃\n〃);

)

return0;

題15:折點計數(shù)

#include<stdio.h>

intmain()

(

inti,n,t=0;

inta[1001];

scanf(〃%d〃,&n);

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

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

)

for(i=0;i<n-2;i++)

{

if((a[i+1]<a[i]&&a[i+1]<a[i+2])||(a[i+1]>a[i]&&a[i+

1]>a[i+2]))t++;

}

printf(,z%d,z,t);

return0;

)

題16:俄羅斯方塊

#include<stdio.h>

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&a[i][j]);

}

)

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

(

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

(

scanf&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<stdio.h>

#include<math.h>

intmain()

(

inti,n,t=0;

inta[1001]={0};

scanf(〃%d〃,&n);

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

{

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

)

for(i=0;i<n-l;i++)

{

if(t<abs(a[i]-a[i+1]))

(

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

)

)

printf(〃%d〃,t);

return0;

題18:火車購票

#include<stdio.h>

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<n;i++)

scanf(〃%d〃,&t);

flag=0;

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

(

if(b[j]>=t)〃有連續(xù)座位

(

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)〃無連續(xù)座位且有人買票

(

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

{

while(b[j]>=1)〃分散買票

{

printf(,z%d”,j*5+(5-b[j])+1);

t—;

b[j]—;

printf(〃\n〃);〃注意換行的情況

return0;

題19:中間數(shù)

#include<stdio.h>

intmain()

(

inti,j,n,zuo,you;

intt=-1;

inta[1001];

scanf(〃%d〃,&n);

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

{

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

)

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

{

zuo=0;〃注意初始化

you=0;

for(j=0;j<n;j++)〃注意j的范圍

(

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

zuo++;

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

you++;

}

if(zuo==you)

(

t=a[i];

)

)

printf(z,%d,z,t);

return0;

)

題20:工資計算

#include<stdio.h>

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+60008750;

}

if(i-x==t)

(

printf("%d",i);

break;

)

)

return0;

)

題21:分蛋糕

#include<stdio.h>

intmain()

(

inti,n,k;

intsum=0,t=0;

inta[1001];

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

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

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

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

{

sum=sum+a[i];

if(sum>=k)

{

t++;

sum=0;

}

elseif(i==n-1)〃注意這里的elseif

(

t++;

)

}

printf(z,%d,z,t);

return0;

)

題22:學生排隊

#include<stdio.h>

intmain()

(

inti,j,n,m;

intp,q,k;

scanf(,z%d%dzz,&n,&m);

inta[1001]={0};

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

{

a[i]=i;

)

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

{

scanf(〃%d%d〃,&p,&q);

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

{

if(a[j]=p)

break;〃注意中斷

}

if(q<0)

{

for(k=-1;k>=q;k-)〃注意循環(huán)移動數(shù)組中的元素

a[j+k+1]=a[j+k];

a[j+q]=p;

)

elseif(q>0)

(

for(k=0;k<q;k++)

{

a[j+k]=a[j+k+1];

}

a[j+q]=p;

)

)

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

{

printf(z/%d”,a[i]);

}

return0;

}

題23:打醬油

#include<stdio.h>

intmain()

(

intN,t=0;

scanf&N);

if(N<30)

{

t=N/10;

)

elseif(N<50)

(

t=(N-30)/10+4;

)

else

{

t=(N/50)*7+((N-(N/50)*50)/30)*4+(N-(N/50)*50-

((N-(N/50)*50)/30)*30)/10;

〃注意計算

printft);

return0;

題24:公共鑰匙盒

#include<stdio.h>

structseq(

intkey;

intaction;

inttime;

};

intmain()

intnum,order;

inti=0,j=0;

intw=0,s=0,c=0;

scanf(〃%d%d〃,&num,&order);

intkeys[num];

structseqarr[order*2],temp;

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

keys[i]=i+1;

)

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

scanf(〃%d%d%d〃,&w,&s,&c);

arr[2*i].key=w;

arr[2*i].action=0;

arr[2*i].time=s;

arr[2*i+1].key=w;

arr[2*i+1].action=1;

arr[2*i+1].time=s+c;

for(i=0;i<order*2;i++)

for(j=i+1;j<order*2;j++)

(

if(arr[i].time>arr[j].time)

{

temp=arr[i];

arr[i]=arr[j];

arr[j]=temp;

elseif(arr[i].time==arr[j].time)

if(arr[i].action==0&&arr[j].action==1)

temp=arr[i];

arr[i]=arr[j];

arr[j]=temp;

}

elseif(arr[i].action==arr[j].action&&arr[i].key>arr[j].key)

(

temp=arr[i];

arr[i]=arr[j];

arr[j]=temp;

for0;i<order*2;i++)

if(arr[i].action==0)

for0;j<num;j++)

if(keys[j]==arr[i].key)

keys[j]=0;

break;

else

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論