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

下載本文檔

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

文檔簡介

1、題1:出現(xiàn)次數(shù)最多的數(shù)#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); /下標為輸入值,每個數(shù)組值為輸入頻數(shù)as+;if (as > at) t=s;if (as = at) t=(s<t? s:t);printf("%d", t);return 0;題2:ISBN號碼#include<stdi

2、o.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') * 9;if (sum%11 = a12

3、-'0')|(sum%11=10&&a12='X') /注意正確情況幾種類型printf("Right");elseif (sum%11 = 10) a12 = 'X'else a12 = sum%11 + '0' puts(a);return 0;題3:相反數(shù)#include<stdio.h>int main()int i, j, n,t=0;int a501;scanf("%d", &n);for (i = 0; i < n; i+)scanf(

4、"%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 window1int x1,x2,y1,y2,order; window;void Inputwindow(window ws,int n)int i;for(i=1;i<=n;i+) scanf("%d%d%d%d"

5、;,&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)int i;for(i=0;i<n;i+) if(x>=wsi.x1&&x<=wsi.x2&&y>=wsi.y1&&y<=wsi.y2) return i; return -1;void movewindow(window ws,int n,int pos)window w=wspos;int

6、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(pos=-1)printf("IGNOREDn");elseprintf("%dn",wspos.order); mov

7、ewindow(ws,n,pos);return 0; 題5:相鄰數(shù)對#include<stdio.h>#include<math.h>int main()int i, j, n,t=0;int a1001;scanf("%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 (abs(ai - aj) = 1) t+;printf("%d

8、", t);return 0;題6:畫圖#include<stdio.h>int main()int i, j, n,k, t = 0;int a1014;scanf("%d", &n);for (i = 0; i < n; i+)scanf("%d%d%d%d", &ai0, &ai1, &ai2, &ai3);for (i = 0; i < 101; i+)for (j = 0; j < 101; j+)for (k = 0; k < n; k+) if (j &g

9、t;= ak0 && j <ak2 && i >= ak1 && i <ak3)break;if (k < n)t+;printf("%d", t);return 0; 題7:門禁系統(tǒng)#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(&q

10、uot;%d ", as);return 0;題8:z字形掃描#include<stdio.h>int main()int i, 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

11、 % 2 = 0)printf("%d ", aji);elseprintf("%d ", aij);return 0;題9:圖像旋轉(zhuǎn)#include<stdio.h>#define N 1000 int 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

12、; j+)for (i = 0; i < n; i+)if (i != 0)printf(" ");printf("%d", aim - j);printf("n");return 0;題10:數(shù)字排序#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 (

13、i = 1001; i >0; i-) /i為從后找起的頻數(shù)for (j = 0; j <1001; j+) /數(shù)組下標從小到大if (aj = i) /找自己printf("%d %dn", j, aj);return 0;題11:數(shù)列分段#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

14、- 1; i+)if (ai != ai + 1) t+;printf("%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 <1

15、3; i+)if (d > mouthi)d = d - mouthi;if (d = 0)d = mouthi;break;else break; /注意中斷,確保月份不出錯printf("%dn%d", i, d);return 0;題13:數(shù)位之和#include<stdio.h>int main()int n, sum = 0;scanf("%d", &n);while (n)sum = sum + n%10;n = n / 10;printf("%d", sum);return 0;題14:消除類游

16、戲#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) /check行j+;if (j = m)

17、break;t+;if (t >= 3)for (k = j - t + 1; k <= j; k+)bik = 1;t = 1;for (j = 0; j < m; j+)for (i = 0; i < n; i+)while (aij = ai+1j) /check列i+;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 < m; j+)if (bij) aij = 0;

18、 /將找到的賦0for (i = 0; i < n; i+)for (j = 0; j < m; j+)printf("%d ", aij);printf("n");return 0;題15:折點計數(shù)#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-2; i+)if (a

19、i + 1 < ai && ai + 1 < ai + 2) | (ai + 1 > ai && ai + 1 > ai + 2) t+;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 = 0; i < 15; i+)for (j = 0; j < 10; j+)scanf(&q

20、uot;%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)xk = i;yk = j;k+;while (1)for (i = 0; i < 4; i+)if (axi + downyi + n - 1 = 0)count+;if (count = 4)

21、 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+)printf("%d ", aij);printf("n");return 0; 題17:最大波動#include<stdio.

22、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 = abs(ai - ai + 1);printf("%d", t);return 0;題18:火車購票#include<stdio.h>int main

23、()int i, j, n, t,k;int flag;int a100 = 0 ;int b20 = 0;scanf("%d", &n);for (i = 0; i < 20; i+)bi = 5;for (i = 0; i < n; i+)scanf("%d", &t);flag = 0;for (j = 0; j < 20; j+)if (bj >= t) /有連續(xù)座位for (k = 1; k <= t; k+)printf("%d ", j * 5 + (5 - bj) + k)

24、;printf("n");bj = bj - t;flag = 1;break;if(flag=0&&t>0) /無連續(xù)座位且有人買票for (j = 0; j < 20; j+)while (bj >= 1) /分散買票printf("%d ", j * 5 + (5 - bj) + 1);t-;bj-;printf("n"); /注意換行的情況return 0;題19:中間數(shù)#include<stdio.h>int main()int i,j,n,zuo,you;int t = -1;

25、int a1001;scanf("%d", &n);for (i = 0; i < n; i+)scanf("%d", &ai);for (i = 0; i < n; i+)zuo = 0; /注意初始化you = 0;for (j = 0; j < n; j+) /注意j的范圍if (ai > aj)zuo+;if (ai < aj)you+;if (zuo = you)t = ai;printf("%d", t);return 0;題20:工資計算#include<stdio.h

26、>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 >= 3600 && i <= 5000)x += (i - 3500)*0.03;if (i >= 5100 && i <= 8000)x += (i - 5000)*0.1 + 45;if (i >= 8100 &

27、& 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 + 9

28、00 + 6500 + 6000;if (i >= 83600)x += (i - 83500)*0.45 + 45 + 300 + 900 + 6500 + 6000 + 8750;if (i - x = t)printf("%d", i);break;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+)scan

29、f("%d", &ai);for (i = 0; i < n; i+)sum = sum + ai;if (sum>=k)t+;sum = 0;else if (i = n - 1) /注意這里的else ift+;printf("%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

30、<= n; i+)ai = i;for (i = 1; i <= m; i+)scanf("%d%d", &p, &q);for (j = 1; j <= n; j+)if (aj = p)break; /注意中斷if (q < 0)for (k = -1; k >= q; k-) /注意循環(huán)移動數(shù)組中的元素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

31、= 1; i <= n; i+)printf("%d ", ai);return 0; 題23:打醬油#include<stdio.h>int main()int N, t = 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

32、)/30)*30) / 10;/注意計算printf("%d", t);return 0;題24:公共鑰匙盒#include <stdio.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 <

33、 num; i+)keysi = i + 1;for (i = 0; i < order; i+)scanf("%d%d%d", &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

34、 (arri.time > arrj.time)temp = arri;arri = arrj;arrj = temp;else if (arri.time = arrj.time)if (arri.action = 0 && arrj.action = 1)temp = arri;arri = arrj;arrj = temp;else if (arri.action = arrj.action && arri.key > arrj.key)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;elsefo

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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

提交評論