计算机二级C语言程序题.ppt_第1页
计算机二级C语言程序题.ppt_第2页
计算机二级C语言程序题.ppt_第3页
计算机二级C语言程序题.ppt_第4页
计算机二级C语言程序题.ppt_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机二级C语言专题 一 程序题 5 把一张一元钞票 换成一分 二分和五分硬币 每种至少8枚 问有多少种方案 61 50元的整币兑换成5元 2元和1元币值 要求三种币值均有 的方法有多少种 106 1 把一张一元钞票 换成一分 二分和五分硬币 每种至少11枚 问有多少种方案 13 main intyf ef wf i 0 for yf 11 yf 100 yf for ef 11 ef 50 ef for wf 11 wf 20 wf if yf ef 2 wf 5 100 printf yf d ef d wf d n yf ef wf i printf i d i 46 一个数如果恰好等于它的所有真因子之和 这个数就称为 完数 例如 6的真因子为1 2 3 而6 1 2 3 因此 6是 完数 求 1 1000 之间的最大完数 496 47 一个数如果恰好等于它的所有真因子之和 这个数就称为 完数 例如 6的真因子为1 2 3 而6 1 2 3 因此 6是 完数 求 1 1000 之间的第二大完数 28 48 一个数如果恰好等于它的所有真因子之和 这个数就称为 完数 例如 6的真因子为1 2 3 而6 1 2 3 因此 6是 完数 求1000以内的所有完数之和 530 main intm s i for m 1 m 1000 m s 0 for i 1 i m i if m i 0 s s i if s m printf 4d m 结果 628496 已知24有8个因子 而24正好被8整除 求 50 250 之间有多少个整数能被其因子的个数整除 main inta b c n count 0 for a 50 a 250 a b 0 for c 1 c a c if a c 0 b 1 if a b 0 count printf ncount d count 若某个整数N的所有因子之和等于N的倍数 则称N为多因子完备数 例如 28是多因子完备数 因为 1 2 4 7 14 28 56 28 2 求 10 800 间有多少个多因子完备数 main inta b c n count 0 for a 10 a 800 a b 0 for c 1 c a c if a c 0 b b c if b a 0 count printf ncount d count 17 回文数是指正读和反读都一样的正整数 例如3773是回文数 求出 1000 9999 以内的所有回文数的个数 90 main inti a b c d n 0 for i 1000 i 9999 i a i 1000 b i 100 10 c i 10 10 d i 10 if a d 87 设有6个十进制数字a b c d e f 求满足abcdf e fdcba条件的五位数abcdf a 0 e 0 e 1 的个数 2 88 设有十进制数字a b c d和e 它们满足下列式子 abcd e bcde a不等于0 e不等于0或1 求满足上述条件的四位数abcd的个数 2 main longa b c d e f i 0 for a 1 a 9 a for b 0 b 9 b for c 0 c 9 c for d 0 d 9 d for e 2 e 9 e for f 0 f 9 f if a 10000 b 1000 c 100 d 10 f e f 10000 d 1000 c 100 b 10 a i printf i ld i 91 所谓 同构数 是指这样一个数 它出现在它的平方数的右侧 例如5的平方是25 25的平方是625 故5和25都是同构数 求 2 1000 之间所有同构数之和 main longsum n m s k sum 0 for n 2 n 1000 n if n 10 k 10 elseif n 100 k 100 elsek 1000 s n n s s n if s k 0 sum sum n printf nThesum ld sum include math h main longa b x y z t 0 for a 2 a 1000 a b a a x b 10 y b 100 z b 1000 if a x a y a z t t a printf n ld t 14 勾股弦数是满足公式 A 2 B 2 C 2 假定A B C 的一组正整数 A B C 例如 3 4 5 是勾股弦数 因为 3 2 4 2 5 2 求A B C均小于或等于100的勾股弦数的个数 52 main inta b c n 0 for a 1 a 100 a for b a 1 b 100 b for c b 1 c 100 c if a a b b c c n n 1 printf d n n 79 求数列 2 1 3 2 5 3 8 5 13 8 21 13 前50项之和 注 此数列从第二项开始 其分子是前一项的分子与分母之和 其分母是前一项的分子 按四舍五入的方式精确到小数点后第二位 83 24 main doublea k m 2 n 1 floatt 0 clrscr for a 1 a 50 a t t m n k m m m n n k printf lf lf m n printf 2f t 2 100 999 范围内同时满足以下两个条件的十进制数 其个位数字与十位数字之和除以10所得的余数是百位数字 该数是素数 求有多少个这样的数 15 include math h main intm i k a b c n 0 for m 101 m 999 m m 2 a m 100 b m 10 a 10 c m 10 if b c 10 a if abc m printf 4d m n printf 4d n n intabc inta inti for i 2 i a 2 i if a i 0 return 0 return 1 3 300 800 范围内同时满足以下两个条件的十进制数 其个位数字与十位数字之和除以10所得的余数是百位数字 该数是素数 求满足上述条件的最大的三位十进制数 761 include math h main intm i k a b c n 0 for m 301 m 800 m m 2 a m 100 b m 10 a 10 c m 10 if b c 10 a if abc m printf 4d m n printf 4d n n intabc inta inti for i 2 i a 2 i if a i 0 return 0 return 1 两个素数之差为2 则称这两个素数为双胞胎数 求出 200 1000 之间的最大一对双胞胎数的和 1764 include math h main intm i k a 0 n 0 for m 201 m 1000 m m 2 if abc m if abc m 2 printf d d m m 2 n printf 4d n intabc inta inti for i 2 i a 2 i if a i 0 return 0 return 1 7 除1和它本身外 不能被其它整数整除的正整数称为素数 注 1不是素数 2是素数 若两素数之差为2 则称两素数为双胞胎数 问 31 601 之间有多少对双胞胎数 22 include math h main intm i k a 0 n 0 for m 31 m 601 m m 2 if abc m if abc m 2 printf d d m m 2 n printf 4d n intabc inta inti for i 2 i a 2 i if a i 0 return 0 return 1 25 求 5 500 中相差为10的素数对 注 要求素数对的两个素数均在该范围内 的个数 即 有多少个这样的素数对 31 include math h main intm i k a 0 n 0 for m 5 m 500 m m 2 if abc m if m 10 500 if abc m 10 printf d d m m 10 n printf 4d n intabc inta inti for i 2 i a 2 i if a i 0 return 0 return 1 74 求 100 900 之间相差为12的素数对 注 要求素数对的两个素数均在该范围内 的个数 50 75 求 2 400 中相差为10的相邻素数对的对数 27 84 若两个素数之差为2 则称这两个素数为双胞胎数 求出 200 1000 之内有多少对双胞胎数 20 include math h main intm i k a 0 n 0 for m 2 m 400 m if abc m if m 10 400 if abc m 10 printf d d m m 10 n printf 4d n n intabc inta inti for i 2 i a 2 i if a i 0 return 0 return 1 35 若两个连续的自然数的乘积减1后是素数 则称此两个连续自然数为友数对 该素数称为友素数 例如 由于8 9 1 71 因此 8与9是友数对 71是友素数 求 100 200 之间的第10个友素数对所对应的友素数的值 按由小到大排列 17291 36 若两个自然连续数乘积减1后是素数 则称此两个自然连续数为友数对 该素数称为友素数 例 2 3 1 5 因此2与3是友数对 5是友素数 求 40 119 之间友素数对的数目 30 83 若两个连续的自然数的乘积减1后是素数 则称此两个连续自然数为友数对 该素数称为友素数 例如 由于8 9 1 71 因此 8与9是友数对 71是友素数 求 50 150 之间的友数对的数目 38 include math h main intm b i k a 0 n 0 for m 50 m 150 m m if abc m m 1 1 printf 6d d m m 1 n printf 4d n n intabc inta inti for i 2 i a 2 i if a i 0 return 0 return 1 66 德国数学家哥德巴赫曾猜测 任何大于6的偶数都可以分解成两个素数 素数对 的和 但有些偶数可以分解成多种素数对的和 如 10 3 7 10 5 5 即10可以分解成两种不同的素数对 试求1234可以分解成多少种不同的素数对 注 A B与B A认为是相同素数对 25 include math h main intm i c n 0 for m 3 m 617 m if abc m if abc 1234 m printf d d m 1234 m n printf 4d n n intabc inta inti for i 2 i a 2 i if a i 0 return 0 return 1 94 一个素数 依次从个位开始去掉一位 二位 所得的各数仍然是素数 称为超级素数 求 100 999 之内超级素数的个数 14 49 一个素数 设为p 依次从最高位去掉一位 二位 三位 若得到的各数仍都是素数 注 除1和它本身外 不能被其它整数整除的正整数称为素数 1不是素数 2是素数 且数p的各位数字均不为零 则称该数p为逆向超级素数 例如 617 17 7都是素数 因此617是逆向超级素数 尽管503 03 3都是素数 但它不是逆向超级素数 因为它包含有零 试求 100 999 之内的所有逆向超级素数的个数 39 main intm i k a b c n 0 for m 100 m 999 m m a m 100 b m 10 10 c m 10 if b 0 include math h main intm i k a b c n 0 for m 100 m 999 m m a m 10 b a 10 if abc m 92 一个素数 设为p 依次从最高位去掉一位 二位 三位 若得到的各数仍都是素数 注 1不是素数 且数p的各位数字均不为零 则称该数p为逆向超级素数 例如 617 17 7都是素数 因此617是逆向超级素数 但尽管503 03 3都是素数 但它不是逆向超级素数 因为它包含有零 试求 100 999 之内的所有逆向超级素数的和 21645 93 一个素数 设为p 依次从最高位去掉一位 二位 三位 若得到的各数仍都是素数 注 1不是素数 2是素数 且数p的各位数字均不为零 则称该数p为逆向超级素数 例如 617 17 7都是素数 因此617是逆向超级素数 但尽管503 03 3都是素数 但它不是逆向超级素数 因为它包含有零 试求 100 999 之内的所有逆向超级素数从大到小数的第10个素数是多少 797 95 一个自然数是素数 且它的数字位置经过任意对换后仍为素数 则称为绝对素数 如13 试求所有两位绝对素数的和 429 72 梅森尼数是指能使2 n 1为素数的数n 求 1 21 范围内有多少个梅森尼数 7 include math h main intm k n 0 longt for m 2 m 21 m t pow 2 m 1 if abc t n printf d ld n n t intabc longa longi for i 2 i a 2 i if a i 0 return 0 return 1 include math h main intm i k a b c n 0 for m 1 m 99 m m a m 10 b m 10 if abc m 58 自然数对是指两个自然数的和与差都是平方数 如8和17的和8 17 25与其差17 8 9都是平方数 则称8和17是自然数对 8 17 假定 A B 与 B A 是同一个自然数对且假定A B 求所有小于或等于100 即 AB A和B均不为0 的自然数对中B之和 1160 include math h main intt 0 k 0 inta b for b 1 b 100 b for a b 1 a 100 a if abc a b if abc a b printf d d a b t t a k k b printf 4d 4d t k intabc intm inti for i 1 i sqrt m i if i i m return 1 return 0 include math h main intt 0 k 0 inta b c d for b 1 b 100 b for a b 1 a 100 a c sqrt a b d sqrt a b if c c a b 65 倒勾股数是满足公式 1 A 2 1 B 2 1 C 2的一组正整数 A B C 例如 156 65 60 是倒勾股数 因为 1 156 2 1 65 2 1 60 2 假定A B C 求A B C均小于或等于100的倒勾股数有多少组 5 13 A B C是三个小于或等于100正整数 当满足1 A 2 1 B 2 1 C 2关系时 称为倒勾股数 求130B C的倒勾股数有多少组 2 4 A B C是三个小于或等于100正整数 当满足1 A 2 1 B 2 1 C 2关系时 称为倒勾股数 求130B C的倒勾股数有多少组 1 main floats t inta b c n 0 for c 1 c130 22 求 1 50 之间的所有整数能构成直角三角形的三边的组数 例如 3 3 4 4 5 5 它们构成直角三角形 所以 3 4 5 作为一组 但 4 3 5 视为跟 3 4 5 相同的一组 20 main inti j k t 0 for i 5 i 50 i for j 1 j 50 j for k j 1 k 50 k if i i j j k k t t 1 printf d t 51 已知f 0 f 1 1f 2 0f n f n 1 2 f n 2 f n 3 n 2 求f 0 到f 50 中的最大值 598325 main longsum 0 f 51 inti f 0 1 f 1 1 f 2 0 for i 3 i 50 i f i f i 1 2 f i 2 f i 3 if sum f i sum f i printf ld n sum 50 已知f n f n 1 2f n 2 5f n f 0 1 f 1 2 f 2 3 求f 0 f 1 f 30 750874 main longsum 6 f 31 inti f 0 1 f 1 2 f 2 3 for i 3 i 30 i f i f i 1 2 f i 2 5 f i 3 sum f i printf ld n sum 52 已知 非等腰三角形最长边是60 其它两边的长度都是正整数 且三边之和能被3整除 试编程求取这类三角形的个数 注意 两边的长度交换构成的三角形算作同一个三角形 如 其它两边的长度为30和40的三角形与长度为40和30的三角形视为同一个三角形 271 main inta 0 i j for i 1 i60 if 60 i j 3 0 a printf d a 53 已知Fibonacci数列 1 1 2 3 5 8 它可由下面公式表述 F 1 1ifn 1F 2 1ifn 2F n F n 1 F n 2 ifn 2试求F 2 F 4 F 6 F 50 值 提示 最好使用递推法求解 因为使用递归调用很可能超出某些语言的递归深度 20365011073 54 已知Fibonacci数列 1 1 2 3 5 8 它可由下面公式表述 F 1 1ifn 1F 2 1ifn 2F n F n 1 F n 2 ifn 2试求F 50 值 提示 最好使用递推法求解 因为使用递归调用很可能超出某些语言的递归深度 12586269025 39 设S n 1 1 3 1 5 1 7 1 2n 1 求S 100 的值 要求S 100 按四舍五入方式精确到小数点后4位 0 7829 main inti a 1 floats 1 for i 3 i 199 i i 2 a a s s a 1 0 i printf 4f n s 求在 2 1000 之间的所有同构数之和 某正整数的平方 其低位与该数本身相同 则称该数为同构数 例如25 2 625 625的低位25与原数相同 则称25为同构数 1113 include math h main longa b w x y z d t 0 for a 2 a 1000 a b a a w b 1000 x b 100 w 10 y b 10 w 100 x 10 z b 10 if a 10 d z elseif a 100 d y 10 z elsed x 100 y 10 z if a d t t a printf 4ld a printf n ld t 作业 77 51 65 91 54 作业 68 42 43 45 71 82 88 14 勾股弦数是满足公式 A 2 B 2 C 2 假定A B C 的一组正整数 A B C 例如 3 4 5 是勾股弦数 因为 3 2 4 2 5 2 求A B C均小于或等于100的勾股弦数的个数 52 main inta b c n 0 for a 1 a 100 a for b a 1 b 100 b for c b 1 c 100 c if a a b b c c n n 1 printf d n n 37 若某整数平方等于某两个正整数平方之和的正整数称为弦数 例如 由于3 2 4 2 5 2 则5为弦数 求 100 200 之间弦数的个数 55 include math h main longx y z n 0 for z 100 z 200 z for x 1 x 200 x for y x 1 y 200 y if x x y y z z n x 200 printf n d n n 44 设有十进制数字a b c d和e 它们满足下列式子 abcd e bcde a不等于0 e不等于0或1 求满足上述条件的所有四位数abcd的和 include math h main intn 0 inta b c d e for a 1 a 9 a for b 0 b 9 b for c 0 c 9 c for d 0 d 9 d for e 2 e 9 e if a 1000 b 100 c 10 d e b 1000 c 100 d 10 e n n a 1000 b 100 c 10 d printf n d n 71 计算Y X 1 X 3 3 X 5 5 X 7 7 前20项的值 已知 X 2 要求 按四舍五入的方式精确到小数点后第二位 include math h main inti m 1 0 doubley 2 t 1 for i 2 i 20 i t t i if i 2 0 m m y y m pow 2 i t printf 2lf n y 82 若 x y z 满足方程 x 2 y 2 z 2 55 2 注 要求x y z 则 x y z 称为方程的一个解 试求方程的所有整数解中 x y z 的最小值 67 include math h main intx y z max 150 for x 53 x fabs x fabs y fabs z max fabs x fabs y fabs z printf d n max 87 设有6个十进制数字a b c d e f 求满足abcdf e fdcba条件的五位数abcdf a 0 e 0 e 1 的个数 main longa b c d e f i 0 for a 1 a 9 a for b 0 b 9 b for c 0 c 9 c for d 0 d 9 d for e 2 e 9 e for f 0 f 9 f if a 10000 b 1000 c 100 d 10 f e f 10000 d 1000 c 100 b 10 a i printf i ld i 24 求 200 300 之间有奇数个不同因子的最大的整数 在计算因子个数时 包括该数本身 298 main intm s i for m 200 m 300 m s 0 for i 1 i m i if m i 0 s if s 2 0 printf d m 102 已知A B为正整数 A B A B 716699且要求A B取最小值 求满足上述条件的A值 563 main longa b n t 3000 for a 1 a 3000 a for b a 1 b 3000 b if a b 716699 if a b t n a printf ld n n 21 某些分数的分子和分母都是二位正整数的真分数具有下列特点 如果将该分数的分子的两位数字相加作分子 而将该分数的分母的两位数字相加作分母 得到的新分子跟原分子相等 例如 63 84 6 3 8 4 试求所有具有这种特点的真分子 非约简真分数 的分子与分母之和的和 main inti j a b c d t 0 for i 10 i 98 i for j i 1 j 99 j a i 10 b i 10 c j 10 d j 10 if float i j float a b c d t t i j printf d n t 106 已知S1 2 S2 2 4 S3 2 4 6 S4 2 4 6 8 S5 2 4 6 8 10 求S S1 S2 S3 S4 S5 S20的值 3038 main longa m 0 n 0 s1 0 for a 1 a 20 a n n 2 m m n s s m printf ld n s 7 编写程序 求在四位数的奇数中 所有各位数字之和是25的倍数的数的和 1298515 main longi a b c d k 0 for i 1000 i 9999 i a i 1000 b i 100 10 c i 10 10 d i 10 if i 2 0 main inti k 1 for i 1 i 9 i k k 1 2 printf d n k 某一正整数 进行递减 每次将该数减半后再减一 当对该数进行第10次减半时发现该数只剩下1不能再减了 求该数 1534 1 已知A B为正整数 A B A B 716699且要求A B取最小值 求满足上述条件的A值 563 main longa b n t 8000 for a 1 a 8000 a for b a 1 b 8000 b if a b 716699 if a b t n a printf ld n n 4 某一正整数 进行递减 每次将该数减半后再减一 当对该数进行第10次减半时发现该数只剩下1不能再减了 求该数 1534 方法1main inti j k 0 for i 9 i k i for j 1 j 9 j k k

温馨提示

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

评论

0/150

提交评论