




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2010全国软件专业人才设计与开发大赛题目决赛试题参考答案1、输入一个十亿以内的正整数人民币,用汉字输出。(41分)/*输入一个十亿以内的正整数人民币,用汉字输出。注意汉字的大小是两个字节,也就是说n个字符的空间只能存n/2个汉字,所以我选用结构体存储汉字,当然也可以用二维字符数组存储。代码写得比较长主要在零的处理上周折了一番,如果代码不便于阅读,可以先把与处理零有关的代码删去。*/方法一:#includestruct china char d3;/*之所以数组开3个大小 是因为除了汉字还有一个0符*/num12=,一,二,三,四,五,六,七,八,九; china qian=千,bai=百,shi=十;void print(int k)/*处理10000以内的数*/ int zero=0,dou=0; if(k=1000) int t1=k/1000; printf(%s千,numt1.d); k=k%1000; zero=1; if(k=100) int t1=k/100; printf(%s百,numt1.d); k=k%100; zero=1; else if(zero=1&k!=0) dou=1; printf(零); if(k=10) int t1=k/10; printf(%s十,n#include stdafx.humt1.d); k=k%10; else if(zero=1&dou=0) if(k!=0) printf(零); if(k!=0) printf(%s,numk.d); int main() int n; while(scanf(%d,&n)=1) int zero=0; if(n=1000000000) printf(十亿n); continue; if(n=100000000) int t=n; t=t/100000000; printf(%s亿,numt.d); n=n%100000000; zero=1; if(n=10000) int t=n; t=t/10000; if(zero=1) if(t/1000=0) printf(零); print(t); printf(万); n=n%10000; zero=1; if(zero=1) if(n/1000=0&n!=0) printf(零); print(n); printf(n); return 0;/*82234123412000012345123440112300102301101123999994120010189000239000000100000000020000000130000002*/方法二:/ 输入一个十亿以内的正整数人民币,用汉字输出/ 101001:拾万壹仟零壹和100101:拾万零壹佰零壹,以及错误数据001:壹#include stdafx.h#include string.hvoid f(char n)switch(n)case 1:printf(壹);break;case 2:printf(贰);break;case 3:printf(叁);break;case 4:printf(肆);break;case 5:printf(伍);break;case 6:printf(陆);break;case 7:printf(柒);break;case 8:printf(捌);break;case 9:printf(玖);break;void u(int n)if(n=9)printf(亿);else if(n=5)printf(万);elseswitch(n)case 2:case 6:case 10:printf(拾);break;case 3:case 7:printf(佰);break;case 4:case 8:printf(仟);break;main()char a11=1111111111; /用来存储人民币char *p=a;/gets(a);bool flag1=0;while(*p)if(*p!=0)flag1=1;break;p+;if(flag1=0)printf(零);flag1=0;p=a;while(*p)int w=strlen(a)-(p-a); /记录当前人民币的指针位置从右数第几位if(*p!=0)if(*p=1&(w=2&strlen(a)2)|(w=6&strlen(a)6) /判定十位和十万位是否输出壹f(*p);if(w!=6&w!=10&w!=2|*p!=1)f(*p); /输出人民币数字if(w!=1)u(strlen(a)-(p-a); /输出人民币单位if(w=5&w=8)flag1=1;elseif(w=9) printf(亿);else if(w=5&flag1)printf(万);if(p-a!=0&*(p-1)!=0)char *p1=p+1;while(*p1)if(w=9|w=5)&*(p+1)!=0)break;if(*p1!=0)printf(零);break;p1+;p+;putchar(n);2.每整点发一趟车,40分钟到达本站,随机耽搁030分钟,旅客10:0010:30之间的随机时刻到本站,求旅客的平均等车时间?(21分)/ 每整点发一趟车,40分钟到达本站,随机耽搁030分钟,/ 旅客10:0010:30之间的随机时刻到本站,求旅客的平均等车时间?#include stdafx.h#include stdlib.h#include time.hmain()int t9; /a9用来模拟9:00发的车的耽搁时间int t10; /a10用来模拟10:00发的车的耽搁时间int t; /用来模拟旅客到站时刻int s=0; /用来统计旅客等车总时间srand(time(NULL);for(int i=0;i=20&t=10&t=t9-20) /等到了 9:00 发的车s+=t-(t9-20);elses+=40-t+t10; /等到了 10:00 发的车printf(%fn,s/1000.0);3.输入n个运动员,8条跑道,给运动员分组,如(15分)用户输入8 输出 8用户输入25输出7666用户输入9输出54每行输出一个数字。#include stdafx.hmain( ) int n; /用来输入运动员的个数int p; /用来存储需要进行几个回合scanf(%d,&n);if(n%8=0)p=n/8;elsep=n/8+1;for(int i=0;ip;i+)if(in%p)printf(%dn,n/p+1);elseprintf(%dn,n/p);4.输入一个网址如http:/www/c/2010.08.19/(9分)输出http:/www./c/2010.08.19// 输入一个网址如http:/www./c/2010.08.19/(9分)/ 输出/ http:/ www./ c/2010.08.19/ / 考点:方法一指针#include stdafx.hmain( ) char a100; /用来存储一个网址char *p=a,*q; gets(a);for(q=a+strlen(a)-1;*q!= /;q-) ;while(*p)putchar(*p);if(*p=/&*(p-1)=/)putchar(n);if(*p=/&*(p-1)=.)putchar(n); break;p+; for(p+;*p!= 0;p+) putchar(*p); if(p=q)putchar(n);putchar(n);方法二数组/ 输入一个网址如http:/www./c/2010.08.19/(9分)/ 输出/ http:/ www./ c/2010.08.19/ / 考点:指针#include stdafx.h#include string.hmain( ) char a100=http:/www./c/2010.08.19/././; /用来存储一个网址int i=0,j=strlen(a)-1; /j记录第三次换行的位置while(aj!=/)j-;while(ai)putchar(ai);if(ai=/&ai-1=/) /第一次换行putchar(n);if(ai=/&ai-1=.) /第二次换行putchar(n);i+;while(ai) /由第二次换行直接进入判定第三次换行不再出来putchar(ai);if(i=j)putchar(n);i+;break;i+;putchar(n);方法三数组/ 输入一个网址如http:/www./c/2010.08.19/(9分)/ 输出/ http:/ www./ c/2010.08.19/ / 考点:数组#include stdafx.h#include string.hmain( ) char a100=http:/www./c/2010.08.19/././; /用来存储一个网址int i=0,j=strlen(a)-1; /j记录第三次换行的位置while(aj!=/)j-;while(ai)putchar(ai);if(ai=/&ai-1=/) /第一次换行putchar(n);if(ai=/&ai-1=.) /第二次换行putchar(n);break;i+;i+;while(ai) /由第三次换行putchar(ai);if(i=j)putchar(n);i+;putchar(n);5. 输入期初、期末求包含几个月如(5分)用户输入200107,200207输出13/ 输入期初期末求包含几个月如(5分)/ 用户输入200107,200207/ 输出13方法一:#include stdafx.h#include math.h#define N 3.1415int main(int argc, char* argv)long s1,s2;printf(输入2个年份);scanf(%ld,%ld,&s1,&s2);int yue;yue=(s2-s1)/100*12+(s2%100-s1%100)+1;printf(相差的月份是%d,yue);return 0;方法二:main( ) char a14;char begin100; /用来存储期初char end100; /用来存储期末char *p=a,*p1=begin,*p2=end;gets(a);while(*p)if(p-a6)*p2+=*p;p+;printf(有 %.0lf 月n,atoi(end) -atoi(begin))/100*12.0+(atoi(end) -atoi(begin))%100+1);方法三:#include stdafx.h#include stdlib.hmain( ) char a14;char begin7; /用来存储期初char end7; /用来存储期末char *p=a,*p1=begin,*p2=end;gets(a);while(*p)if(p-a6)*p2+=*p;p+;int b,e;b=atoi(begin);e=atoi(end); /将期初期末字符串转为整数if(b/100=e/100) /同一年printf(%dn,e%100-b%100+1);else if(e/100-b/100)=1) /相邻年printf(%dn,12-b%100+e%100+1);elseprintf(%dn,12-b%100+(e/100-b/100-1)*12+e%100+1);6.输入三角形的三条边,如果构成三角形输出yes,否则输出no.main()float a,b,c;scanf(fff,&a,&b,&c);if( (a+bc)&(a+cb)&(b+ca)printf(YESn);*a、b、c能构成三角形*else printf(NOn);*a、b、c不能构成三角形*7. 用*画正方形如(3分)用户输入1输出*用户输入3输出*/ 用*画正方形如(3分)/ 用户输入1/ 输出/ */ 用户输入3/ 输出/ */ */ *#include stdafx.hmain( )
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 业务流程跟踪与监控表
- 铝灰渣资源化利用改建项目实施方案(范文模板)
- 2025年四川省达州市中考英语真题含答案
- 房屋预售购销合同
- 中试平台建设的资金筹措与资源配置策略
- 生物制药中试平台建设的背景与发展趋势
- 建筑设计原理与设计题集
- 《宏观经济与微观经济:高二经济学基础教案》
- 资源整合与优化在中试能力建设中的应用
- 品牌加盟合作合同协议书详细内容约定
- 2023年10月自考00539中国古代文学史二试题及答案含评分标准
- 安保服务方案(技术标 )
- 高中化学课程标准解读课件
- 辊压机的维护与检修
- 四年级下册数学说课稿-1歌手大赛-北师大版
- 北京市朝阳区2021-2022学年四年级下学期期末语文试卷
- 金融系统反洗钱考试题库(含答案)
- 甘肃省张掖市2023年中考地理真题试题(含解析)
- 人教小学数学五年级下册综合与实践《怎样通知最快》示范公开课教学课件
- 脱不花三十天沟通训练营
- 2023年湖南常德中考语文真题及答案
评论
0/150
提交评论