c语言蓝桥杯b组试题及答案,2014第五届蓝桥杯C-C++本科B组试题及答案要点-20210413045934.docx-原创力文档...

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

标题:啤酒和饮料

啤酒每罐2.3元,饮料每罐1.9元。小明买了若干啤酒和饮料,一共花了82.3元。

我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒。

注意:答案是一个整数。请通过浏览器提交答案。

解答:

#i nclude

int mai n()

{

int x,y;

double m=0;

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

{

y = (in t)(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;

}

prin tf("%d\n%d\n",x,y);

return 0;

}

标题:切面条

一根高筋拉面,中间切一刀,可以得到2根面条。

如果先对折1次,中间切一刀,可以得到3根面条。

如果连续对折2次,中间切一刀,可以得到5根面条。

那么,连续对折10次,中间切一刀,会得到多少面条呢?

答案是个整数,请通过浏览器提交答案。不要填写任何多余的内容。

解答:

#i nclude

#in clude

int mai n()

printf ("%d" pow ( 2.0,10.0 ) + 1); return 0;

}

3 •标题:李白打酒

话说大诗人李白,一生好饮。幸好他从不开车。

一天,他提着酒壶,从家里岀来,酒壶中有酒2斗。他边走边唱:

无事街上走,提壶去打酒。

逢店加一倍,遇花喝一斗。

这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光

了。

请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。则:babaabbabbabbb

b就是合理的次序。像这样的答案一共有多少呢?请你计算岀所有可能方案的个数(包含题目 给出的)。

注意:通过浏览器提交答案。答案是个整数。不要书写任何多余的内容。

解答:

#i nclude

int sum=0;

int f(i nta,i nt b,i nt 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 mai n(){

f(5,9,2);

prin tf("%d",sum);

标题:史丰收速算

彻底颠覆了传统手,就要进1

彻底颠覆了传统手

,就要进1

,就要进n

算!

速算的核心基础是:1位数乘以多位数的乘法。

其中,乘以7是最复杂的,就以它为例。

因为,1/7是个循环小数:0.142857…,如果多位数超过 142857…

TOC \o "1-5" \h \z 同理,2/7, 3/7, ... 6/7也都是类似的循环小数,多位数超过n/7

下面的程序模拟了史丰收速算法中乘以7的运算过程。

乘以7的个位规律是:偶数乘以2,奇数乘以2再加5,都只取个位。

乘以7的进位规律是:

满 142857...进 1,

满 285714...进 2,

满 428571...进 3,

满 571428...进 4,

满 714285...进 5,

满 857142...进 6

请分析程序流程,填写划线部分缺少的代码。

241876844562801

//计算个位

int ge_wei (int a)

{

if(a % 2 == 0)

return (a * 2) % 10;

else

return (a * 2 + 5) % 10;

}

//计算进位

int jin _wei(char* p)

{

char* level[] = {

"142857",

"285714",

"428571",

"571428",

"714285",

"857142"

};

char buf[7];

buf[6] = '\0';

strn cpy(buf,p,6);

int i;

for(i=5; i>=0; i--){

int r = strcmp(level[i], buf);

if(r<0) return i+1;

while(r==O){

p += 6;

str ncpy(buf,p,6);

r = strcmp(level[i], buf);

if(r<0) return i+1;

; //填空

}

}

return 0;

}

//多位数乘以7

void f(char* s)

{

int head = jin _wei(s);

if(head > 0) pri ntf("%d", head);

char* p = s;

while(*p){

int a = (*

你可能感兴趣的:(c语言蓝桥杯b组试题及答案)