CCF计算机职业资格认证考试资料

数据范围

类型

字节

表示范围

signed char

1

-128~+127

unsigned char

1

0~+255

short int

2

-32768~+32767

(long) int

4

-2147438648~+2141438647

long long long int

8

-9223372036854775808~+9223372036854775807

附:试题案例

问题描述

  输入A,B。

  输出A+B。

输入格式

  输入包含两个整数A,B,用一个空格分隔。

输出格式

  输出一个整数,表示A+B的值。

样例输入

  1 2

样例输出

  3

数据规模和约定

  -1,000,000,000<=A,B<=1,000,000,000。

解决此题的一个C++程序示例:

//example.cpp
#include<iostream>using namespace std;int main()
{int a, b;cin >> a >> b;cout << a + b;return 0;
}

问题描述

试题编号:

201503-1

试题名称:

图像旋转

时间限制:

5.0s

内存限制:

256.0MB

问题描述:

问题描述

  旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度。
  计算机中的图像表示可以用一个矩阵来表示,为了旋转一个图像,只需要将对应的矩阵旋转即可。

输入格式

  输入的第一行包含两个整数n, m,分别表示图像矩阵的行数和列数。
  接下来n行每行包含m个整数,表示输入的图像。

输出格式

  输出m行,每行包含n个整数,表示原始矩阵逆时针旋转90度后的矩阵。

样例输入

2 3
1 5 3
3 2 4

样例输出

3 4
5 2
1 3

评测用例规模与约定

  1 ≤ n, m ≤ 1,000,矩阵中的数都是不超过1000的非负整数。

//201503-1.cpp
#include<iostream>
using namespace std;
int main()
{int m,n;cin>>m>>n;int s[m+1][n+1],i,j;for(i=1;i<=m;i++){for(j=1;j<=n;j++)cin>>s[i][j];}for(i=n;i>0;i--){for(j=1;j<=m;j++)cout<<s[j][i]<<" ";cout<<endl;}return 0;
}

问题描述

试题编号:

201503-2

试题名称:

数字排序

时间限制:

1.0s

内存限制:

256.0MB

问题描述:

问题描述

  给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出。

输入格式

  输入的第一行包含一个整数n,表示给定数字的个数。
  第二行包含n个整数,相邻的整数之间用一个空格分隔,表示所给定的整数。

输出格式

  输出多行,每行包含两个整数,分别表示一个给定的整数和它出现的次数。按出现次数递减的顺序输出。如果两个整数出现的次数一样多,则先输出值较小的,然后输出值较大的。

样例输入

12
5 2 3 3 1 3 4 2 5 2 3 5

样例输出

3 4
2 3
5 3
1 1
4 1

评测用例规模与约定

  1 ≤ n ≤ 1000,给出的数都是不超过1000的非负整数。

//201503-2.cpp
#include<iostream>
using namespace std;
int main()
{int n,t,i,j,max,s[1001],k[1001];cin>>n;for(i=1;i<1001;i++)s[i]=0;for(i=0;i<n;i++){cin>>t;s[t]++;if(t>max)max=t;}for(i=1;i<=max;i++){k[i]=i; }for(i=1;i<max;i++){for(j=i+1;j<=max;j++){if(s[k[j]]>s[k[i]]){t=k[j];k[j]=k[i];k[i]=t;            }if(s[k[j]]==s[k[i]]&&k[j]<k[i]){t=k[j];k[j]=k[i];k[i]=t;            }   }}for(i=1;i<=max;i++){if(s[k[i]]!=0)cout<<k[i]<<""<<s[k[i]]<<endl;}return 0;
}

问题描述

试题编号:

201503-3

试题名称:

节日

时间限制:

1.0s

内存限制:

256.0MB

问题描述:

问题描述

  有一类节日的日期并不是固定的,而是以“a月的第b个星期c”的形式定下来的,比如说母亲节就定为每年的五月的第二个星期日。
  现在,给你a,b,c和y1, y2(1850 ≤ y1, y2 ≤ 2050),希望你输出从公元y1年到公元y2年间的每年的a月的第b个星期c的日期。
  提示:关于闰年的规则:年份是400的整数倍时是闰年,否则年份是4的倍数并且不是100的倍数时是闰年,其他年份都不是闰年。例如1900年就不是闰年,而2000年是闰年。
  为了方便你推算,已知1850年1月1日是星期二。

输入格式

  输入包含恰好一行,有五个整数a, b, c, y1, y2。其中c=1, 2, ……, 6, 7分别表示星期一、二、……、六、日。

输出格式

  对于y1和y2之间的每一个年份,包括y1和y2,按照年份从小到大的顺序输出一行。
  如果该年的a月第b个星期c确实存在,则以"yyyy/mm/dd"的格式输出,即输出四位数的年份,两位数的月份,两位数的日期,中间用斜杠“/”分隔,位数不足时前补零。
  如果该年的a月第b个星期c并不存在,则输出"none"(不包含双引号)。

样例输入

5 2 7 2014 2015

样例输出

2014/05/11
2015/05/10

评测用例规模与约定

  所有评测用例都满足:1 ≤ a ≤ 12,1 ≤ b ≤ 5,1 ≤ c ≤ 7,1850 ≤ y1, y2 ≤ 2050。

//201503-3.cpp
#include<iostream>
#include <cstdio>//printf库
#include<algorithm>//max,min库
using namespace std;
intday[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}};/*  1 2  3  4  5  6 7  8  9  1011 12 */
bool isRunNian(int y)
{if(y%400==0)return true;if(y%4==0 && y%100!=0)return true;return false;
}
int main()
{int a,b,c,d,e,y1,y2,i,j,k;cin>>a>>b>>c>>d>>e;y1=min(d,e);y2=max(d,e);d=1;for(i=1850;i<y1;i++){if(isRunNian(i))d+=366;elsed+=365;}c%=7;d%=7;for(i=y1;i<=y2;i++){for(j=1;j<=12;j++){if(j==a){k=(b-1)*7+1;while((d+k)%7!=c){k++;}if(k>day[isRunNian(i)][j])cout<<"none"<<endl;elseprintf("%d/%02d/%02d\n",i,j,k);}d+=day[isRunNian(i)][j];d%=7;}}return 0;
}

问题描述

试题编号:

201412-1

试题名称:

门禁系统

时间限制:

1.0s

内存限制:

256.0MB

问题描述:

问题描述

  涛涛最近要负责图书馆的管理工作,需要记录下每天读者的到访情况。每位读者有一个编号,每条记录用读者的编号来表示。给出读者的来访记录,请问每一条记录中的读者是第几次出现。

输入格式

  输入的第一行包含一个整数n,表示涛涛的记录条数。
  第二行包含n个整数,依次表示涛涛的记录中每位读者的编号。

输出格式

  输出一行,包含n个整数,由空格分隔,依次表示每条记录中的读者编号是第几次出现。

样例输入

5
1 2 1 1 3

样例输出

1 1 2 3 1

评测用例规模与约定

  1≤n≤1,000,读者的编号为不超过n的正整数。

//201412-1.cpp
#include<iostream>
using namespace std;
int main()
{int n,i,j;cin>>n;int s[n+1];for(i=1;i<=n;i++){cin>>s[i];}for(i=1;i<=n;i++){s[0]=0;for(j=i;j>0;j--)if(s[j]==s[i])s[0]++;cout<<s[0]<<" ";}cout<<endl;return 0;
}          

问题描述

试题编号:

201412-2

试题名称:

Z字形扫描

时间限制:

2.0s

内存限制:

256.0MB

问题描述:

问题描述

  在图像编码的算法中,需要将一个给定的方形矩阵进行Z字形扫描(Zigzag Scan)。给定一个n×n的矩阵,Z字形扫描的过程如下图所示:

  对于下面的4×4的矩阵,
  1 5 3 9
  3 7 5 6
  9 4 6 4
  7 3 1 3
  对其进行Z字形扫描后得到长度为16的序列:
  1 5 3 9 7 3 9 5 4 7 3 6 6 4 1 3
  请实现一个Z字形扫描的程序,给定一个n×n的矩阵,输出对这个矩阵进行Z字形扫描的结果。

输入格式

  输入的第一行包含一个整数n,表示矩阵的大小。
  输入的第二行到第n+1行每行包含n个正整数,由空格分隔,表示给定的矩阵。

输出格式

  输出一行,包含n×n个整数,由空格分隔,表示输入的矩阵经过Z字形扫描后的结果。

样例输入

4
1 5 3 9
3 7 5 6
9 4 6 4
7 3 1 3

样例输出

1 5 3 9 7 3 9 5 4 7 3 6 6 4 1 3

评测用例规模与约定

  1≤n≤500,矩阵元素为不超过1000的正整数。

//201412-2.cpp
#include<iostream>
using namespace std;
int main()
{int n,i,j,k;cin>>n;int s[n+1][n+1];for(i=1;i<=n;i++){for(j=1;j<=n;j++){cin>>s[i][j];}}i=1;j=1;bool flg=true;for(k=2;k<=2*n;k++){if(flg){while(i && j<=n){cout<<s[i][j]<<" ";j++;i=k-j;}flg=false;if(j>n){j--;i+=2;}else{i=1;}            }else{while(j && i<=n){cout<<s[i][j]<<" ";i++;j=k-i;   }flg=true;if(i>n){  i--;            j+=2;}else{j=1;}}    }return 0;
}

问题描述

试题编号:

201409-1

试题名称:

相邻数对

时间限制:

1.0s

内存限制:

256.0MB

问题描述:

问题描述

  给定n个不同的整数,问这些数中有多少对整数,它们的值正好相差1。

输入格式

  输入的第一行包含一个整数n,表示给定整数的个数。
  第二行包含所给定的n个整数。

输出格式

  输出一个整数,表示值正好相差1的数对的个数。

样例输入

6
10 2 6 3 7 8

样例输出

3

样例说明

  值正好相差1的数对包括(2, 3), (6, 7), (7, 8)。

评测用例规模与约定

  1<=n<=1000,给定的整数为不超过10000的非负整数。

//201409-1.cpp
#include<iostream>
using namespace std;
int main()
{intn,i,j,temp;cin>>n;ints[n+1];i=n;while(i){cin>>s[i];i--;}for(i=1;i<n;i++){for(j=i+1;j<=n;j++){if(s[j]<s[i]){temp=s[j];s[j]=s[i];s[i]=temp;}   }//cout<<s[i]<<endl;}temp=0;for(i=1;i<n;i++){if(s[i+1]-s[i]==1)temp++;}cout<<temp;return 0;
}

问题描述

试题编号:

201409-2

试题名称:

画图

时间限制:

1.0s

内存限制:

256.0MB

问题描述:

问题描述

  在一个定义了直角坐标系的纸上,画一个(x1,y1)到(x2,y2)的矩形指将横坐标范围从x1到x2,纵坐标范围从y1到y2之间的区域涂上颜色。
  下图给出了一个画了两个矩形的例子。第一个矩形是(1,1) 到(4, 4),用绿色和紫色表示。第二个矩形是(2, 3)到(6, 5),用蓝色和紫色表示。图中,一共有15个单位的面积被涂上颜色,其中紫色部分被涂了两次,但在计算面积时只计算一次。在实际的涂色过程中,所有的矩形都涂成统一的颜色,图中显示不同颜色仅为说明方便。

  给出所有要画的矩形,请问总共有多少个单位的面积被涂上颜色。

输入格式

  输入的第一行包含一个整数n,表示要画的矩形的个数。
  接下来n行,每行4个非负整数,分别表示要画的矩形的左下角的横坐标与纵坐标,以及右上角的横坐标与纵坐标。

输出格式

  输出一个整数,表示有多少个单位的面积被涂上颜色。

样例输入

2
1 1 4 4
2 3 6 5

样例输出

15

评测用例规模与约定

  1<=n<=100,0<=横坐标、纵坐标<=100。

//201409-2.cpp
#include<iostream>
#include <algorithm>
using namespace std;
int main()
{intn,i,j,k,minX=100,maxX=0,minY=100,maxY=0;cin>>n;ints[4][n+1];i=n;while(i){cin>>s[0][i]>>s[1][i]>>s[2][i]>>s[3][i];minX=min(minX,s[0][i]);minY=min(minY,s[1][i]);maxX=max(maxX,s[2][i]);maxY=max(maxY,s[3][i]);i--;}//cout<<minX<<""<<maxX<<endl<<minY<<""<<maxY<<endl;s[0][0]=0;boolflg;for(i=minX+1;i<=maxX;i++){for(j=minY+1;j<=maxY;j++){flg=false;for(k=1;k<=n;k++){if(i>s[0][k]&& i<=s[2][k] && j>s[1][k] && j<=s[3][k])flg=true;}if(flg)s[0][0]++;            }}cout<<s[0][0];return0;
}

问题描述

试题编号:

201312-1

试题名称:

出现次数最多的数

时间限制:

1.0s

内存限制:

256.0MB

问题描述:

问题描述

  给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。

输入格式

  输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。
  输入的第二行有n个整数s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。相邻的数用空格分隔。

输出格式

  输出这n个次数中出现次数最多的数。如果这样的数有多个,输出其中最小的一个。

样例输入

6
10 1 10 20 30 20

样例输出

10

//201312-1.cpp
#include<iostream>
using namespace std;
int main()
{intn,i,j,temp;cin>>n;ints[n+1],t[n];i=n;while(i){cin>>s[i];i--;}for(i=1;i<n;i++){for(j=i+1;j<=n;j++){if(s[j]<s[i]){temp=s[j];s[j]=s[i];s[i]=temp;}   }}for(i=1;i<n;i++){j=1;while(s[i+j]==s[i]&&i+j<=n){j++;    }t[i]=j;}temp=1;for(i=1;i<n;i++){if(t[i]>t[temp])temp=i;}cout<<s[temp];return 0;
}

问题描述

试题编号:

201312-2

试题名称:

ISBN号码

时间限制:

1.0s

内存限制:

256.0MB

问题描述:

问题描述

  每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社;第二个分隔之后的五位数字代表该书在出版社的编号;最后一位为识别码。
  识别码的计算方法如下:
  首位数字乘以1加上次位数字乘以2……以此类推,用所得的结果mod 11,所得的余数即为识别码,如果余数为10,则识别码为大写字母X。例如ISBN号码0-670-82162-4中的识别码4是这样得到的:对067082162这9个数字,从左至右,分别乘以1,2,…,9,再求和,即0×1+6×2+……+2×9=158,然后取158 mod 11的结果4作为识别码。
  编写程序判断输入的ISBN号码中识别码是否正确,如果正确,则仅输出“Right”;如果错误,则输出是正确的ISBN号码。

输入格式

  输入只有一行,是一个字符序列,表示一本书的ISBN号码(保证输入符合ISBN号码的格式要求)。

输出格式

  输出一行,假如输入的ISBN号码的识别码正确,那么输出“Right”,否则,按照规定的格式,输出正确的ISBN号码(包括分隔符“-”)。

样例输入

0-670-82162-4

样例输出

Right

样例输入

0-670-82162-0

样例输出

0-670-82162-4

//201312-2.cpp
#include<iostream>using namespace std;int main()
{char s[14],k;cin >> s;k=(s[0]*1+s[2]*2+s[3]*3+s[4]*4+s[6]*5+s[7]*6+s[8]*7+s[9]*8+s[10]*9-2160)%11+48;if(k==s[12] || (s[12]-k)==30 )cout<<"Right";else{if(k==58)k=88;s[12]=k;cout<<s;}return 0;
}

问题描述

试题编号:

201312-3

试题名称:

最大的矩形

时间限制:

1.0s

内存限制:

256.0MB

问题描述:

问题描述

  在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i(1 ≤ i ≤ n)个矩形的高度是hi。这n个矩形构成了一个直方图。例如,下图中六个矩形的高度就分别是3, 1, 6, 5, 2, 3。

  请找出能放在给定直方图里面积最大的矩形,它的边要与坐标轴平行。对于上面给出的例子,最大矩形如下图所示的阴影部分,面积是10。

输入格式

  第一行包含一个整数n,即矩形的数量(1 ≤ n ≤ 1000)。
  第二行包含n 个整数h1, h2, … , hn,相邻的数之间由空格分隔。(1 ≤ hi ≤ 10000)。hi是第i个矩形的高度。

输出格式

  输出一行,包含一个整数,即给定直方图内的最大矩形的面积。

样例输入

6
3 1 6 5 2 3

样例输出

10

//201312-3.cpp
#include<iostream>using namespace std;int main()
{intn,i,j,k,max=0,min;cin>>n;ints[n+1],t[n+1];i=n;while(i){cin>>s[i];i--;}max=0;for(k=1;k<=n;k++){for(i=1;i<=n+1-k;i++){t[i]=0;min=s[i];for(j=1;j<=k;j++){if(s[i-1+j]<min)min=s[i-1+j];}if(max<k*min)max=k*min;    }}cout<<max;return0;
}

问题描述

试题编号:

201403-1

试题名称:

相反数

时间限制:

1.0s

内存限制:

256.0MB

问题描述:

问题描述

  有 N 个非零且各不相同的整数。请你编一个程序求出它们中有多少对相反数(a 和 -a 为一对相反数)。

输入格式

  第一行包含一个正整数 N。(1 ≤ N ≤ 500)。
  第二行为 N 个用单个空格隔开的非零整数,每个数的绝对值不超过1000,保证这些整数各不相同。

输出格式

  只输出一个整数,即这 N 个数中包含多少对相反数。

样例输入

5
1 2 3 -1 -2

样例输出

2

//201403-1.cpp
#include<iostream>
using namespace std;
int main()
{intn,i,j,count=0;cin>>n;ints[n+1];i=n;while(i){cin>>s[i];i--;}for(i=1;i<n;i++){for(j=i+1;j<=n;j++){if((s[i]+s[j])==0)count++;}}cout<<count<<endl;return0;
}

CCF计算机职业资格认证考试资料 部分题目答案 题库相关推荐

  1. ccf计算机认证考试题集,【计算机本科补全计划】CCF计算机职业资格认证 2017-03 试题初试...

    正文之前 我在之前的文章中提到过,我的老师要求我的CCF 考试考个280分来打个底,(没错,我就是那个横跨考研.工作.保研三大领域的男人)相当于是测试下我的能力,所以虽然不知道近期有没有相关的考试,但 ...

  2. CCF计算机职业资格认证2016-12-1

    试题编号: 201612-1 试题名称: 中间数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 在一个整数序列a1, a2, -, an中,如果存在某个数,大于它的整数数量等于小于它的 ...

  3. CCF计算机职业资格考试 201812-3CIDR合并 Python实现

    CCF计算机职业资格考试 201812-3CIDR合并 Python实现(1s内无法实现) 题目参考搜索引擎或者官网. 我的Github上有更多CCF-CSP题目的Python实现,可以参考参考. 代 ...

  4. 免费送全国计算机等级考试资料(新增Python题库)

    再次免费送新题库全国计算机等级考试资料(新增Python题库) 全国计算机等级考试(National Computer Rank Examination,以下简称 NCRE),是经原国家教育委员会(现 ...

  5. android注册选择国家设计师,设计师的职业资格认证,现已开通申请!

    原标题:设计师的职业资格认证,现已开通申请! 对于室内设计师来说 一直都没有一个国家认可的证书 心里难免有些失落 室内设计联盟官方打通 国家职业人才中心 设计师证书通道- ↓↓↓ 01 国际建筑装饰室 ...

  6. [转]ISTQB FL初级认证考试资料(中文)

    [转]ISTQB FL初级认证考试资料(中文) 2015-06-22 ISTQB作为一个专业的提供软件测试认证的机构,得到了全球软件测试人员的认可.目前中国有越来越多的人已经获得或者希望获得ISTQB ...

  7. 三点估算pmp_【每日一练】PMP项目管理专业资格认证考试练习题(十)

    听说99%的同学都来这里充电吖[习题] 1.客户提出的一项需求,将变更项目范围.如果变更控制委员会批准需求,执行变更的成本将影响项目的预算.如果这项需求获得批准,项目经理应该考虑从下列哪一项储备中申请 ...

  8. OCP/OCA认证考试资料及工具软件分享

    OCP认证考试资料及工具分享 由于上传权限不高,所以把pdf分成4个包了. OCP/OCA认证考试指南全册 ORACLE 11G(1Z0-051,1Z0-052,1Z0-053 第一部分 OCP/OC ...

  9. 华为中级网络工程师HCIP认证考试资料

    华为中级网络工程师HCIP认证考试资料,题库 https://mianbaoduo.com/o/bread/YZmWmJps 有需要小伙伴的可以私信我要密码.

  10. 一文读懂PMP项目管理资格认证考试

    对于第一次参加PMP项目管理认证考试的考生来说,对PMP还在一知半解的阶段.到底什么是PMP,考这个证又有什么用?怎样报名考试?报名又有什么条件呢? 科科过一文解答您所有的疑问,带您全方位了解PMP项 ...

最新文章

  1. SpringBoot conditional注解和自定义conditional注解使用
  2. SAP RETAIL 初阶之WA52 Allocation Rule List
  3. ONOS项目首赢11000次下载 Oracle发布云路由
  4. 软件设计模式六大原则之四接口隔离原则(PHP语言实现)
  5. 欢迎来到我的第一个个人laravel尝试论坛项目,给予评价和建议 谢谢。
  6. RocketMQ为什么速度快
  7. python中0xf2_python入门(一)
  8. python字符串前面去两位_在Python 3中删除字符串文字前面的'b'字符do
  9. 程序员的春天来了,赏花去!说走就走
  10. centos 等保三级_等保测评三级整改-身份鉴别
  11. 实战 | WebMagic 爬取某保险经纪人网站经纪人列表之网站列表爬取
  12. pandas添加、修改dataframe中index的列名
  13. POJ3263 Tallest Cow【差分数组】
  14. 人脸检测(十二)--DDFD算法
  15. 2.性能测试类型或方法
  16. 安卓暗黑模式软件_Android App Dark Theme(暗黑模式)适配指南
  17. 机器学习的分类与主要算法
  18. java wsimport https,wsimport使用小结二
  19. SQL Server 大数据管理——数据归档(主文件备份)
  20. ztree去掉文字前面的文件夹图标

热门文章

  1. HammerDB造数报错
  2. 【思科模拟器实验】三层交换机配置DHCP
  3. [IT最前沿--有点意思] 微博营销案例:杜蕾斯鞋套雨夜传奇
  4. 配置文件(properties类)
  5. 商业广告的本质在于其商业性 在于激发对品牌的想象
  6. 计算机专业的在职研究生怎么样,计算机专业在职研究生难度大吗?
  7. 蓝桥本第九届省赛刷题记录
  8. c语言fprintf报错,C语言中printf,sprintf和fprintf的区别是什么
  9. 鄂州市网站建设多少钱,鄂州市建设企业网站要多少钱
  10. 程序员如何写好技术文档?建议收藏