蓝桥杯第三届预赛答案 C语言组

合集下载

第三届蓝桥杯预赛真题及详细答案

第三届蓝桥杯预赛真题及详细答案

第三届蓝桥桥杯预赛真题及详细答案一、微生物增殖假设有两种微生物X 和YX出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次(数目加倍)。

一个新出生的X,半分钟之后吃掉1个Y,并且,从此开始,每隔1分钟吃1个Y。

现在已知有新出生的X=10, Y=89,求60分钟后Y的数目。

如果X=10,Y=90 呢?本题的要求就是写出这两种初始条件下,60分钟后Y的数目。

题目的结果令你震惊吗?这不是简单的数字游戏!真实的生物圈有着同样脆弱的性质!也许因为你消灭的那只Y 就是最终导致Y 种群灭绝的最后一根稻草!请忍住悲伤,把答案写在“解答.txt”中,不要写在这里!答案:0 和94371840(此题比较简单就不写程序了,以下均有程序)二、古堡算式福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:ABCDE * ? = EDCBA他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!”华生:“我猜也是!”于是,两人沉默了好久,还是没有算出合适的结果来。

请你利用计算机的优势,找到破解的答案。

把ABCDE 所代表的数字写出来。

答案写在“解答.txt”中,不要写在这里!参考答案:21978参考程序:#include<stdio.h>void main(){int k,t1 ,t;for(k=10234;k<50000;k++){bool flag[10]={0};t=k;t1=0;while(t){if(flag[t%10])break ;flag[t%10] = true ;t1 = t1*10 + t%10 ;t /= 10 ;}if( t==0 && t1%k==0){printf("%d * %d = %d\n",k,t1/k,t1);}}三、比酒量有一群海盗(不多于20人),在船上比拼酒量。

过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。

蓝桥杯试题C语言答案

蓝桥杯试题C语言答案

1、A、B、C、D、E五名学生有可能参加计算机竞赛,根据下列条件判断哪些人参加了竞赛:(1)A参加时,B也参加;(2)B和C只有一个人参加;(3)C和D或者都参加,或者都不参加;(4)D和E中至少有一个人参加;(5)如果E参加,那么A和D也都参加。

00110 c、d#include<stdio.h>int main(){int a,b,c,d,e; /*0表示不参加, 1表示参加.*/for(a=0;a<2;a++)for(b=0;b<2;b++)for(c=0;c<2;c++)for(d=0;d<2;d++)for(e=0;e<2;e++){if(a&&!b) continue;if(b&&c||!b&&!c) continue;if(c&&!d||!c&&d) continue;if(!d&&!e) continue;if(e&&(!a||!d)) continue;printf("%d%d%d%d%d",a,b,c,d,e);}return 0;}2、某侦察队接到一项紧急任务,要求在A、B、C、D、E、F六个队员中尽可能多地挑若干人,但有以下限制条件:1)A和B两人中至少去一人;2)A和D不能一起去;3)A、E和F三人中要派两人去;4)B和C都去或都不去;5)C和D两人中去一个;6)若D不去,则E也不去。

试编写一个程序,输出问应当让哪几个人去?#include<stdio.h>int main(){int a,b,c,d,e,f;for(a=1;a>=0;a--)for(b=1;b>=0;b--)/*1:去 0:不去*/for(c=1;c>=0;c--)for(d=1;d>=0;d--)for(e=1;e>=0;e--)for(f=1;f>=0;f--){if(a+b>=1&&a+d!=2&&a+e+f==2&&b==c&&c+d==1&&(d+e==0||d==1))printf("a=%d,b=%d,c=%d,d=%d,e=%d,f=%d",a,b,c,d,e,f);}return 0;}3、警察局抓住了A、B、C、D四名盗窃嫌疑犯,其中只有一人是小偷。

蓝桥杯试题C语言答案

蓝桥杯试题C语言答案

1、A、B、C、D、E五名学生有可能参加计算机竞赛,根据下列条件判断哪些人参加了竞赛:(1)A参加时,B也参加;(2)B和C只有一个人参加;(3)C和D或者都参加,或者都不参加;(4)D和E中至少有一个人参加;(5)如果E参加,那么A和D也都参加。

00110 c、d#include<stdio.h>int main(){int a,b,c,d,e; /*0表示不参加, 1表示参加.*/for(a=0;a<2;a++)for(b=0;b<2;b++)for(c=0;c<2;c++)for(d=0;d<2;d++)for(e=0;e<2;e++){if(a&&!b) continue;if(b&&c||!b&&!c) continue;if(c&&!d||!c&&d) continue;if(!d&&!e) continue;if(e&&(!a||!d)) continue;printf("%d%d%d%d%d",a,b,c,d,e);}return 0;}2、某侦察队接到一项紧急任务,要求在A、B、C、D、E、F六个队员中尽可能多地挑若干人,但有以下限制条件:1)A和B两人中至少去一人;2)A和D不能一起去;3)A、E和F三人中要派两人去;4)B和C都去或都不去;5)C和D两人中去一个;6)若D不去,则E也不去。

试编写一个程序,输出问应当让哪几个人去?#include<stdio.h>int main(){int a,b,c,d,e,f;for(a=1;a>=0;a--)for(b=1;b>=0;b--)/*1:去 0:不去*/for(c=1;c>=0;c--)for(d=1;d>=0;d--)for(e=1;e>=0;e--)for(f=1;f>=0;f--){if(a+b>=1&&a+d!=2&&a+e+f==2&&b==c&&c+d==1&&(d+e==0||d==1))printf("a=%d,b=%d,c=%d,d=%d,e=%d,f=%d",a,b,c,d,e,f);}return 0;}3、警察局抓住了A、B、C、D四名盗窃嫌疑犯,其中只有一人是小偷。

蓝桥杯c组试题及答案

蓝桥杯c组试题及答案

蓝桥杯c组试题及答案一、选择题(每题5分,共20分)1. 下列关于C语言的描述,错误的是:A. C语言是一种高级语言B. C语言可以直接被计算机执行C. C语言具有结构化的特点D. C语言支持函数式编程答案:B2. 在C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A3. 下列关于指针的描述,正确的是:A. 指针可以存储变量的地址B. 指针可以存储变量的值C. 指针不能存储数组的地址D. 指针不能存储函数的地址答案:A4. 在C语言中,用于定义一个函数的关键字是:A. functionB. defC. voidD. int答案:D二、填空题(每题5分,共20分)1. 在C语言中,表示逻辑与的运算符是______。

答案:&&2. 用于声明一个整型变量的关键字是______。

答案:int3. 在C语言中,数组的索引是从______开始的。

答案:04. C语言中,用于结束一个程序的语句是______。

答案:return三、编程题(每题30分,共60分)1. 编写一个C语言程序,实现计算并输出100以内所有偶数的和。

```c#include <stdio.h>int main() {int sum = 0;for (int i = 2; i <= 100; i += 2) {sum += i;}printf("Sum of even numbers from 1 to 100 is: %d\n", sum); return 0;}```2. 编写一个C语言程序,实现一个简单的计算器,可以计算两个整数的加、减、乘、除。

```c#include <stdio.h>int main() {int a, b;char op;float result;printf("Enter first number: ");scanf("%d", &a);printf("Enter operator (+, -, *, /): ");scanf(" %c", &op);printf("Enter second number: ");scanf("%d", &b);switch (op) {case '+':result = a + b;break;case '-':result = a - b;break;case '*':result = a * b;break;case '/':if (b != 0)result = (float)a / b;else {printf("Division by zero error!\n"); return 1;}break;default:printf("Invalid operator!\n");return 1;}printf("Result: %.2f\n", result);return 0;}```。

2012第三届蓝桥杯全国软件专业人才设计与开发大赛选拔赛试题-C

2012第三届蓝桥杯全国软件专业人才设计与开发大赛选拔赛试题-C

1.假设有两种微生物X 和YX出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次(数目加倍)。

一个新出生的X,半分钟之后吃掉1个Y,并且,从此开始,每隔1分钟吃1个Y。

现在已知有新出生的X=10, Y=89,求60分钟后Y的数目。

如果X=10,Y=90 呢?本题的要求就是写出这两种初始条件下,60分钟后Y 的数目。

2.福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:ABCDE * ? = EDCBA他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!”华生:“我猜也是!”于是,两人沉默了好久,还是没有算出合适的结果来。

请你利用计算机的优势,找到破解的答案。

把ABCDE 所代表的数字写出来。

答案写在“解答.txt”中,不要写在这里!3.有一群海盗(不多于20人),在船上比拼酒量。

过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。

再打开一瓶酒平分,又有倒下的,再次重复...... 直到开了第4瓶酒,坐着的已经所剩无几,海盗船长也在其中。

当第4瓶酒平分喝下后,大家都倒下了。

等船长醒来,发现海盗船搁浅了。

他在航海日志中写到:“......昨天,我正好喝了一瓶.......奉劝大家,开船不喝酒,喝酒别开船......”请你根据这些信息,推断开始有多少人,每一轮喝下来还剩多少人。

如果有多个可能的答案,请列出所有答案,每个答案占一行。

格式是:人数,人数,...例如,有一种可能是:20,5,4,2,0答案写在“解答.txt”中,不要写在这里!4.某电视台举办了低碳生活大奖赛。

题目的计分规则相当奇怪:每位选手需要回答10个问题(其编号为1到10),越后面越有难度。

答对的,当前分数翻倍;答错了则扣掉与题号相同的分数(选手必须回答问题,不回答按错误处理)。

每位选手都有一个起步的分数为10分。

某获胜选手最终得分刚好是100分,如果不让你看比赛过程,你能推断出他(她)哪个题目答对了,哪个题目答错了吗?如果把答对的记为1,答错的记为0,则10个题目的回答情况可以用仅含有1和0的串来表示。

2012年第三届蓝桥杯C语言本科组复赛题及解析.

2012年第三届蓝桥杯C语言本科组复赛题及解析.

一、1:微生物增殖假设有两种微生物 X 和 YX出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次(数目加倍)。

一个新出生的X,半分钟之后吃掉1个Y,并且,从此开始,每隔1分钟吃1个Y。

现在已知有新出生的 X=10, Y=89,求60分钟后Y的数目。

如果X=10,Y=90呢?本题的要求就是写出这两种初始条件下,60分钟后Y的数目。

题目的结果令你震惊吗?这不是简单的数字游戏!真实的生物圈有着同样脆弱的性质!也许因为你消灭的那只 Y 就是最终导致 Y 种群灭绝的最后一根稻草!//Muse牧马指证这道题的答案是错的并给出了代码。

我理解错了题意,误以为是“兔子繁殖”了。

//代码:#include <cstdio>int main(){long int X=10, Y=90;for(int k=1; k<=120; k++)//半分钟一个单位{if(k%2==1)Y -= X;//因为X出生半分钟后就要吃Y,尔后每1分钟要吃Y,所以永远都是奇数个半分钟的时候吃Y,又因为此时X不会增长(题目为了减小讨论的复杂度),所以直接减X 数量即可。

if(k%4==0)Y *= 2;//每2分钟翻倍if(k%6==0)X *= 2;//每3分钟翻倍,X和Y的翻倍是相互独立的,不需要另作讨论。

}printf("%d", Y);return0;}2:古堡算式福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:ABCDE * ? = EDCBA他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!”华生:“我猜也是!”于是,两人沉默了好久,还是没有算出合适的结果来。

请你利用计算机的优势,找到破解的答案。

把ABCDE 所代表的数字写出来。

#include<stdio.h>void main(){int k,t1 ,t;for(k=10234;k<50000;k++){bool flag[10]={0};t=k;t1=0;while(t){if(flag[t%10])break;flag[t%10]= true;t1=t1*10+t%10;t/=10 ;}if(t==0&&t1%k==0){printf("%d*%d=%d\n",k,t1/k,t1);}}}21978*4=87912//5层循环就OK了3:比酒量有一群海盗(不多于20人),在船上比拼酒量。

蓝桥杯c语言编程答案

蓝桥杯c语言编程答案

按 Ctrl+C 复制代码2. 标题: 马虎的算式小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了;有一次,老师出的题目是:36 x 495 =他却给抄成了:396 x 45 =但结果却很戏剧性,他的答案竟然是对的因为36495 = 39645 = 17820类似这样的巧合情况可能还有很多,比如:27594 = 29754假设 a b c d e 代表1~9不同的5个数字注意是各不相同的数字,且不含0能满足形如: ab cde = adb ce 这样的算式一共有多少种呢请你利用计算机的优势寻找所有的可能,并回答不同算式的种类数;满足乘法交换律的算式计为不同的种类,所以答案肯定是个偶数;答案直接通过浏览器提交;注意:只提交一个表示最终统计种类数的数字,不要提交解答过程或其它多余的内容;答案:1423. 标题: 振兴中华小明参加了学校的趣味运动会,其中的一个项目是:跳格子;地上画着一些格子,每个格子里写一个字,如下所示:也可参见从我做起振我做起振兴做起振兴中起振兴中华比赛时,先站在左上角的写着“从”字的格子里,可以横向或纵向跳到相邻的格子里,但不能跳到对角的格子或其它位置;一直要跳到“华”字结束;要求跳过的路线刚好构成“从我做起振兴中华”这句话;请你帮助小明算一算他一共有多少种可能的跳跃路线呢答案是一个整数,请通过浏览器直接提交该数字;答案:354. 标题: 幻方填空幻方是把一些数字填写在方阵中,使得行、列、两条对角线的数字之和都相等;欧洲最着名的幻方是德国数学家、画家迪勒创作的版画忧郁中给出的一个4阶幻方;他把1,2,3,...16这16个数字填写在4 x 4的方格中;如图所示,即:1613119151表中有些数字已经显露出来,还有些用和代替;请你计算出和所代表的数字;并把所代表的数字作为本题答案提交;答案是一个整数,请通过浏览器直接提交该数字;答案:125. 题目标题:公约数公倍数我们经常会用到求两个整数的最大公约数和最小公倍数的功能;下面的程序给出了一种算法;函数 myfunc 接受两个正整数a,b经过运算后打印出它们的最大公约数和最小公倍数;此时,调用 myfunc15,20将会输出:360标题:核桃的数量小张是软件项目经理,他带领3个开发组;工期紧,今天都在加班呢;为鼓舞士气,小张打算给每个组发一袋核桃据传言能补脑;他的要求是:1. 各组的核桃数量必须相同2. 各组内必须能平分核桃当然是不能打碎的3. 尽量提供满足1,2条件的最小数量节约闹革命嘛程序从标准输入读入:a b ca,b,c都是正整数,表示每个组正在加班的人数,用空格分开a,b,c<30程序输出:一个正整数,表示每袋核桃的数量;例如:用户输入:245程序输出:20再例如:用户输入:311程序输出:3include <>void swap int a, int b{int temp;temp = a;a = b;b = temp;}int f int a, int b{int m, n, r;if a<b swap&a, &b;m = a, n = b, r = a % b;while r = 0{a = b;b = r;r = a % b;}return m n / b;}int main{int a, b, c;scanf"%d %d %d", &a, &b, &c;printf"%d", ffa,b, fb,c;return0;}8. 题目标题:打印十字图小明为某机构设计了一个十字型的徽标并非红十字会啊,如下所示可参见$$$$$$$$$$$$$$ $$$$ $$$$$$$$$ $$$$ $ $ $$ $$$ $$$$$ $$$ $$ $ $ $ $ $$ $ $$$ $ $$$ $ $$ $ $ $ $ $ $$ $ $ $$$$$ $ $ $$ $ $ $ $ $ $$ $ $$$ $ $$$ $ $$ $ $ $ $ $$ $$$ $$$$$ $$$ $$ $ $ $$$$ $$$$$$$$$ $$$$ $$$$$$$$$$$$$$对方同时也需要在电脑dos窗口中以字符的形式输出该标志,并能任意控制层数;为了能准确比对空白的数量,程序要求对行中的空白以句点.代替;输入格式:一个正整数 n n<30表示要求打印图形的层数输出:对应包围层数的该标志;例如:用户输入:1程序应该输出:..$$$$$....$...$..$$$.$.$$$$...$...$$.$$$$$.$$...$...$$$$.$.$$$..$...$....$$$$$..再例如:用户输入:3程序应该输出:..$$$$$$$$$$$$$....$...........$..$$$.$$$$$$$$$.$$$$...$.......$...$$.$$$.$$$$$.$$$.$$.$...$...$...$.$$.$.$$$.$.$$$.$.$$.$.$...$...$.$.$$.$.$.$$$$$.$.$.$$.$.$...$...$.$.$$.$.$$$.$.$$$.$.$$.$...$...$...$.$$.$$$.$$$$$.$$$.$$...$.......$...$$$$.$$$$$$$$$.$$$..$...........$....$$$$$$$$$$$$$..请仔细观察样例,尤其要注意句点的数量和输出位置; include <>void swap int a, int b{int temp;temp = a;a = b;b = temp;}int go int i, int j, int n{if i > n 2 + 3i = n 4 + 6 - i;if j > n 2 + 3j = n 4 + 6 - j;if i < j swap&i, &j;if i <= 2 && j <= 2return0;if i % 2 == 1 && j >= i - 2return1;if j % 2 == 1 && j = i - 1return1;return0;}int main{int n;scanf"%d", &n;int i, j;for i = 1; i <= n4+5; i++{for j = 1; j <= n4+5; j++{if goi, j, nprintf"$";elseprintf".";}printf"\n";}return0;}9. 标题:带分数100可以表示为带分数的形式:100 = 3 + 69258 / 714还可以表示为:100 = 82 + 3546 / 197注意特征:带分数中,数字1~9分别出现且只出现一次不包含0;类似这样的带分数,100有11种表示法;题目要求:从标准输入读入一个正整数N N<10001000程序输出该数字用数码1~9不重复不遗漏地组成带分数表示的全部种数; 注意:不要求输出每个表示,只统计有多少表示法例如:用户输入:100程序输出:11再例如:用户输入:105程序输出:6include <>define N 9int numN = {1,2,3,4,5,6,7,8,9};int tag33 = {{4,3,2},{5,3,1},{6,2,1}};void swap int a, int b{int temp;temp = a;a = b;b = temp;}int go int i, int n{int a, b, c;int count = 0;for a = 0; a < 3; a++{int r3 = {0} , d = 0;for b = 0; b < 3; b++for c = 0; c < tagab; c++rb = rb 10 + numd++;if r0 + r1 / r2 == n && r1 % r2 == 0 count++;if r0 + r2 / r1 == n && r2 % r1 == 0 count++;if r1 + r0 / r2 == n && r0 % r2 == 0 count++;if r1 + r2 / r0 == n && r2 % r0 == 0 count++;if r2 + r0 / r1 == n && r0 % r1 == 0 count++;if r2 + r1 / r0 == n && r1 % r0 == 0 count++; }while i < N{int k = i + 1;while k < N{swapnum + i, num + k;count += goi + 1, n;swapnum + i, num + k;k++;}i++;}return count;}int main{int n;scanf"%d", &n;printf"%d", go0, n;return0;}10. 标题:剪格子如图所示,3 x 3的格子中填写了一些整数;我们沿着图中的红色线剪开,得到两个部分,每个部分的数字和都是60;本题的要求就是请你编程判定:对给定的m x n 的格子中的整数,是否可以分割为两个部分,使得这两个区域的数字和相等;如果存在多种解答,请输出包含左上角格子的那个区域包含的格子的最小数目;如果无法分割,则输出0程序输入输出格式要求:程序先读入两个整数 m n 用空格分割 m,n<10表示表格的宽度和高度接下来是n行,每行m个正整数,用空格分开;每个整数不大于10000程序输出:在所有解中,包含左上角的分割区可能包含的最小的格子数目;例如:用户输入:331015220301123则程序输出:3再例如:用户输入:431111130802111100则程序输出:10include <>define N 10int numNN;// tag是用来标志格子有没有加入,用颜色来表示,1为已加入,黑色, 0为没加入,白色// 初始化全为白色int tagNN = {0};int m, n;int r = 100;//判断格子i,j颜色是否t,一样的话就找他周围颜色也为t//返回找到的总数int find int i, int j, int t, int ntagN{int count = 0;//出界或走过if i < 0 || i >= n || j < 0 || j >= m || ntagij == 1return0;//标为已走过ntagij = 1;//颜色不一样,返回if tagij = treturn0;count++;count += findi - 1, j, t, ntag; count += findi + 1, j, t, ntag; count += findi, j - 1, t, ntag; count += findi, j + 1, t, ntag;return count;}//判断是否当前的tag,能不能剪成两块int isbad{int i, j, k = 0;int t = tag00;int ntag1NN = {0};int ntag2NN = {0};//找一块连在一起的黑格子int ge1 = find0, 0, t, ntag1;for i = 0; i < n; i++{for j = 0; j < m; j++{if tagij = t{k = 1;break;}}if k == 1break;}if i == n && j == mreturn0;//找连在一起的白格子int ge2 = findi, j, tagij, ntag2;return ge1 + ge2 = m n;//若黑+白 = 总数说明不止两块,如:黑$白/$$$$这种情况就有2块白的,1块黑的/}// 判断格子i,j是否出界,以及判断格子可不可以剪成两块连续的格子int bad int i, int j{if i < 0 || i >= n || j < 0 || j >= m || tagij == 1 return1;tagij = 1; //格子加入int b = isbad; //判断格子可不可以剪成两块连续的格子tagij = 0; //格子退出return b;}/i, j 下一个要加入的格子k 已加入的格子数count 剩余总分执行完,全局tag是没有改变的/void go int i, int j, int k, int count{// 判断格子是否可加入if badi, j || count < numijreturn;// 格子可加入,已加入格子数+1k++;// 如果剩余总分刚好等于加入的格子的分数,那么这种情况符合要求if count == numij{if r > kr = k;return;}// 加入格子,tag改变为1tagij = 1;count -= numij;// 寻找周围格子是否可加入goi - 1, j, k, count; // 执行完,tag是没有改变的goi + 1, j, k, count; // 执行完,tag是没有改变的goi, j - 1, k, count; // 执行完,tag是没有改变的goi, j + 1, k, count; // 执行完,tag是没有改变的// 格子退出, tag恢复为0,也就是保证执行完,tag是没有改变的 tagij = 0;}int main{scanf"%d %d", &m, &n;int i, j;int half = 0;for i = 0; i < n; i++for j = 0; j < m; j++{scanf"%d", &numij;// 计算总分half += numij;}// 判断总分是否为偶数if half % 2 == 0 && half >= num002{// 计算总分的一半half /= 2;// goint i, int j, int k, int count // 下一个要加入的格子为 i, j: 0,0// 已加入的格子数为0// half 剩余总分go0, 0, 0, half;}if r == 100r = 0;printf"%d", r;return0;}。

c蓝桥杯试题及答案

c蓝桥杯试题及答案

c蓝桥杯试题及答案蓝桥杯试题及答案蓝桥杯是中国最具影响力和参与度最高的计算机科学和信息技术竞赛,是由中国科学院计算技术研究所创办的全国性高校计算机能力大赛。

本文将为大家介绍蓝桥杯试题的一些特点以及提供一些参考答案。

一、蓝桥杯试题的特点蓝桥杯试题旨在考察学生的计算机编程水平和创新能力,题目类型多样,难度适中。

以下是一些蓝桥杯试题的常见特点:1. 综合性:蓝桥杯试题通常会综合多个知识点,考察学生对于不同知识的综合运用能力。

例如,一道试题可能结合了数据结构、算法和编程语言等多个方面的知识。

2. 实践性:蓝桥杯试题注重学生的实践能力,会设计一些需要编程实现的题目,以此来考察学生的编程能力和解决实际问题的能力。

3. 创新性:蓝桥杯试题鼓励学生的创新思维,会提供一些开放性的问题,让学生自由发挥,展现自己的创造力。

4. 考察面广:蓝桥杯试题的题目涵盖了计算机科学和信息技术的各个方面,包括但不限于数据结构、算法、网络编程、人工智能等。

二、蓝桥杯试题参考答案示例以下是一些蓝桥杯试题的参考答案示例,供大家参考:1. 编程题题目描述:请编写一个程序,实现输入一个整数n,输出1到n之间的所有偶数。

参考答案:```pythonn = int(input("请输入一个整数n:"))for i in range(1, n+1):if i % 2 == 0:print(i)```2. 算法题题目描述:有一个整数数组,请实现一个算法,找出数组中两个数的和等于给定目标值的所有组合,返回这些组合。

参考答案:```pythondef find_combinations(nums, target):result = []for i in range(len(nums)-1):for j in range(i+1, len(nums)):if nums[i] + nums[j] == target:result.append((nums[i], nums[j]))return resultnums = [2, 4, 6, 8, 10]target = 12print(find_combinations(nums, target))```3. 开放性题题目描述:设计一个应用程序,实现手机定位功能并展示当前位置的地图。

蓝桥杯真题c语言带答案解析

蓝桥杯真题c语言带答案解析

蓝桥杯真题c语言带答案解析是中国最具影响力的计算机比赛之一,每年都吸引着大量的中学生和大学生参与。

其中,的C语言组赛事备受关注,因为C语言作为计算机领域最基础也是最重要的编程语言之一,对于培养学生的计算机思维和编程能力起着至关重要的作用。

真题是考生备战的重要材料,拥有一套真题可以帮助考生更好地了解考试的难度和题型。

因此,掌握C语言组的历年真题,并进行分析和解析,对于备战十分重要。

在解析真题前,首先需要明确C语言组的考试要求。

C语言组的题目主要考察参赛选手对C语言的掌握程度,包括语法、逻辑思维、程序设计和算法等综合能力。

因此,在解题过程中,需要灵活运用所学的知识,善于分析和解决问题。

让我们以2019年全国赛C语言组的一道题目为例进行解析。

该题目要求计算一个矩阵的置换,即将矩阵的行列互换。

首先,我们需要读取用户输入的矩阵大小,并根据矩阵大小创建一个二维数组来存储矩阵元素。

接下来,我们需要遍历这个二维数组,将矩阵的行列互换。

通过一个临时变量来交换元素的位置即可。

最后,将置换后的矩阵输出。

通过这道题目的解析,我们可以看出,解题过程需要灵活运用数组、循环和条件语句等C语言的基本知识,同时还牵涉到了对算法的理解和应用。

而对于整个C语言组的真题解析,可以从以下几个方面进行分析:第一,了解题型的分布。

C语言组的真题考察范围广泛,既有基础的语法题,也有涉及算法和数据结构的题目。

因此,要全面掌握基本的C语言知识,并且对一些常见的算法和数据结构有一定的了解。

第二,挖掘题目的难点。

在解析真题时,可以重点分析每道题目的难点所在,这样有助于我们在日常练习中更有针对性地选择题目,提高自己的解题能力。

第三,总结解题方法。

在分析真题的过程中,可以总结一些常用的解题思路和方法,以便在实际考试中能够快速应对各种题目。

总的来说,掌握C语言组的历年真题并进行解析,对于备战有着重要的意义。

通过对真题的分析和解析,不仅可以提高我们的编程能力,还能够更好地了解和掌握C语言的应用和实践。

第三届 蓝桥杯 预赛题目(部分)1

第三届 蓝桥杯 预赛题目(部分)1

1、结果填空求三个三角形面积。

2、结果填空两人共卖150个鸡蛋,两人赚了一样的钱,交换价格卖,一个卖32元另一个24.5元,求两人卖的鸡蛋数。

3、结果填空ABCDE*?=ECDBA (顺序不记得了每个字母和?代表一个数字,暴力求出ABCDE各自代表的数
4、结果填空13张牌、、、、、
5、代码填空干支纪年
6、代码填空身份证校验
7、代码填空矩阵顺时针旋转90度。

8、程序设计
手机尾号得分,
ABCD,DCBA连号5分;
AAAB,ABBB,3分,AAAA 6分;
ABAB,AABB 2分,AAAA 4分;
6,8,9出现一次一分。

得分为所有符合条件加分项的和。

输入n(小于100)个尾号,输出对应得分
9、程序设计
输入罗马数字输出十进制数。

I V X L C D M 对应1 5 10 50 100 500 1000
III 3 XXX 30 CC 200,出现几次就是其倍数,仅对于IXCM有效
IV 4 左小右大,右减左。

……
……
……
CMXCIX 999
10、程序设计
A B C
D E
空格相邻字母可移动、
表示成字符串ABCDE*
输入若干字符串,可移动得到输出1,不可得到输出0。

第三届“蓝桥杯”c、c++组初赛试题

第三届“蓝桥杯”c、c++组初赛试题

第三届“蓝桥杯”全国软件专业人才设计与创业大赛是工业和信息化部人才交流中心、教育部高等学校计算机科学与技术教学指导委员会联合举办的全国性软件专业人才设计与创业大赛。

初赛:大赛分为JAVA软件开发、C/C++语言程序设计两个项目。

2011 c/c++组初赛试题考试时间2小时1、两个乒乓球队进行比赛,各出三人。

甲队为a,b,c三人,乙队为x,y,z三人。

已抽签决定比赛名单。

有人向队员打听比赛的名单。

a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单2、输入一个五位以内的正整数,(1)判断它是一个几位数;(2)请按序输出其各位数字;(3)逆序输出其各位数字。

如输入:56439,输出:5位数5,6,4,3,99,3,4,6,53、任何一个自然数m的立方均可写成m个连续奇数之和。

例如:1^3=12^3=3+53^3=7+9+114^3=13+15+17+19编程实现:输入一自然数n,求组成n^3的n个连续奇数。

4、由键盘输入一个自然数N(1≤N≤9),要求程序在屏幕上输出如下图形。

N=1时:N=3时:N=4时:111111111111112221122222112321123332112221123432111111123332112222211111111注:应保证N在图形中只出现一次,且在中心。

5、验证18位证件号:输入18位证件号,将奇位数的值相加的和求的平均数X,偶位数先与3相乘得到的个位数的和的平均数y。

如果(X+Y)是10的倍数,则证件号正确,否则则错误。

请编写程序验证证件号是否正确。

(12分)列入输入:431023198919230939输出:正确分析:奇位数:3 0 3 9 9 9 3 9 9偶位数:3 0 2 1 8 1 2 1 4X:(3+0+3+9+9+9+3+9+9)/9 = 6Y: 3*3 = 9 0*3 = 0 2*3 = 6 1*3 = 3 8*3 = 24 1*3 = 3 2*3 = 6 1*3 = 3 4*3 = 12 (9+0+6+3+4+3+6+3+2)/9 = 4X+Y = 6+4 = 10。

蓝桥杯c试题及答案

蓝桥杯c试题及答案

蓝桥杯c试题及答案蓝桥杯是中国最具影响力的计算机科学大赛之一,旨在发掘和培养计算机科学和信息技术领域的优秀人才。

每年,数以万计的学生参加这个激烈的竞赛,争夺奖金和荣誉。

在这里,我将向大家介绍几道经典的蓝桥杯C试题及其答案,希望能对大家有所帮助。

试题一:编写一个C程序,求解两个整数的最大公约数。

```c#include <stdio.h>int gcd(int a, int b){if(b == 0)return a;elsereturn gcd(b, a%b);}int main(){int a, b;printf("请输入两个整数:");scanf("%d %d", &a, &b);printf("最大公约数为:%d", gcd(a, b));return 0;}```试题二:编写一个C程序,判断一个给定的整数是否为素数。

```c#include <stdio.h>#include <math.h>int isPrime(int n){int i;if(n <= 1)return 0;for(i=2; i<=sqrt(n); i++){if(n % i == 0)return 0;}return 1;}int main(){int n;printf("请输入一个整数:");scanf("%d", &n);if(isPrime(n))printf("%d是素数", n);elseprintf("%d不是素数", n);return 0;}```试题三:编写一个C程序,实现二分查找算法。

```c#include <stdio.h>int binarySearch(int arr[], int left, int right, int target){ if(left <= right){int mid = left + (right - left) / 2;if(arr[mid] == target)return mid;if(arr[mid] < target)return binarySearch(arr, mid+1, right, target);return binarySearch(arr, left, mid-1, target);}return -1;}int main(){int arr[] = {2, 4, 6, 8, 10, 12};int target = 6;int n = sizeof(arr)/sizeof(arr[0]);int result = binarySearch(arr, 0, n-1, target);if(result == -1)printf("未找到%d", target);elseprintf("找到%d,索引为%d", target, result);return 0;}```以上是三道经典的蓝桥杯C试题及其解答。

蓝桥杯c语言初赛试题及答案

蓝桥杯c语言初赛试题及答案

蓝桥杯c语言初赛试题及答案蓝桥杯C语言初赛试题及答案1. 题目一:字符串反转编写一个函数,实现字符串的反转。

要求使用指针操作,不使用库函数。

```c#include <stdio.h>#include <string.h>void reverseString(char* str) {int len = strlen(str);char *start = str;char *end = str + len - 1;while (start < end) {char temp = *start;*start = *end;*end = temp;start++;end--;}}int main() {char str[] = "Hello World";reverseString(str);printf("Reversed string: %s\n", str);return 0;}```答案:函数`reverseString`通过交换字符串的首尾字符来实现反转,直到首尾指针相遇。

2. 题目二:计算阶乘编写一个函数,计算并返回一个整数的阶乘。

要求使用递归。

```c#include <stdio.h>long factorial(int n) {if (n == 0) return 1;else return n * factorial(n - 1);}int main() {int num = 5;printf("Factorial of %d is %ld\n", num, factorial(num)); return 0;}```答案:函数`factorial`通过递归调用自身计算阶乘,当n为0时返回1,否则返回n乘以(n-1)的阶乘。

3. 题目三:寻找最大值编写一个函数,找出数组中的最大值。

2023年蓝桥杯语言高职真题附加答案

2023年蓝桥杯语言高职真题附加答案

模拟c语言高职注意:本套模拟题重要模拟命题形式与考核范围。

真实竞赛题旳数量、难度也许与此套模拟题有差异。

阐明:本试卷包括两种题型: “代码填空”与“程序设计”。

填空题规定参赛选手在弄清给定代码工作原理旳基础上填写缺失旳部分, 使得程序逻辑对旳、完整。

所填写旳代码不多于一条语句(即不能出现分号)。

编程题规定选手设计旳程序对于给定旳输入能给出对旳旳输出成果。

注意:在评卷时使用旳输入数据与试卷中给出旳实例数据也许是不一样旳。

选手旳程序必须是通用旳, 不能只对试卷中给定旳数据有效。

1.代码填空(满2分)形如: “abccba”, “abcba”旳串称为回文串, 下列代码判断一种串与否为回文串。

请补充空白旳部分。

char buf[] = "abcde11edcba";int x = 1;for(int i=0; i<strlen(buf)/2; i++)if(__buf[i]!=buf[strlen(buf)-1-i]_________________){x = 0;break;}printf("%s\n", x ? "是":"否");2.代码填空(满分3分)下列代码把一种二进制旳串转换为整数。

请填写缺乏旳语句;char* p = "0";int n = 0;for(int i=0;i<strlen(p); i++){n = ___n+(p[i]-48)*pow(2,strlen(p)-1-i)_______________;}printf("%d\n", n);3.代码填空(满分3分)假设a,b,c是3个互不相等旳整数。

下列代码取出它们中居中旳数值, 记录在m中。

其中旳swap()函数可以互换两个变量旳值。

请完善代码。

if(a>b) swap(&a, &b);if(b>c) swap(&b, &c);__if(a>b) swap(&a,&b)____________________;int m = b;4.代码填空(满分6分)下面函数旳目旳是求出某个日期是该年度旳第几天。

第三届蓝桥杯全国选拔赛答案解析

第三届蓝桥杯全国选拔赛答案解析

第一题:微生物增殖#include <cstdio>int main(){long int X=10, Y=90;for(int k=1; k<=120; k++)//半分钟一个单位{if(k%2==1)Y -= X;//因为X出生半分钟后就要吃Y,尔后每1分钟要吃Y,所以永远都是奇数个半分钟的时候吃Y,又因为此时X不会增长(题目为了减小讨论的复杂度),所以直接减X数量即可。

if(k%4==0)Y *= 2;//每2分钟翻倍if(k%6==0)X *= 2;//每3分钟翻倍,X和Y的翻倍是相互独立的,不需要另作讨论。

}printf("%d", Y);return 0;}第二题:古堡算式#include <cstdio>int main(){long int X=10, Y=90;for(int k=1; k<=120; k++)//半分钟一个单位{if(k%2==1)Y -= X;//因为X出生半分钟后就要吃Y,尔后每1分钟要吃Y,所以永远都是奇数个半分钟的时候吃Y,又因为此时X不会增长(题目为了减小讨论的复杂度),所以直接减X数量即可。

if(k%4==0)Y *= 2;//每2分钟翻倍if(k%6==0)X *= 2;//每3分钟翻倍,X和Y的翻倍是相互独立的,不需要另作讨论。

}printf("%d", Y);return 0;}第三题:比酒量#include <cstdio>#define MAX 20int n, m; //n个海盗,m轮后全体倒下,船长喝了t瓶酒double drink[MAX], t; //记录船长每轮喝的酒量void dfs(int x, int y)if(y <= 0){double sum = 0.0;for(int i = 1; i <= m; i++)sum += drink[i];double dif = sum - t;if(dif < 0.0) dif = -dif;if(dif < 0.000001){for(int i = m; i > 0; i--)printf("%d ", (int)(1.0 / drink[i]));printf("\n");}return;}if(x <= 0) return;drink[y] = 1.0 / x;for(int i = 1; i < x; i++)dfs(x - i, y - 1);}int main(){m = 4; //喝了四轮t = 1.0; //船长喝了一瓶酒for(n = 20; n >= 1; n--)dfs(n, m);return 0;}第四题:奇怪的比赛#include <cstdio>#define MAX 20int n, m; //n个海盗,m轮后全体倒下,船长喝了t瓶酒double drink[MAX], t; //记录船长每轮喝的酒量void dfs(int x, int y){if(y <= 0){double sum = 0.0;for(int i = 1; i <= m; i++)sum += drink[i];double dif = sum - t;if(dif < 0.0) dif = -dif;if(dif < 0.000001){for(int i = m; i > 0; i--)printf("%d ", (int)(1.0 / drink[i]));printf("\n");}return;}if(x <= 0) return;drink[y] = 1.0 / x;for(int i = 1; i < x; i++)dfs(x - i, y - 1);}int main(){m = 4; //喝了四轮t = 1.0; //船长喝了一瓶酒for(n = 20; n >= 1; n--)dfs(n, m);return 0;}第五题:转方阵sizeof(int)*rank*rankrank*(i%rank) + rank-i/rank-1第六题:大数乘法n3/base+n2/base+n4%baser[2]/base第七题:放棋子NumRow!=3 || NumCol!=3f(x,r,c+1)x[r][c]==1第八题:密码发生器#include <cstdio>#include <cstring>#define MAX 1005long num[6];char tmp[MAX];int main(){int t;scanf("%d", &t);while(t){memset(num, 0, sizeof num);fgets(tmp, MAX, stdin);if(tmp[0] == '\n' || strlen(tmp) == 0) continue;for(int i = 0; tmp[i] != 0 && tmp[i] != '\n'; i++){num[i%6] += tmp[i];}for(int j = 0; j < 6; j++){int t = num[j] % 9;printf("%d", t ? t : 9);}putchar('\n');--t;}return 0;}第八题:密码发生器#include <cstdio>#include <cstring>#define MAX 1005long num[6];char tmp[MAX];int main(){int t;scanf("%d", &t);while(t){memset(num, 0, sizeof num);fgets(tmp, MAX, stdin);if(tmp[0] == '\n' || strlen(tmp) == 0) continue;for(int i = 0; tmp[i] != 0 && tmp[i] != '\n'; i++){num[i%6] += tmp[i];}for(int j = 0; j < 6; j++){int t = num[j] % 9;printf("%d", t ? t : 9);}putchar('\n');--t;}return 0;}第九题:夺冠概率#include <cstdio>#include <stdlib.h>#include <time.h>#define COUNT 100000const int g = 0;double P[4][4] = {{0, 0.1, 0.3, 0.5}, {0.9, 0, 0.7, 0.4},{0.7, 0.3, 0, 0.2},{0.5, 0.6, 0.8, 0}};int main(){srand((unsigned)time(NULL));double sum = 0.0;for(int k = 1; k <= COUNT; k++){int x = g, y = g, z = g;while(x == g) x = rand() % 4;//while(y==g || y==x) y=rand()%4; //此处的生成y的方法和下面的方法有轻微差异for(int ii = 0; ii < 4 && (ii == g || ii == x); )++ii; //约有0.001的浮动,推荐用下面这个方法y = ii;for(int i = 0; i < 4 && (i == g || i == x || i == y); )++i;z = i;double r = 1 - (P[x][g] + P[g][x] * (P[y][z] * P[y][g] + P[z][y] * P[z][g]));sum += r;}printf("%lf\n", sum / COUNT);return 0;}第十题:#include <stdio.h>#include <string.h>int a[10001];int b[4] = {1, 3, 7, 8};int main(){int i, n, j;memset(a, 0, sizeof a); //初始化判定数组为0a[0] = 1; //说明对方取完了最后一堆,那么自己胜利for(i = 1; i <= 10000; i++)for(j = 0; j < 4; j++)if(i - b[j] >= 0){if(a[i-b[j]] == 0) //有取法能致使对方输,那么自己就要赢{a[i] = 1;break;}}scanf("%d", &n);while(n--){scanf("%d", &i);printf("%d\n", a[i]);}return 0;}。

蓝桥杯试题及答案C语言c组

蓝桥杯试题及答案C语言c组

蓝桥杯试题及答案C语言c组蓝桥杯试题及答案C语言C组1. 题目一:字符串反转要求:编写一个函数,实现字符串的反转。

答案:以下是一个简单的字符串反转函数的实现。

```cvoid reverseString(char* str) {int i = 0;int j = strlen(str) - 1;while (i < j) {char temp = str[i];str[i] = str[j];str[j] = temp;i++;j--;}}```2. 题目二:计算阶乘要求:编写一个函数,计算一个整数的阶乘。

答案:以下是一个计算整数阶乘的函数实现。

```clong long factorial(int n) {if (n == 0) return 1;long long result = 1;for (int i = 1; i <= n; i++) {result *= i;}return result;}```3. 题目三:寻找最大值要求:给定一个整数数组,找出数组中的最大值。

答案:以下是一个寻找数组最大值的函数实现。

```cint findMax(int arr[], int size) {int max = arr[0];for (int i = 1; i < size; i++) {if (arr[i] > max) {max = arr[i];}}return max;}```4. 题目四:求两个数的最大公约数要求:编写一个函数,计算两个整数的最大公约数。

答案:以下是一个使用欧几里得算法求最大公约数的函数实现。

```cint gcd(int a, int b) {if (b == 0) return a;return gcd(b, a % b);}```5. 题目五:判断素数要求:编写一个函数,判断一个整数是否为素数。

答案:以下是一个判断整数是否为素数的函数实现。

第三届蓝桥杯预赛真题趣味算式C++

第三届蓝桥杯预赛真题趣味算式C++

第三届蓝桥杯预赛真题趣味算式java本科第九题C++实现匪警请拨110,即使手机欠费也可拨通!为了保障社会秩序,保护人民群众生命财产安全,警察叔叔需要与罪犯斗智斗勇,因而需要经常性地进行体力训练和智力训练!某批警察叔叔正在进行智力训练:1 2 3 4 5 6 7 8 9 = 110;请看上边的算式,为了使等式成立,需要在数字间填入加号或者减号(可以不填,但不能填入其它符号)。

之间没有填入符号的数字组合成一个数,例如:12+34+56+7-8+9 就是一种合格的填法;123+4+5+67-89 是另一个可能的答案。

请你利用计算机的优势,帮助警察叔叔快速找到所有答案。

每个答案占一行。

形如:12+34+56+7-8+9123+4+5+67-89......已知的两个答案可以输出,但不计分。

各个答案的前后顺序不重要。

注意:请仔细调试!您的程序只有能运行出正确结果的时候才有机会得分!请把所有类写在同一个文件中,调试好后,存入与【考生文件夹】下对应题号的“解答.txt”中即可。

相关的工程文件不要拷入。

请不要使用package语句。

源程序中只能出现JDK1.5中允许的语法或调用。

不能使用1.6或更高版本。

#include<iostream>char b[10];int x=0;using namespace std;void fun(int j){int y=j;y++;if(y==10){int s[9]={1,2,3,4,5,6,7,8,9};int z=0;for(int o=2;o<10;o++){if(b[o]=='*'){z++;if(z>1){s[o-3]=s[o-3]*10;z--;}s[o-2]=s[o-2]*10;if(b[o-1]=='-'){s[o-1]=0-s[o-1];}}if(b[o]=='+'){s[o-1]=s[o-1];z=0;}if(b[o]=='-'){s[o-1]=0-s[o-1];z=0;}}int sum2=0;for(int o=0;o<9;o++){sum2+=s[o];}//cout<<sum2<<"\t";if(sum2==110){x++;for(int o=0;o<9;o++){cout<<s[o]<<"\t";}cout<<x<<endl;}}if(y<10){b[y]='*';fun(y);b[y]='+';fun(y);b[y]='-';fun(y);}}int main(){int sum=1,j=1;fun(j);return 0;}。

第三届蓝桥杯——蓝桥杯c语言本科组(带答案)

第三届蓝桥杯——蓝桥杯c语言本科组(带答案)
华生:“我猜也是!”
于是,两人沉默了好久,还是没有算出合适的结果来。
请你利用计算机的优势,找到破解的答案。
把ABCDE所代表的数字写出来。
答案写在“解答.txt”中,不要写在这里!
3.
有一群海盗(不多于20人),在船上比拼酒量。过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。再打开一瓶酒平分,又有倒下的,再次重复......直到开了第4瓶酒,坐着的已经所剩无几,海盗船长也在其中。当第4瓶酒平分喝下后,大家都倒下了。
#include <cstdio>
int main()
{
long int X=10, Y=90;
for(int k=1; k<=120; k++)//半分钟一个单位
{
if(k%2==1) Y -= X;//因为X出生半分钟后就要吃Y,尔后没1分钟要吃Y,所以永远都是奇数个半分钟的时候吃Y,又因为此时X不会增长(题目为了减小讨论的复杂度),所以直接减X数量即可。
14 10 6 2
15 11 7 3
16 12 8 4
下面的代码实现的功能就是要把一个方阵顺时针旋转。
void rotate(int* x, int rank)
{
int* y = (int*)malloc(___________________); //填空
for(int i=0; i<rank * rank; i++)
{
GoNext(x,r,c);
return;
}
int rr = GetRowStoneNum(x,r);
int cc = GetColStoneNum(x,c);
if(cc>=3) //本列已满
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

蓝桥杯第三届预赛答案C语言组
1.
答案:0 和94371840
2.
#include<stdio.h>
void main(){
int k,t1 ,t;
for(k=10234;k<50000;k++){
bool flag[10]={0};
t=k;
t1=0;
while(t){
if(flag[t%10])
break ;
flag[t%10] = true ;
t1 = t1*10 + t%10 ;
t /= 10 ;
}
if( t==0 && t1%k==0){
printf("%d * %d = %d\n",k,t1/k,t1);
}
}
}
3.
#include<stdio.h>
void f(int a[],int n){
int i ;
if(n==3){
int x,y;
x = a[0] * a[1] + a[0] * a[2] + a[1] * a[2] ;
y = a[0] * a[1] * a[2] ;
x = y - x ;
if( x>0 && y%x==0 && y/x<a[2] ){
printf("%d %d %d %d 0\n",a[0],a[1],a[2],y/x);
}
return;
}
i = a[n-1] - 1 ;
while(i){
a[n] = i ;
f(a,n+1);
i-- ;
}
}
void main(){
int a[3]={0};
for(int i=4;i<=20;i++){
a[0] = i ;
f(a,1);
}
}
4.
#include<stdio.h>
//score为完成第n题之后的分数void f(char s[] , int n , int score){ if(n==0){
if(score==10)
puts(s);
return;
}
//第n题答错
s[n-1] = '0' ;
f( s , n-1 , score+n );
//第n题答对
if(score%2==0){
s[n-1] = '1' ;
f(s,n-1,score/2);
}
}
void main(){
char s[10];
s[10] = '\0' ;
f(s,10,100);
}
5.
rank*rank*sizeof(int)
(i%rank)*rank + rank-i/rank-1 6.
n2/base + n3/base + n4%base
r[2]/base
7.
NumRow!=3 || NumCol!=3
f(x, r, c+1)
x[r][c]
8.
#include<stdio.h>
#include<string.h>
int reduction(int m){
int k=0;
if(m<10)
return m;
while(m){
k += m%10 ;
m /= 10 ;
}
return reduction(k);
}
void f(char s[],char x[]){
int i,j,n,k;
n = strlen(s) ;
for(i=0;i<6;i++){
for(k=0,j=i;j<n;j+=6)
k+=s[j];
x[i] = reduction(k) + '0' ;
}
x[6] = '\n' ;
}
void main(){
char s[100]={"wangximing"};
char x[10000]={""};
int len = 0 , n ;
scanf("%d",&n);
while(n){
n--;
scanf("%s",s);
f(s,x+len);
len += 7 ;
}
x[len-1]='\0' ;
puts(x);
}
9.
参考程序:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main(){
int pk[4][4] = {
{0,1,3,5},
{9,0,7,4},
{7,3,0,2},
{5,6,8,0}};
int i,a,a1,b,b1,k,count=0;
srand(time(NULL));
for(i=0;i<100000;i++){
a1 = rand()%3 + 1 ;//a的对手
if(rand()%10<pk[0][a1]){//a胜
switch(a1){
case 1:
b = 2 ;
b1 = 3 ;
break;
case 2:
b = 1 ;
b1 = 3 ;
break;
default:
b = 1 ;
b1 = 2 ;
}
if(rand()%10<pk[b][b1]){//b胜
a1 = b ;
}
else{//b1胜
a1 = b1 ;
}
if(rand()%10<pk[0][a1]){//a胜
count++;
}
}
}
printf("%f\n",count*1.0/100000);
}
10.
#include<stdio.h>
void main(){
int a[100],n,max;
int b[]={1,3,7,8};
bool flag[10001]={0};
int i,j;
max = 0 ;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",a+i);
if(a[i]>max)
max = a[i] ;
}
for(i=2;i<=max;i++){
for(j=0 ; j<4 && b[j]<i ; j++ ){
if(flag[i-b[j]]==0){
flag[i] = 1 ;
break;
}
}
}
for(i=0;i<n;i++)
printf("%d\n",flag[a[i]]);
}。

相关文档
最新文档