北京理工大学C语言网络教室编程练习题答案

上传人:痛*** 文档编号:202254797 上传时间:2023-04-21 格式:PDF 页数:111 大小:9.79MB
收藏 版权申诉 举报 下载
北京理工大学C语言网络教室编程练习题答案_第1页
第1页 / 共111页
北京理工大学C语言网络教室编程练习题答案_第2页
第2页 / 共111页
北京理工大学C语言网络教室编程练习题答案_第3页
第3页 / 共111页
资源描述:

《北京理工大学C语言网络教室编程练习题答案》由会员分享,可在线阅读,更多相关《北京理工大学C语言网络教室编程练习题答案(111页珍藏版)》请在装配图网上搜索。

1、c语言程序设计网络课堂习题(1-5 6题)1.Hello world.输 入:无输 出:Hello world.MS稣 嘛 的 输 出 时间限制 演 限 制 梆 卜 臃 测试用例以文本方式显示1.以文本方式显示1.Hello world.-11秒64M0程序:#includeint main()(printf(Hello world.n);return 0;)2.Welcome to Beijing.程 序:附 班啼 的 融 时间限制 崎 限 制 梆 卜 邮 测试用例以文本方式显示1.以文本方式显示1.Welcome2.to3.Beijing.J1秒256KB0#include int mai

2、n()(printf(Welcomen);printf(ton);printf(Beijing.n);return 0;)3.求 A+B输入:整 数1整数2输 出:整 数1+整数2=和期待的输出时间限制 崂 限 制 勖 卜 陲 测试用例1以文本方式显示1.102.28以文本方式显示1.10+20=30J无限制64M0程 序:#includeint main()int a,b;scanf(”%d”,&a);scanf(“d”,&b);printf(%d+%d=%dnza/bza+b);return 0;4.求x的3次方输 入:一 个 整 数。输 出:该 整 数 的3次 方 值。测试愉入 期待的检

3、出 时间限制 内存限制 希卜进程测试用例1以文本方式显示1.3以文本方式显示1.27无限制64M0程 序:#includeint main()(int x;scanf(%d,&x);printf(,%dn,/x*x*x);return 0;)5.学习打印你的第一个图形编写一个小程序,要求输出的是4行由*号组成的等腰三角形。啼 的 输 出 时间限制 陶 限 制 醐 卜 邮 3以文本方式显示一以文本方式显示1.*2.*3.*.4*1秒64M0程序:#includeint main()printf(*n);printf(*n);printf(n*n);printf(,*nn);return 0;6.

4、一年级的算术题输入:接受两个整数,每个整数之间使用空格分隔。例如输入格式为:123 444输出:分别输出按照整型数据进行+、-、*、/、*之后的运行结果。螭 的 输 出 时 间 限 制 内 存 限 制 新 卜 螃 以文本方式显示1.10 3 J以文本方式显示1.10+3=132.10-3=7.测试用例13.10*3=3。4.10/3=3-5.10%3=1U1秒64M0程序:#includeint main()(int a,b;scanf(%d%d,/&a,&b);printf(%d+%d=%dn,a,b,a+b);pnntf(,%d-%d=%dn,a,b,a-b);printf(%d*%d=%

5、dn,/a/b/a*b);printf(%d/%d=%dn,a,b,a/b);printf(,%d%d=%dn,a/b,a%b);return 0;)7.求两个变量的最小值输入:两个整型数输出:两个整型值中的最小值测试饰入 期待的愉出 时间限制 内存限制 梆卜进程测试用例以文本方式显示1.10 20以文本方式显示1.min=10-J无限制64M0程序:#includeint main()int a,b;scanf(%d%d,&a/&b);printf(min=%dn,a内存*1 Q v h-三 亍2.2 2 N 以 文*父三干_ _ _ _ _ _ _ _.e q u X a e r a l

6、l:r i a n一OU Z K*力式 工 行X.3 2 2 J1.I s o c e l e s -tr-ia r26-4 MO以士 三 示1.A S1.n o n-t r-A a n g le .&4fJlO二 一 二y=三二1.3 S-J-=e =三 二X.七1。-J6 4 MO程序:#includeint main()(int a,b,c;scanf(%d%d%d,&a,&b,&c);if(a+bc&a+cb&b+ca)(if(a=b&b=c&a=c)printf(equilateraltriangle.n);else if(a=b|a=c|b=c)printf(isoceles tr

7、iangle.n);elseprintf(triangle.nn);elseprintf(non-triangle.nn);return 0;9.计算圆柱的侧面积及体积输 入 :第一行输入圆柱的底面半径 r第二行输入圆柱的高h输出:s=,v=要求1.所有变量都定 义为 双精度类型2.结果精确到小数点后两位邮 稣 喃 的 输 出 时间限制内存限制赖外进程测试用例1以文本方式显示1.22.8以文本方式显示5=100.53,7=100.53.1 _ 1秒64M0测试用例2以文本方式显示1.52.10U以文本方式显示1.s=314.16,v=78E1秒64M0程序:#include#define PI

8、 3.1415926int main()(double r,h,s,v;scanf(%lf,&r);scanf(%lf,&h);s=2*PI*r*h;v=PI*r*r*h;printf(s=%.2f,v=%.2fn,s,v);return 0;)10.计算时钟的夹角背景:钟面上的时针和分针之间的夹角总是在0180之 间(包 括0和1 8 0)。举例来说,在十二点的时候两针之间的夹角为0,而在六点的时候夹角为180,在三点的时候为90 o本题要解决的是计算12:00到11:59之间任意一个时间的夹角。输入:每组测试数据包含两个数字:第 一 个 数 字 代 表 小 时(大 于0小于等于1 2),第

9、二个数字代表分(在 区 间 0,59上)o输出:对应每组测试数据,用常用格式显示时间以及这个时候时针和分针间的最小夹角,精确到小数点后一位。输出格式如下所示。程序:入脆 的 播 出 时间限制内存限制额 进程测试用例以文本方式显示1.12文本方式显示e is 0.0 degrees.1秒64M0淮Mffl例2以文本方式显示1.12 30以文本方式显示is 165.0 degrees.一4|)1秒64M0#include#includeint main()(int h,m;float dl,d2,d;scanf(%d%d,&h,&m);dl=30*(h+m/60.0);d2=m*360由 0.0;

10、d=fabs(dl-d2);if(d180)d=360-d;printf(At%d:%d the angle is%.If degrees.n,h,m,d);return 0;1 1.找出最大素数素数是指一个只能被1和它本身整除的数,在数论中占有重要的研究地位,在当代密码学中也被广泛应用。输入:取值范围输出:该范围内的最大素数测试用例4期待的愉出时 间 限 制 脸 限 制 避 卜 腌 以文本方式显示1.100以文本方式显示prime number is 97.1 一.m-I 1秒64M0程序:#includeint main()int n,i,j;scanf(%d,&n);for(i=n;i=

11、l;i-)for(j=2;ji;j+)if(i%j=0)break;if(j=i)(printf(The max prime number is%d.n,i);break;)1 2.求最后3 位数值输入:a和n的值。假 设a=150 输出:求a的n次方的最后3位数。剥试输入巧期待的输出时间限制内存限制额外进程则试用例1以文本方式显示1.10 0以文本方式显示t 3 numbers is1秒64M0则试用例2以文本方式显示1.2 8,以文本方式显示3 numbers is 256 !1 1秒64M0则由用例4以文本方式显示1.100 10以文本方式显示3 numbers is 000.1秒64M

12、0程序:#includeint main()long int s=l;int a,n,i=l,t=l;scanf(%d%d,&a,&n);if(n=O)printf(The last 3 numbers is l.n);else(for(i=l;i=0&t=10&t=100&t1秒64M0程序:#includeint main()int i,n,amount=l;scanf(n%dz&n);for(i=n-l;i=l;i-)amount=2*(amount+i);printf(The monkey got%d peachs in first day.ntamount);14.黑色星期五在西方,

13、星期五和数字13都代表着坏运气,两个不幸的个体最后结合成超级不幸的一天。所以,不管哪个月的十三日又恰逢星期五就叫“黑色星期五”。输入:年份输出:判断该年是否包含黑色星期五,如包含,给出具体日期测由输入期待的输出时间限 制 内存限制 额外进程剜试用例1以文本方式显示1.2006以文本方式显示There are 2 Black 1They are:2006/1/13-J2006/10/13U1秒64M0程序:#includeint main()(int i,n=0zyear,month12=0;int a13=0,13,44,73,104,134,165,195,226,257,287,318,3

14、48);int b13=0,13,44,72,103,133,164,194,225,256,286,317,347;scanf(%d,&year);for(i=l;i13;i+)(if(year%4=0&year%100!=0)|year%400=0)(if(year-l+(year-l)/4.)-(year-l)/100)+(year-l)/4.00)+ai)%7=5)(n+;monthn=i;)elseif(year-l+(year-l)/l)-(year-l)/100)+(year-l)/400)+bi)%7=5)(n+;monthn=i;)if(n=l)(printf(There i

15、s%d Black Friday in year%d.n,n,year);printf(lt is:n);printf(%d/%d/13n,year,monthl);else(printf(There are%d Black Fridays in year%d.n,n,year);printf(They are:n);for(i=l;i=n;i+)(printf(%d/%d/13n,year,monthi);)return 0;)15.你会输出一行星号?我们才开始上机,现在需要我们用最简单得办法,在一行中输出N个星号。输入:N值输出:一行中N个星号。剜试输入期待的输出时间限制 内存限制 额外进

16、程剥试用例1以 文 本 方 式 显 示1.4以 文 本 方 式 显 示1.1秒64M0剥试用例2以 文 本 方 式 显 示1.8二 二 二 式 显 示1*1秒64M0_ _ _ _ _ _._ _程序:#includeint main()(int i,n;scanf(%d,&n);for(i=l;i=n;i+)printf(*);printf(n);)16.计算S U M 的值已知公式:SUM=l+l/2+ly3+lA +-+Vn输入:n输出:表达式su m的值。结果保留6位小数。滂t流 诲 入Q)HH铸 的 但 匕 不tM限 储 内 存 限 制 制的卜湃榨 Q)涮 试H I例1以 文 本 方

17、 式SL示1.以 文 本 方 式3 s示|1.su m i.o e e e o o J1秒6 4 MO涮iiCHl例2以 文 本 方 式B示1.X-J以 文 本 方 式5 s示1.s u m-i.s e e e e e 1秒6 4 MO5时 试 用 例 以 文 本 方 式SB示1.3 1以 戏 主 右W.H示;1.s u m-1.8 3 3 3 3 3-J1秒6 4 MO程序:#includeint main()int i,n;double sum=0;scanf(%d,&n);for(i=l;i=n;i+)sum+=1.0/i;printf(,sum=%.6lfn,sum);return 0

18、;1 7.寻找特殊整数请编写一个程序寻找一种特殊整数:一 个n位的正整数等于其各位数字的n次方之和。例如:407=4X4X4+0X0X0+7X7X7。所以407就是一个特殊数。输入:正整数的位数n(n=6)0输出:所有此n位特殊数。每个数占一行。若不存在符合条件的特殊数,则输出提示:“N。output.;若存在,则从小到大进行输出。说明:假设输入为4,在4位整数中,有3个4位的特殊数,则输出格式为(输出中的1111、2222和9999并不是4位特殊数,只是格式样例):111122229999期待的输出时 间 限 制 艮 制 卷 卜 龌 测 试 用 例1以文本方式显示1.3 J以文本方式显示1.

19、1532.37。3.3714.407无限制64M0程序:#include#include int main()(int nJzj/num/t/s=0,tl,flag=0;scanf(%d,&n);t=pow(10,n-l);for(i=t;i=0)o输出:打印相应的空心倒三角形。图样参见测试用例。期待的愉出时间限制内存限制 御卜进程以文本方式显示1.3以文本方式显示*拿*1测试用例2.*3.*1秒64M0程序:#include#include int main()(int ijh;scanf(”%d”,&h);for(i=l;i=h;i+)for(j=l;ji;j+)printf();if(i

20、=l|i=h)(for(j=l;j=2*(h-i)+l;j+)printf(*);printf(n);)elseprintf(*);for(j=l;j=2*(h-i)-l;j+)printf();printf(*n);)return 0;)1 9.空心字符菱形输入:菱型起始字母和菱形的高度。输出:参看测试用例,打印空心的由字符组成的菱形。测试输入 期待的输出 时间限制 曲 限 制 能 卜 进程测试用例以文本方式显示1.C 4以文本方式显示1.m2.D D3.E E 一4.F F5.E E-6.D D7.C J1秒64M0程序:#include#include int main()(int i,

21、j,h;char ch;scanf(%c%d,&ch,&h);for(i=l;i=h;i+)(for(j=l;j=h-i;j+)printf();printf(%c,ch+i-l);for(j=l;j=2*i-3;j+)printf();if(i=l)(printf(n);continue;)printf(%cn,ch+i-l);for(i=h+l;i=2*h-l;i+)(for(j=l;j=i-h;j+)printf();printf(%c,ch+(2*h-l)-i);for(j=l;j=(2*h-l-i)*2-l;j+)printf();if(i=2*h-l)(printf(n);cont

22、inue;printf(%cn,ch+(2*h-l)-i);)return 0;)2 0.空心梯形输入行数n和首数字字符,在屏幕上输出由数字围起的高和下底宽度均n的空心梯形。要求:输出的数字是循环的,即输出数字9后再输出的数字是0o输入:行数n和首字符输出:空心梯形府 的 输 出 时间限制内存P艮制 祢 卜 蜂 测试用例以文本方式显示1.5 5以文本方式显示7 8 9 0 1 0 9 8 7 6688一9 0 1 0 9无限制64M0程序:#includeSinclude int main()(int i,j,nf t=0;scanf(%d%d,&nz&f);t=f;for(j=l;j=3*n

23、-2;j+)(if(j=3*n-2)printf(%dzt);elseprintf(%d,t);if(j(3*n-l)/2)(if(t=9)t=0;elset+;)else if(j=(3*n-l)/2&n%2=0)continue;else(if(t=O)t=9;elset-;printf(n);t=f;for(i=2;i=n;i+)(for(j=l;j=2*(i-l);j+)printf();if(i=n)(for(j=l;j=(n+l)/2;j+)|if(t=9)(t=0;printf(%d,t);)elseprintf(%d,+t);for(j=l;j=n/2;j+)|if(t=0&n

24、%2!=0)t=9;else if(j=l&n%2=0)(if(j=n/2)printf(%dn,t);elseprintf(%d,t);continue;)elset;if(j=n/2)printf(%dn,t);elseprintf(%d,t);)else(if(t=9)|printf(O);for(j=l;j=6*n-4*i-3;j+)printf();printf(On);t=0;)else|t+;printf(%d,t);for(j=l;j=6*n-4*i-3;j+)printf();printf(%dn,t);)return 0;)H l:计算通用产品代码(UPC)的校验位(选作)

25、下面是一种计算校验位的方法:首先把第一位、第三位、第五位、第七位、第九位和第十一位数字相加。然后把第二位、第四位、第六位、第八位和第十位数字相加。接着把第一次加法结果乘以3 后再加上第二次加法的结果。随后,再把上述结果减去l o 减法后的结果除以10取余数。最后,用 9 减去上一步骤中得到的余数。现在以Morton碘盐为例,第一组数字的加法是0+4+0+0+0+3=7,而第二组数字的加法是2+6+0+l+0=9o把第一组加法值乘以3 后再加上第二组加法值得到的结果是30o再减去1,结果变为29o再把这个值除以10取余数为9o9在减去余数结果9,最终值为0。输入:每次输入三行数据,第一行是UPC

26、的第一位数字,第二行是UPC的第一组五位数字,第三行是UPC的第二组五位数字。输出:UPC的校验位蝌 的 愉 出 时间限制 的 艮 制 抽 卜 蝴 测试用例以文本方式显示1.0U2.2460。3.01003以文本方式显示1.01秒64M0程序:#include#includeint main()(int iJzsl=0,s2=0,t;int a ll;char b6zc6;scanf(%d,&aO);scanf(s,b);scanf(%s,c);for(i=0J=l;i5;i+J+)aj=bi-48;for(i=0,j=6;i5;i+J+)aj=ci-48;for(i=0;ill;i+)(if

27、(i%2=0)sl+=ai;elses2+=ai;t=9-(sl*3+s2-l)%10;printf(%dn,t);return 0;H2:数制转换(选作)这个题目会给你两个不同的数字,它们不属于同一进制,要求你计算出当它们分别处于何种进制之中时,两个数字相等。譬 如1 2和5,在十进制下它们是不等的,但 若1 2使 用3进制而5使用六进制或十进制时,它们的值就是相等的。因此只要选择合适的进制,1 2和5就可以是相等的。程序的输入是两个数字M和N(其十进制的值不超过1000000000),它们的进制在2 36之间。对于十以下的数字,用0 9表示,而十以上的数字,则使用大写的A-Z表示。求出分别

28、在2 36哪种进制下M和N相等。若相等则输出相应的进制,若不等则输出错误信息。当然了,对于多种可能成立的情况,找出符合要求的进制最小的一组就行了。信息的格式见测试用例。嫡 轨蝌 的 输 出 时间限制 艮制勖卜进程以文本方式显示以文本方式显示例 11.12 5(base 3)=5(base1秒64M0 1 m,程序:#includeint main()long int pm=0/pn=0/s=0,t=0/w=l/e=l,p=0,q=0;int a30,b30;char m30,n30;int i,j,g,k,maxl=0,max2=0,flag=0;scanf(%s%szm,n);for(i=0

29、;mi!=0;i+)(if(mi=A&mi=0,&mi=9,)ai=mi-48;maxl=maxl(ai+l)?(ai+l):maxl;maxl=maxl=A&nj=0&nj=,9,)bj=nj-48;max2=max2(bj+l)?(bj+l):max2;max2=max22?2:max2;pn=j;for(i=maxlj=max2;i=36&j=0;g-)(p+=ag*w;w=w*i;)for(k=pn-l;k=0;k-)(q+=bk*e;e=e*j;)if(pq)j+;elseflag=l;printf(%s(base%d)=%s(base%d)n,m,i,n,j);break;)if(

30、flag=O)printf(%s is not equal to%s in any base 2.36n,m,n);return 0;)2 1.零钱换整钱小明手中有一堆硬币,小红手中有若干 张1 0元的整钱。已 知1角的硬币厚度 为1.8mm,5角的硬币厚1.5mm,1元的硬币为2.0m m。小明和小红一起玩游戏,小红拿出若干张10元的纸币,小明要将1角的硬币放成一摞,将5角的硬币硬币放成-摞,将1元的硬币放成一摞,如 果3摞硬币一样高,并且金额能够正好小红要求的面值,则双方可以进行交换,否则没有办法交换。输入:小红希望交换儿张10元的纸币输出:1角的数量,5角的数量,1元的数量测试愉入 期待

31、的输出 时间限制 内存限制 额外进程测试用例1以文本方式显示1.81以文本方式显示1.50,60,451无限制64M0程 序:三 种 硬 币 厚 度 公 倍 数:18mm(1角10个 共1元,5角12个 共6元,1元9个 共9元,要 想3摞 硬 币 一 样 高 总 钱 数 必 须 是16元(1+6+9)的公倍数)#include int main()(int n,t,x,y,z;scanf(%d,&n);t=n*10;if(t%16!=0)printf(Nochange.n);else(t=t/16;x=t*10;y=t*12;z=t*9;printf(%d,%d,%dn,x,y,z);)re

32、turn 0;2 2.买东西.某商品有A、B、C三种品牌,各品牌的价格各不相同,其中A品牌的价格为每个5元,B品牌为每个3元,而C品牌为每3个1元。如果要用M元 钱 买N个该商品,要求每个商品至少买一个,编程求各种品牌各能买多少个。输入:先后输入M (钱数)及N(商品个数)的实际数值输出:所有可能情况下可以购买的3种商品的个数,按A、B、C品牌的顺序输出,用逗号分隔。例如:2,30,68;表示A品牌商品2个、B品牌商品30个、C品牌商品68个。要求:因为有多个结果,结果的排序按照A 品牌的个数从少到多的顺序输出。测试愉入 期待的输出 时间限制 内存限制 额外进程(7)测 试 用 例1以文本方式

33、显示1.100 1001以文本方式显示1.4,18,7812.8,11,8113.12,4,841无限制64M0程序:#include int main()(int ijk;float m,n;scanf(%f%f,z&m/&n);for(i=l;in-l;i+)(for(j=l;j=n-l-i;j+)(for(k=l;k=n-i-j;k+)if(i*5+j*3+k*1.0/3)=m&i+j+k=n)printf(%d,%d/%dn,J/jzk);)return 0;2 3.谁能出线电视台举办“超级学生”才艺大赛,由于报名人数狂多,所以要先进行分组预赛。按规定,每10名学生为一个预赛小组,评委

34、打出分数(0100分),各小组第一名可以进入下一轮;如果有多名学生得分相同都是第一名,则可同时进入下一轮。输入:按顺序给出一个小组10个人的最后得分(in t)。输出:能够出线的学生序号(09)o测试给入期待的输出时间限制内存限制额外进程测 试 用 例 1以文本方式显示1.9812.9813.10014.9715.9516.9417.901以文本方式显示1.211秒64M0程序:#include int main()(int i,s10=0,max=0;for(i=0;i10;i+)(scanf(“%d”,&si);if(maxsi)max=si;)for(i=0;i10;i+)(if(si=

35、max)printf(,%dn/i);)return 0;2 4.寻找特殊偶数有一种特殊偶数,它每一位上的数字都两两不相同。我们现在需要找出四位数中某一区间内的这类偶数。输入所要寻找的四位偶数的范围。每组输入有两个数字:第一个数字是最小范围;第二个数字是最大范围。如果输入遇到0,输入结束。输出列出此范围内的所有特殊偶数,并且列出此范围内特殊偶数的个数。#include#includemain()测试愉入期待的输出时间限制内存限制额外进程测试用例1以文本方式显示1.3000 302012.6040 609013.0 01以文本方式显示1.3012 3014 32.counter=413.6042

36、 6048 64.counter=10164MJ程序:int i,j,k,a,b,c,d,m=O,e;for(e=0;e=0;e+)scanf(%d%d,&i,&j);if(i=O)|(j=0)break;else if(i99991|i99991|j1000)printf(Errorn);else for(k=i;k=j;k+)if(k%2=l)continue;a=k/1000;b=(k%1000)/100;c=(k%100)/10;d=k%10;if(a=b)|(b=c)|(c=d)|(d=a)|(a=c)|(d=b)continue;printf(%d,k);m+=l;printf(n

37、counter=%dn,m);m=0;25.输出字母围起的正方形输入N*N图形正方形的边长N,图形左上角的字母,输出由字母围成的空心正方形。输出的字母是顺时针连续的,且是循环的,即输出字母,Z,后输出字母 A。注意在两个字母之间有一个空格。测试愉入期待的输出时间限制内存限制额外进程以文本方式显示1.6 Ml以文本方式显示1.M N 0 P Q R12.F S1测试用例13.E T1无限制64M04.D U15.C VI6.B A Z Y X W1程序:#include int main()int n,i,j,t;char m;scanf(%d%c/&n,&m);for(i=0;in;i+)(i

38、f(i=O)(for(j=0;jn;j+)|t=m+j;if(m90)|(m96&t122)t=t-26;if(j=n-l)printf(%cn,t);elseprintf(%c,t);)else if(i=n-l)(for(j=0;jn;j+)|t=m+3*n-3-j;if(m90)1 1 (m96&t122)t=t-26;if(j=n-l)printf(%cn,t);elseprintf(%c,t);else|for(j=0;j2*n-l;j+)if(j=O)(t=m+4*n-4-i;if(m90)|(m96&t122)t=t-26;printf(%czt);else if(j=2*n-2

39、)(t=m+n-l+i;if(m90)11(m96&t122)t=t-26;printf(%cn,t);)elseprintf();)return 0;H3:猜数字(选作)有如下一组数字,其中每个数字都在1 6 3 之间,1 3 5 7 9 11 13 15 171921 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61632 3 6 7 10 11 14 15 18 19222326273031 34353839 42 43 46 47 50 51 54 55 58 5962 634 5 6 7 12 13 14 15 2

40、0 21 22 23 28 29 30 31 36 37 38 39 44 45 46 47 52 53 54 55 60 6162 638 9 10 11 12 13 14 15 24 25 26 27 28 29 30 31 40 41 42 43 44 45 46 47 56 57 58 59 60 6162 6316 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 48 49 50 51 52 53 54 55 56 57 58 59 6061 62 6332 33 34 35 36 37 38 39 40 41 42 43 44 45 46

41、47 48 49 50 51 52 53 54 55 56 57 58 59 6061 62 63现在需要编写一个程序,当从键盘输入某数字在且仅在哪儿行出现了,该程序可以“猜”出这个数字是几。输入:程序的输入是一串以空白符分开的数字,当 输 入 0 时表示输入结束。输出:输出猜到的数字。测试用例1测试愉入 期待的输出 时间限制内存限制额外进程以文本方式显示1.1 2 01以文本方式显示1.3 11秒64M0程序:tti n c l ud e i n t m a i n O(i n t a 7 ,m,n=0,i,p=0;f o r (i=0;i 7;i+)s c a n f (机I”,;n+;i

42、 f (a i =0)b r e a k;)s c a n f();f o r (m=l;m 6 4;m+)p=0;f o r (i=0;i 31&m48|m16)p=l;break;)if (ai=6)(i f (m32)p=l;b reak;)if (p=0)p rin tf(%dn”,m);b reak;)re tu rn 0;H4:小蜜蜂(选作)一只小蜜蜂在如下图所示的蜂窝上爬行。它爬行时,只能从一个格爬到相邻的大号格子中。例如,从 1 号格子可以爬到2 号 或 者 3 号格子,从 2 号则可以爬到3 号 或 者 4 号格子。请问从一个格子a 爬到一个格子b-共有多少种可行的路线。输入

43、:分别是起始点a 和终止点b 的编号。(a 和 b 在 1100之间,且 a b。)输出:测试稔入期待的输出时间限制内存限制额外进程测试用例1以文本方式显示1.1 41以文本方式显示谕64M0程序:#includestdio.hftdefine N 50int main()(int bN=0;int cN=0;int i,j,k,n,al,a2,t,l;bl=cl=l;scanf(%d%d,&al,&a2);n=a2-al+l;for(j=3;j=n;j+)(for(i=l;i=10)(l=l;bi+l=bi+l+l;bi=bi%10;)k=N;while(b-k=O)for(i=k;i=l;

44、i-)printf(%dzbi);printfCV);return 0;)include int main()(long double numl,num2,num3=0;int a=O,b=OJ;scanf(%d%d”,&a,&b);numl=l;num2=2;if(b-a=l)printf(ln);else if(b-a=2)printf(2nH);else(for(i=3;i=b-a;i+)(num3=numl+num2;numl=num2;num2=num3;)printf(%.0lfn,num3);return 0;)H5.铺地板(选作)背景:你是一名室内装潢工程队的配料员。你的伙伴们

45、喜欢采用“之”字型的方式铺大理石地砖,图案如下:12671535814164913172210121821231119202425学了 C语言以后,你决定编写一个程序,帮助你的同伴生成这样的图形。输 入:方 阵N的大小。输出方 阵。测试输入期待的输出时间限制内存限制额外进程以文本方式显示以文本方式显示1.51.1 2 6 7 1513 5 8 14 161测试 用 例1;.4 9 13 17 2211秒64M0 10 12 18 21 231.11 19 20 24 251 中 程 序:#include int main()(int i=O,j=O,g,n,t=l;inta100100;sca

46、nf(%d,&n);for(g=0;gn;g+)(if(g%2!=0)(for(i=0,j=g;i=0;i+,j-)(aij=t;t+;)elsefor(i=g,j=0;i=0&j=g;i-,j+)aij=t;t+;for(g=l;gn;g+)if(g%2!=0)(for(i=g,j=n-l;i=g;i+J-)(aij=t;t+;)else(for(i=n-l,j=g;i=g&jn;i-J+)(aij=t;t+;for(i=0;in;i+)(for(j=0;jn;j+)(if(j=n-l)printf(%2d,aij);elseprintf(%2d,aij);)printf(n);)retur

47、n 0;H 6晕(选作)看着这样的“回”形图案你晕吗?让我们不用数组,来做出它。输入:no正方形的边长输出:边 长 为n的数字回形方阵。测试输入期待的愉出 时间限制(?)内存限制 额外进程测试用例1以文本方式显示以文本方式显示1.1 2 312.8 9 413.7 6 51无限制64M0程序:#includeint main()int a2020,i,j,n,m=l,l,k=0;scanfC%d&n);l=n;for(i=l;i=(n+l)/2;i+)(for(j=0;jl;j+)akj+k=j+m;an-l-kj+k=3*l-3+m-j;)for(j=l;j=l-l;j+)a j+k k=4

48、*l-4-j+m;aj+kn-l-k=l+j+m-l;)m=m+4*l-4;1=1-2;k=k+l;)for(i=0;i=n-l;i+)(for(j=0;j=n-l;j+)printf(”3d”,ai 皿);printf(n);)H 7子数整除(选作)对 于 个 五 位 数 ala2a3a4a5,可将其拆分为三个子数:subl=ala2a3sub2=a2a3a4sub3=a3a4a5例如,五位数20207可以拆分成:subl=202sub2=020(=20)sub3=207现在给定一个正整数K,要求你编程求出10000到 30000之间所有满足下述条件的五位数,条件是这些五位数的三个子数sub

49、l、sub2、sub3都可被K 整除。输出时请按照山小到大的顺序排列(每行输出一个数)。测试输入期待的愉出时间限制内存限制额外进程以文本方式显示1.151以文本方式显示1.2255512.2555513.2855514.3000011秒64M0程序:#include int main(void)(int ij,k,l,m,n;scanf(”%d”,&n);for(i=l;i=3;i+)for(j=0;j=9;j+)for(k=0;k=9;k+)for(l=0;l=9;l+)for(m=0;m=9;m+)(if(i*100+j*10+k)%n=0&(j*100+k*10+l)%n=0&(k*10

50、0+l*10+m)%n=0)pnntf(%d%d%d%d%dn/ij,k/l,m);if(i=3)return 0;return 0;H 8邮票组合(选作)背景:我们寄信都要贴邮票,在邮局有一些小面值的邮票,通过这些小面值邮票中的张或几张的组合,可以满足不同邮件的不同的邮资。现在,邮局有4 种不同面值的邮票。在每个信封上最多能贴5 张邮票,面值可相同,可不同。输入:四种邮票的面值。输出:用这四种面值组成的邮资最大的从1 开始的一个连续的区间。说明:如结果为1 0,则表明使用4 张邮票可组合出1、2、3、4、5、6、7、8、9、10这些邮资。名词解释:邮资:就是你寄东西需要花多少钱。邮票面额:是

51、由国家发行的具有固定价格的花纸片,被称为邮票。如果你寄东西,邮局称了重量,告诉你要240分。这样你就要贴邮票了。如果现在邮局的邮票有面值为80分、50分、20分和10分的四种,你就可以采用不同的组合得到240的邮资,例如:采用3 张 80分的可以凑出240分;或者24张 10分的凑起来240分也可以。显然不同邮票的组合都可以得到同样种邮资。测试愉入期待的检出时间限制内存限制额外进程测试用例2以文本方式显示1.1 3 7 121以文本方式显示.The max is 46.14 in)1秒64M0程序:#includemain()int ij/kzp,al/a2/a3/a4/m=l/flag;sc

52、anf(%d%d%d%d/&al/&a2,&a3z&a4);A:for(i=0;i=5;i+)(for(j=0;j=5-i;j+)(for(k=0;k=5-i-j;k+)(for(p=0;p=5-i-j-k;p+)(flag=l;if(al*p+a2*k+a3*j+a4*i=m)(flag=O;m+;goto A;)if(flag=l)printfCThe max is%d.n”,m-l);H 9 撞球(选做)一 天,丁俊晖编一整天的程序,突然觉得累了,于是便决定在房间内四处走走。他的房间是矩形的,他从电脑开始随便选了一个角度开始行走。由于职业习惯,丁俊晖走路始终是直线,而且碰到墙以后会反弹,

53、入射角度与隹射角度完全相同。丁俊晖会一直行走,直到灵感再次迸发。假设他的行走速度是匀速的,现在,丁俊晖的母亲想知道他一共休息了多长时间以便提醒他继续工作。丁俊晖想考考他的母亲,于是他记录了自己碰到墙壁的序列并且告诉了她,你有没有办法能够帮助她计算出小丁所走的路程?输入输入包括多个测试用例,每个测试用例如下:第一行包含两个数字w,l(0w,1=1000),分别代表房间的宽度和长度;第二行包括两个数字xO,yO,代表电脑的位置坐标(xO,yO);第三行包含两个数字x l,y l,代表丁俊晖的位置坐标(xl,y l);最后一行是一个包含F,B,L,W 四种字符的字符串,分别代表墙在前面、后面、左边或

54、是右边,字符串的长度小于等于1000:我们约定,左上角的坐标为0,0,所有的坐标都是浮点型数字。输出一个浮点型数字,代表总路程,结果精确到小数点后4 位。测试愉入期待的输出时间限制内存限制额外进程测试 用 例1以文本方式显示1.10 2012.9 1113.1 914.FLRLRB1以文本方式显示1.63.78091无限制64M0程序:1?1立 木 七 才 口4旧 立 太 七c F白 芋#includestdio.h#includestring.h#includemath.hvoid main()(char a2000;int w/l/x0,y0,xl/yl,i/k/r=0/f=0zn=0/m

55、=0;double c,d,s;scanf(%d%d,&w/&l);scanf(%d%d,&xO,&yO);scanf(%d%d,&xl,&yl);scanf(”s”,a);k=strlen(a);for(i=0;ik;i+)(if(ai=R,|ai=L)m+;if(ai=F|ai=,B,)n+;for(i=0;i0)break;for(i=0;i0)break;if(m%2=0)d=m*w+(xO-xl)*pow(-l,r);elsed=m*w+w-xO-xl;if(n%2=0)c=n*l+(-yO+yl)*pow(-lJ);elsec=n*l-l+yO+yl;s=sqrt(pow(d/2)

56、+pow(c,2);printf(%.4fn,s);H10.整数问题(选做)请求输出满足以下条件的n 位正整数的个数:要求该n 位整数的从高位开始前1 位可以被1 整除,该 n 位整数前2 位可以被2*2整除,该整数前3 位可以被3*3整除,该整数前4 位可以被4*4整除。即该整数前k 位都可被k 平方整除。例如:n=l,则符合条件的1 位正整数为19,输出答案9。n=2,符合条件的正整数为:12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,9 6,则输出答案22o当 n=4时,2432就是一个符合题意的整数。第一位2

57、 可以被1 整除:前 2 为 24可以被4 整除;前 3 位 243可以被9 整除;整个4 位 2432可以被16整除。输入:n(0=n9)输出:符合该条件的n 位正整数的数量(本题目为软件学院2007年保研学生初试上机试题。本题可以不用数组)测试输入期待的输出时间限制 内存限制 额外进程测试 用 例1以文本方式显示1.11以文本方式显示1.91无限制64M0程序:#include include main()(static int a30,b30,n,t,temp,i,j,k;scanf(%d,&n);for(i=l;i=n;i+)(t=l;for(j=l;j30;j+)(for(k=0 水

58、 bt-l)t+;)for(j=l;j30;j+)aj=bO;bj=0;t-;printf(%dn,t);2 6.二年级小学生的题目两个二年级小朋友在一起玩游戏,小明给出一堆不超过两位的正整数和运算要求(+、-、*、/、),小丽要找出这些整数中的最大值和最小值,然后按照小明的要求算出最大数与最小数进行算术运算的结果。输入:用逗号分隔的不超过两位的正整数序列,及其运算符和等号输出:最 大 数o p最小数=结果测试输入朗待的输出时间限制内存限制额外进程以文本方式显示1.1,2,3,4,5,+,=!以文本方式显示1.5+1=61测试用例11秒10240KB0程序:#includeint main()

59、(int i,a,max=0,min=100,s;char l100=0,op;gets(I);for(i=0;i=i+2)if(li=)break;elseif(|i=43|li=45|li=42|li=37|li=47)op=li;elseif(li+2=44)a=(li-48)*10+li+l-48;i+;)else a=li-48;if(a=max)max=a;if(a=min)min=a;switch(op)case 43:s=max+min;printf(%d+%d=%dn,max,min,s);break;case 45:s=max-min;printf(,%d-%d=%dn/m

60、ax/min,s);break;case 42:s=max*min;printf(%d*%d=%dn,max,min,s);break;case 37:if(min=0)printf(Error!nn);break;else s=max%min;printf(%d%d=%dn/max,min,s);break;case 47:if(min=0)printf(Error!nn);break;else s=max/min;printf(%d/%d=%dnzmaxzmin/s);break;)2 7.等值数列段如果一个数列中的某一段(至少有两个元素)的各元素值均相同,则称之为等值数列段。等值数列段中

61、元素的个数叫做等值数列段的长度。输入:由N个元素组成的整数数列A(其中N=50)输出:A中长度最大的所有等值数列段的始末位置,如果没有等值数列段,则输出N。equal numberlist.说明:始末位置是指数组下标,即0表示第一个元素。如果有多个同等长度的等值数列,只输出第一个等值数列的起始位置。当在一个LIST中出现两个等长的连续串的时候,我们的答案应该是第一个等长串。测试输入(3)期待的愉出 时间限制 内存限制(7)额外进程鸿 试 用 例1以文本方式显示以文本方式显示1.No equal numb4 中 )1秒64M0程序:#include#include#define N 50#def

62、ine M 50int main()(char aN,t;int i,j=0,n,bM=0,max=0,min=0,temp;scanf(%d,&n);k:(gets(a);if(strlen(a)+l)/2!=n)goto k;t=aO;b0=0;for(i=2;istrlen(a);i+=2)(if(t!=ai)(t=ai;j+;bj=(i+l);j+;bO=(i+D/2;temp=bl-b0;max=bl-l;min=b0;for(i=l;i=j;i+)if(tempbi+l-bi)temp=bi+l-bi;max=bi+l-l;min=bi;if(temp=l)printf(No eq

63、ual number list.n);elseprintf(The longest equal number list is from%d to%d.n,min,max);return 0;)2 8.大家一起做游戏输入:小朋友的个数(=5 0)要被练习的数字输出:最终被留下的小朋友的序号说明:如“要被练习的数字”是5,则每次数到5的同学要退出该游戏测试输入 期待的输出 时间限制 内存限制 额外进程(?)测试用例2以文本方式显示1.4 31以文本方式显示,The left child i1秒64M0程序:include void main()(long int left,p,i,j,k,q,fl

64、ag100,n,m;scanf(%d%d,&nz&m);left=n;p=l;for(i=l;i=n;i+)flagi=l;for(i=l;i=n;i+)q=(m-l)%left+l;j=0;k=p;while(j!=q)(if(flagk=l)j+;if(j=q)break;k+;if(k=n+l)k=l;flagk=O;p=k;left-;)printf(The left child is NO%d.n,k);2 9.组成最大数任意输入一个自然数,输出该自然数的各位数字组成的最大数。例如,输 入1593,则输出 为9531 o输入:自然数n输出:各位数字组成的最大数测试输入期待的推出时间限

65、制内存限制额外进程测试 用 例1以文本方式显示1.15931以文本方式显示1.953111秒64M0程序:#include#includeint main()(char a10000;int x10=0;scanf(%s,a);int n=strlen(a);for(int i=0;i=0;i-)for(int j=O;j以文本方式显示1.abcedl1秒64M程序:#include#include#define N 100int main()(char aN,t;intscanf(,%s,a);for(i=0;istrlen(a);i+)for(j=i+l;jstrlen(a);j+)if(

66、ai=aj)(for(k=j;k程序:#include#includeint intpow(int ajnt b)/aAb(int result=l;for(int i=0;ib;i+)result=result*a;return result;struct date(int max;int min;char op;int r;struct date function(char p,int n)(struct date result;n=n-4;int max=-10000;int min=10000;int count=0;/need back to 0int x10=0;/need back to 0int temp=O;/need back to 0int sign=l;/need back to 1for(int i=0;i=n;i+)(if(pi=/)/meet,means end caculate the value and compare with max and min(for(int k=0;kmax)max=temp;if(tempmin)min=temp;coun

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