ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:20.32KB ,
资源ID:7949300      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-7949300.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(蓝桥初赛参考题目填空题.docx)为本站会员(b****6)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

蓝桥初赛参考题目填空题.docx

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注意:(t+t2) / 2.0, (t2+t) * 0.5 都算对的。2.代码填空以下代码把一个串p复制到新的位置q。请填写缺少的语句;

2、char* p = 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年,日本人角谷静夫也研究过那个猜想。该猜想的表达十分简单:从任何一个正整

3、数n动身,假设是偶数就除以2,假设是奇数就乘3再加1,如此继续下去,通过有限步骤,总能取得1。例如:175226134020105168421该猜想尽管没有完全证明,但用运算机验证有限范围的数字却十分容易。以下是验证的代码,请补全缺少的部份。 for(int n=2; n=10000; n+) int m = n; for(;) if(_) m = m / 2; else m = 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

4、 = 9, 1+3+5+7 = 16 它们的结果都是平方数。这是偶然的巧合吗?下面代码验证关于累加至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+)

5、 char t = pi; pi = pstrlen(p)-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

6、i=0; iN; i+) ai = rand() % 365; bool tag = 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”,下面代码实现了该功能,请完善之。 ch

7、ar* p = aabbbcddddkkkmmmmaakkkk; char buf100; char* 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次取球模拟,统计一下指定情形显现的次数对运算机来讲是方便且快速的。一样,那个原理

8、也适用于像天气预报如此复杂的系统进程。以下的程序确实是用于解决取球概率问题的。认真阅读代码,补全空白的部份。 srand( (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+; else b+; _; if(a=1 & b=2) n+; printf(

9、概率=%fn, n/100000.0*100);答案: xk = x9-j-1固然,9-1-j 9-(j+1) 9-(1+j) 都是可能的写法。10.代码填空以下代码把一个二进制的串转换为整数。请填写缺少的语句; 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.代码填空仍一枚硬币

10、,正面和反面向上的概率都是0.5,但多次仍硬币,总会显现持续多次同一面的情形。咱们把每次的实验结果记录下来,形成一个串(0,1别离代表正面、反面向上)。下面的程序统计出0或1最大持续显现的次数。试完善之。 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(in

11、t i=0; i1)进行因数分解。比如,n=60, 那么输出:2 2 3 5。请补充缺失的部份。void f(int n) for(int i=2; i1) printf(%dn, n);参考答案: while( n % i = 0)注意: for(;n%i=0;) 逻辑上也是正确的,但中间显现分号,与说明相违。16.代码填空以下代码实现把一个串“轮换”拷贝。既是:把abcdef 拷贝为:bcdefa。请补充缺少的语句。 char* p = abcdef; char* q = (char*)malloc(strlen(p)+1); for(int i=0, int len=strlen(p);

12、 i1 且 m=n)。试完善之。int f(int m, int n) int a = 1; int m1 = m; _ a *= m1-; int b = 1; while(n1) b *= n-; return a / b;参考答案:while(m1m-n)固然, while(m1=m-n+1) 也是对的。18.代码填空任意给定一个4位数(不能所有位都相同),比如:3278,从头组合出最大数:8723,再从头组合出最小数:2378,相减,取得新的4位数(如不足那么补0),重复那个进程,最后必然取得一个数字:6174。那个现象被称为:数字黑洞。下面的函数实现由给定的4位整数求出下一个整数的功

13、能。请完善之。int f(int n) int N4; for(int i=0; i4; i+) N3-i = n % 10; _; for(i=0; i3; i+) for(int j=0; jNj+1) int t = Nj+1; Nj+1 = Nj; Nj = t; int n_min=0; for(i=0; i=0; i-) n_max = n_max * 10 + Ni; return n_max-n_min;参考答案:n = n / 10注意:也能够写成 n /= 1019.代码填空公交车票价为5角。假设每位乘客只持有两种币值的货币:5角、1元。再假设持有5角的乘客有m人,持有1元

14、的乘客有n人。由于特殊情形,开始的时候,售票员没有零钱可找。咱们想明白这m+n名乘客以什么样的顺序购票那么能够顺利完成购票进程。显然,m =n的时候,有些情形也不行。比如,第一个购票的乘客就持有1元。下面的程序计算出这m+n名乘客所有可能顺利完成购票的不同情形的组合数量。注意:只关切5角和1元交替显现的顺序的不同排列,持有一样币值的两名乘客互换位置并非算做一种新的情形来计数。/m: 持有5角币的人数/n: 持有1元币的人数/返回:所有顺利完成购票进程的购票顺序的种类数int f(int m, int n) if(m n) return 0; if(n=0) return 1; return _;答案: f(m-1, n) + f(m, n-1)加法互换后也正确

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2