c语言程序设计竞赛题及其答案

上传人:zhan****gclb 文档编号:144870009 上传时间:2022-08-28 格式:DOC 页数:5 大小:50KB
收藏 版权申诉 举报 下载
c语言程序设计竞赛题及其答案_第1页
第1页 / 共5页
c语言程序设计竞赛题及其答案_第2页
第2页 / 共5页
c语言程序设计竞赛题及其答案_第3页
第3页 / 共5页
资源描述:

《c语言程序设计竞赛题及其答案》由会员分享,可在线阅读,更多相关《c语言程序设计竞赛题及其答案(5页珍藏版)》请在装配图网上搜索。

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

2、99;i=9999;i+)j=i/1000;k=i%10;l=i/100-10*j;m=i/10-100*j-10*l;if(i=j*j*j*j+k*k*k*k+l*l*l*l+m*m*m*m)printf(%dn,i);二、菱形图案(20分)对给定的奇数n,编程打印菱形图案。 输入样例:7输出样例:* * * * * * #include#includevoid main()int i,j,k;int n;scanf(%d,&n);for(i=0;in;i+)for(j=0;jfabs(n/2-i);j+)printf( );for(k=0;kn-2*j;k+)printf(*);print

3、f(n);三、钻石奖励(20分)海盗们决定用“投环套物”的方式来奖励最近一次行动中贡献最大的人。他们将1克拉钻石排列成矩阵,通过投掷圆环决定奖励的钻石的数量。假设每个钻石的x和y坐标都是1到99的整数,输入矩阵及圆形,请你帮他们判断一下这个人能获得多少克拉的钻石。*输入格式输入数据包含两行,第一行为矩阵的行数及列数,第二行为圆心的坐标点及半径。输出格式输出数据为圆形内的钻石的克拉数(包括圆形边上的钻石)。输入样例4 42 1 1输出样例5#include#includevoid main()int i,j,x,y;float r;int a,b,count=0;printf(请输入矩阵的行列i

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

5、的顺序打印。如果结果有多个序列,按各序列的最小正整数的大小从小到大打印各序列。此外,序列不允许重复,序列内的整数用一个空格分隔。如果没有符合要求的序列,输出 “NONE” 。例如,对于15,其输出结果是:1 2 3 4 5 4 5 6 7 8 对于16,其输出结果是:NONE #includevoid main()int i,j,h,k,n;n=1;k=0;scanf(%d,i);for(j=1;j=i/2+1;j+)k=k+j;if(k=i)for(h=n;h=i/2+1;h+)printf(%d h);printf(n);n+;j+; 五、(密钥短语密码)(20分)让我们选一个英文短语,

6、称其为密钥字(key word)或密钥短语(key phrase),如HAPPY NEWYEAR, 按顺序去掉重复字母和空格得HAPYNEWR。将它依次写在明文字母表之下, 而后再将明文字母表中未在短语中出现过的字母依次写在此短语之后, 就可构造出一个代替表, 如下所示:明文:ABCDEFGHIJKLMNOPQRSTUVWXYZ密文:HAPYNEWRBCDFGIJKLMOQSTUVXZ请编写一个程序,可以通过用户输入密码(一个字符串)生成密码表(即上面的那个表),然后可以对用户输入的明文进行加密。输入样例:明文:ILoveHuiwen输出样例:密文:BFjtnRsbuni#includevoi

7、d main()int i,j,h,k,n;n=1;k=0;scanf(%d,i);for(j=1;j=i/2+1;j+)k=k+j;if(k=i)for(h=n;h=i/2+1;h+)printf(%d h);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元。 你的任务就是,给定若干个互不相同的钱币面值,编程计算,最少需要

8、多少个钱币才能凑成某个给出的钱数。输入: 第一行是待凑的钱数值M(1 = M = 2000,整数),接着的一行中,第一个整数K(1 = K = 10)表示币种个数,随后是K个互不相同的钱币面值Ki(1 = Ki = 1000)。输入M=0时结束。输出: 输出一行,即凑成钱数值M最少需要的钱币个数。如果凑钱失败,输出“Impossible”。你可以假设,每种待凑钱币的数量是无限多的。输入样例:156 2 5 10 20 50 100输出样例:2#include#includevoid main()int M,K,i;int a10;printf(请输入待凑钱数M:);scanf(%d,&M);printf(请输入币种个数K:);scanf(%d,&K);for(i=0;iK;i+)scanf(%d,&ai); if(M2000|K10)printf(Impossible);exit(0);for(i=0;iK;i+)if(M%ai=0)

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!