2010程序设计大赛决赛题及参考答案

合集下载

2010程序设计竞赛题

2010程序设计竞赛题

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++程序设计试题及答案

全国2010年1月高等教育自学考试 C++程序设计试题及答案

全国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年程序设计竞赛决赛试题

2010年程序设计竞赛决赛试题

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程序设计大赛_复赛试题

百度之星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年C语言程序设计竞赛试题

2010年C语言程序设计竞赛试题

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++程序设计试题及参考答案

全国2010年10月高等教育自学考试C++程序设计试题及参考答案

全国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月高级语言程序设计(一)真题及参考答案

2010年1月高级语言程序设计(一)真题及参考答案

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笔试题

noi2010笔试题

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。

2010大学C语言程序设计试题及答案

2010大学C语言程序设计试题及答案

2010大学C语言程序设计试题及答案一、单选题(每小题2分,共20分)(1)变量的指针,其含义是指该变量的。

A) 值 B) 地址 C) 名 D) 一个标志(2)若有说明int (*p)[3];则以下是正确的叙述。

A) p是一个指针数组B) p是一个指针,它只能指向一个包含3个int类型元素的数组C) p是一个指针,它可以指向一个一维数组中的任一元素D) (*p)[3]与*p[3]等价(3)以下是对共用体类型数据的正确描述。

A) 一旦定义了一个共用体变量后,即可引用该变量或该变量中的任何成员。

B) 一个共用体变量中可以同时存放其所有成员C) 一个共用体变量中不能同时存放其所有成员D) 共用体类型数据可以出现在结构体类型定义中,但结构体类型数据不能出现在共用体类型定义中。

(4)若有语句int array[3][4];以下对下标为i和j的数组元素的引用不正确的是。

A) array[i][j] B) *(*(array+i)+j) C) *(array[i]+j) D) *(array+i*4+j)(5)一般情况下,文件占用存储空间较多。

A)二进制文件 B)文本文件 C)随机文件 D)顺序文件(6)以下引用非法的是。

struct student{ int num;int age;}stu1,*p;p=&stu1;A) stu1.age B) student.age C) p->age D) (*p).age(7)指针变量一定不能进行的运算是。

A)+ B)- C)= D)/(8)以下关于main()函数的说法,正确的是。

A) main()必须是程序的第一行 B)main()可以有参数C) 一个程序可以有多个main() D)main()可以被用户自定义的函数调用(9)关于下面的函数,正确的说法是。

void Swap(int *p1, int *p2){ int *p;*p = *p1;*p1 = *p2;*p2 = *p;}A) 交换*p1和*p2的值 B) 正确,但无法改变*p1和*p2的值C) 交换*p1和*p2的地址 D) 编译时可能出现警告错误(10)若对文件的操作未到文件尾时,feof(fp)函数的返回值是。

2010年东莞市小学生程序设计竞赛决赛上机试题

2010年东莞市小学生程序设计竞赛决赛上机试题

2010年东莞市小学生程序设计决赛上机试题2010年5月29日 8:30-11:30注意事项:1、文件名(程序名和输入输出文件名)必须严格按题目要求,否则将严重影响得分。

2、评测采用计算机自动测评,每题100分,共400分。

1.跑步(race.pas)【问题描述】为了迎接学校的一个长跑比赛,小明每天坚持晨练,为了适应各种长跑比赛场地,他在小区找到了一条能应对各种地形的跑道,这条跑道包括上坡、平地和下坡。

他把选择的跑道划分成T个单位长度,每个单位长度的跑道地形可能是上坡、平地或者下坡。

输入中使用三个字母来表示每个单位长度跑道的地形情况,u表示是上坡,f表示是平地,d表示是下坡。

现在已知小明跑步的时间为M秒,每跑一个单位长度的上坡需要U秒、平地需要F秒、下坡需要D秒。

请帮小明计算一下,在M秒内最远能跑多远。

以整数为单位,比如最后一单位长度跑道小明能跑一部分,但不能跑完整个单位长度跑道,则这一部分就不算。

请认真分析输入输出样例。

【输入】输入文件race.in的第一行包含五个整数,并且两两之间用空格隔开,分别为M,T,U,F和D。

从2~T+1行:每行一个字母,表示这个单位的地形。

【输出】输入文件race.out,用一个整数表示他能跑的最远距离。

【输入输出样例1】【输入输出样例2】【数据说明】1 ≤ M≤ 10,000,000,1 ≤ T ≤ 100,000,1 ≤ U ≤ 100,1 ≤ F≤ 100,1 ≤ D≤ 1002.朗读比赛(recite.pas)【问题描述】一年一度的读书节快到了,学校准备举办一场朗读比赛,同学们报名非常踊跃,但是每班只限一名同学参加。

那么,该推荐谁呢,这成了一个难题。

根据规则,朗读比赛需要在理解的基础上把一本有N页的书在尽可能短的时间内读完。

由于时间紧,在班上举行朗读比赛的预赛已经不太可能。

于是作为班长的小明只好根据平时同学们的朗读能力来决定派谁参加。

他让同学们自报朗读能力的三个重要指标:朗读的速度S,即每分钟可以读多少页;一次性连续朗读最多坚持的时间T(分钟);一次连续朗读后需要休息的时间为R(分钟)。

2010年程序设计大赛试题

2010年程序设计大赛试题
X:\Map.dat 就是这样一个文件,它保存着高、宽各 128 像素的一幅图像,图像内容是黑色背景上有一个白色的实心锐角三角形,一个 0 表示一个黑色像素,一个 1 表示一个白色像素。
编写程序P7,实现以下功能:
1、从文件 X:\Map.dat 把数据读到 128 行 128 列的二维数组 datas 中。
编写程序P6,先从键盘依次输入重量限额L(整数)和总件数N(0<N<16),再输入N个重量值(整数),请在这N件物品中选择若干件,它们的重量之和不超过L,而且最接近L,然后在屏幕上输出所选物品的总重量。
第7题
(本题20分)
屏幕上的图像是由按行、列整齐排列的小点(像素)组成的,如果用不同数值来表示像素的不同颜色,那么,屏幕上一个矩形区域的图像就可以保存到一个二维数组中,数组的一个元素对应一个像素。如果逐行、逐个地把数组元素保存到一个文件中,也就把图像保存到了文件中。
如果存在匹配,在屏幕上输出数据串A中的匹配起始位置(开头的数据位置是1而不是0),否则输出0。
第6题
(本题20分)
一位旅客希望携带一批物品上飞机,但由于携带重量有限额,他只能Байду номын сангаас中选择一部分。怎样选择才能尽可能用足限额?这是个至今尚未找到好的计算方法的困难问题,但在物品件数不多时,我们可以用计算机搜索出最佳方案。
第1题
(本题6分)
编写程序P1,从键盘输入一个正整数N,把N分解为两个尽可能接近的因数,在屏幕上按升序输出这两个因数,用一个空格分隔。
第2题
(本题10分)
编写程序P2,先从键盘输入正整数N(N<10),再输入N个正整数,然后在屏幕上显示这N个正整数的最小公倍数。

NOIP2010 题解

NOIP2010 题解

1.#include <stdio.h>2.#include <stdlib.h>3.4.#define IN_FILE_NAME "translate.in"5.#define OUT_FILE_NAME "translate.out"6.7.int iMaxMem = 0,iWordNum = 0;8.int Mem[100],Word[1000];9.int iOut = 0,iMemLen = 0;10.11.void DeleteWord()12.{13.for (int i = 0; i < iMemLen;i++)14. {15. Mem[i] = Mem[i+1];16. }17. iMemLen --;18.}19.20.void InMem(int iWord)21.{22.if(iMemLen + 1 >iMaxMem)23. DeleteWord();24. Mem[iMemLen] = iWord;25. iMemLen ++;26.}27.28.void ReadFile()29.{30.int i = 0;31.FILE *fp = fopen(IN_FILE_NAME,"rb");32.if (fp == NULL)33. {34.return;35. }36. fscanf(fp,"%d%d",&iMaxMem,&iWordNum);37.for (i = 0;i < iWordNum;i++)38. {39. fscanf(fp,"%d",&Word[i]);40. }41. fclose(fp);42.}43.44.45.void WriteFile()46.{47.int i = 0;48.FILE *fp = fopen(OUT_FILE_NAME,"wb");49.if (fp == NULL)50. {51.return;52. }53. fprintf(fp,"%d",iOut);54. fclose(fp);55.}56.57.int IsWordInMem(int iWord)58.{59.for (int i = 0;i<iMaxMem;i++)60. {61.if(Mem[i] == iWord)62. {63.return 1;64. }65. }66.return 0;67.}68.69.void ScanWord()70.{71.int i = 0;72.for (i=0;i<iWordNum;i++)73. {74.if (IsWordInMem(Word[i]) == 0)75. {76. iOut ++;77. InMem(Word[i]);78. }79. }80.81.}82.83.int main()84.{85. ReadFile();86. ScanWord();87. WriteFile();88.return 0;89.}#include<iostream>using namespace std;int f[41][41][41][41];int s[351];int main(){intn,m,x;cin>>n>>m;int a=0,b=0,c=0,d=0;for(inti=0;i<n;i++)cin>>s[i];for(inti=1;i<=m;i++){cin>>x;if(x==1)a++;if(x==2)b++;if(x==3)c++;if(x==4)d++;}for(inti=0;i<=a;i++)for(int j=0;j<=b;j++)for(int k=0;k<=c;k++)for(int l=0;l<=d;l++){if(i!=0)f[i][j][k][l]=max(f[i][j][k][l],f[i-1][j][k][l]);if(j!=0)f[i][j][k][l]=max(f[i][j][k][l],f[i][j-1][k][l]);if(k!=0)f[i][j][k][l]=max(f[i][j][k][l],f[i][j][k-1][l]);if(l!=0)f[i][j][k][l]=max(f[i][j][k][l],f[i][j][k][l-1]);f[i][j][k][l]+=s[i+j*2+k*3+l*4];cout<<f[a][b][c][d];return 0;}关押罪犯此题各种做法都有,但最简单的方法还是并查集。

2010年试题答案

2010年试题答案

2010年《高级语言程序设计》试题答案一、编一函数,求一个N×M的二维整型数组中各元素的平均值和最大值。

(20分)void MaxL(int a[4][4],int n,int m){ //---------------2分int i,j; //---------------2分int max; //---------------1分float level; //---------------1分level=0; //---------------1分max=-1000; //---------------1分for(i=0;i<m;i++) //---------------2分for(j=0;j<n;j++){ //---------------2分level+=a[i][j]; //---------------2分if(a[i][j]>max) //---------------2分max=a[i][j];}level=level/(n*m); //---------------2分printf("%3d%4.1f",max,level); //---------------2分}二、编一函数,完成N×N的整型数组a的赋值。

数组a的各元素值如下图:(其中N由参数传递)未显示的其他元素的值均为0。

(20分)void inputA(int a[9][9],int N){ //---------------2分int i,j; //---------------2分for(i=1;i<N;i++){ //---------------2分for(j=1;j<=i;j++) //---------------4分a[i-1][j-1]=i*j; //---------------4分for(j=i+1;j<N;j++) //---------------2分a[i-1][j-1]=0; //---------------4分}}三、编一个函数,计算f(N)=r1!+r2!+...+rn! 。

2010C++程序设计复习题及参考答案

2010C++程序设计复习题及参考答案

中南大学现代远程教育课程考试复习题及参考答案C++程序设计一、选择题:1.下列标识符作为变量名称,合法的是 [ ]A. gotoB. StudentC. 123D. k-ld2.设x和y均为int型,则x && y为真的条件是 [ ]A.其中一个为0B.其中一个为非0C.它们均为0D.它们均为非03.存储以下数据,占用存储字节最多的是 [ ]A. 0B. ’0’C. ”0”D. ’\n’4.如果有以下语句:int a,b;char m,n;cin>>a>>b>>m>>n;则下列输入数据的方式中正确的是 [ ]A. 10,20,X,YB. 1020 XYC. 10 20 X YD. 10、20、X、Y5.下列for循环的次数为 [ ]for (int I=0,x=0;!x && I<=5;I++)A. 5B. 6C. 1D. 无限6. 若有定义为“int *r =new int [10];”,则释放指针所指内存空间的操作是 [ ]A. delete [ ]r;B. delete *rC.delete r;D.delete r[ ];7. 有函数原型声明语句“int test(int a, int b=1, int c=0);”,在以下函数调用语句中,不合法的是 [ ]A. test(0);B. test(0,0);C. test( );D. test(0,0,0);8. 选择出合法的if语句(设有int x,a,b,c;) [ ]A. if (a==b) x++;B. if (a=<b) x++;C. if (a<>b) x++;D. if (a=>b) x++;9. 声明或定义一个内联函数时,必须在函数开始使用保留字 [ ]A. staticB. constC. externD. inline10. 在下面的函数声明中,存在着语法错误的是 [ ]A. BC(int a, int);B. BC(int, int);C. BC(int, int=5);D. BC(int x; int y);11. 将两个字符串连接起来组成一个字符串时,选用的函数是 [ ]A. strlen()B. strcpy()C. strcat()D. strcmp()12. 在程序中,预处理命令开头的字符都是 [ ]A. *B. #C. &D. @13. 若已知“char str[20];”,有语句“cin>>str;”,当输入为:This is a program 时,所得的结果是str= [ ]A. This is a programB. ThisC. This isD. his is a14. 在下面的do循环语句中,其循环体被执行的次数为 [ ]int i=0;do { i++; }while(i*i<10);A. 4B. 3C. 5D. 215. 在下面的一维数组定义中,有语法错误的语句是 [ ]A. int a[ ]={1,2,3};B. int a[10]={0};C. int a[ ];D. int a[5];16. 下面的保留字中,不能作为函数的返回类型 [ ]A. voidB. intC. newD. long17. 下面的函数声明中,“void BC(int a, int b);”的重载函数是 [ ]A. int BC(int x, int y);B. void BC(int a, char b);C. float BC(int a, int b, int c=0);D. int BC(int a, int b=0);18. 假定AB为一个类,则该类的复制构造函数的声明语句为 [ ]A. AB&(AB x);B. AB(AB x);C. AB(AB* x);D. AB(AB&);19. C++程序的基本功能模块为 [ ]A. 表达式B. 标识符C. 语句D. 函数20. 函数模板:“template <class T> T add(T x, T y){return x+y;}”,下列对add函数的调用不正确的是 [ ]A. add<>(1,2)B. add<int>(1,2)C. add(1.0, 2)D. add(1.0,2.0)21. 在下面的一维数组定义中,有语法错误的是 [ ]A. int a[ ]={1,2,3};B. int a[10]={0};C. int a[ ];D. int a[5];22.C++语言中的每条简单语句是以哪个符号作为结束符的 [ ]A. 分号B. 逗号C. 空格D. 换行符23. 设“int f(int); ”和“int g(int); ”是函数f和g的原形,以下将f作为语句调用的是[ ]A. g(f(3))B. f(g(3));C. g(f(3)+2);D. p=f(g(3)+1);24. 下面对构造函数和析构函数正确定义的项是 [ ]A. X::X(参数), X::~X()B. void X::X(), void X::~X()C. X::X(参数), X::~X(参数)D. void X::X(参数), void X::~X(参数)25. 在下列double型常量表示中,错误的是 [ ]A. E15;B. .35;C. 3E5;D. 3E-526. 下列各运算符中,优先级最低的是 [ ]A. ?:B. |C. ||D. !=27. 下列定义中,定义指向数组的指针p的是 [ ]A. int *p[5];B. int (*p)[5]C. (int *)p[5]D. int *p[ ];28. 设有以下定义:void f1(int * m, long & n);int a;long b;则以下调用合法的是 [ ]A. f1(a,b)B.f1(&a,b)C. f1(a,&b)D.f1(&a,&b)29. 下列各类变量中,不是局部变量的是 [ ]A. register int x; B.void f(int w)C.int z; D.static int y;(定义在函数外)30. 已知p是一个指向类A数据成员m的指针,A1是类A的一个对象。

[新版]noip2010普及组满分题解

[新版]noip2010普及组满分题解

【个人题解+代码】NOIP2010 普及组首先前两题可以说非常水,第三题也是水题。

第四题难度和前三题差别有点大……1.数字统计(two.pas/c/cpp)【问题描述】请统计某个给定范围[L, R]的所有整数中,数字2 出现的次数。

比如给定范围[2, 22],数字2 在数2 中出现了1 次,在数12 中出现1 次,在数20 中出现1 次,在数21 中出现1 次,在数22 中出现2 次,所以数字2 在该范围内一共出现了6次。

【输入】输入文件名为two.in。

输入共1 行,为两个正整数L 和R,之间用一个空格隔开。

【输出】输出文件名为two.out。

输出共1 行,表示数字2 出现的次数。

【输入输出样例1】【输入输出样例2】【数据范围】1 ≤ L ≤ R≤ 10000。

直接上题解:T1:two大水题,主要有如下几种方法:1.用字符串处理2.每次用mod10取最后一位再div103.递推递推式f[i]=f[i div 10]+f[i mod 10]然后累加即可(我是用这个做的)4.分别用数学公式计算每一位上2的个数(最快,但没必要,代码也较长)……var0000f:array[0..10000] of longint;0000l,r,i,ans:longint;000begin000assign(input,'two.in');reset(input);000assign(output,'two.out');rewrite(output);000read(l,r);000f[2]:=1;000for i:=10to r do0000f[i]:=f[i div10]+f[i mod10];0000for i:=l to r do0000inc(ans,f[i]);000writeln(ans);000close(input);close(output);000end.2.接水问题(water.pas/c/cpp)【问题描述】学校里有一个水房,水房里一共装有m 个龙头可供同学们打开水,每个龙头每秒钟的供水量相等,均为1。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
这四个字符类别分别为:
1.大写字母:A,B,C...Z;
2.小写字母:a,b,c...z;
3.数字:0,1,2...9;
4.特殊符号:~,!,@,#,$,%,^;
给你一个密码,你的任务就是判断它是不是一个安全的为50),密码仅包括上面的四类字符。
输出
对于每个输入的密码,判断这个密码是不是一个安全的密码,是的话输出YES,否则输出NO。
样例输入1
Linle@ACM
样例输出1
YES
样例输入2
^~^@^@!%
样例输出2
NO
C参考答案:
#include <stdio.h>
#include <string.h>
int main(){
char s[51], b[4];
int len, i, r;
scanf("%s", s);
len = strlen(s);
样例输入:
2591
样例输出:
2*9+5+1
参考答案:
importjava.util.Scanner;
publicclassPoint24 {
publicstaticvoidmain(String args[])
{
booleant =false;
int[] m =newint[4];
Scanner input=newScanner(System.in);
{
if(treeNames[j].compareTo(treeNames[j+1])>0)
{
String temp=treeNames[j];
treeNames[j]=treeNames[j+1];
treeNames[j+1]=temp;
}
}
}
//输出结果
System.out.println("统计结果:");
{
treeName=input.nextLine();
if(treeName.equals("-1"))
{
break;
}
count=1;
if(trees.containsKey(treeName))
{
count=trees.remove(treeName).intValue()+1;
}
trees.put(treeName, count);
Red Oak
White Oak
Poplan
Sassafras
Sycamore
Black Walnut
Willow
样例输出:
Ash 13.7931
Aspen 3.4483
Basswood 3.4483
Beech 3.4483
Black Walnut 3.4483
Cherry 3.4483
Cottonwood 3.4483
各题源文件都分别保存在一个单独的文件夹中,文件夹命名为:题号_队名。
第一部分(简单题型):
1、(10分)马克思手稿中有一道趣味数学问题:有30个人,其中有男人、女人和小孩,在一家饭馆吃饭花了50先令;每个男人花3先令,每个女人花2先令,每个小孩花1先令;问男人、女人和小孩各有几人?输出所有可能的组合。
{
System.out.println("请输入您要求最大公约数的两个整数:");
Scanner input=newScanner(System.in);
inta=input.nextInt();
intb=input.nextInt();
System.out.println("它们的最大公约数是:"+gcd(a,b));
printf("%10s%10s%10s\n”,”men”,”women”,”children");
for(men=0;men<=16;men++)
for(women=0;women<=25;women++)
for(children=0;children<=30;children++)
if(men+women+children==30&&men*3+women*2+children==50)
case0:
z[1] = z[0] + m[2];
a[1] ="("+a[0] +"+"+ m[2]+")";
{
a[2]="";
switch(i)
{
case0:
z[0] = m[0] + m[1];
a[0] ="("+m[0]+"+"+ m[1]+")";
break;
case1:
z[0] = m[0] - m[1];
a[0] ="("+m[0] +"-"+ m[1]+")";
break;
case2:
z[0] = m[0] * m[1];
importjava.util.Scanner;
publicclassGreatestCD
{
staticintgcd(inta,intb)
{
if( b==0)
{
returna;
}
else
{
returngcd(b, a % b);
}
}
publicstaticvoidmain(String args[])
}
intcategoryNum=trees.size();
String treeNames[]=newString[categoryNum];
EnumerationE_trees=trees.keys();
inttotal=0;//用来计算总的树木棵树
intindex=0;
while(E_trees.hasMoreElements())
海南软件职业技术学院第四届计算机文化节
程序设计大赛决赛题
提醒:请各队在各自电脑D盘根目录下创建一个命名为“2010程序设计大赛-队名”的文件夹,将所有题目的答案都放到此目录底下。
做题过程中请注意保存。每做完一题就通过电子教室系统提交一次,电脑上没装电子教室软件的每题做完后举手示意工作人员用U盘提交。
scanf(“%d”,days);
if(days!=0)
{
for(inti=1;i<days;i++)
{
k=(k+1)*2;
}
printf("蟠桃园原本总共有"+k+"个桃子");
}
}
第二部分(中等难度题型):
3、(15分)求输入的两个数的最大公约数。
样例输入:
8 10
样例输出:
2
Java参考答案:
a[0] ="("+m[0] +"*"+ m[1]+")";
break;
case3:
if(m[0]%m[1]==0)
{
z[0] = m[0]/m[1];
a[0] ="("+m[0] +"/"+ m[1]+")";
}
break;
}
for(intj = 0; j < 4; j++)
{
switch(j)
{
{
treeNames[index]=(String)E_trees.nextElement();
total=total+trees.get(treeNames[index]).intValue();
index++;
}
//排序
for(inti=treeNames.length-1;i>0;i--)
{
for(intj=0;j<i;j++)
if (len>=8 && len<=16){
memset(b, 0, 4);
for (i=0; i<len; ++i){
if (s[i]>='A' && s[i]<='Z'){
b[0] = 1;
}
else if (s[i]>='a' && s[i]<='z'){
b[1] = 1;
}
else if (s[i]>='0' && s[i]<='9'){
System.out.println();
}
}
}
6、(25分)给定四个正整数,用算术运算符+,-,*,/将这4个正整数连接起来(不使用括号),使得最终的得数恰为24,如果无法得到24,输出提示。
输入:
输入数据为4个正整数。
输出:
当输入的数据能按要求组合成24时,输出其中的一种组合方式。当无法得到24时,输出提示“impossible”。
for(inti=0;i<treeNames.length;i++)
{
相关文档
最新文档