c整理(34页).doc

上传人:1595****071 文档编号:35412210 上传时间:2022-08-21 格式:DOC 页数:34 大小:280.50KB
返回 下载 相关 举报
c整理(34页).doc_第1页
第1页 / 共34页
c整理(34页).doc_第2页
第2页 / 共34页
点击查看更多>>
资源描述

《c整理(34页).doc》由会员分享,可在线阅读,更多相关《c整理(34页).doc(34页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、-c整理-第 34 页#include #includeintmain()inti;charc20;scanf(%s,c);for(i=0;istrlen(c)&i10;i+)if(A=ci&ci=Z)printf(%c,A+(ci-A+5)%26);elseif(a=ci&ci=z)printf(%c,a+(ci-a+5)%26);elseprintf(%C,ci);return0;题目描述斐波那契数列指的是这样一个数列:1、1、2、3、5、8、13、21、34这个数列从第三项开始,每一项都等于前两项之和。给出一个正整数n,要求菲波那契数列中第n个数是多少。输入格式第1 行是测试数据的组数T

2、(1 = T= 10),后面跟着T 行输入。每组测试数据占1 行,包括一个正整数n(1 = n = 20)。输出格式T行,每行输出对应一个输入。输出是一个正整数,为斐波那契数列中第n 个数的大小。输入样例452191输出样例5141811#includeintmain()inti,j,k,n;inta40=1,1,b40=0;scanf(%d,&n);for(i=2;i=40;i+)ai=ai-1+ai-2;for(k=1;k=n;k+)scanf(%d,&j);bk-1=j;for(k=1;k=n;k+)printf(%dn,abk-1-1);return0;海伦公式又译作希伦公式、海龙公式

3、、希罗公式、海伦秦九韶公式,传说是古代的叙拉古国王希伦(Heron,也称海龙)二世发现的公式,利用三角形的三条边长来求取三角形面积。但根据Morris Kline在1908年出版的著作考证,这条公式其实是阿基米德所发现,以托希伦二世的名发表(未查证)。公式的内容为假设有一个三角形,边长分别为a,b,c,三角形的面积s可由以下公式求得s=sqrt(p*(p-a)*(p-b)*(p-c),这里p=(a+b+c)/2,sqrt是开平方的意思。输入格式只有一行,三个浮点数,分别代表三角型的三条边a,b,c(这里0a,b,c100)。输出格式只有一行,如果三条边可以构成一个三角形,则输出该三角型的面积(

4、要求保留3位小数),否则输出error。输入样例3. 4. 5.输出样例#include#includeintmain()floata,b,c,p,s;scanf(%f%f%f,&a,&b,&c);if(a+b)c)&(a+c)b)&(b+c)a)p=(a+b+c)*0.5;s=sqrt(p*(p-a)*(p-b)*(p-c);printf(%.3f,s);elseprintf(error);return0;题目描述 冬至,是中国农历中一个非常重要的节气,也是中华民族的一个传统节日,冬至俗称“冬节”、“长至节”、“亚岁”等,早在二千五百多年前的春秋时代,中国就已经用土圭观测太阳,测定出了冬至,

5、它是二十四节气中最早制订出的一个,时间在每年的公历12月21日至23日之间,这一天是北半球全年中白天最短、夜晚最长的一天;中国北方大部分地区在这一天还有吃饺子、南方吃汤圆吃南瓜的习俗。 现代天文科学测定,冬至日太阳直射南回归线(又称为冬至线),阳光对北半球最倾斜,北半球白天最短,黑夜最长。冬至过后,太阳直射点又慢慢地向北回归线转移。从冬至之日起,中国即进入了数九寒天。天文专家介绍说,“九九”是我国北方特别是黄河中下游地区更为适用的一种杂节气。它从冬至那一天开始算起,进入“数九”,俗称“交九”,以后每九天为一个单位,谓之“九”,过了九个“九”,刚好八十一天,即为“出九”,那时就春暖花开了。这段时

6、间是一年中气温由较低过渡到最冷,再逐渐回暖的一段时间。脍炙人口的歌曲九九艳阳天里的九九指的就是第九个“九”那段时间。 现在假定每年的冬至都是公历的12月22日,请你写一段程序算出给定的日期是几九的第几天。输入格式第1 行是测试数据的组数T(0T10)。后面跟着T 行测试用例,每行为3正整数依次分别代表年月日(测试用例保证输入数据均合法,且年份在1900和2500之间,月份和日期保证处于当年数九的这段日子)。输出格式T行,每行对应一个测试用例,用两个数字表示是几九的第几天。如二九第三天,则表示为2 3(两个数字之间有一个空格)。输入样例22011 12 222012 2 5 输出样例1 16 1

7、#includeintmain()intn,i,sum,q,w,year,month,day;inta40=0,b40=0;scanf(%d,&n);for(i=1;i=n;i+)scanf(%d %d %d,&year,&month,&day);if( (0 = year%4)&(0 != year%100) |(0 = year %400) )if(12=month) sum=day-21;elseif(1=month) sum=day+10;elseif(2=month) sum=day+41;elseif(3=month) sum=day+70; else if(12=month) s

8、um=day-21;elseif(1=month) sum=day+10;elseif(2=month) sum=day+41;elseif(3=month) sum=day+69; q=sum/9+1;w=sum%9;if(0=w)ai-1=q-1;bi-1=9;elseai-1=q;bi-1=w; for(i=1;i=n;i+)printf(%d %dn,ai-1,bi-1);return0;题目描述根据输入的图形类别和高度,输出相应图形。例如,输入triangle,7,则输出下列图形;*输入“diamond”,7,则输出下列图形: * * * *输入格式图形类型,图形高度输出格式对应图形

9、输入样例triangle 1输出样例*#include#includeintmain()inti,j,n,k;charstr1=triangle,str210;scanf(%s %d,str2,&n);if(strcmp(str1,str2)=0)for(i=0;i=(n-1)/2;i+)for(j=0;j0;i-)for(j=i*2-1;j0;j-)printf(*);printf(n);else for(i=1;i=(n+1)/2;i+)for(j=1;j=(n+1)/2-i;j+)printf(%c, );for(j=1;j=1;i-)for(j=1;j=(n+1)/2-i;j+)pri

10、ntf(%c, );for(j=1;j=2*i-1;j+)printf(*);printf(n);return0;题目描述一天,Jyc去915发现xdog和Arsenal4在很激烈的争论。本以为他们在切题但一听却发现他俩在争论很无聊的问题,那就是21世纪的第一天是星期几?这个本来查下日历就解决的问题却被他们兴高采烈地折腾这么久,一问才知道原来他俩实在是太懒了,谁都不愿去翻日历。于是他俩就要求Jyc给他们写一个程序能很快地知道某个日期是星期几。但Jyc最近很忙,实在抽不出空给这两个懒人写程序,这个问题就交给你们来解决了。现在我们已经知道的是1900年的1月1号是星期一。其余的规则跟正常的年历一样

11、,有大小月,有闰月和闰年。输入格式只有一行,三个整数, y, m, d。分别表示年份,月份和天,保证输入的年份是在1900年1月1日以后。输出格式只有一行显示星期几。其表示方式为:monday, tuesday, wednesday, thursday, friday, saturday, sunday。输入样例2000 1 1输出样例saturday#includeintmain()inta,b,c,year,month,day,sum=0;scanf(%d %d %d,&year,&month,&day);sum+=(year-1900)*365;a=(year-1901)/4;b=(ye

12、ar-1900)%4;if(b!=0)switch(month)case1: sum+=day;break;case2: sum+=day+31;break;case3: sum+=day+31+28;break;case4: sum+=day+31*2+28;break;case5: sum+=day+31*2+30+28;break;case6: sum+=day+31*3+30+28;break;case7: sum+=day+31*3+30*2+28;break;case8: sum+=day+31*4+30*2+28;break;case9: sum+=day+31*5+30*2+2

13、8;break;case10: sum+=day+31*5+30*3+28;break;case11: sum+=day+31*6+30*3+28;break;case12: sum+=day+31*6+30*4+28;break;elseswitch(month)case1: sum+=day;break;case2: sum+=day+31;break;case3: sum+=day+31+29;break;case4: sum+=day+31*2+29;break;case5: sum+=day+31*2+30+29;break;case6: sum+=day+31*3+30+29;br

14、eak;case7: sum+=day+31*3+30*2+29;break;case8: sum+=day+31*4+30*2+29;break;case9: sum+=day+31*5+30*2+29;break;case10: sum+=day+31*5+30*3+29;break;case11: sum+=day+31*6+30*3+29;break;case12: sum+=day+31*6+30*4+29;break; sum+=a;c=sum%7;switch(c)case2:printf(tuesday);break;case3:printf(wednesday);break;

15、case4:printf(thursday);break;case5:printf(friday);break;case6:printf(saturday);break;case0:printf(sunday);break;case1:printf(monday);break;return0;题目描述计算序列:2/1, 3/2, 5/3, 8/5, 13/8, 21/13前n项之和输入格式n:序列待求和项数,11000输出格式序列第1项至第n项之和,定点表示,2位小数输入样例2输出样例#includeintmain()intn,i;floatsum,b,c;inta1000=1,1;for(i

16、=1;i1000;i+)ai+1=ai+ai-1;scanf(%d,&n);for(i=1;i=n;i+)b=ai;c=ai+1;sum+=c/b;printf(%.2f,sum);return0; 题目描述公元13世纪上半叶,蒙古军队一路西征杀向欧洲。在进军途中,蒙古骑兵以旗为单位沿一条道路相继开进。为了给后面的队伍指路,每当遇到一个道路分叉处时,就在路旁堆石头堆作路标,堆一堆石头表示直行,堆两堆石头表示右转,堆三堆石头表示左转。试用C语言编写一个程序,计算出通过的路口数目。假设每个相邻路口间路段的长度基本相等且开始的方向向西(以此判断第一个路口,即出发时向哪个方向走),用输出eswn四个字

17、母或其组合来确定最终的地点相对于出发地(即第一个路口)的方位。输入格式只有一行,分别用1、2和3表示路口遇到的石碓的数量,最多有20个路口。输出格式只有一行,由一个数字和一个字母或两个字母组合分别构成路口的数目和最终地点与出发地的方位。如果需要输出两个字母,则输出字母按照字典序输出(不用考虑回到原始出发点的情况)。输入样例31输出样例2,s#include#includeintmain()inti,x=0,y=0,face=4;charstr21;scanf(%s,str);for(i=0;i0&x0) printf(nw);if(y=0&x0&x0) printf(en);if(y=0&x0

18、) printf(e); if(y0&x0) printf(sw); if(y0) printf(es); if(y0&x=0) printf(n);if(y0&x=0) printf(s); return0;题目描述投票者被分成K个组,如果超过半数的组投赞成票,决议就可以通过。每组是投赞成票还是反对票也由每组内部投票决定,若这一组有超过半数的人投赞成票,那么这一组就投赞成票。例如有3组,分别有5,5,7人,那么,至少要有6个人赞成决议才能通过。(即第一组和第二组各三人。)注意到共有17人,只需要6人赞成就有可能通过,所以本题题目叫危险的民主编写程序,告诉你组数和每组的人数,计算通过决议至少需

19、要多少人赞成。输入格式第一行是正整数K(K=101),表示有k组第二行有K个数,分别是每一组的人数。K以及每组的人数都是奇数。总人数不会超过10001。输出格式至少需要的人数输入样例35 7 5输出样例6#include#includeintmain()inti,k,j,m,sum=0; intb101=0;inta101=0;scanf(%d n,&k);for(i=0;ik;i+)scanf(%d,&ai);for(m=0;mk-1;m+) for(i=0;iai+1) j=ai;ai=ai+1;ai+1=j;for(i=0;i(k+1)/2;i+)bi=(ai+1)/2;sum+=bi;

20、printf(%d,sum);return0;题目描述在main函数中调用f函数计算 1+1/2!+1/3!+1/n! 。函数原型为double f(int);注意:结果保留5位小数,并添加换行符。输入格式输入一个正整数输出格式结果保留5位小数,并添加换行符。输入样例10输出样例#includeintmain() doublefac(intn);intn,i;doubley,sum;scanf(%d,&n);for(i=1;i=n;i+)y=1/fac(i);sum=sum+y;printf(%.5lf,sum);printf(n);return0;doublefac(intn)inti;in

21、tf=1;for(i=0;in;i+)f=f*(i+1);return(f);题目描述编写程序,在main函数中输入字符串和某个字符,通过函数调用将字符串中的该字符删除。函数原型为:void f_del(char,char);(第二个形参接收被删除的字符)输入格式输入字符串、要删除的字符输出格式删除所给字符后的字符串,注意:输出结果后添加换行符输入样例abcdefga输出样例bcdefg注意:输出结果后添加换行符#include#includeintmain()voiddel(charstr,charc);charstr1100;charc;scanf(%s,str1);scanf(n);sc

22、anf(%c,&c);del(str1,c);printf(%sn,str1);return0;voiddel(charstr1,charc)inti,j;for(i=0;istrlen(str1);i+)if(str1i!=c)str1i=str1i;elsefor(j = i; j strlen(str1); j+)str1j = str1j+1;i = i - 1;题目描述在main函数中输入数组元素(10个),调用求数组元素中最大值的函数,求出数组中的最大值。函数原型: intf_max( int a,int m ) ; /第二个形参为数组长度。输入格式输入10个整数输出格式10个元素

23、中的最大值,用换行结束。输入样例2 3 10 -9 7 80 1 6 -9 -20输出样例80 (注意:结束有换行)#includeintmain()intmax(intx,inty);intm,n,i;inta10=0;for(i=0;i10;i+)scanf(%d,&ai);for(i=0,m=a0,n=0;im)m=max(ai,m);printf(%dn,m);intmax(intx,inty)return(xy?x:y);题目描述20161128a)实现一个函数。函数的参数有2个,分别是数组名(数组起始地址),数组大小(即数组元素个数)。函数返回值为void。函数功能是将数组中有意义

24、的元素按降序排列。b)实现一个函数。函数的参数有3个,分别是数组名(数组起始地址,要求数组元素按降序排列),数组大小(即数组元素个数),和待插入的元素值。函数返回值为void。函数功能是将待插入的元素插入数组中,并维持降序排列。例如:将元素4插入数组8,7,5,2,1,0, 0后,数组变为8,7,5,4,2,1,0c)在主函数中定义数组,元素个数为100,首先读入5个整数作为数组元素初始值(剩余元素初始值为0),并调用第一个函数,对数组进行降序排列;然后读入1个整数作为数组新增元素,调用第二个函数将其插入数组并输出。输入格式6个整数,前5个为数组元素初始值,第6个为新增元素值输出格式数组前6项

25、输入样例89 8 20 18 19 40输出样例89 40 20 19 18 8题目描述C语言马上就要期末考试了,小明每天都在紧张的复习着。一天他突然想到一个问题,就是C语言的语法规定括号是要匹配的。那么什么叫括号匹配呢?这个问题似乎小学生都懂,可我们的教材上好像没有明确的说明,老师上课也没讲过。上网一搜,满屏都是括号匹配算法,就是没有人说什么是括号匹配。于是小明就来问教C语言的250老师。250老师说:“这么简单的问题也要来问,括号匹配就是左右括号要成对出现,不能只有一个。”小明于是在纸上写了两个表达式,3)+(2和(5+3+6)*7,问这两个表达式的括号算匹配吗?250老师“”。这两个表达

26、式的括号显然是不匹配的。括号不匹配通常有3种情况,1、左右括号次序不正确,如小明写的第一个表达式;2、左括号多于右括号;3、右括号多于左括号。现在就请聪明的你帮帮小明写一段用于判断括号是否匹配的C程序。输入格式输入的第一行是一个整数t(0 t 20),表示有t组测试用例。后面是t行字符串(为了简化程序,字符串中只包含 和 两种字符),每个字符串长度不超过30。输出格式t行,每行对应一行输入的字符串,如果该行字符串括号是匹配的则输出yes,否则输出no。输入样例2输出样例yesno#include#includeintmain()intn,i,j,m=0;inta30;charstr2030;s

27、canf(%d,&n);for(i=0;in;i+)scanf(%s,stri);for(j=0;jstrlen(stri);j+)if(strij=)m+=1;elseif(strij=)m-=1;if(m0)break;ai=m;m=0;for(i=0;in;i+)if(ai=0)printf(yesn);elseprintf(non);return0; 题目描述输入两个字符串 s1,s2 和任意字符 k ,在 s1 中的指定字符 k 第一次出现的位置处插入字符串 s2 ,构成新的字符串s3,并将s3输出。输入格式输入有三行,第一行用gets()输入s1串,第二行用gets()输入s2串,

28、第三行用%c格式输入任意字符k。输出格式用puts输出s3字符串输入样例abcd12b输出样例a12bcd#include #include intmain()chars1100;chars220;chark;inti,a,len;gets(s1);scanf(%s,s2);getchar();scanf(%c, &k );for( i=0;s1i;i+ )if( s1i=k )break;a=i; len=strlen(s2); for( i=strlen(s1);i=a;i- ) s1i+len=s1i;strncpy( &s1a, s2, len ); printf(%sn, s1 );

29、 题目描述 众所周知,经管院的C语言考试是上机考试,考试时间由老师自己决定。虽说教务处给了老师足够的权力决定考试的时间,但也不是想哪天考就哪天考,具体的时间还是受到很多条件制约的。比如要在教务处规定的最后考试时间前结束考试,机房要空闲,不能和同学们及教师的其他考试冲突,助教和监考老师要有时间等等。通常老师会和同学们共同协商来决定考试的时间。今年又到了决定期末考试时间的时候了,由于经管院的同学们都有自己的期末复习计划,他们在哪天考试这个问题上有一定的分歧。最后学委决定发扬民主精神,让大家匿名投票,选出自己最希望的时间,然后再由学委跟老师协商。投票是这样进行的,小伙伴们根据期末考试其他科目的时间安

30、排,将可能的时间分为4段,分别叫A、B、C、D。投票的规则是单选。很快投票结果就出来了,现在就请你用C语言写一段程序帮他们算一算每个选项所获得的选票占总选票的比例。输入格式为4个整数(均大于等于0,小于200),分别代表选择A、B、C、D的票数。输出格式为若干行,每行的格式类似,表示某选项及该选项所获得的选票占总选票的比例,结果保留2位小数。要求:1、获得票数大于3的选项才能够被输出;2、如果可以输出,输出的顺序为先输出A,然后是B、C、D。输入样例5 0 12 11输出样例#includeintmain()inta4,sum=0,i;floatb4;for(i=0;i4;i+)scanf(%

31、d,&ai);sum+=ai;for(i=0;i3)printf(A:%.2fn,b0) ;if(a13)printf(B:%.2fn,b1) ;if(a23)printf(C:%.2fn,b2) ;if(a33)printf(D:%.2fn,b3) ;return0;题目描述班里10名同学,选修物理和数学的同学各有若干名. 现在录入同学学号,姓名,选修课程编号,以及其成绩, 要求计算出物理、数学课程的平均分,各成绩段学生数和比例,最高分及学生信息。其中,分数(含平均分)都按百分制(整数处理),比例按浮点数处理,精确到小数点后两位。平均分取整时按四舍五入处理,例如,四舍五入为 75.最高分可能有多个。(要求,分别建立班级类,课程类.班级类包含所有学生信息,课程类实例为物理课,数学课,课程类包含统计学生成绩等方法)输入格式姓名学号物理成绩数学成绩,没有选修的成绩记为-1。例如:ZhangLin 801 -1 -1ZhangYin 802 100 90输出格式先输出物理课成绩信息,再输出数学课成绩信息。以物理课为例,输出的成绩信息格式如下:physics:物理成绩为90,100分的人数(比例);物理成绩为80,89分的人数(比例);物理成绩为70,79分的人数(比例);物理成绩为60,69分的人数(比例);物理成绩不及格的人数(比例);平均分;physics:物理成绩最

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 单元课程

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com