- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2012年湖北工程学院计算机学院蓝桥杯软件大赛
院内预选赛
题目分为填空题,编程题,填空题三题每题10分共30分,编程题两题各35分共70分。10级11级分开计分。
填空题要求参赛选手在弄清给定代码工作原理的基础上填写缺失的部分,使得程序逻辑正确、完整。所填写的代码不超过一条语句(即不能出现分号)。请用你的代码替换题目中的下划线。
编程题要求选手设计的程序对于给定的输入能给输出结果,程序运行结果正确时可以得分,不能取得正确的结果但思路正确可以得到部分分数。注意:在评卷时使用的输入数据与试卷中给出的实例数据可能是不同的。选手的程序必须是通用的,不能只对试卷中给定的数据有效。
对每个题目,要求考生把所有函数写在一个文件中。调试好后,存入与考生文件夹下对应题号的文件夹中即可。只要.C文件其它相关的工程文件不要拷入。
一.约瑟夫问题的变形
n个数排成一个圈。第一次删除m,以后每数k个数删除一次,求最后一个被删除的数。当n=8, k=5, m=3时,删数过程如图1-41所示。
图 1-41
【输入格式】
输入包含多组数据。每组数据包含3个整数n, k, m(2≤n≤10?000,1≤k≤10?000,
1≤m≤n)。输入结束标志为n=k=m=0。
【输出格式】
对于每组数据,输出最后一个被删除的数。
#includecstdio
const int maxn = 10000 + 2;
int f[maxn];
int main() {
int n, k, m;
while(scanf(%d%d%d, n, k, m) == 3 n) {
f[1] = 0;
for(int i = 2; i = n; i++) f[i] = ;
int ans = ( ) % n;
if (ans = 0) ans += n;
printf(%d\n, ans);
}
return 0;
}
循环赛日程表
设有n个运动员要进行循环赛,现设计一个满足以下要求的比赛日程表:①每个选手必须与其他n-1名选手比赛各一次;②每个选手一天至多只能赛一次;③循环赛要在最短时间内完成。如果n=2k,循环赛最少需要进行________天;如果n=2k+1,循环赛最少需要进行_____________天。其中,k为正整数。画出你的日程表。
快速排序算法
#includestdio.h
#define MAXNUM 100
#define TRUE 1
#define FALSE 0
typedef int KeyType;
typedef int DataType;
typedef struct {
KeyType key; /* 排序码字段 */
/*DataType info; 记录的其它字段 */
} RecordNode;
typedef struct {
int n; /* n为文件中的记录个数,nMAXNUM */
RecordNode record[MAXNUM];
} SortObject;
void quickSort(SortObject * pvector, int l, int r) {
int i, j;
RecordNode temp, *data = pvector-record;
if (l = r) return; /* 只有一个记录或无记录,则无须排序 */
i = l; j = r; temp = data[i];
while (i != j) { /* 寻找Rl的最终位置 */
while(_______________________)
j--;
if (i j) data[i++] = data[j];
while(________________________________)
i++; /* 从左向右扫描,查找第1个排序码大于temp.key的记录 */
if (i j) data[j--] = data[i];
}
data[i] = temp; /* 找到Rl的最终位置 */
quickSort(pvector, l, i-1); /* 递归处理左区间 */
quickSor
文档评论(0)