蓝桥预赛参考题目-填空题.doc

上传人:cl****1 文档编号:551024012 上传时间:2023-03-06 格式:DOC 页数:9 大小:84.51KB
返回 下载 相关 举报
蓝桥预赛参考题目-填空题.doc_第1页
第1页 / 共9页
蓝桥预赛参考题目-填空题.doc_第2页
第2页 / 共9页
蓝桥预赛参考题目-填空题.doc_第3页
第3页 / 共9页
蓝桥预赛参考题目-填空题.doc_第4页
第4页 / 共9页
蓝桥预赛参考题目-填空题.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《蓝桥预赛参考题目-填空题.doc》由会员分享,可在线阅读,更多相关《蓝桥预赛参考题目-填空题.doc(9页珍藏版)》请在金锄头文库上搜索。

1、c语言参考题目-填空题1. 代码填空如果只提供加减乘除的基本运算能力,你能实现求平方根吗?可以的!先随便猜一个根,用它试除目标数字,如果结果恰好等于所猜的数,则问题解决。否则用结果与所猜的数字的平均值再去试除.假设待开方的数字为 double a;double t = a / 2 ;double t2;for(;)t2 = a / t;if(fabs(t-t2)0.001) break;t = _(t+t2)/2.0_;答案: (t+t2)/2注意:(t+t2) / 2.0, (t2+t) * 0.5 都算对的。2. 代码填空下列代码把一个串p复制到新的位置q。请填写缺少的语句;char* p

2、 = abcde;char* q = (char*)malloc(strlen(p)+1);for(int i=0;_i=strlen(p)_; i+) qi = pi;参考答案: i=strlen(p)注意: 关键是 = 不能写成 , 但 i strlen(p) + 1 是对的。3. 代码填空 “考拉兹猜想”(又称3n1猜想、角谷猜想、哈塞猜想、乌拉姆猜想或叙拉古猜想) 和“哥德巴赫猜想”一样目前还没有用数学方法证明其完全成立。在1930年,德国汉堡大学的学生考拉兹,曾经研究过这个猜想,因而得名。在1960年,日本人角谷静夫也研究过这个猜想。该猜想的叙述十分简单:从任何一个正整数n出发,若是

3、偶数就除以2,若是奇数就乘3再加1,如此继续下去,经过有限步骤,总能得到1。例如:175226134020105168421该猜想虽然没有完全证明,但用计算机验证有限范围的数字却十分容易。以下是验证的代码,请补全缺少的部分。for(int n=2; n=10000; n+)int m = n;for(;)if(_)m = m / 2;elsem = m * 3 + 1;if( m = 1 )printf(%d ok! n, n);break;参考答案: m % 2 = 0注意:(m % 2) = 0 当然也正确。4. 代码填空1+3 = 4, 1+3+5 = 9, 1+3+5+7 = 16 它

4、们的结果都是平方数。这是偶然的巧合吗?下面代码验证对于累加至1000以内的情况都成立。试完善之。int n = 1;for(int i=1; i1000/2; i+)n += 2 * i + 1;int m = _;if( m * m != n)printf(加至%d 时不成立!n, 2 * i + 1);break;参考答案:i + 15. 代码填空给定一个串,例如“abcdefg”,我们希望求出它的反转串,即:“gfedcba”。下列代码实现反转,请补充空白的部分。 char p = abcdef;for(int i=0;_; i+)char t = pi;pi = pstrlen(p)-

5、1-i;pstrlen(p)-1-i = t;参考答案:istrlen(p)/2注意:不能写成 = 6. 代码填空生活中人们往往靠直觉来进行粗略的判断,但有的时候直觉往往很不可靠。比如:如果你们班有30名同学,那么出现同一天生日的概率有多大呢?你可能不相信,这个概率高达70%左右。以下的程序就是用计算机随机模拟,再统计结果。仔细阅读代码,补全空白的部分。#define N 30.int aN;srand( time( NULL ) );int n = 0;for(int k=0; k10000; k+)for(int i=0; iN; i+)ai = rand() % 365;bool tag

6、 = false; / 假设没有相同for(i=1; iN; i+)for(int j=0; jb) swap(&a, &b);if(bc) swap(&b, &c);_;int m = b;参考答案: if(ab) swap(&a, &b)注意:ab 也可写为 baswap(&a, &b) 写为:swap(&b, &a) 也是对的。8. 代码填空给定一个串,例如“aabbbcddddkkkmmmmaakkkk”我们希望去掉连续的重复字母,得出串:“abcdkmak”,下面代码实现了该功能,请完善之。char* p = aabbbcddddkkkmmmmaakkkk;char buf100;c

7、har* q = p;int i=0;for(;*q;)if(_| *q != *(q-1)bufi+ = *q;q+;bufi = 0;printf(%sn, buf);参考答案:q=p注意:p=q 也是正确的9. 代码填空口袋中有5只红球,4只白球。随机从口袋中取出3个球,则取出1个红球2个白球的概率是多大?类似这样的数学问题,在计算的时候往往十分复杂。但如果通过计算机模拟这个过程,比如进行100000次取球模拟,统计一下指定情况出现的次数对计算机来说是方便且快速的。同样,这个原理也适用于像天气预报这样复杂的系统过程。以下的程序就是用于解决取球概率问题的。仔细阅读代码,补全空白的部分。sr

8、and( (unsigned)time( NULL ) );int n = 0;for(int i=0; i100000; i+)char x = 1, 1, 1, 1, 1, 2, 2, 2, 2;int a = 0; / 取到的红球的数目int b = 0; / 取到的白球的数目for(int j=0; j3; j+)int k = rand() % (9-j);if(xk=1) a+;elseb+;_;if(a=1 & b=2) n+;printf(概率=%fn, n/100000.0*100);答案: xk = x9-j-1当然,9-1-j 9-(j+1) 9-(1+j) 都是可能的写

9、法。10. 代码填空下列代码把一个二进制的串转换为整数。请填写缺少的语句;char* p = 1010110001100;int n = 0;for(int i=0;i m。试完善之。double m = 20;double x = 1;int i = 2;while(xm)x += _;printf(%d, i);参考答案: 1.0/i+注意:1.0 错 写为 1 则扣除3分1.0 写为 1d 或 1f 或 (double)1 或 (float)1 都可以算正确12. 代码填空仍一枚硬币,正面和反面向上的概率都是0.5,但多次仍硬币,总会出现连续多次同一面的情况。我们把每次的实验结果记录下来

10、,形成一个串(0,1分别代表正面、反面向上)。下面的程序统计出0或1最大连续出现的次数。试完善之。char* p = 100111000100101010001010111100000000100001111111000000;int len = strlen(p);int max_k = 1;int k = 1;for(int i=1; imax_k) max_k = kif(max_k k) 也是正确的13. 代码填空形如:“abccba”,“abcba”的串称为回文串,下列代码判断一个串是否为回文串。请补充空白的部分。 char buf = abcde11edcba;int x = 1; for(int i=0; istrlen(buf)/2; i+)if(_)x = 0;break;printf(%sn, x ? 是:否);参考答案:bufi != bufstrlen(buf)-1-i注意:!= 前后交换可以。减法交换可以bufi 等价于 *(buf+i)A != B 等价于 !(A=B)14. 代码填空计算3个A,2个B可以组成多少种排列的问题(如:AAABB, AABBA)是组合数学的研究领域。但有些情况下,也可以利用计算机计算速度快的特点通过巧妙的推理来解决问题。下列的程序计算了m个A,n个B可以组合成多少个不同排列的问题。请完善它。int f

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号