蓝桥杯C语言本科B组预赛试题

玛丽莲梦兔
855次浏览
2021年02月12日 21:37
最佳经验
本文由作者推荐

-

2021年2月12日发(作者:墨梅的意思)


蓝桥杯


C


语言本科


B< /p>


组预赛试题












































——— —————————————————————————————



作者:



————————————— ———————————————————



日期


:





2014


蓝桥杯

C/C++


语言本科


B


组预赛试题 (完整)




1.


啤酒和饮料





啤酒每罐

2.3


元,饮料每罐


1.9


元。小 明买了若干啤酒和饮料


,


一


共花了


82.


3元。





我们还知道他买的啤酒比饮料的数量少


,


请你计算他买了几罐啤


酒。





注意


:


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



不要书写任何多余的内容


(


例如


:


写了饮料的数量


,


添加说明文字< /p>


等)。




2.


切面条





一根高筋拉面


,

中间切一刀,可以得到


2


根面条。





如果先对折

< br>1


次,中间切一刀,可以得到


3


根面条。




< br>如果连续对折


2


次


,

< p>
中间切一刀,可以得到5根面条。





那么


,


连续 对折


1


0次,中间切一刀


,

< p>
会得到多少面条呢?



答案是个整数


,


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




3


.李白打酒





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





一天


,


他提着酒壶


,


从家里出来

< p>
,


酒壶中有酒


2


斗。他边 走边唱:





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





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





这一路上

,


他一共遇到店


5


次,遇到花


10


次,已知最后一次遇到


的是花


,


他正好把酒喝光了。






请 你计算李白遇到店和花的次序


,


可以把遇店记为


a


,遇花记为


b


。

< p>
则


:


b


a


b


aa


bba


bbabbbb



就是合理的次序。像这样的答案一共有


多少呢


?


请你计算出所有可能方案的个数

(


包含题目给出的


)


。

< p>


注意:通过浏览器提交答案。


答案是个整数。不 要书写任何多余的


内容。




4.


史丰收速算





史丰收速算法的革命性贡献是 :从高位算起,预测进位。不需要


九九表,彻底颠覆了传统手算!





速算的核心基础是


:1


位数乘以多位数的乘法。





其中


,


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





因为


,1


/


7



是个循环小数:

< br>0


.


142


8

< br>5


7


...


,如果多位数超过< /p>



14


2


857 ...


,就要进1





同理,


2/7


,



3


/


7,


.


..



6


/


7


也都 是类似的循环小数


,


多位数


超过



n/7


,就要进n





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





乘以



7



的个位规律是

:


偶数乘以


2,


奇数乘以2再加< /p>


5


,都只取个


位。





乘以



7


的进位规律是:





满



1


4


2


857..


.



进1


,




满



285714...


进


2,




满



4


2


8


5


7


1.


..


进


3,




满



57< /p>


1


42


8.


..


进


4,




满



71< /p>


4


2


8


5.


.


.


进


5,




满



8


57< /p>


14


2..


.


进


6




请分析程序流程


,


填写划线部分缺少的 代码。



//


计算个位




in


t


< /p>


g


e


_w


e


i(int


a)


{




if


(


a % 2


==



0


)






return


(


a


*


2) %


1


0;




e


l


se






re


t


urn (a *


2



+ 5


)



%



10;





}


//


计算进位




in


t



jin_


we


i(char*


p)


{




char* level[]


=


{








,













5


71







4


28






428


5


,










}


;





char

< p>
bu


f


[7


];





bu f


[


6


]



=



'


\


0


'


;




strnc


p


y


(b


u


f


,p,6);




int


i


;





f


or


(i=5; i>=


0


;


i


--)


{







int


r



=


strcm


p

(le


v


e


l[

< br>i], buf


)


;






if(


r


<0) retu


r


n


i+1;






w


hi


le


(r


==0){









p


+=


6


;









strncpy(bu


f,


p,


6


) ;








r =


s


trc

m


p


(l


evel[i],


b


uf);








i


f


(r<0) return


i


+1


;








_


______


__


______


_


_______


__


____


_


;




/


/填空







}




}








re


turn


0;


}


//


多位数乘以


7


v


o


id f(cha


r


*


s


)




{




i


n


t



head = jin_wei


(


s);




if


(


h< /p>


e


ad >


0


) pri


n


t


f


(


%


d


"


, head


);








ch


a


r*


p



=


s


;




whi


l


e (


*


p)


{







i


nt


a



=



(*p-


'


0


'< /p>


)


;







i


nt x = (ge


_

< p>
wei


(


a


)

< p>


+



j


in_wei


(


p+1))


%



10;





printf(


%


d






p++;




}



< br>p


ri


nt


f(


}


i


nt



mai


n(


)


{



< br>f(


8


571428571


"< /p>


)


;





f


(


3


8


3


4937543


"


);









re

< br>tu


r


n



0;



}


注 意


:


通过浏览器提交答案。只填写缺少的内容

< br>,


不要填写任何多余的


内容(例如


:


说明性文字)




5


.


打印图形









小明开动脑筋,编写了如下的程序


,


实现该图形的打印。



#


de


f


in


e



N 70


v


oi


d



f


(cha


r



a


[][


N


]


,



in


t



rank, i


n


t row


,



i


n


t col)


{



< br>if(ran


k


=


=

< p>
1


)


{






a[row][co


l


]


=



'*';






r


e


tu< /p>


r


n;




}




int w = 1;

-


-


-


-


-


-


-


-