首届程序设计大赛题目及答案_第1页
首届程序设计大赛题目及答案_第2页
首届程序设计大赛题目及答案_第3页
首届程序设计大赛题目及答案_第4页
首届程序设计大赛题目及答案_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、首届程序设计大赛题目及答案程序设计大赛题目1 .硬币兑换:用一元人民币兑换一分、二分和五分的硬币,编程求出所有兑换方法,并打印每种情况下各面值硬币需几枚? ( 10分)2 .旅馆里有一百个房间,从1到100编了号。第一个服务员把所有的房间门都打开了,第二个服务员把所有编号是2的倍数的房间 相反处理”,第三个服务员把所有编号是 3的倍数的房间作 相反处理”,以后每个服务员都是如此。问第100个服务员来过后,哪几扇门是打开的。(所谓相反处理”是:原来开着的门关上,原来关上的门打开。)(15分)3 .整型数组,长度为10,输入数组各元后,求数组各元的平均值,并找出最接近平均值的那个元素。打印输出上述

2、两个结果,用逗号隔开,不要有其它字符。(20分)4 .编程求两个很长的整数之和,比如两个20位十进制整数。(很长的整数指无法用10ng型存储的数)(25分)例如:123456789+123456789=2469086425 .编写布雷程序。(30分)在一个10*10的方格中,随机分布10个地雷,并在其它没有地雷的格中显示该方格周围相邻的方格中共有几枚地雷。样例输出:(图中-1的位置表示地雷,其它值表示该位置相邻的八个格子中的地雷数)-001232100 000111211-1110122312-1121000212- -12110bh111-0111000000 1121111100 112

3、11-1- 1-1- 0 0- - -答案:第一题:#include <iostream>using namespace std;int main()(int i,j,k;for(i=1;i<=20;i+)for(j=1;j<=50;j+)(k=100-5*i-2*j;if(k>0)cout<<"五分硬币"<<i<<"枚,二分硬币"<<j<<"枚,一分硬币"<<k<<"枚"<<endl;sy

4、stem("pause");return 0;第二题:#include<iostream>using namespace std;int main()(int i,j; /i为服务员编号,j为房间编号int a101;for(int t=1;t<101;t+)at=1;for(i=2;i<101;i+)for(j=i;j<101;j+)if(j%i=0)aj*=-1;cout<<"打开的房间为:for(i=1;i<101;i+)if(a =1) cout<<i<<","sy

5、stem("pause");return 0;第三题:#include <iostream>#include <math.h> using namespace std;int main()int a10,i,sum=0,n=0;float ave,ca;for(i=0;i<10;i+) cin>>a; sum+=a; ave=sum/10.0;cout<<"数组平均值为:"<<ave<<endl;ca=fabs(a0-ave);for(i=1;i<10;i+) if( f

6、abs(a-ave)<ca) ca=fabs(a-ave); n=i;cout<<"最接近平均值的元素为第"<<n+1<<"个"<<an<<endl;system("pause");return 0;第四题:/长整数相加#include <iostream>#include <stdlib.h>#include <time.h>#define length 10using namespace std;class clargeintst

7、atic const int size = length; 整数最长 100 位int elementsize;int _len; / 0 < _len < size 整数的实际位数int _overflow; /溢出标记,0无溢出,1溢出public:int* getposition() constreturn (int*)element;clargeint(void):_overflow (0)int i;for (i = 0; i<size; i+)element = 0;_len = size;clargeint(int *data, int len):_overfl

8、ow(0)int i;for (i = 0; i < len; i+) element = *(data+i);_len = len;clargeint(const clargeint& a)int i;for (i = 0; i < a._len ; i+)element = a.element;_len = a._len;void print(void)int i;for (i = _len - 1 ; i >= 0 ; i-) printf("%1d",element);printf("n");int getlen()co

9、nstreturn _len;int setoverflow(int overflow)_overflow = overflow;int getoverflow()return overflowconst clargeint& operator+(const clargeint& rvalue)clargeint temp;int llen,rlen,actuallen;int value;int carryflag; /进位标记,产生进位为1,没有进位为0carryflag = 0;if ( _len >= rvalue._len ) actuallen = _len;

10、for (int i = 0; i < actuallen; i+)if (i < rvalue._len)value = element + rvalue.element + carryflag; elsevalue = element + carryflag;temp.element = value % 10;carryflag = value / 10;elseactuallen = rvalue._len;for (int i = 0; i < actuallen; i+)if (i < _len)value = element + rvalue.element

11、 + carryflag;elsevalue = rvalue.element + carryflag;temp.element = value % 10;carryflag = value / 10; /the end of iftemp._len = actuallen ;if (carryflag = 1)if (actuallen < size)temp.elementactuallen = carryflag;temp._len =actuallen + 1;elsetemp._overflow = 1;temp._len =actuallen ;return temp; /

12、the end of operator +;int main()int data1length;int data2length;int len1, len2;int i;/ seed the random-number generator with current time so that/the numbers will be different every time we run./srand( (unsigned)time( null );for (i = 0; i< length; i+)data1 = rand()%10;for (i = 0; i< length-5;

13、i+)data2 = rand()%10;/ initarray( datal, lenl);/ initarray( data2, len2);clargeint valuel(datal, length);clargeint value2(data2, length-5);clargeint sumvalue;sumvalue =value1 + value2;value1.print();value2.print();if( sumvalue.getoverflow()=1)cout<<"相加之和,超出整数长度表示范围!" << endl;su

14、mvalue.print();sumvalue = value2 + value1;if( sumvalue.getoverflow()=1)cout<<"相加之和,超出整数长度表示范围!" << endl;sumvalue.print();system("pause");return 0;第五题:#include "stdio.h"#include "stdlib.h"#include "time.h"int main() int b100;int a1010;int i=0,r,k,n,m,l,x,y,bomb;for (i=0;i<100;i+) b=i;ai/10i%10=20;;i=0;k=100;while (i<10) srand(time(null);r=rand()%k;abr/10br%10=-1;while (r<=k-2) br=br+1;r+;k-;i+;);for (i=0;i<10;i+)for (r=0;r<10;r+) if (ar!=-1) k=(i-1)>0)?(i-1):0);n=(i+1)<9)?(i+1):9);m=(r-1)>0)?(r-

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论