CCF歷年真題C語言答案_第1頁
CCF歷年真題C語言答案_第2頁
CCF歷年真題C語言答案_第3頁
CCF歷年真題C語言答案_第4頁
CCF歷年真題C語言答案_第5頁
免費預覽已結束,剩余22頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、CCF歷年真題C語言答案題 1:出現次數最多的數#include<stdio.h>int main()int i,j, n, s;int t = 1;int a10001 = 0; scanf("%d", &n);for (i = 0; i < n; i+) scanf("%d", &s); / as+; if (as > at) t=s; if (as = at) t=(s<t? s:t);printf("%d", t); return 0;下標為輸入值,每個數組值為輸入頻數題 2:IS

2、BN 號碼#include<stdio.h>int main()int sum=0;char a13 = '0'gets(a);sum = (a0 - '0')*1 + (a2 - '0') * 2 + (a3 - '0') * 3 + (a4 - '0') * 4 + (a6 - '0') * 5 + (a7 - '0') * 6 + (a8 - '0') * 7 + (a9 - '0') * 8 + (a10 - '0'

3、) * 9;if (sum%11 = a12-'0')|(sum%11=10&&a12='X') / PfXqz。GzogC。注意正確情況幾種類型printf("Right"); elseif (sum%11 = 10) a12 = 'X'elsea12 = sum%11 + '0' puts(a);CCF歷年真題C語言答案return 0;題 3:相反數 #include<stdio.h> int main()int i, j, n,t=0;int a501; scanf(&quo

4、t;%d", &n);for (i = 0; i < n; i+)scanf("%d", &ai); for (i = 0; i < n-1; i+)for (j = i + 1; j < n; j+)if (ai + aj = 0) t+; printf("%d", t); return 0;題 4:窗口 #include<stdio.h>typedef struct window1 int x1,x2,y1,y2,order; window;void Inputwindow(window ws,

5、int n)int i;for(i=1;i<=n;i+) 0ElGE。scanf("%d%d%d%d",&wsn-i.x1,&wsn-i.y1,&wsn-i.x2,&wsn-i.y2); wsn-i.order=i;int getpos(window ws,int n,int x,int y) CCF歷年真題C語言答案int i;for(i=0;i<n;i+)Wa1pg。if(x>=wsi.x1&&x<=wsi.x2&&y>=wsi.y1&&y<=wsi.y2

6、) return i;return -1;void movewindow(window ws,int n,int pos)window w=wspos;int i;for(i=pos-1;i>=0;i-)wsi+1=wsi;ws0=w;int main()int i,n,m,x,y,pos; scanf("%d%d",&n,&m); window wsn;Inputwindow(ws,n);for(i=0;i<m;i+) scanf("%d%d",&x,&y); pos=getpos(ws,n,x,y); if

7、(pos=-1) printf("IGNOREDn");elseprintf("%dn",wspos.order); movewindow(ws,n,pos);return 0;題 5:相鄰數對 #include<stdio.h>#inc-udeAmafh.hvinf 3ain()宀in二 L njua inf auoo二 scanf(=%cr mn=for (一 " 0二 A n二+) 宀scanf(=%d-for (一 " 0二 A n ' ri+) 宀r。乙上+ mAn 二+)宀if (abs(a三1 a曰)

8、H"二+Hprinff(=%d-三ref urn 0 八#inc-udeAsfdio.hvinf 3ain()宀in二 L nK f H o八inf arlo=±scanf(=%cr mn=for (一 " 0二 A n二+)宀scanf(=%df df dfcT ma=0L ma= ma=2L ma=32 for(i"aivori+) 宀forj"qjAo=+)宀for (k H 0八 k A p k+)宀if 0 VH a一k=2 mmj Ass V"盤三 break 八if (k A n)6rYGSAa-k=3一) 8VO2_。

9、CCF歷年真題C語言答案printf("%d", t); return 0;題 7:門禁系統 #include<stdio.h>int main()int i, n, s = 0; int a1001 = 0 ; scanf("%d", &n);for (i = 0; i < n; i+)scanf("%d", &s); as+;printf("%d ", as);return 0;題 8: z 字形掃描#include<stdio.h>int main()int i,

10、 j, k, n;int a500500; scanf("%d", &n);for (i = 0; i<n; i+) for (j = 0; j<n; j+)scanf("%d", &aij);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("%d ", aji);elseprintf("%d ", aij);

11、return 0;題 9:圖像旋轉 #include<stdio.h> #define N 1000int aNN;int main()int i, j, n, m; scanf("%d%d", &n, &m);for (i = 0; i < n; i+)for (j = 0; j < m; j+)scanf("%d", &aij);for (j = 1; j <=m; j+)for (i = 0; i < n; i+)if (i != 0) printf(" ");prin

12、tf("%d", aim - j); printf("n");return 0;CCF歷年真題C語言答案題 10 :數字排序#include<stdio.h> int main() 注意初始化賦值int i, j, n,s=0; int a1001 = 0; / scanf("%d", &n);for (i = 0; i < n; i+) scanf("%d", &s); as+;for (i = 1001; i >0; i-)for (j = 0; j <1001;

13、j+) /i為從后找起的頻數數組下標從小到大找自己if (aj = i) / printf("%d %dn", j, aj);return 0;題 11 :數列分段#include<stdio.h>int main()int i, n,t=0;int a1001; scanf("%d", &n);for (i = 0; i < n; i+)scanf("%d", &ai);for (i = 0; i < n - 1; i+)if (ai != ai + 1) t+;CCF歷年真題C語言答案pri

14、ntf("%d", t + 1); return 0;題 12 :日期計算#include<stdio.h> int main()int y, d, day, i;int mouth13 = 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)mouth2+;for (i = 1; i <13; i+)if (d > mouthi)d =

15、 d - mouthi;if (d = 0)RIeg6。l9h0f 。d = mouthi; break;else break; /printf("%dn%d", i, d); return 0;注意中斷,確保月份不出錯題 13 :數位之和#include<stdio.h>int main()int n, sum = 0; scanf("%d", &n);while (n)sum = sum + n%10; n = n / 10;CCF歷年真題C語言答案 printf("%d", sum); return 0;題

16、14 :消除類游戲#include<stdio.h>int main()int i, j,k, n, m,t=1; int a3131 = 0 ;int b3131 = 0 ; scanf("%d%d", &n, &m);for (i = 0; i < n; i+)for (j = 0; j < m; j+)scanf("%d", &aij); for (i = 0; i < n; i+)for (j = 0; j < m; j+)while (aij = aij + 1) /checkj+;i

17、f (j = m) break; t+;if (t >= 3)for (k = j - t + 1; k <= j; k+) bik = 1; t = 1;for (j = 0; j < m; j+) CCF歷年真題C語言答案for (i = 0; i < n; i+) while (aij = ai+1j) /checki+;if (i = n) break;t+;if (t >= 3)for (k = i - t + 1; k <= i; k+)bkj = 1;t = 1;for (i = 0; i < n; i+) for (j = 0; j &

18、lt; m; j+)將找到的賦 0if (bij) aij = 0; / for (i = 0; i < n; i+)for (j = 0; j < m; j+)printf("%d ", aij);printf("n");return 0;題 15 :折點計數#include<stdio.h> int main()int i, n,t=0;int a1001;CCF歷年真題C語言答案scanf("%d", &n);for (i = 0; i < n; i+)scanf("%d"

19、;, &ai);for (i = 0; i < n-2; i+)if (ai + 1 < ai && ai + 1 < ai + 2) | (ai + 1 > ai && ai + 1 > ai + 2) t+;gnavo。 printf("%d", t);return 0; 題 16 :俄羅斯方塊#include<stdio.h>int main()int i, j, n;int k = 0,count=0,down=0;int x4, y4;int a1510;int b44;for (i

20、 = 0; i < 15; i+)for (j = 0; j < 10; j+)scanf("%d", &aij);for (i = 0; i < 4; i+)for (j = 0; j < 4; j+)scanf("%d", &bij);scanf("%d", &n);for (i = 0; i < 4; i+)for (j = 0; j < 4; j+)if (bij = 1)CCF歷年真題C語言答案xk = i; yk = j; k+;while (1)for (i =

21、 0; i < 4; i+)if (axi + downyi + n - 1 = 0) count+;if (count = 4) down+; count = 0;elseif (xi + down = 14) for (j = 0; j < 4; j+)axj + downyj + n - 1 = 1; break; elsefor (j = 0; j < 4; j+)axj + down - 1yj + n - 1 = 1; break;for (i = 0; i < 15; i+)for (j = 0; j < 10; j+)CCF歷年真題C語言答案 pr

22、intf("%d ", aij);printf("n");return 0;題 17 :最大波動#include<stdio.h> #include<math.h> int main()int i, n,t=0;int a1001 = 0 ; scanf("%d", &n);for (i = 0; i < n; i+)scanf("%d", &ai);for (i = 0; i < n-1; i+)if (t < abs(ai - ai + 1)t = ab

23、s(ai - ai + 1); printf("%d", t); return 0;題 18 :火車購票#include<stdio.h>int main()int i, j, n, t,k;int flag;int a100 = 0 ; int b20 = 0; scanf("%d", &n);for (i = 0; i < 20; i+) CCF歷年真題C語言答案bi = 5;for (i = 0; i < n; i+)scanf("%d", &t);flag = 0;for (j = 0;

24、 j < 20; j+) if (bj >= t) / 有連續座位for (k = 1; k <= t; k+)printf("%d ", j * 5 + (5 - bj) + k); printf("n"); bj = bj - t;flag = 1; break; if(flag=0&&t>0) /for (j = 0; j < 20; j+)無連續座位且有人買票while (bj >= 1) / 分散買票printf("%d ", j * 5 + (5 - bj) + 1);

25、t-;bj-; printf("n"); /return 0;注意換行的情況題 19 :中間數#include<stdio.h>int main()int i,j,n,zuo,you;int t = -1;CCF歷年真題C語言答案int a1001; scanf("%d", &n);for (i = 0; i < n; i+)scanf("%d", &ai);for (i = 0; i < n; i+)zuo = 0; /注意初始化you = 0;注意 j 的范圍for (j = 0; j &l

26、t; n; j+) /if (ai > aj)zuo+;if (ai < aj)you+;if (zuo = you)t = ai;printf("%d", t); return 0;題 20 :工資計算#include<stdio.h>int main()int i, t;int x = 0;scanf("%d", &t);if (t <= 3500)printf("%d", t);for (i = 3600; i <= 100000; i = i + 100)if (i >= 36

27、00 && i <= 5000)x += (i - 3500)*0.03;CCF歷年真題C語言答案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 &

28、amp;& i <= 58500)x += (i - 38500)*0.3 + 45 + 300 + 900 + 6500;if (i >= 58600 && i <= 83500)XnXmOx += (i - 58500)*0.35 + 45 + 300 + 900 + 6500 + 6000;if (i >= 83600)HROOYx += (i - 83500)*0.45 + 45 + 300 + 900 + 6500 + 6000 + 8750; if (i - x = t)printf("%d", i); break

29、;return 0;題 21 :分蛋糕#include<stdio.h> int main()int i, n, k;int sum = 0, t = 0;int a1001; scanf("%d%d", &n, &k); for (i = 0; i < n; i+) scanf("%d", &ai);for (i = 0; i < n; i+)sum = sum + ai; if (sum>=k) t+;sum = 0;注意這里的 else ifelse if (i = n - 1) / t+;pr

30、intf("%d", t); return 0;題 22 :學生排隊#include<stdio.h>int main()int i, j, n, m;int p, q, k;scanf("%d%d", &n, &m);int a1001 = 0 ;for (i = 1; i <= n; i+)ai = i;for (i = 1; i <= m; i+) scanf("%d%d", &p, &q); for (j = 1; j <= n; j+)if (aj = p)bre

31、ak; / 注意中斷 if (q < 0)注意循環移動數組中的元素for (k = -1; k >= q; k-) / CCF歷年真題C語言答案aj + k + 1 = aj + k; aj + q = p;else if (q > 0)for (k = 0; k < q; k+)aj + k = aj + k + 1; aj + q = p;for (i = 1; i <= n; i+)printf("%d ", ai);return 0;題 23 :打醬油#include<stdio.h> int main()int N, t

32、= 0; scanf("%d", &N);if (N < 30)t = N / 10;else if (N < 50)t = (N - 30) / 10 + 4;elset = (N / 50) * 7 + (N - (N / 50) * 50) / 30) * 4 + (N - (N / 50) * 50 - (N - (N / 50) * 50)/30)*30) / 10;KVtWC。/ 注意計算 printf("%d", t); return 0;CCF歷年真題C語言答案題 24 :公共鑰匙盒#include <stdio

33、.h> struct seq int key;int action;int time;int main()int num, order;int i = 0, j = 0;int w = 0, s = 0, c = 0; scanf("%d%d", &num, &order); int keysnum;struct seq arrorder * 2, temp;for (i = 0; i < num; i+)keysi = i + 1;for (i = 0; i < order; i+)scanf("%d%d%d", &a

34、mp;w, &s, &c); arr2 * i.key = w;arr2 * i.action = 0;arr2 * i.time = s;arr2 * i + 1.key = w;arr2 * i + 1.action = 1;arr2 * i + 1.time = s + c;for (i = 0; i < order * 2; i+)for (j = i + 1; j < order * 2; j+)if (arri.time > arrj.time) temp = arri; arri = arrj; arrj = temp;else if (arri

35、.time = arrj.time)if (arri.action = 0 && arrj.action = 1)temp = arri;arri = arrj;arrj = temp;arrj.action&& arri.keyelse if (arri.actionarrj.key)X8dbX。temp = arri; arri = arrj; arrj = temp;for (i = 0; i < order * 2; i+)if (arri.action = 0)for (j = 0; j < num; j+)if (keysj = arri.key)keysj = 0;break;elsefor (j = 0; j &l

溫馨提示

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

評論

0/150

提交評論