2014第五届蓝桥杯C-C++本科B组试题及答案. 下载本文

内容发布更新时间 : 2024/10/19 14:42:53星期一 下面是文章的全部内容请认真阅读。

2014第五届蓝桥杯C/C++本科B组试题及答案

1.标题:啤酒和饮料 啤酒每罐2.3元,饮料每罐1.9元。小明买了若干啤酒和饮料,一共花了82.3元。 我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒。 注意:答案是一个整数。请通过浏览器提交答案。 解答:

#include int main() { int x,y; double m=0;

for(x=0,y=42;x<35 || x>y;) {

y = (int)(82.3-2.3*x)/1.9; m= 2.3*x+1.9*y; if(m==82.3) break; x = x+1; y = y-2; }

printf(\ return 0; } 2.标题:切面条 一根高筋拉面,中间切一刀,可以得到2根面条。 如果先对折1次,中间切一刀,可以得到3根面条。 如果连续对折2次,中间切一刀,可以得到5根面条。 那么,连续对折10次,中间切一刀,会得到多少面条呢? 答案是个整数,请通过浏览器提交答案。不要填写任何多余的内容。 解答:

#include #include int main()

{

printf (\ pow ( 2.0 ,10.0 ) + 1); return 0; }

3.标题:李白打酒 话说大诗人李白,一生好饮。幸好他从不开车。 一天,他提着酒壶,从家里出来,酒壶中有酒2斗。他边走边唱: 无事街上走,提壶去打酒。 逢店加一倍,遇花喝一斗。 这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。 请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。则:babaabbabbabbbb 就是合理的次序。像这样的答案一共有多少呢?请你计算出所有可能方案的个数(包含题目给出的)。 注意:通过浏览器提交答案。答案是个整数。不要书写任何多余的内容。 解答:

#include int sum=0;

int f(int a,int b,int c){ if(a>0)

f(a-1,b,c*2); if(b>0)

f(a,b-1,c-1); if(a==0&&b==0&&c==1) sum=sum+1; return sum; }

int main(){

f(5,9,2);

printf(\ }

4.标题:史丰收速算 史丰收速算法的革命性贡献是:从高位算起,预测进位。不需要九九表,彻底颠覆了传统手算! 速算的核心基础是: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 请分析程序流程,填写划线部分缺少的代码。 241876844562801 //计算个位 int ge_wei(int a) { } //计算进位 int jin_wei(char* p) { if(a % 2 == 0) else return (a * 2 + 5) % 10; return (a * 2) % 10;