已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 2006 第十二届全国青少年信息学奥林匹克联赛初赛试题 ( 提高组 C C 语言 二小时完成 ) 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效 一、 单项选择题 (共 1 10 0 题,每题 1 1. .5 5 分,共计 1 15 5 分。每题有且仅有一个正确答案. .)。 1. 在以下各项中。( )不是 CPU 的组成部分。 A. 控制器 B. 运算器 C. 寄存器 D. ALU E. RAM 2. BIOS(基本输入输出系统)是一组固化在计算机内( )上一个 ROM 芯片上的 程序。 A. 控制器 B. CPU C. 主板 D. 内存条 E. 硬盘 3.在下面各世界顶级的奖项中, 为计算机科学与技术领域作出杰出贡献的科学家设立的奖项是 ( )。 A. 沃尔夫奖 B. 诺贝尔奖 C. 菲尔兹奖 D. 图灵奖 E. 南丁格尔奖 4 在编程时(使用任一种高级语言, 不一定是 C), 如果需要从磁盘文件中输入一个很大的二维数组(例 如 1000*1000 的 double 型数组),按行读(即外层循环是关于行的)与按列读(即外层循环是关于 列 的)相比,在输入效率上( )。 A. 没有区别 B. 有一些区别, 但机器处理速度很快, 可忽略 不计 C. 按行读的方式要高一些 D. 按列读的方式要高一些 E. 取决于 数组的存储方式。 5在 C 语言中,表达式 212 的值是( )由 OIFan s. cn收集 A. 441 B. 42 C.23 D.24 E.25 6在 C 语言中,判断 a 不等于 0 且 b 不等于 0 的正确的条件表达式是( ) A. !a=0 | !b=0 B. !(a=0) for(i=0;i10)由 OIF an s. cn收集 y+= (v2*100-v3)/(uu0%3*5); else y+=20+(v2*100-v3)/(uv0%3*5); printf(%d,%dn, x,y); return 0; /*注:本例中,给定的输入数据可以避免分母为 0 或下标越界。 */ 输入:9 3 9 4 输出:_ 2#include main() int i,j,m=2,3,5,7,13; long t; for (i=0;i=4;i+)由 OI Fan s. cn 收集 5 t=1; for(j=1;jsj return j; void main() char s8; int k,p; for(k=1;k0) printf(%2ld,n%10); 6 if(m1) digit(n/10,m/10); printf(%2ld,n%10); main() long x,x2; printf(Input a number:n); scanf(%ld, x2=1; while(x2x) x2*=10; x2/=10;由 O IFa 收集 digit(x,x2); printf(n); 输入:9734526 输出:_ 五完善程序 ( (前 5 5 空,每空 2 2 分,后 6 6 空,每空 3 3 分,共 2 28 8 分) ) 1 1(选排列) 下面程序的功能是利用递归方法生成从 1 到 n(n10)的 n 个数中取 k(1=k=n)个数的 全部可能的排列(不一定按升序输出)。例如,当 n=3,k=2 时,应该输出(每行输出 5 个排列): 12 13 21 23 32 31 程序: #include int n,k,a10; long count=0; void perm2(int j) int i,p,t; if( ) for(i=k;i=n;i+) count+; t=ak; ak=ai; ai=t; for( ) printf(%1d,ap); /* %1d中是数字 1,不是字母 l */ 7 printf( ); t=ak;ak=ai;ai=t; if(count%5=0) printf(n); 由 OI Fan s. cn 收集 return; for(i=j;i=n;i+) t=aj; aj=ai; ai=t; ; t=aj; ; main() int i; printf(nEntry n,k (k2-1-5-3。遗传算法的核心是通过两个个体的交叉操作, 产生两 个新的个体。下面的程序给出了最简单的一种交叉算法。具体过程如下: (1)选定中间一段作为互换段,该段的起止下标为 t1,t2,随机生成 t1,t2 后,互换两段。 (2)互换后, 在每个新的排列中可能有重复数字, 因而不能作为新个体的编码, 一般再做两步处理: (2.1) 将两个互换段中,共同的数字标记为 0,表示已处理完。 8 (2.2) 将两个互换段中其余数字标记为 1,按顺序将互换段外重复的数字进行替 换。 例如:n=12,两个个体分别是:由 OIFan 收 集 a1: 1 3 5 4 * 2 6 7 9 * 10 12 8 11 a2: 3 2 1 12 * 6 7 10 11 * 8 5 4 9 t1=5, t2=8。 上述每一行中, 两个星 号间的部分为互换段。 假定数组的下标从 1 开始, 互换后有: a1: 1 3 5 4 * 6 7 10 11 * 10 12 8 11 a2: 3 2 1 12 * 2 6 7 9 * 8 5 4 9 然后,将数字 6,7 对应的项标记为 0,星号内数字 2,9,10,11 对应的项标记为 1, 并且按顺序对 应关系 为:102, 119。 于是, 将 a19=10 替换为 a19=2, 将 a22=2 替换为 a22=10, 类似再做第 2 组替换。这样处理后,就得到了两个新个体: a1: 1 3 5 4 6 7 10 11 2 12 8 9 a2: 3 10 1 12 2 6 7 9 8 5 4 11 (3)输出两个新个体 的编码。 程序: #include #include #define N 20 int a1N,a2N,kz1N,kz2N,n; int rand1(int k) int t=0; while(tk) t=(int)(double)rand()/RAND_MAX*k); return t; void read1(int a,int m) 读入数组元素 a1至 am,a0=0,略。 void wrt1(int a,int m) 输出数组元素 a1至 am,略。 void cross(int a1, int a2,int t1, int t2, int n) int i,j,k,t,kj; for(i=t1; i=t2; i+) 9 t=a1i; ; for(i=1;i=n;i+)由 OIFa 收集 if(it2) kz1i=kz2i=-1; else ; for(i=t1;i=t2;i+) for(j=t1;j=t2;j+) if(a1i=a2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年鸡西辅警协警招聘考试备考题库及答案详解(必刷)
- 2025年驻马店辅警协警招聘考试真题附答案详解(突破训练)
- 2025年焦作辅警协警招聘考试备考题库有完整答案详解
- 2025年酉阳土家族苗族自治县辅警招聘考试题库及一套完整答案详解
- 2025年锦州辅警协警招聘考试真题及一套答案详解
- 2025年运城辅警协警招聘考试备考题库及答案详解(夺冠系列)
- 2025年璧山县辅警协警招聘考试真题及答案详解(典优)
- 2025年湖北辅警招聘考试真题完整答案详解
- 2025年萍乡辅警招聘考试真题含答案详解(b卷)
- 2025食品经销商合同范本
- 采购合同垫资协议书模板
- T/CEMIA 040-202499氧化铝陶瓷用造粒粉
- T/CECS 10133-2021水泥熟料生产用硅铁质混合料
- 彩钢棚搭建合同协议书
- 高中生物教学中反思性学习的深度探究与实践应用
- 职业人群心理健康促进指南 2025
- 兽医消毒知识培训课件
- 外科护理新进展
- 旅游业消费者行为分析数据表
- 华为F5G全光网络在工业互联网的应用
- 工贸行业企业安全风险分级管控清单
评论
0/150
提交评论