2010程序设计大赛决赛题及参考答案
- 格式:doc
- 大小:75.50 KB
- 文档页数:12
2010年韶关市中等职业学校学生专业技能竞赛计算机应用项目程序设计竞赛试题时间:90分钟要求:1.选手在规定时间内,运用 Visual Basic6.0<中文版>独立编写、修改和调试程序。
2.按题目要求完成设计并与测试数据相符,并编译成可执行文件(以.EXE为扩展名)。
3.参赛者以考号在D盘下新建一个文件夹,全部程序文件存放其中。
4.参赛者可以同时使用其它软件开发工具。
5.题目的主文件名不符扣2分。
题目:1.请编程设计一只扑动翅膀的蝴蝶(蝴蝶素材在文件夹“1”中),效果参考文件夹1中的“蝴蝶飞.gif”文件及右图,不断点击“蝴蝶飞”按钮,蝴蝶就会不断扑动翅膀。
(程序文件名为Prog1,10分)2.编写程序,验证:对任意一个三个数字不全部相同的三位正整数,由这三个数字组成的最大数减去最小数,得到新的数,对新的数重复进行上述处理,最后总能得到 495 。
【编程要求】(1 )程序参考界面如图所示,编程时不得不增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见;(2)运行程序时,在文本框中输入需要验证的三个数,按“ 验证” 按钮,如果输入的三个数个位数字均相等(例如输入 222 ),利用 MsgBox 给出出错信息,程序结束;若输入数据合法,则在列表框中显示验证过程;按“ 清除” 按钮,则将文本框、列表框清空,将焦点至于文本框上;(3)程序中应定义一个求给定三位数的数字重新排列得到的最大和最小数的通用过程。
(程序文件名为Prog2,20分)3.随机生成15个两位正整数,从中找出所有的素数,并记下它是第几个数,再找出其中最大的素数,并给出它的位置。
【编程要求】(1)单击“执行”按钮,则随机生成15个两位正整数,并显示在文本框Text1中;然后从中找出所有的素数,并记下它是第几个数,按图示方式显示在列表框List1中,并将其中最大的素数及其位置分别显示在文本框Text2和Text3;(2)程序中至少包含一个判断某数是否为素数的通用(函数)过程。
试题1、数学黑洞(程序文件名maths.c/maths.cpp)【问题描述】任给一个4位正整数,其各位数位上的数字不全相同,将数字重新组合成一个最大的数与最小的数相减,重复这个过程,最多7步,必得6174。
对任给的4位正整数(各位数位上的数字不全相同),编程输出掉进黑洞的步数。
【输入】一行,一个4位正整数n(1000< n<9999)【输出】掉进黑洞的步数输入1234输出32、进制转换(程序文件名conver.c/conver.cpp)【问题描述】任给一个十进制整数n,及正整数m(m<=16且m≠10), 将n转换成m进制并输出。
【输入】一行,两个整数n,m(0 ≤ n ≤ 500000,2 ≤ m ≤ 16,且m≠10),中间用一个空格隔开,其中n 表示十进制数。
【输出】转换后的数【输入输出样例】输入255 8输出3773、分数线划定(程序文件名score.c/score.cpp)【问题描述】公务员选拔工作正在 A 市如火如荼的进行。
为了选拔优秀人才,A 市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。
面试分数线根据计划录取人数的150%划定,即如果计划录取m名公务员,则面试分数线为排名第m*150%(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。
现在就请你编写程序划定面试分数线,并输出所有进入面试的选手的报名号和笔试成绩。
【输入】第一行,两个整数n,m(5 ≤ n ≤ 5000,3 ≤ m ≤ n),中间用一个空格隔开,其中n 表示报名参加笔试的选手总数,m 表示计划录取的人数。
输入数据保证m*150%向下取整后小于等于n。
第二行到第 n+1 行,每行包括两个整数,中间用一个空格隔开,分别是选手的报名号k(1000 ≤ k ≤ 9999)和该选手的笔试成绩s(1 ≤ s ≤ 100)。
数据保证选手的报名号各不相同。
全国2010年1月高等教育自学考试C++程序设计试题一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.在C++中,头文件扩展名为()A..cppB..hC..1ibD..obj2.下列符号中,不属于分隔符的是()A.,B./C.;D.{}3.可替换#definePI3.1415926的语句是()A.float PI 3.1415926;B.const float PI=3.1415926;C.const PI(3.1415926);D.const 3.1415926;4.布尔类型标识符是()A.voidB.shortC.longD.bool5.下列不是C++语言的基本数据类型的是()A.字符类型B.整数类型C.逻辑类型D.枚举类型6.C++允许在结构中定义函数,这些函数称为()A.静态函数B.构造函数C.析构函数D.成员函数7.设函数void inc(int)将形参加1,如有整型变量int i=10;则执行inc(i);后,i的值为()A.9B.10C.11D.未知8.下列哪种默认参数的声明是不正确的()A. int max(int a,int b,int c,int d=0);B. int max(int a,int b,int c=0,int d=0);C. int max(int a=0,int b,int c=0,int d=0);D. int max(int a,int b=0,int c=0,int d=0);9.设int &max(int &,int &)返回两参数中较大者,如有两整型变量int a=10;int b=15;在执行max(a,b)++后,a,b值分别为()A.10,15B.11,15C.10,16D.1l,1610.包含哪种语句的函数不能声明为内联函数()A.循环B.变量自增自减C.if...else…D.变量声明11.定义函数模板中使用的参数类型标识符需使用下列哪组符号括起来()A.<>B.“”C.()D.{}12.一个类拥有多个构造函数,则这些构造函数间为()A.重载关系B.重复关系C.拷贝关系D.无关系13.对于拷贝构造函数point::point(point& p),下列说明正确的是()A.该函数只能访问P的私有成员B.该函数不能访问P的公有成员C.该函数可以访问P的私有和公有成员D.该函数不能访问P的成员14.使用delete[]删除对象数组时,描述正确的是()A.数组中各元素都调用析构函数B.数组中各元素都调用构造函数C.不调用析构函数D.只有首元素调用析构函数15.下列哪个指令属于条件编译指令()A. #elifB. #errorC. #pragmaD. #include16.设类Test中存在成员static int x,则下列哪种初始化方式是正确的()A.Test::int x=25;B.int x=25;C.int Test::x=25;D.int Test x=25;17.下列关于友元的描述错误的是()A.成员函数不可作友元B.类可以作友元C.普通函数可以作友元D.静态函数可以作友元18.在继承中,派生类拥有的基类个数为()A.0个B.1个C.多个D.至少1个19.基类中的protected成员,通过public派生,其在派生类中的可见性为()A.不可访问B.privateC.protectedD.public20.下列哪个不是面向对象的关键要素()A.抽象性B.结构性C.封装性D.多态性二、填空题(本大题共20小题,每小题1分,共20分)请在每小题的空格中填上正确答案。
2010年程序设计竞赛决赛试题学校姓名机号___________各位同学,你好!请仔细阅读以下的有关规定,再做题目:1、每题100分,满分300分;2、考试时间120分钟,开考半小时后方可提前交卷离开;3、在D:\根目录下,建立名称为:“机号+姓名拼音缩写”的文件夹,然后将你编写的源程序文件放在该文件夹内;4、全部考试完成后,将文件夹打包压缩上传;5、上机时如有问题应及时举手请监考老师解决;编程中,不能重启电脑,做完后上交作业并举手示意,经监考老师验收后,方可离开座位;6、严格按试题要求的数据格式进行输入、输出读写操作,避免电脑自动误判。
试题1 :(源程序名:one.pas,可执行文件名:one.exe)(输入文件名:one.in,输出文件名:one.out)【问题描述】某班级为了表彰在运动会上表现优秀者,班委会决定利用剩余的班费(整数)来购买奖品。
奖品的价钱分为6元、5元、4元三种,为了能使购买的奖品数量达到最多,请设计一个程序。
【输入样例1】one.in5【输出样例1】one.outmax:1【输入样例2】one.in7【输出样例2】one.outno:【输入样例3】one.in13【输出样例3】one.outmax:3试题2 :(源程序名:two.pas,可执行文件名:two.exe)(输入文件名:two.in,输出文件名:two.out)【问题描述】有n张牌,记为1,2,3,…,n(n<1000),应当怎样排放,才能使打开第一张是1,然后把两张依次放到末尾;打开上面一张刚好是2,再依次把三张依次放到末尾,打开上面一张,刚好是3;如此继续下去,直至打开最后一张是n。
【输入样例】two.in8【输出样例】two.out1 7 52 6 8 4 3试题3:(源程序名:three.pas,可执行文件名:three.exe)(输入文件名:three.in,输出文件名:three.out)【问题描述】求m/n小数点后100位的精确值,其中m,n的取值在integer 范围。
百度之星2010程序设计大赛复赛试题(上)2010年07月06日责编:张娜来源:百度爱好者百度爱好者()消息 2010年6月19日,2010百度之星大赛复赛展开。
百度爱好者给大家带了复赛题目,供有兴趣的朋友研究。
复赛共十题,上期五期。
分别是A+B问题、i-Doctor、url规范化、并行修复、猜猜你在哪儿。
1.A+B问题(时限:5000ms)问题描述Suzumiya最近开始无端刁难她的同学ViVo,总是莫名其妙的问他一些简单而又离谱、没有实际意义的数学问题,比如三千加上五百等于多少。
回答一次两次还可以,但不断这样的纠缠致使ViVo已经无法忍受了。
所以ViVo决定制作一个语音装置来自动回答 Suzumiya提出的无聊问题。
ViVo知道你是个伟大的算法艺术家,所以希望该装置核心的数学计算模块你能够来帮忙。
装置接收到的语音会自动为你转化为对应的中文字符串,经过你的模块处理完成后输出中文字符串,传递给装置来朗读出来。
为了给你带来方便,ViVo已经提前收集好了Suzumiya可能会问到的问题,发现这些问题中大部分是数学加法,也还有一些不是加法的问题,但答案依然都可以用数字来表示。
输入格式输入的第一行是一个数字n,表示接下来有n个问题,每个问题占一行。
提示:最终评测时所用的输入数据可以在这里(windows)和这里(linux)下载。
输出格式每行包含一个没有语病的中文表示最终的结果。
样例输入2一加一等于几?三千加上五百等于多少?样例输出二三千五百提示请注意:不要提交你的输出文件,而应当像其他题目一样,提交你的源代码。
本题的最终得分计算如下:假设输入除第一行数字n外有n个非空行,你的输出必须也恰好包含n个非空行,否则本题得 0分。
从前向后一一比较,如果你的输出有m行和标准答案一致,你将得到本题的100*(m/n)3%。
换句话说,如果你的程序有 70%的行和标准答案一致,你将得到本题约34.3%的分数。
2.i-Doctor(时限:3000ms)问题描述百度计划开发一个在线的健康专家系统,帮助用户足不出户就能初步了解自己所患的疾病,并以此向用户推荐适合的医院就诊。
2010年西北师范大学第四届程序设计大赛试题一、程序填空(共5题,每题5分,共25分)1.下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数,完成程序中下划线部分。
#include <stdio.h>main(){int i, j;for(i=0; ; i++){j=i*10+6;if( ) continue;printf("%d",j);}}2.以下函数把b字符串连接到a字符串的后面,并返回a中新字符串的长度。
完成函数中下划线部分。
Strapp(char a[], char b[]){int num=0,n=0;while(*(a+num)!= ) num++;while(b[n]){*(a+num)=b[n]; num++; ;}return(num);}3.下面函数用来在w数组中插入x,w数组中的数已按由小到大顺序存放,n 所指存储单元中存放数组中数据的个数。
插入后数组中的数仍有序。
完成函数中下划线部分。
void fun (char *w,int x,int *n){ int i,p;p=0;w[*n]=x;while (x>w[p]) ;for(i=*n;i>p;i--)w[i]= ;w[p]=x;++ *n;}4.下面的程序将输入字符中的小写字母转化成大写字母输出,其它字符按原样输出,当输入字符为“!”时程序结束。
完成程序中下划线部分。
#include <stdio.h>main(){char ch;printf("Input string(! to quit):");do{ch = getchar();if( ) ch = ch + 'A'-'a';putchar(ch);}while( );}5. The following program is to calculate the value of “e ” according to the formula ....!31!21!111++++=e , while the value of the last item must be less than 610-.#include <stdio.h>main(){int i;double e,item;;item=1.0;for (i=1; ;i++){item/=(double)i;e+= ;}printf("e=%f\n",e);}二、 程序理解(共5题,每题5分,共25分)1. 以下程序的运行结果是#include <stdio.h>void main(){int i,j,k=19;while (i=k-1){k-=3;if(k%5==0) { i++; continue; }else if(k<5) break;i++;}printf(“i=%d,k=%d\n ”,i,k);}2.运行以下程序,输入: AabD <ENTER>后,程序的运行结果是_______. #include <stdio.h>void main(){char s[81];int i=0;gets(s);while (s[i]!=…\0‟){if(s[i]<= ‟z‟&&s[i]>= ‟a‟) s[i]= ‟z‟+‟a‟-s[i];i++;}puts(s);}3.以下程序的运行结果是#include <stdio.h>#define F(k) k+3.14#define P(a) printf("a=%d\n", (int)(a))#define P1(a) P(a);putchar('\n');#define P2(a, b) P(a);P1(b);void main(){int x = 1;{int x = 2;P(x*F(2));}{for (; x < 10; x += 50)P2(x, 9.15*x+32);}}4.输入: this is a test.<ENTER>,以下程序的运行结果是#include <stdio.h>#define TRUE 1#define FALSE 0int change(char *c,int status);void main(){int flag=TRUE;char ch;do{ch=getchar();flag=change(&ch,flag);putchar(ch);} while(ch!=‟.‟);printf(…\n‟);}int change(char *c,int status){if(*c==‟‟) return TRUE;if(status&&*c<=‟z‟&&*c>=‟a‟) *c+=‟A‟-…a‟;return FALSE;}5.There are three text files f1,f2 & f3, each of them contains some characters as following:file name contentsf1 aaa!f2 bbb!f3 ccc!Compiling the following C source codes, and linking the related object codes, an executable command file ex35.exe will be produced. To execute the command at DOS prompt: ex12 f1 f2 f3<ENTER>,the output is: .#include <stdio.h>main(int argc, char *argv[]){FILE *fp;void sub(FILE *);int i=1;while (--argc>0)if ((fp=fopen(argv[i++],“r”))==NULL) {printf(“Cannot open file!\n”);exit(1);}else {sub(fp);fclose(fp);}}void sub(FILE *fp){char c;while((c=getc(fp))!=…!‟)putchar(c+1);}三、下面4个程序中,共有16处错误(包括语法错误和逻辑错误),请找出其中的错误,在出错位置处划线,并改正之,改正结果写在出错语句同行空白处。
全国2010年10月高等教育自学考试C++程序设计试题课程代码:04737一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.C++中注释“∥”的有效范围是( A )A.从“∥”开始到行尾B.从“∥”开始到下一个“∥”C.“∥”及其后一个字符D.从“∥”开始到程序尾2.假定MyClass为一个类,则该类的复制构造函数的声明语句为( C )A.MyClass&(MyClass x);B.MyClass(MyClass x);C.MyClass(MyClass &x);D.MyClass(MyClass *x);3.下列选项不是C++关键字的是()A.typedefB.voidC.boolD.inc4.用于标识十进制常量的前缀或后缀是()A.无前后缀B.后缀L或lC.前缀0D.前缀0x5.设int x=56;int r=x;若cout <<&x;显示0012FF7A,则cout <<&r;输出值为()A.56B.00l2FF7AC.0012FF7BD.未知6.使用下列哪个流格式控制符可设置转换基数为八进制()A.decB.octC.hexD.endl7.C++中是否允许在类结构中定义函数()A.不允许B.允许C.仅允许定义构造函数D.只不允许定义构造函数8.设函数void subone(int &)将形参减1,如有整型变量int k=10,则执行subone(k);后,k的值为()A.9B.10C.11D.未知9.对函数int max(int a,int b=0,int c=0,int d=0,int e=0);下列调用方式正确的是()A.int m=max(10,11,12,13,14);B.int m=max(10,,12,13,14);C.int m=max(10,1l,,13,14);D.int m=max(10,11,12,,14);10.类MyClass的定义如下:class MyClass{public:MyClass(){}MyClass(int i){value=new int(i);}int * value;};若要对value赋值,则下面语句正确的是()A.MyClass my;my.value=10;B.MyClass my;*my.value=10;C.MyClass my;my.*value=10;D.MyClass my(10);11.包含哪种语句的函数不能声明为内联函数()A.变量定义B.if……elseC.位操作D.switch12.声明函数模板的关键字是()A.inlineB.templateC.constD.short13.对于类中的成员,使用public修饰,表明该成员的访问权限是()A.公有的B.私有的C.保护的D.不可见的14.一个类中是否可以允许一个无参数构造函数和一个全部都是默认参数的构造函数共存()A.不允许B.允许C.无法确定D.视构造函数的函数,可确定15.析构函数的参数个数为()A.0个B.1个C.至少1个D.多于1个16.非静态成员函数都会有一个隐含指针,它是()A.self指针B.this指针C.current指针D.one指针17.下列访问公有静态成员的方式,错误的是()A.类名::静态成员名B.对象名.静态成员名C.对象指针->静态成员名D.对象指针.静态成员名18.声明友元使用下列哪个关键字()A.class B.constC.friend D.virtual19.派生类继承了基类的()A.所有成员B.部分成员C.数据成员D.成员函数20.基类private成员,通过public派生,其在派生类中为()A.private B.protectedC.public D.不可访问二、填空题(本大题共20小题,每小题1分,共20分)请在每小题的空格中填上正确答案。
试题1、数学黑洞(程序文件名maths.c/maths.cpp)【问题描述】任给一个4位正整数,其各位数位上的数字不全相同,将数字重新组合成一个最大的数与最小的数相减,重复这个过程,最多7步,必得6174。
对任给的4位正整数(各位数位上的数字不全相同),编程输出掉进黑洞的步数。
【输入】一行,一个4位正整数n(1000< n<9999)【输出】掉进黑洞的步数输入1234输出32、进制转换(程序文件名conver.c/conver.cpp)【问题描述】任给一个十进制整数n,及正整数m(m<=16且m≠10), 将n转换成m进制并输出。
【输入】一行,两个整数n,m(0 ≤ n ≤ 500000,2 ≤ m ≤ 16,且m≠10),中间用一个空格隔开,其中n 表示十进制数。
【输出】转换后的数【输入输出样例】输入255 8输出3773、分数线划定(程序文件名score.c/score.cpp)【问题描述】公务员选拔工作正在 A 市如火如荼的进行。
为了选拔优秀人才,A 市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。
面试分数线根据计划录取人数的150%划定,即如果计划录取m名公务员,则面试分数线为排名第m*150%(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。
现在就请你编写程序划定面试分数线,并输出所有进入面试的选手的报名号和笔试成绩。
【输入】第一行,两个整数n,m(5 ≤ n ≤ 5000,3 ≤ m ≤ n),中间用一个空格隔开,其中n 表示报名参加笔试的选手总数,m 表示计划录取的人数。
输入数据保证m*150%向下取整后小于等于n。
第二行到第 n+1 行,每行包括两个整数,中间用一个空格隔开,分别是选手的报名号k(1000 ≤ k ≤ 9999)和该选手的笔试成绩s(1 ≤ s ≤ 100)。
数据保证选手的报名号各不相同。
2010年1月高级语言程序设计(一)试题一、单项选择题(本大题共15小题,每小题2分,共30分)1. 下列不属于保留字的是( D )A. defaultB. RegisterC. structD. unsign2. 下列不能作为常量的是( A )A. 0582B. 0xa5C. ‟\n‟D. 2.5e-23. 设typedef long class;,则class是( C )A. 整型变量B. 长整型变量C. 长整型数据类型的新标识符D. 新的而非长整型数据类型的标识符4. 设char c=‟A‟;int i=1, j;,执行j=!c&&i++;后,i和j的值分别是( A )A. 1和0B. 1和1C. 2和0D. 2和l5. 设int a;,执行表达式(a=1,2,3),a+1后,a和表达式的值分别是( A )A. 1和2B. 2和3C. 3和4D. 4和56. 下列关于函数定义正确的是( D )A. fun(int x,y){int z;return z;}B. void fun(int x,int y){return x+y;}C. fun(x,y){int x,y;double z;z=x+y;return z;}D. double fun(int x,int y) {double z;z=x+y;return z;)7. 下列用户自定义标识符正确的是( B )A. 4aB. b_1C. -&D. *p8. 下列程序段中循环体执行的次数是( B )int x=-1; Do { x=x*x; }while(! x);A. 0B. 1C. 2D. 无限9. 实现字符串连接的系统函数名是( A )A. strcatB. strcmpC. strcpyD. strlen10. 若实参是一个数组名,在调用函数时,实参向形参传递的是( B )A. 数组的长度B. 数组的首地址C. 数组每个元素的值D. 数组每个元素的地址11. 设int a[ ][4]={l,2,3,4,5,6,7};,则a[1][3]的值是( A )A. 0B. 3C. 4D. 712. 若定义一个只限本源文件使用的全局变量,则该变量的存储类别是( C )A. externB. registerC. staticD. auto13. 设chark=‟a‟;float j=2.0;,执行k+=5/j;printf(“%c”,k);后,输出结果是( C )A. aB. bC. cD. d14. 下列程序段正确的是( D )A. char s[ ]={…xyz‟};scanf(……%s”,s);B. float *p,i; p=*p+i;C. char s[5]=…word‟;puts(s);D. int a[5]={0},*p=a; *p=*(p+1);15. 关于编译预处理命令,叙述正确的是( A )A. 预处理命令都以”#”开头 D. 每个程序必须在开头使用预处理命令#include<stdio. h>B. 预处理命令必须位于程序的首部C. 预处理命令只能实现宏定义和条件编译的功能二、填空题(本大题共10小题,每小题2分,共20分)16. 设float a,b,c;,若a、b和c分别为三角形的三条边长,它们”能构成等边三角形”的逻辑表达式是a+b>c && a+c>b && b+c>a 。
Noi2010笔试题1. NOI 机试使用的操作系统是:B A. Windows B. Linux C. MacOS D. Vxworks2. 使用高级语言编写的程序称之为:AA. 源程序B. 编辑程序C. 编译程序D. 链接程序3. 属于面向对象程序设计语言的是: BA. CB. C++C. PascalD. Basic4. 下列哪个程序在 NOI Linux 系统中可以用来调试程序: AA. gdb C. debugB. gbd D. grub5. 选手在 NOI 机试过程中是否可以使用网络::CA. 可以访问互联网B. 可以访问局域网C. 禁止使用网络6. NOI 比赛使用的 Linux 发行版是::AA. NOI Linux C. Debian SargeB. Fedora 5 D. Gentoo 2006.17. 对评测结果有疑义,需要申请复评,则::CA 直接向评测人员反映B 向指导老师反映 D 在网站上申请C 提出书面申请,并由科学委员会认可签字后提交至评测人员8. 复评成绩较原始成绩有变化,则: BA 以原始成绩为准B 以复评成绩为准C 以分高的为准D 以分低的为准56. Pascal 中 integer 和 long integer 类型的长度和编译选项是否有关系:AA 有关系B 有时候有关系C 没关系D 不确定57. NOI 考试对 C++语言模板的使用有限制吗?:AA 有B 没有C 有时候有D 无所谓58. NOI 考试对 PASCAL 语言的使用有限制吗?:BA 有B 没有C 有时候有D 无所谓65. 选手的文件名大小写错误,成绩会怎样::CA 减半B 没有影响C 0 分D 根据考试情况决定86. Lazarus 是可以支持多窗口编辑的 IDE 吗?:A A. 是 B. 否87. Anjuta 是可以支持多窗口编辑的 IDE 吗?:A A. 是 B. 否88. 选手可以不使用 IDE 环境编辑程序源代码吗?:A A. 可以 B. 不可以计算机常识单选题:1. 一个完整的计算机系统应包括 B。