C语言程序设计竞赛题及其答案_第1页
C语言程序设计竞赛题及其答案_第2页
C语言程序设计竞赛题及其答案_第3页
C语言程序设计竞赛题及其答案_第4页
C语言程序设计竞赛题及其答案_第5页
全文预览已结束

下载本文档

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

文档简介

1、数学与统计学院第三届计算机程序设计竞赛题E需知:1、答案必须写在答题纸上。2、程序釆用C/JAVA/VB/VFP语言实现均可。3、考虑到各种因素,程序的键盘输入和结果输出可以用伪代码或者自然语言表示。但是必须说明输入变量和输出变量。4、题目最好能用完整、正确的语言程序来解决问题,如确实无法编写完整语言程序的,可以写出程序主要框架和流程,必要时可以用伪代码或者自然语言描述算法(程序)。一、玫瑰花数(20分)如果一个四位数等于它的每一位数的4次方之和,则称为玫瑰花数。例如:1634=1八4+6八4+3八4+4八4,编程输出所有的玫瑰花数。#includestdio.hvoidmain()inti,

2、j,k,1,m;for(i=999.:i=9999;i+)j=i/1000;k=i%10;l=i/100-10*j;m二i/I0100*j-10*1;if(i二二j*j*j*j+k*k*k*k+l*l*l*l+m*m*m*m)printf(%dn,i);二、菱形图案(20分)对给定的奇数n,编程打印菱形图案。输入样例:7输出样例:*材*材*材*材*ttincludettincludevoidmain()inti,j,k:intn;scanf(%d,&n);for(i=0;in;i+)for(j=0;jfabs(n/2i);j+)printf(”);for(k=0;kn-2*j;k+)print

3、f(*);printf(n);三、钻石奖励(20分)海盗们决定用“投环套物”的方式來奖励最近一次行动中贡献最大的人。他们将1克拉钻石排列成矩阵,通过投掷圆环决定奖励的钻石的数量。假设每个钻石的x和y坐标都是1到99的整数,输入数据包含两行,第一行为矩阵的行数及列数,第二行为圆心的坐标点及半径。输出格式输出数据为圆形内的钻石的克拉数(包括圆形边上的钻石)。输入样例4211输出样例5#include#includemath.hvoidmain()inti,j,x,y;floatr;inta,b,count=0;printf(*请输入矩阵的行列i,j:);scanf(%d%d,&i,&j);prin

4、tf(*请输入圆心的坐标点及半径x,y,r:);scanf(%d%d%f”,&x,&y,&r);for(a=0;ai;a+)for(b=0;bj;b+)if(sqrt(ax)*(ax)+(by)*(by)=2)个连续正整数之和,如:15=1+2+3+4+515=4+5+615=7+8请编写程序,根据输入的任何一个正整数,找出符合这种要求的所有连续正整数序列。输入数据:一个正整数,以命令行参数的形式提供给程序。输出数据:在标准输出上打印出符合题目描述的全部正整数序列,每行一个序列,每个序列都从该序列的最小正整数开始、以从小到大的顺序打印。如果结果有多个序列,按各序列的最小正整数的大小从小到大打印

5、各序列。此外,序列不允许重复,序列内的整数用一个空格分隔。如果没有符合要求的序列,输出“NONE”。例如,对于15,其输出结果是:1234545678对于16,其输出结果是:NONE#includevoidmain()inti,j,h,k,n;n=l;k=0;scanf(%d,i);for(j=l;j=i/2+l;j+)k=k+j;if(k=i)for(h=n:h=i/2+l;h+)printf(*%dh);printf(n);n+;j+;五、(密钥短语密码)(20分)让我们选一个英文短语,称其为密钥字(keyword)或密钥短语(keyphrase),如HAPPYNEWYEAR,按顺序去掉重

6、复字母和空格得HAPYNEWRo将它依次写在明文字母表之下,而后再将明文字母表中未在短语中出现过的字母依次写在此短语之后,就可构造出一个代替表,如下所示:明文:ABCDEFGHIJKLMNOPQRSTUVWXYZ密文:HAPYNEWRBCDFGIJKLMOQSTUVXZ请编写一个程序,可以通过用户输入密码(一个字符串)生成密码表(即上面的那个表),然后可以对用户输入的明文进行加密。输入样例:明文:ILoveHuiwen输出样例:密文:BFjtnRsbuni#includevoidmain()inti,j,h,k,n;n=l;k=0;scanf(%d,i);for(j=l;j=i/2+l;j+)

7、k=k+j;if(k=i)for(h=n:h=i/2+l;h+)printf(*%dh);printf(n);n+;j+;六、最少钱币(附加题20分)这是一个古老而乂经典的问题。用给定的几种钱币凑成某个钱数,一般而言有多种方式。例如:给定了6种钱币面值为2、5、10、20、50、100,用來凑15元,可以用5个2元、1个5元,或者3个5元,或者1个5元、1个10元,等等。显然,最少需要2个钱币才能凑成15元。你的任务就是,给定若干个互不相同的钱币面值,编程计算,最少需要多少个钱币才能凑成某个给出的钱数。输入:第一行是待凑的钱数值M(1=M=2000,整数),接着的一行中,第一个整数K(1=K=10)表示币种个数,随后是K个互不相同的钱币面值Ki(l=Ki=1000)o输入M=0时结束。输出:输出一行,即凑成钱数值M最少需要的钱币个数。如果凑钱失败,输出“Impossible”。你可以假设,每种待凑钱币的数量是无限多的。输入样例:15625102050100输出样例:2#include#includevoidmain()intM,K,i;inta10;printf(请输入待凑钱数M:scanf(%d,&M);pr

温馨提示

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

评论

0/150

提交评论