第五届蓝桥杯预赛题目CC++程序设计本科A组.docx
- 文档编号:26537356
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:15
- 大小:38.94KB
第五届蓝桥杯预赛题目CC++程序设计本科A组.docx
《第五届蓝桥杯预赛题目CC++程序设计本科A组.docx》由会员分享,可在线阅读,更多相关《第五届蓝桥杯预赛题目CC++程序设计本科A组.docx(15页珍藏版)》请在冰豆网上搜索。
第五届蓝桥杯预赛题目CC++程序设计本科A组
2014年预赛C/C++本科A组
考生须知:
●考试开始后,选手首先下载题目,并使用考场现场公布的解压密码解压试题。
●考试时间为4小时。
时间截止后,提交答案无效。
●在考试强制结束前,选手可以主动结束考试(需要身份验证),结束考试后将无法继续提交或浏览答案。
●选手可浏览自己已经提交的答案。
被浏览的答案允许拷贝。
●对同一题目,选手可多次提交答案,以最后一次提交的答案为准。
●选手切勿在提交的代码中书写“姓名”、“考号”,“院校名”等与身份有关的信息或其它与竞赛题目无关的内容,否则成绩无效。
●选手必须通过浏览器方式提交自己的答案。
选手在其它位置的作答或其它方式提交的答案无效。
●试题包含三种类型:
“结果填空”、“代码填空”与“程序设计”。
结果填空题:
要求选手根据题目描述直接填写结果。
求解方式不限。
不要求源代码。
把结果填空的答案直接通过网页提交即可,不要书写多余的内容。
代码填空题:
要求选手在弄清给定代码工作原理的基础上填写缺失的部分,使得程序逻辑正确、完整。
所填写的代码不超过一条语句(即中间不能出现分号)。
把代码填空的答案(仅填空处的答案,不包括题面已存在的代码或符号)直接通过网页提交即可,不要书写多余的内容。
使用ANSIC/ANSIC++标准,不要依赖操作系统或编译器提供的特殊函数。
程序设计题目:
要求选手设计的程序对于给定的输入能给出正确的输出结果。
考生的程序只有能运行出正确结果才有机会得分。
注意:
在评卷时使用的输入数据与试卷中给出的示例数据可能是不同的。
选手的程序必须是通用的,不能只对试卷中给定的数据有效。
对于编程题目,要求选手给出的解答完全符合ANSIC++标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。
代码中允许使用STL类库。
注意:
main函数结束必须返回0
注意:
所有依赖的函数必须明确地在源文件中#include
所有源码必须在同一文件中。
调试通过后,拷贝提交。
提交时,注意选择所期望的编译器类型。
1.结果填空(满分2分)
问题的描述在考生文件夹下对应题号的“题目.txt”中。
相关的参考文件在同一目录中。
请先阅读题目,不限解决问题的方式,只要求提交结果。
必须通过浏览器提交答案。
2.结果填空(满分5分)
问题的描述在考生文件夹下对应题号的“题目.txt”中。
相关的参考文件在同一目录中。
请先阅读题目,不限解决问题的方式,只要求提交结果。
必须通过浏览器提交答案。
3.结果填空(满分7分)
问题的描述在考生文件夹下对应题号的“题目.txt”中。
相关的参考文件在同一目录中。
请先阅读题目,不限解决问题的方式,只要求提交结果。
必须通过浏览器提交答案。
4.代码填空(满分6分)
问题的描述在考生文件夹下对应题号的“题目.txt”中。
相关的参考文件在同一目录中。
请先阅读题目,不限解决问题的方式。
只要求填写缺失的代码部分,千万不要画蛇添足,填写多余的已有代码或符号。
必须通过浏览器提交答案。
5.代码填空(满分11分)
问题的描述在考生文件夹下对应题号的“题目.txt”中。
相关的参考文件在同一目录中。
请先阅读题目,不限解决问题的方式。
只要求填写缺失的代码部分,千万不要画蛇添足,填写多余的已有代码或符号。
必须通过浏览器提交答案。
6.结果填空(满分12分)
问题的描述在考生文件夹下对应题号的“题目.txt”中。
相关的参考文件在同一目录中。
请先阅读题目,不限解决问题的方式,只要求提交结果。
必须通过浏览器提交答案。
7.程序设计(满分10分)
问题的描述在考生文件夹下对应题号的“题目.txt”中。
相关的参考文件在同一目录中。
请先阅读题目,必须通过编程的方式解决问题。
注意:
在评卷时使用的输入数据与试卷中给出的示例数据可能是不同的。
选手的程序必须是通用的,不能只对试卷中给定的数据有效。
仔细阅读程序的输入、输出要求,千万不要输出没有要求的、多余的内容,例如:
“请您输入xx数据:
”。
建议仔细阅读示例,不要想当然!
程序处理完一个用例的数据后,立即退出(return0),千万不要循环等待下一个用例的输入。
程序必须使用标准输入、标准输出,以便于机器评卷时重定向。
对于编程题目,要求选手给出的解答完全符合ANSIC++标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。
代码中允许使用STL类库。
注意:
main函数结尾需要return0
注意:
所有依赖的函数必须明确地在源文件中#include
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
提交时,注意选择所期望的编译器类型。
8.程序设计(满分12分)
问题的描述在考生文件夹下对应题号的“题目.txt”中。
相关的参考文件在同一目录中。
请先阅读题目,必须通过编程的方式解决问题。
注意:
在评卷时使用的输入数据与试卷中给出的示例数据可能是不同的。
选手的程序必须是通用的,不能只对试卷中给定的数据有效。
仔细阅读程序的输入、输出要求,千万不要输出没有要求的、多余的内容,例如:
“请您输入xx数据:
”。
建议仔细阅读示例,不要想当然!
程序处理完一个用例的数据后,立即退出(return0),千万不要循环等待下一个用例的输入。
程序必须使用标准输入、标准输出,以便于机器评卷时重定向。
对于编程题目,要求选手给出的解答完全符合ANSIC++标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。
代码中允许使用STL类库。
注意:
main函数结尾需要return0
注意:
所有依赖的函数必须明确地在源文件中#include
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
提交时,注意选择所期望的编译器类型。
9.程序设计(满分15分)
问题的描述在考生文件夹下对应题号的“题目.txt”中。
相关的参考文件在同一目录中。
请先阅读题目,必须通过编程的方式解决问题。
注意:
在评卷时使用的输入数据与试卷中给出的示例数据可能是不同的。
选手的程序必须是通用的,不能只对试卷中给定的数据有效。
仔细阅读程序的输入、输出要求,千万不要输出没有要求的、多余的内容,例如:
“请您输入xx数据:
”。
建议仔细阅读示例,不要想当然!
程序处理完一个用例的数据后,立即退出(return0),千万不要循环等待下一个用例的输入。
程序必须使用标准输入、标准输出,以便于机器评卷时重定向。
对于编程题目,要求选手给出的解答完全符合ANSIC++标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。
代码中允许使用STL类库。
注意:
main函数结尾需要return0
注意:
所有依赖的函数必须明确地在源文件中#include
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
提交时,注意选择所期望的编译器类型。
10.程序设计(满分20分)
问题的描述在考生文件夹下对应题号的“题目.txt”中。
相关的参考文件在同一目录中。
请先阅读题目,必须通过编程的方式解决问题。
注意:
在评卷时使用的输入数据与试卷中给出的示例数据可能是不同的。
选手的程序必须是通用的,不能只对试卷中给定的数据有效。
仔细阅读程序的输入、输出要求,千万不要输出没有要求的、多余的内容,例如:
“请您输入xx数据:
”。
建议仔细阅读示例,不要想当然!
程序处理完一个用例的数据后,立即退出(return0),千万不要循环等待下一个用例的输入。
程序必须使用标准输入、标准输出,以便于机器评卷时重定向。
对于编程题目,要求选手给出的解答完全符合ANSIC++标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。
代码中允许使用STL类库。
注意:
main函数结尾需要return0
注意:
所有依赖的函数必须明确地在源文件中#include
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
提交时,注意选择所期望的编译器类型。
标题:
猜年龄
小明带两个妹妹参加元宵灯会。
别人问她们多大了,她们调皮地说:
“我们俩的年龄之积是年龄之和的6倍”。
小明又补充说:
“她们可不是双胞胎,年龄差肯定也不超过8岁啊。
”
请你写出:
小明的较小的妹妹的年龄。
注意:
只写一个人的年龄数字,请通过浏览器提交答案。
不要书写任何多余的内容。
标题:
切面条
一根高筋拉面,中间切一刀,可以得到2根面条。
如果先对折1次,中间切一刀,可以得到3根面条。
如果连续对折2次,中间切一刀,可以得到5根面条。
那么,连续对折10次,中间切一刀,会得到多少面条呢?
答案是个整数,请通过浏览器提交答案。
不要填写任何多余的内容。
标题:
神奇算式
由4个不同的数字,组成的一个乘法算式,它们的乘积仍然由这4个数字组成。
比如:
210x6=1260
8x473=3784
27x81=2187
都符合要求。
如果满足乘法交换律的算式算作同一种情况,那么,包含上边已列出的3种情况,一共有多少种满足要求的算式。
请填写该数字,通过浏览器提交答案,不要填写多余内容(例如:
列出所有算式)。
标题:
史丰收速算
史丰收速算法的革命性贡献是:
从高位算起,预测进位。
不需要九九表,彻底颠覆了传统手算!
速算的核心基础是:
1位数乘以多位数的乘法。
其中,乘以7是最复杂的,就以它为例。
因为,1/7是个循环小数:
0.142857...,如果多位数超过142857...,就要进1
同理,2/7,3/7,...6/7也都是类似的循环小数,多位数超过n/7,就要进n
下面的程序模拟了史丰收速算法中乘以7的运算过程。
乘以7的个位规律是:
偶数乘以2,奇数乘以2再加5,都只取个位。
乘以7的进位规律是:
满142857...进1,
满285714...进2,
满428571...进3,
满571428...进4,
满714285...进5,
满857142...进6
请分析程序流程,填写划线部分缺少的代码。
//计算个位
intge_wei(inta)
{
if(a%2==0)
return(a*2)%10;
else
return(a*2+5)%10;
}
//计算进位
intjin_wei(char*p)
{
char*level[]={
"142857",
"285714",
"428571",
"571428",
"714285",
"857142"
};
charbuf[7];
buf[6]='\0';
strncpy(buf,p,6);
inti;
for(i=5;i>=0;i--){
intr=strcmp(level[i],buf);
if(r<0)returni+1;
while(r==0){
p+=6;
strncpy(buf,p,6);
r=strcmp(level[i],buf);
if(r<0)returni+1;
______________________________;//填空
}
}
return0;
}
//多位数乘以7
voidf(char*s)
{
inthead=jin_wei(s);
if(head>0)printf("%d",head);
char*p=s;
while(*p){
inta=(*p-'0');
intx=(ge_wei(a)+jin_wei(p+1))%10;
printf("%d",x);
p++;
}
printf("\n");
}
intmain()
{
f("428571428571");
f("34553834937543");
return0;
}
注意:
通过浏览器提交答案。
只填写缺少的内容,不要填写任何多余的内容(例如:
说明性文字)
标题:
锦标赛
如果要在n个数据中挑选出第一大和第二大的数据(要求输出数据所在位置和值),使用什么方法比较的次数最少?
我们可以从体育锦标赛中受到启发。
如图【1.png】所示,8个选手的锦标赛,先两两捉对比拼,淘汰一半。
优胜者再两两比拼...直到决出第一名。
第一名输出后,只要对黄色标示的位置重新比赛即可。
下面的代码实现了这个算法(假设数据中没有相同值)。
代码中需要用一个数组来表示图中的树(注意,这是个满二叉树,不足需要补齐)。
它不是存储数据本身,而是存储了数据的下标。
第一个数据输出后,它所在的位置被标识为-1
//重新决出k号位置,v为已输出值
voidpk(int*a,int*b,intn,intk,intv)
{
intk1=k*2+1;
intk2=k1+1;
if(k1>=n||k2>=n){
b[k]=-1;
return;
}
if(b[k1]==v)
pk(a,b,n,k1,v);
else
pk(a,b,n,k2,v);
//重新比较
if(b[k1]<0){
if(b[k2]>=0)
b[k]=b[k2];
else
b[k]=-1;
return;
}
if(b[k2]<0){
if(b[k1]>=0)
b[k]=b[k1];
else
b[k]=-1;
return;
}
if(______________________)//填空
b[k]=b[k1];
else
b[k]=b[k2];
}
//对a中数据,输出最大,次大元素位置和值
voidf(int*a,intlen)
{
intn=1;
while(n int*b=(int*)malloc(sizeof(int*)*(2*n-1)); inti; for(i=0;i if(i b[n-1+i]=i; else b[n-1+i]=-1; } //从最后一个向前处理 for(i=2*n-1-1;i>0;i-=2){ if(b[i]<0){ if(b[i-1]>=0) b[(i-1)/2]=b[i-1]; else b[(i-1)/2]=-1; } else{ if(a[b[i]]>a[b[i-1]]) b[(i-1)/2]=b[i]; else b[(i-1)/2]=b[i-1]; } } //输出树根 printf("%d: %d\n",b[0],a[b[0]]); //值等于根元素的需要重新pk pk(a,b,2*n-1,0,b[0]); //再次输出树根 printf("%d: %d\n",b[0],a[b[0]]); free(b); } intmain() { inta[]={54,55,18,16,122,17,30,9,58}; f(a,9); return0; } 请仔细分析流程,填写缺失的代码。 通过浏览器提交答案,只填写缺失的代码,不要填写已有代码或其它说明语句等。 标题: 扑克序列 AA223344,一共4对扑克牌。 请你把它们排成一行。 要求: 两个A中间有1张牌,两个2之间有2张牌,两个3之间有3张牌,两个4之间有4张牌。 请填写出所有符合要求的排列中,字典序最小的那个。 例如: 22AA3344比A2A23344字典序小。 当然,它们都不是满足要求的答案。 请通过浏览器提交答案。 “A”一定不要用小写字母a,也不要用“1”代替。 字符间一定不要留空格。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第五 届蓝桥杯 预赛 题目 CC 程序设计 本科