1、CCF历年真题C语言答案题1:出现次数最多的数#includeint main() int i,j, n, s; int t = 1; int a10001 = 0; scanf(%d, &n); for (i = 0; i at) t=s; if (as = at) t=(st? s:t); printf(%d, t); return 0;题2:ISBN号码#includeint main() int sum=0; char a13 = 0; gets(a); sum = (a0 - 0)*1 + (a2 - 0) * 2 + (a3 - 0) * 3 + (a4 - 0) * 4 + (a
2、6 - 0) * 5 + (a7 - 0) * 6 + (a8 - 0) * 7 + (a9 - 0) * 8 +(a10 - 0) * 9; if (sum%11 = a12-0)|(sum%11=10&a12=X) /注意正确情况几种类型 printf(Right); else if (sum%11 = 10) a12 = X; else a12 = sum%11 + 0; puts(a); return 0;题3:相反数#includeint main() int i, j, n,t=0; int a501; scanf(%d, &n); for (i = 0; i n; i+) sca
3、nf(%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:窗口#includetypedef struct window1 int 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,&wsn-i.x1,&wsn-i.y1,&wsn-i.x2,&wsn-i.y2); wsn-i.order=i;
4、 int getpos(window ws,int n,int x,int y) int i; for(i=0;i=wsi.x1&x=wsi.y1&y=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;im;i+) scanf(%d%d,&x,&y); pos=getpos(ws,n,x,y); if(pos=-1) printf(IGNOREDn); else printf(%dn,wspos.order); movewi
5、ndow(ws,n,pos); return 0; 题5:相邻数对#include#includeint 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, t); return 0;题6:画图#includeint main() int i, j, n,k, t = 0; int a1014; sca
6、nf(%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 = ak0 & j = ak1 & i ak3) break; if (k n) t+; printf(%d, t); return 0; 题7:门禁系统#includeint main() int i, n, s = 0; int a1001 = 0 ; scanf(%d, &n); for (i = 0; i n; i+) s
7、canf(%d, &s); as+; printf(%d , as); return 0;题8:z字形扫描#includeint main() int i, j, k, n; int a500500; scanf(%d, &n); for (i = 0; in; i+) for (j = 0; jn; j+) scanf(%d, &aij); for (k = 0; k2 * n - 1; k+) for (i = 0; in; i+) for (j = 0; jn; j+) if (i + j = k) if (k % 2 = 0) printf(%d , aji); else printf
8、(%d , aij); return 0;题9:图像旋转#include#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; j+) for (i = 0; i n; i+) if (i != 0) printf( ); printf(%d, aim - j); printf(n); return 0;题10:数字排序#includeint main()
9、int i, j, n,s=0; int a1001 = 0; /注意初始化赋值 scanf(%d, &n); for (i = 0; i 0; i-) /i为从后找起的频数 for (j = 0; j 1001; j+) /数组下标从小到大 if (aj = i) /找自己 printf(%d %dn, j, aj); return 0;题11:数列分段#includeint 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+)
10、if (ai != ai + 1) t+; printf(%d, t + 1); return 0;题12:日期计算#includeint 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 mouthi) d = d - mouthi; if (d = 0) d = mouthi; break; else break; /注意中断,确保月份不出错 printf(%dn%d, i, d); return 0;题13:数位之和#includeint main() int n, sum = 0; scanf(%d, &n); while (n) sum = sum + n%10;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1