ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:29.32KB ,
资源ID:17863728      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17863728.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(北理工C语言2Word文档格式.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

北理工C语言2Word文档格式.docx

1、 %dn, n); /* 判断反序数是否是原整数的9倍若是则输出 */2-3. 口袋中有12个球,其中3红,3白和6黑,从中任取8个球,编程,输出所有不同的取法。 No. RED WHITE BLACK - 1: 0 2 6 2: 0 3 5 。 13: 3 3 2 设任取红球的个数为i,白球的个数为j,黑球的个数为k, 据题意红球和白球个数的取值范围是03,黑球的取值范围是06。所以用三重循环穷举红球、白球、黑球可能的值,输出满足条件(总数为8个球)的取法。因为总数为8个球,所以黑球的个数为8-i-j(=6),故可以省略k循环。 main()/*sj1-2-3 */ int i,j,coun

2、t=0; No. RED WHITE BLACK n);-n for(i=0;i=3;i+) /* 循环控制变量i控制任取红球个数03 */ for(j=0;jj+) /* 循环控制变量j控制任取白球个数03 */ if(8-i-j)=6)%2d: %d %d %dn,+count, i,j,8-i-j);2-4. 小明有五本不同的新书,要借给A、B、C三位小朋友,每人每次只能借一本,编程,输出所有不同的借法。No. A B C 1 1 2 3 2 1 2 4 60 5 4 3设5本书分别命名为1、2、3、4、5,A、B、C可以任取一本书,所以可以用A、B、C三重循环,取值范围:从1到5。A、

3、B、C所借书互不相同(a!=b&a!=c&b!=c)。 main()/*sj1-2-4 */ int a,b,c,n=0; No. A B C n-n=5;a+) /* 循环变量a控制任取书15 */for(b=1;b+) /* 循环变量b控制任取书15 */ if(a=b) continue;for(c=1;c+) /* 循环变量c控制任取书15 */ if(a!=c) ,+n,a,b,c);2-5. 编程,求全部水仙花数。所谓水仙花数是指一个三位数,其各位数字立方的和等于该数。如:153 = 13 + 53+ 33153、370、371、407对三位数i循环(i=100999),将i的各位

4、数字分解为a,b,c后,输出满足i=a3+b3+c3的i。n位数i的各位数字(从高位到低位)分解方法: i/k%10; k=10n-1,10n-2,,102,10,1 main()/*sj1-2-5 */ int i,a,b,c; for(i=100;1000;i+) /* 穷举要判定的数i的取值范围100999 */ a=i/100; /* 截取整数i的百位数字 */b=i/10%10; /* 截取整数i的十位数字 */c=i%10; /* 截取整数i的个位数字 */ if(a*a*a+b*b*b+c*c*c =i) %d ,i); /* 若i是水仙花数,则输出*/2-6. 100匹马驮10

5、0担货,大马一匹驮担,中马一匹驮担,小马两匹驮担。编程,输出所有满足条件的方案(即大、中、小马的数目)。 1: l= 2 m=30 s=68 2: l= 5 m=25 s=70 3: l= 8 m=20 s=72 4: l=11 m=15 s=74 5: l=14 m=10 s=76 6: l=17 m= 5 s=78 7: l=20 m= 0 s=80大马l一匹驮担,它至多l=100/3=33匹;中马m至多m=(100-3*l)/2匹;小马s=(100-l-m) 匹 . 可以用l、m两重循环(l=033,m=0(100-3*l)/2),输出满足3l+2m+s/2=100(s是2的倍数)的l、

6、m、s。 main()/*sj1-2-6 */ int l,m,s,j=0; for(l=0; l=33; l+) for(m=0; m5: 0 2: 0 1: 100No. 2 1 1: 98No。541 20 2: 0设f5,f2,f1分别表示5分、2分和1分的个数, f5=20,f2=(100-f5*5)/2;f1=100-f5*5-f2*2。可以用f5、f2两重循环(f5=020,f2=0(100-f5*5)/2),输出所有不同的兑换方法.至于兑换方法个数可以设变量n计数并输出即可。main()/*sj1-2-7 */ int f1,f2,f5,count=0; for(f5=0;f5

7、=20;f5+) for(f2=0;f2 5: %4d 2: %2d 1: %2dn,+count,f5,f2,f1);2-8. 编程,从键盘输入1个人的工资(10009999之间的整数),计算给这个人发工资时,需面值100元,50元,20元,10元,5元,2元和1元的人民币各多少张?输出总张数最少的10种方案。输入2310no. 100 50 20 10 5 2 11 23 0 0 1 0 0 02 23 0 0 0 2 0 03 23 0 0 0 1 2 14 23 0 0 0 1 1 35 23 0 0 0 1 0 56 23 0 0 0 0 5 07 23 0 0 0 0 4 28 2

8、3 0 0 0 0 3 49 23 0 0 0 0 2 610 23 0 0 0 0 1 8设工资为n,100元至多为f100=n/100张,50元至多为f50=(n-f100*100)/50张20元至多为f20=(n-f100*100-f50*50)/20张10元至多为f10=(n-f100*100-f50*50-f20*20)/10张。5元至多为f5=(n-f100*100-f50*50-f20*20-f10*10)/5张。2元至多为f2=(n-f100*100-f50*50-f20*20-f10*10-f5*5)/2张。1元至多为f1=(n-f100*100-f50*50-f20*20-

9、f10*10-f5*5-f2*2)张。大面值人民币用得越多,总张数越少,因此用f100,f50,f1共7重循环(各面值张数从大到小循环,如:f100=n/1001)。输出前10个满足条件(工资=fi)的面值组合。main()/*sj1-2-8 */ int n,f1,f2,f5,f10,f20,f50,f100,count=0; scanf(“%d”,&n); printf(“no. 100 50 20 10 5 2 1n”) for(f100= n/100;f100=0;f100-) for(f50=(n-f100*100)/50;f50f50-) for(f20=(n-f100*100-f

10、50*50)/20;f20f20-) for(f10=(n-f100*100-f50*50-f20*20)/10;f10f10-)for(f5=(n-f100*100-f50*50-f20*20-f10*10)/5;f5f5-) for(f2=(n-f100*100-f50*50-f20*20-f10*10-f5*5)/2;f2f2-) f1=n-f100*100-f50*50-f20*20-f10*10-f5*5-f2*2; if(n=f100*100+f50*50+f20*20+f10*10+f5*5+f2*2+f1)%2d %6d%6d%6d%6d%6d%6d%6dn,+count,f1

11、00,f50,f20,f10,f5,f2,f1);2-9. 编程,输出555555的约数中最大的三位数。 777对三位数j循环(j=999100),输出首次能整除555555的j(最大约数)。 main( ) /*sj1-2-9 */ int j; long n; /* 使用长整型变量,以免超出整数的表示范围 */Please input number: scanf(%ld, & for(j=999;j=100;j-)/* 可能的取值范围在999到100之间,j从大到小 */ if(n%j = 0 ) /* 若能够整除j,则j是约数,输出结果 */ printf(The max factor

12、with 3 digits in %ld is: %d.n,n,j); break; /* 控制退出循环 */ if(j100) printf(%ld has not factor with 3 digitsn,n);2-10. 编程,输出所有个位数为6且能被31整除的五位数及其个数。No. 1 10106No. 2 10416No. 289 99386No. 290 99696对5位数n循环1000099999,输出满足条件n%10=6&n%31=0的所有n. main( ) /*sj1-2-10 */ long n,j=0; for(n=10000;n=99999;n+)/*取值范围在10

13、000到99999之间*/ if(n%10=6&n%31=0 ) /* 个位数为6且能被31整除 */No.%ld %ld n,+j,n);2-11. 一辆卡车违犯交通规则,撞人逃跑。现场三人目击事件,但都没记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的;丙是位数学家,他说:四位的车号刚好是一个整数的平方。根据以上线索,编程,输出车号。7744用两重循环构造一个前两位数相同、后两位数相同且相互间又不同的整数i*1000+i*100+j*10+j,(其中i=19,j=09),然后再用循环(c=3199,c的平方为4位数)判断该整数是否是c的平方。m

14、ain()/*sj1-2-11 */ int i,j,k,c; for(i=1;=9;i+) /* i:车号前二位的取值 */j+) /* j:车号后二位的取值 */ if( i!=j ) /* 判断两位数字是否相异 */ k=i*1000+i*100+j*10+j; /* 计算出可能的整数 */ for( c=31;100;c+) /* 3199的平方为4位数*/ if(c*c=k)Lorry_No. is %d .n, k); /* 若是,打印结果 */2-12. 中国古代数学家张丘建在他的算经中提出了著名的“百钱百鸡问题”:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,翁、

15、母、雏各几何? 编程,输出所有可能的购买方案。No. a b c1 0 25 752 4 18 783 8 11 814 12 4 84 设鸡翁a只,鸡母b只,鸡雏c只,则a+b+c=100,且5a+3b+ c /3 =100,即15a+9b+c=300, 鸡翁至多买100/5=20只,鸡母至多买100/3=33,鸡雏买100-a-b只。用两重循环(a=020,b=033)输出满足条件a+b+c=100和15*a+9*b+c=300的所有购买方案。main()/*sj1-2-12 */ int a,b,c,n=0;No. a b cn for(a=0;a+) /*鸡翁只数取值 */ for(b

16、=0;b+) /*鸡母只数取值 */ c=100-a-b; /* 计算出鸡雏的只数 */ if(15*a+9*b+c=300)%2d %d %d %dn, +n,a,b,c); /*打印结果 */2-13. 编程,输出1000到100000之间所有满足下列条件的所有整数及其个数:整数的各位数字之和等于5。 1 10042 10133 10224 1031103 40100104 41000105 50000对i循环(i=1000100000),将i的各位数字分解为a,b,c,d,e,f后,输出满足各位数字之和等于5的i。 main()/*sj1-2-13 */ long i,a,b,c,d,e

17、,f,n=0; for(i=1000;=100000; a=i/100000;b=i/10000%10;c=i/1000%10;d=i/100%10e=i/10%10;f=i%10; if(a+b+c+d+e+f =5)%3ld %ldn,+n,i); /* 若i满足要求,则输出*/2-14. 编程,任意输入一个偶数n,请将它分解为两个素数之和。输出形式为:*=*+* 输入248,输出248=7+241。输入561,无输出对j=2,3,n-1循环,则n为j和m=n-j之和,若j、m均是素数则输出。 main()/*sj1-2-14 */ int j,k,n,m;Please enter n:%

18、d,& for(j=2;n;j+) /* 穷举法分解n为两个素数j和m之和 */ for(k=2;k=j) /* j是素数 */ m=n-j; for(k=2;m;k+) /* 检验m是否素数 */ if(m%k=0) break; if(k=m) /* m也是素数,输出结果 */ printf(%d = %d + %dn,n,j,m);2-15. 有一正整数等差数列,其前四项之和是26,前四项之积是880,编程,输出此数列的前四项。2 5 8 11对a=1,2,循环,对每个a,依次令公差k=1,2,输出满足下列条件的a,b=a+k,c=a+2k,d=a+3k : a+b+c+d=26 & a

19、*b*b*d=880 main()/*sj1-2-15 */ int a=1,b,c,d,f=0,k=1; while(1) k=1; b=a+k; c=b+k; d=c+k; if(a+b+c+d26|a*b*c*d880)/* 肯定不能满足*/ printf(not found!nbreak; while(1) /* 以不同的公差试探 */ if(a+b+c+d880) break;/* 不可能满足*/ if(a+b+c+d=26&a*b*c*d=880)/* 找到 */%5d%5d%5d%5dn,a,b,c,d);f=1; k+; if(f=1) break; a+;2-16. 一个自然

20、数被除余,所得的商被除也余,再将第二次的商被除后余,最后得到一个商为。又知这个自然数被17除余4,所得的商被17除余15,最后得到一个商是的倍。编程,输出这个自然数。1993对自然数1,2,。搜索满足下列条件的数K:对n=k/8;b=n/8;a=b/8;满足k%8=1&n%8=1&b%8=7,对c=k/17;d=n/17; 满足(k%17=4& c%17=15&2*a=d)main()/*sj1-2-16 */ int n,b,a,k=0; while(+k) n=k/8; if(k%8!=1|n%8!=1|b%8!=7) continue; n=k/17;b=n/17; if(k%17!=4

21、|n%17!=15) continue; if(2*a=b) printf(k=%dn,k);2-17. 如果一个数恰好等于它的因子之和,则称该数为“完全数”。6的因子是1、2、3,而6123,则是个“完全数”。编程,输出1000以内的全部“完全数”。 1+2+3=6。 1+2+4+7+14=28 1+2+4+8+16+31+62+124+248=496对i循环(i=11000),输出满足条件的i及其各因子(用a数组记录)。main()/*sj1-2-17 */ int i,j,m,s,k,a100;=1000;i+) /* 寻找1000以内的完全数 */ m=i;s=0;k=0; for(j

22、=1;j+) if(m%j=0) s=s+j; ak+=j; if(i=s) /* I为各因子之和,输出 */ for(j=0;k;%d+,aj);b=%dn2-18. 一个自然数的七进制表达式是一个三位数,而这个自然数的九进制表示也是一个三位数,且这两个三位数的数码顺序正好相反,编程,输出这个三位数。248 (248=(503)7,248=(305)9)3位7进制数的范围:(100)7 =49,(666)7 =342,3位9进制数的范围:(100)9 =81,(888)9 =728所以81342的7、9进制数均为3位数。对i循环(i=81342),计算i 的7、9进制数,输出它们数码顺序正好

23、相反的i。 main() /*sj1-2-18 */ int i,n,k,a3,b3; for(i=81;=342;i+) for(n=i,k=0;n0;n/=7) /* 化为7进制并存放到a */ ak+=n%7; for(n=i,k=0;n/=9) /* 化为9进制并存放到b */ bk+=n%9; for(n=0;n+)/* 检查两个三位数的数码顺序是否相反*/ if(an!=bk-n-1) break;/* 非反序,nk */ if(n=k) /* 反序,n=k */%dn2-19用40元买苹果、西瓜和梨共100个,3种水果都要。已知苹果0.4元一个,西瓜4元一个,梨0.2元一个。问可以各买多少个?编程,输出全部购买方案。设西瓜买x个,苹果买y个,梨买z个,则问题满足方程: 4x+0.4y+0.2z=40 x+y+z=100即: 40x+4y+2z=400西瓜至多买(40-0.4-0.2)/4=9 个, 苹果至多买 (40-4-

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1