北理c语言上机答案(全)_第1页
北理c语言上机答案(全)_第2页
北理c语言上机答案(全)_第3页
北理c语言上机答案(全)_第4页
北理c语言上机答案(全)_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

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

文档简介

1 1 HelloHello worldworld 让我们用 C 语言向世界问好 最早的程序基本是这个样子的 程序一 include void main printf Hello world n 程序二 include int main printf Hello world n return 0 上面的程序你任意模仿一个 看看是否可以通过 如果你能通过这个简单的程序 那就让我们 继续完成后面的习题吧 输入 无 输出 Hello world 程序实例 1 include void main printf Hello world n 结果 Hello world 程序实例 2 include int main printf Hello world n return 0 结果 Hello world 1 1 WelcomeWelcome toto Beijing Beijing 让我们来练习如何显示多行文字 输入 无 输出 就是下面的那段文字 程序实例 1 include stdio h int main printf Welcome n printf to n printf Beijing n return 0 结果 Welcome to Beijing 程序实例 2 include void main printf Welcome nto nBeijing n 结果 Welcome to Beijing 1 1练习最简单的练习最简单的 printfprintf 和和 scanfscanf printf 函数和 scanf 函数是 C 语言中最常用的函数之一 下面让我们练习一下吧 输入 整型变量 x 的值 输出 输出整型变量 x 对应的十进制 八进制和十六进制形式 认真看看 1 的八进制和十六进制输出 请想想是为什么 程序实例 1 include stdio h main int x scanf d printf x d x o x x n x x x 结果 输入 1 输出 x 1 x 37777777777 x ffffffff 程序实例 2 include stdio h void main long x scanf d printf x d x o x 0 x n x x x 结果 输入 292 输出 x 292 x 444 x 124 1练习两个整数之间的运算练习两个整数之间的运算 背景 基本练习 输入 接受两个整数 每个整数之间使用空格分隔 例如输入格式为 123 444 输出 分别输出进行 之后的运行结果 程序实例 1 include void main int a b c d e f g scanf d d printf d d d n a b c a b printf d d d n a b d a b printf d d d n a b e a b printf d d d n a b f a b printf d d d n a b g a b 结果 输入 10 3 输出 10 3 13 10 3 7 10 3 30 10 3 3 10 3 1 程序实例 2 include void main int x1 x2 x3 x4 x5 a b scanf d d x1 a b x2 a b x3 a b x4 a b x5 a b printf d d d n d d d n d d d n d d d n d d d a b x1 a b x2 a b x3 a b x4 a b x5 结果 输入 123 444 输出 123 444 567 123 444 321 123 444 54612 123 444 0 123 444 123 1学习打印你的第一个图形学习打印你的第一个图形 背景 我们已经学习了 printf 函数 这里给出了一个小程序 它运行的结果是输出一个由星号 组成的 4 4 的正方形 程序如下 include void main printf n printf n printf n printf n 要求 按照上面的程序范例 编写一个小程序 要求输出的是 4 行由 号组成的等腰三角形 输入 无 输出 指定图形 程序实例 1 include int main void printf n printf n printf n printf n return 0 结果 输入 无 输出 程序实例 2 include stdio h main printf n printf n printf n printf n 结果 输入 无 输出 1温度转换温度转换 06秋 背景 经常出国旅行的驴友都知道 需要时时了解当地的气温状况 但不少国家采用了不同的温度计 量单位 有些使用华氏温度标准 F 有些使用摄氏温度 C 现在 请你根据温度转换公式 设计一个温度转换程序 可以进行温度转换 如果输入摄氏温度 显示转换的华氏温度 如果 输入华氏温度 显示转换的摄氏温度 温度转换的公式为 F C 9 5 32 C F 32 5 9 式中 F 华氏温度 C 摄氏温度 输入 第一个数据 1 或 2 确定转换的类型 华氏转摄氏 1 摄氏转华氏 2 第二个数据是相应需要转换的温度值 输出 相应的转换后的温度值 保留小数点后 2 位 程序实例 1 include void main int a float x y scanf d f if a 1 y x 32 5 0 9 0 printf The Centigrade is 2f n y else if a 2 y x 9 0 5 0 32 printf The Fahrenheit is 2f n y 结果 输入 1 100 输出 The Centigrade is 37 78 输入 2 6 67 输出 The Fahrenheit is 19 99 程序实例 2 include void main float C int a scanf d f switch a case 1 printf The Centigrade is 2f n C 32 5 9 break case 2 printf The Fahrenheit is 2f n C 9 5 32 break default printf error n 结果 输入 1 0 输出 The Centigrade is 17 78 输入 2 88 输出 The Fahrenheit is 190 40 2 计算圆柱的侧面积及体积计算圆柱的侧面积及体积 如果已知圆柱的底面半径 r 以及高 h 则可计算出圆柱的侧面积 s 2 rh 体积 v r 2 h 其中 3 1415926 输入 第一行输入圆柱的底面半径 r 第二行输入圆柱的高 h 输出 s v 要求 1 所有变量都定义为双精度类型 2 结果精确到小数点后两位 程序实例 1 include include void main double r h s v PAI 3 1415926 scanf lf n lf s 2 PAI r h v PAI r r h printf s 2f v 2f n s v 结果 输入 2 8 输出 s 100 53 v 100 53 程序实例 2 include void main double pi 3 1415926 int r h scanf d scanf d printf s 5 2f v 5 2f n 2 pi r h pi r r h 输入 5 10 输出 s 314 16 v 785 40 3 计算时钟的夹角计算时钟的夹角 背景 钟面上的时针和分针之间的夹角总是在 之间 包括 和 举例来说 在十二点的时候两针 之间的夹角为 而在六点的时候夹角为 在三点的时候为 本题要解决的是计算 12 00 到 11 59 之间任意一个时间的夹角 输入 每组测试数据包含两个数字 第一个数字代表小时 大于 0 小于等于 12 第二个数 字代表分 在区间 0 59 上 输出 对应每组测试数据 用常用格式显示时间以及这个时候时针和分针间的最小夹角 精确 到小数点后一位 输出格式如下所示 程序实例 1 include void main float x y z scanf f f z 6 y 30 x y 2 if z 180 z 360 else if z 180 z 360 z else z z if y 10 printf At 0f 0 0f the angle is 1f degrees x y z else printf At 0f 0f the angle is 1f degrees x y z 输入 12 0 输出 At 12 00 the angle is 0 0 degrees 程序实例 2 include include main int x y float z scanf d d z fabs 30 x float y 11 2 z z 180 360 z z if y0 输入 三角型的 3 条边的长度 int 型 输出 等边三角形 equilateral triangle 等腰三角形 isoceles triangle 不构成三角形 non triangle 一般三角形 triangle 程序实例 1 include void main int a b c scanf d d d if a b c a c b b c a printf non triangle else if a b else if a b else printf triangle 结果 输入 2 2 2 输出 equilateral triangle 程序实例 2 include void main int a b c scanf d d d if a b elseif a b c else printf non triangle n 结果 输入 1 3 1 输出 non triangle 5 求解一元二次方程求解一元二次方程 初中的时候我们就会求解一元二次方程了 下面让我们来教计算机如何求解 输入 a b c 就 一元二次方程 ax bx c 0 的根 输入 假设 a b c 均 int 输出 要求输出的根为 double 型 保留 6 位小数 程序实例 1 include stdio h include math h void main int a b c a2 double x1 0 x2 0 q scanf d d d q b b 4 a c a2 2 a if a 0 if b 0 printf Input error n else printf x 6f n c 1 0 b else if q 0 printf x1 6f nx2 6f n b sqrt q a2 b sqrt q a2 else if q 0 printf x1 x2 6f n b 1 0 a2 else if q 0 if b 0 printf x1 6fi nx2 6fi n sqrt q a2 sqrt q a2 else printf x1 6f 6fi nx2 6f 6fi b 1 0 a2 sqrt q a2 1 0 b a2 sqrt q a2 结果 输入 0 0 0 输出 Input error 输入 2 2 2 输出 x1 0 500000 0 866025i x2 0 500000 0 866025i 程序实例 2 include include void main double a b c d scanf lf lf lf d b b 4 a c if a 0 else if a 0 printf x lf n c 0 0 c b else if d 0 printf x1 x2 6lf n b 0 0 b 2 a else if d 0 printf x1 lf nx2 lf n b sqrt d 2 a b sqrt d 2 a else if b 0 printf x1 lfi nx2 lfi n sqrt d 2 a sqrt d 2 a else printf x1 lf lfi nx2 lf lfi n b 2 a sqrt d 2 a b 2 a sqrt d 2 a 结果 输入 10 0 0 输出 x1 x2 0 000000 你会输出一行星号吗 本题不记分噢 你会输出一行星号吗 本题不记分噢 我们才开始上机 现在需要我们用最简单得办法 在一行中输出 N 个星号 输入 N 值 输出 一行中 N 个星号 程序实例 1 include void main int n i scanf d for i 1 i n i printf printf n 结果 输入 4 输出 输入 8 输出 6 计算计算SUM的值的值 已知公式 SUM 1 1 2 1 3 1 4 1 n 输入 n 输出 表达式 sum 的值 结果保留 6 位小数 程序实例 1 include void main int n k double sum scanf d sum 1 0 for k 2 k n k sum sum 1 0 k printf sum 6lf n sum 结果 输入 1 输出 sum 1 000000 程序实例 2 include void main double sum i int n scanf d for i 1 sum 0 i n i sum sum 1 i printf sum 6lf sum 结果 输入 3 输出 sum 1 833333 7 7 贪吃的猴子贪吃的猴子 有一只猴子 第一天摘了若干个桃子 当即吃了一半 但还觉得不过瘾 就又多吃了一个 第 2 天早上又将剩下的桃子吃掉一半 还是觉得不过瘾 就又多吃了两个 以后每天早上都吃 了前一天剩下的一半加天数个 例如 第 5 天吃了前一天剩下的一般加 5 个 到第 n 天早上再 想吃的时候 就只剩下一个桃子了 输入 天数 n 输出 第一天的桃子个数 程序实例 1 include void main int n i y scanf d for i n 1 y 1 i 1 i y 2 i y if y 1 printf The monkey got d peach in first day y if y 1 printf The monkey got d peachs in first day y 结果 输入 3 输出 The monkey got 14 peachs in first day 8 求最后求最后3位数值位数值 中学时我们就会求一个数的 n 次方了 但计算机不会 请你来编写一个程序吧 由于计算机比 较 笨 所以我们编写程序的功能不用太强 只要能算出 a 的 n 次方的最后 3 位数就可以了 输入 和 n 的值 假设 a 150 输出 求 a 的 n 次方的最后 3 位数 程序实例 1 include void main int i x y m 1 scanf d d for i 1 i y i m m x 1000 if m 0 printf The last 3 numbers is 000 n else printf The last 3 numbers is d n m 结果 输入 10 0 输出 The last 3 numbers is 1 程序实例 2 include void main int a n i s scanf d d i 1 s 1 while i n s s a 1000 i if n 0 printf The last 3 numbers is 0 3d n s else printf The last 3 numbers is d n s 结果 输入 100 10 输出 The last 3 numbers is 000 9 分数的四则运算分数的四则运算 在小学时我们就学习了分数的四则运算 即对两个分数进行加 减 乘 除等运算 现在我们 尝试下用 C 语言来实现 输入 分数 1 操作符 分数 2 输出 计算结果 要求 计算结果使用分数表示 并且为最简化 例如结果为 2 6 则被简化为 1 3 程序实例 1 include int main int a b c d e f x y z char g scanf d d c d d if g e a d b c f b d if g e a d b c f b d if g e a c f b d if g e a d f b c x e y f z x y if z 0 while z 0 x y y z z x y e e y f f y if f 0 printf d d c d d d d a b g c d e f if f 0 printf d d c d d d d a b g c d e f else printf d d c d d d a b g c d e f printf n return 0 结果 输入 1 3 1 2 输出 1 3 1 2 5 6 程序实例 2 include math h include void main int a b c d m n x y v char z scanf d d c d d switch z case m a d b c n b d break case m a d b c n b d break case m a c n b d break case m a d n b c break x fabs m y fabs n v x y while v 0 x y y v v x y if m y 0 printf d d c d d 0 n a b z c d else if n y 1 printf d d c d d d n a b z c d m y else printf d d c d d d d n a b z c d m y n y 结果 输入 1 2 2 6 输出 1 2 2 6 5 6 10 黑色星期五黑色星期五 在西方 星期五和数字 13 都代表着坏运气 两个不幸的个体最后结合成超级不幸的一天 所以 不管哪个月的十三日又恰逢星期五就叫 黑色星期五 输入 年份 输出 判断该年是否包含黑色星期五 如包含 给出具体日期 程序实例 1 include stdio h void main int year month day i k 0 ruinian n int a 12 6 2 2 5 0 3 5 1 4 6 2 4 int b 12 6 2 3 6 1 4 6 2 5 0 3 5 c 12 0 scanf d n year 400 365 year 400 3 4 year 400 100 5 7 ruinian year 4 0 for i 0 i 12 i if ruinian 1 b i a i n 7 5 c i 1 k printf There s d Black s in year d n s n k 1 is are k k 1 Friday Fridays year k 1 It is They are for i 0 i 12 i if c i 1 printf d d 13 n year i 1 结果 输入 2006 输出 There are 2 Black Fridays in year 2006 They are 2006 1 13 2006 10 13 程序实例 2 include stdio h void main int m y k 0 i w a 6 scanf d for m 1 m 2 m w 13 2 m 12 3 m 13 5 y 1 y 1 4 y 1 100 y 1 400 7 if w 4 a k m k for m 3 m 13 m w 13 2 m 3 m 1 5 y y 4 y 100 y 400 7 if w 4 a k m k if k 1 printf There is 1 Black Friday in year d nIt is n d d 13 n y y a 0 else printf There are d Black Fridays in year d n k y printf They are n for i 0 i k i printf d d 13 n y a i 结果 输入 2007 输出 There are 2 Black Fridays in year 2007 They are 2007 4 13 2007 7 13 11 百马百担百马百担 有 100 匹马 驮 100 担货 其中大马驮 3 担 中马驮 2 担 两匹小马驮 1 担 输入 无 输出 大 中 小马的个数 用逗号分隔 例如 2 30 68 说明 大 中 小马都必须有 结果中要列出所有的组合可能每个结果占一行 因为有多个结果 结果的排序按照大马的个数从少到多 程序实例 1 include void main int bigHorse middleHorse smallHorse bigHorse 0 while bigHorse 33 middleHorse 1 while middleHorse 50 smallHorse 100 bigHorse middleHorse if 3 bigHorse 2 middleHorse smallHorse 2 100 middleHorse bigHorse 结果 输入 无 输出 2 30 68 5 25 70 8 20 72 11 15 74 14 10 76 17 5 78 程序实例 2 include void main int a b c for a 0 a 33 a for b 1 b 50 b c 100 a b if 3 a 2 b c 2 100 结果 输入 无 输出 2 30 68 5 25 70 8 20 72 11 15 74 14 10 76 17 5 78 12 零钱换整钱零钱换整钱 小明去银行存钱 拿了一堆硬币 已知 1 角的硬币厚度为 1 8mm 5 角的硬币厚 1 5mm 1 元的硬币为 2 0mm 小明将 1 角的硬币放成一摞 将 5 角的硬币硬币放成一摞 将 1 元 的硬币放成一摞 发现 3 摞硬币一样高 银行正好把这些硬币换成若干张面值为 10 元的纸币 问小明至少带了多少钱的硬币 元为单位 每种面值的硬币有多少个 输入 无 输出 1 角的数量 5 角的数量 1 元的数量 总金额 例如 20 30 40 50 说明 在结果中只输出各个对应的数字即可 程序实例 1 include int yue int a int b int t t a b while t a b b t t a b return b int main void int x y z x 18 15 yue 18 15 x x 20 yue x 20 z y x 18 x 5 15 x 2 while z 100 z y printf d d d d n z y x 18 z y x 15 z y x 20 z 10 return 0 结果 输入 无 输出 50 60 45 80 程序实例 2 include int main int i j k a for i 10 i 10 j 6 i 5 k 9 i 10 a 0 1 i 0 5 j 1 0 k if a 10 0 printf d d d d n i j k a break return 0 结果 输入 无 输出 50 60 45 80 13 找出最大素数找出最大素数 素数是指一个只能被 1 和它本身整除的数 在数论中占有重要的研究地位 在当代密码学中也 被广泛应用 输入 取值范围 输出 该范围内的最大素数 程序实例 1 include include int judgeis int a int i for i 2 i sqrt a i if a i 0 return 0 return 1 int main int n scanf d while judgeis n 0 n printf The max prime number is d n return 0 结果 输入 100 输出 The max prime number is 97 程序实例 2 include include int IsPrime int n int i for i 2 i 0 输出 打印相应的空心倒三角形 图样参见测试用例 程序实例 1 include int main void int n i j scanf d for i 0 i n i for j 0 j 2 n 1 i j if i 0 i j j i 2 n 2 printf else printf printf n return 0 结果 输入 3 输出 程序实例 2 include stdio h void main int r l h scanf d for r 1 r 2 h 1 r printf for r 2 r h r printf n for l 1 l 2 h r l printf s l r l 2 h r 结果 输入 5 输出 15 空心字符菱形 输入 菱型起始字母和菱形的高度 输出 参看测试用例 打印空心的由字符组成的菱形 程序实例 1 include stdio h include math h void main char c int n i j scanf c d for c c n 1 i 1 n i n 1 i for j 1 j 2 n 1 abs i j if j abs i 1 j 2 n 1 abs i printf c c abs i else printf printf n 结果 输入 C 4 输出 C D D E E F F E E D D C 程序实例 2 include stdio h int main int i j h char e scanf c d for i 1 i h i for j 1 j h i 1 j if j h i 1 j h i 1 printf c e i 1 else printf printf n for i h 1 i 2 h 1 i for j 1 j 3 h i 1 j if j i h 1 j 3 h i 1 printf c e 2 h i 1 else printf printf n return 0 结果 输入 S 3 输出 S T T U U T T S 16 邮票组合 选作 邮票组合 选作 背景 我们寄信都要贴邮票 在邮局有一些小面值的邮票 通过这些小面值邮票中的一张或几 张的组合 可以满足不同邮件的不同的邮资 现在 邮局有 4 种不同面值的邮票 在每个信封 上最多能贴 5 张邮票 面值可相同 可不同 输入 四种邮票的面值 输出 用这四种面值组成的邮资最大的从 1 开始的一个连续的区间 说明 如结果为 10 则表明使用 4 张邮票可组合出 1 2 3 4 5 6 7 8 9 10 这些邮资 名词解释 邮资 就是你寄东西需要花多少钱 邮票面额 是由国家发行的具有固定价格的花纸片 被称为邮票 如果你寄东西 邮局称了重量 告诉你要 240 分 这样你就要贴邮票了 如果现在邮局的邮票 有面值为 80 分 50 分 20 分和 10 分的四种 你就可以采用不同的组合得到 240 的邮资 例如 采用 3 张 80 分的可以凑出 240 分 或者 24 张 10 分的凑起来 240 分也可以 显然不同邮票的组 合都可以得到同样一种邮资 程序实例 1 This program is to find the max set include main int a b c d i j k l static int s 1000 scanf d d d d for i 0 i 5 i for j 0 i j 5 j for k 0 k i j 5 k for l 0 k i j l 5 l if a i b j c k d l s a i b j c k d l for i 1 i 1000 i if s i break printf The max is d n i return 0 结果 输入 1 4 12 21 输出 The max is 71 程序实例 2 include stdio h int total max int value 5 num 1000 0 void findmax int n int p int i if p 5 for i n i 4 i total value i if max total max total num total 1 findmax i p 1 total value i int main int i for i 1 i 4 i scanf d total 0 max 0 findmax 1 0 for i 1 i max i if num i break printf The max is d n i 1 return 0 结果 输入 1 3 7 12 输出 The max is 46 17 谁能出线 背景 电视台举办 超级学生 才艺大赛 由于报名人数狂多 所以要先进行分组预赛 按规定 每 10 名学生为一个预赛小组 评委打出分数 0 100 分 各小组第一名可以进入下一轮 如果有 多名学生得分相同都是第一名 则可同时进入下一轮 输入 按顺序给出一个小组 10 个人的最后得分 int 输出 能够出线的学生序号 0 9 开始 输入 i 遍历下一 个 输出 结束 没遍历完 i n 大于最大值 等于最大值 Y 保存最大值和下标 保存下标 N N N Y Y 程序实例 1 include stdio h main int i maxa 10 0 num max 0 a 10 for i 0 i 10 i scanf d 输入 for i 0 imax 如果大于最大值 max a i 保存最大值 num 1 个数 maxa 0 i 保存下标 else if a i max 如果等于最大值 maxa num i 保存下标 num for i 0 i num i 输出 printf d n maxa i 结果 输入 98 98 100 97 95 94 90 94 93 92 输出 2 程序实例 2 include void main int i a 10 m 0 for i 0 im m a i for i 0 i 10 i if a i m printf d n i 结果 输入 99 98 99 97 95 99 90 94 93 100 输出 9 18 等值数列段等值数列段 06秋 如果一个数列中的某一段 至少有两个元素 的各元素值均相同 则称之为等值数列段 等值 数列段中元素的个数叫做等值数列段的长度 输入 由 N 个元素组成的整数数列 A 其中 N 50 输出 A 中长度最大的所有等值数列段的始末位置 如果没有等值数列段 则输出 No equal number list 说明 始末位置是指数组下标 即 0 表示第一个元素 如果有多个同等长度的等值数列 只输出第一个等值数列的起始位置 当在一个 LIST 中出现两个等长的连续串的时候 我们的答案应该是第一个等长串 N N 开始 输入 j 记数器加 1 i 记数器加 1 保存长度和位置 没遍历完 i n 如果相临字符相等 是否也与下一字符相等 输出 结束 是否为最长 Y N Y N Y Y 程序实例 1 include stdio h main int i 0 j 0 k n max 0 maxnum 0 a 50 scanf d for i 0 i n i scanf d 输入 for i j i n i 循环遍历 j i 1 if a i a j 如果相临的相等 i 不变 继续看相等字符有多长 while a i a j 循环直到不相等为止 if maxnum0 输出 printf The longest equal number list is from d to d n max maxnum max 1 else printf No equal number list n 结果 输入 5 1 2 3 4 5 输出 No equal number list 程序实例 2 include stdio h void main int a x 50 i j m 0 n 0 scanf d for i 0 i a i scanf d for i 0 i a 1 i j j i 1 while x j x i n j 1 if n m 0 printf No equal number list n else printf The longest equal number list is from d to d n m n 输入 结果 6 1 0 1 1 1 0 输出 The longest equal number list is from 2 to 4 1919 大家一起做游戏大家一起做游戏 06 秋 幼儿园的小朋友们刚学习了如何数数 阿姨在下课时组织大家一起玩游戏 规则如下 所有的 小朋友绕成一圈 顺序排号 从第一个小朋友开始报数 凡是报到固定数字 例如 5 的 都退 出该游戏 直到只剩下一位小朋友游戏才中止 每个小朋友都希望自己能有更多的练习数数的机会 所以都希望成为最终被留下的那位 现在 请大家帮小朋友们计算一下 在第一次排号的时候排到第几位才能成为最终被留下 的小朋友 输入 小朋友的个数 50 要被练习的数字 输出 最终被留下的小朋友的序号 说明 如 要被练习的数字 是 5 则每次数到 5 的同学要退出该游戏 N 数组计数器加 1 输出 结束 更改数组 置零 计数器更改从头遍历 开始 输入 初始化 小朋友是否已退出 遍历数组结束 只剩下一位小朋友 Y N Y 这次是否退出 N Y Y Y 报数记数器加 1 程序实例 1 include stdio h main int m n d i temp a 100 scanf d d for i 0 i n i a i i 1 temp 0 d 0 while d n 1 标志次数 n 1 次后结束 这是将只剩一个小孩 for i 0 i n i if a i 0 小朋友还没退出游戏 temp 小朋友报数的数字 if temp m 小朋友这次该退出游戏 a i 0 在数组中表示出来 temp 0 报数从新开始 d 退出人数加 1 for i 0 i n i 输出 寻找最后一个退出的小朋友 if a i 0 printf The left child is NO d n a i 结果 输入10 3 输出 The left child is NO 4 程序实例 2 include void main int a 51 i j x n scanf d d for i 0 i n 2 i a i i 1 a n 1 0 x n 1 while a x x for i 1 i j 1 i x a x a x a a x printf The left child is NO d x 1 结果 输入 50 15 输出 The left child is NO 22 20 猜数字 选作 猜数字 选作 有如下一组数字 其中每个数字都在 1 63 之间 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 2 3 6 7 10 11 14 15 18 19 22 23 26 27 30 31 34 35 38 39 42 43 46 47 50 51 54 55 58 59 62 63 4 5 6 7 12 13 14 15 20 21 22 23 28 29 30 31 36 37 38 39 44 45 46 47 52 53 54 55 60 61 62 63 8 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 61 62 63 16 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 60 61 62 63 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 现在需要编写一个程序 当从键盘输入某数字在且仅在哪几行出现了 该程序可以 猜 出这 个数字是几 输入 程序的输入是一串以空白符分开的数字 当输入 0 时表示输入结束 输出 输出猜到的数字 程序实例 1 main int i re re 0 scanf d while i re 1 i 1 scanf d include printf d n re 结果 输入 1 2 0 输出 3 程序实例 2 include include int main int a 7 i 0 x 0 scanf d while a i i scanf d for i 0 a i i x x pow 2 a i 1 printf d n x return 0 结果 输入 3 4 5 6 0 输出 60 2121 小蜜蜂 选作 小蜜蜂 选作 一只小蜜蜂在如下图所示的蜂窝上爬行 它爬行时 只能从一个格爬到相邻的大号格子中 例如 从 1 号格子可以爬到 2 号或者 3 号格子 从 2 号则可以爬到 3 号或者 4 号格子 请问从一个格子 a 爬到一个格子 b 一共有多少种可行的路线 输入 分别是起始点 a 和终止点 b 的编号 a 和 b 在 1 100 之间 且 a b 输出 方案数量 程序实例 1 include stdio h void main int a b i double a1 a2 t scanf d d a1 1 a2 1 for i 1 i b a i t a2 a2 a1 t a1 t printf 0lf a1 结果 输入 1 4 输出 3 程序实例 2 include stdio h include math h int main int a b i t double n 0 x 1 y 1 scanf d d t b 1 a for i 1 i t i x 1 sqrt 5 2 y 1 sqrt 5 2 printf 0lf n x y sqrt 5 return 0 结果 输入 2 50 输出 7778742049 22 数制转换 选作 数制转换 选作 我们通常使用的都是十进制的数字 但其实在生活中也经常会使用其它进制 这个题目会给你两个不同的数字 它们不属于同一进制 要求你计算出当它们分别处于何 种进制之中时 两个数字相等 譬如 12 和 5 在十进制下它们是不等的 但若 12 使用 3 进制而 5 使用六进制或十进制时 它们的值就是相等的 因此只要选择合适的进制 12 和 5 就可以是相等的 程序的输入是两个数字 M 和 N 其十进制的值不超过 1000000000 它们的进制在 2 36 之间 对于十以下的数字 用 0 9 表示 而十以上的数字 则使用大写的 A Z 表示 求出分别在 2 36 哪种进制下 M 和 N 相等 若相等则输出相应的进制 若不等则输出错 误信息 信息的格式见测试用例 程序实例 1 include include include int zhi char c if c A return c A 10 else return c 0 int minjinzhi char s int max cur max 0 while s cur zhi s if cur max max cur s return max 1 int main char a 1000 b 1000 pa pb double na nb int ja jb ra rb int i j la lb find 0 scanf s s a b na nb 0 la strlen a lb strlen b for ja minjinzhi a find 0 ja na 0 for i 0 i la i na zhi a i pow float ja la i 1 for jb minjinzhi b find 0 jb for nb 0 i 0 i lb i nb zhi b i pow float jb lb i 1 if na nb find 1 ra ja rb jb if find 1 printf s base d s base d n a ra b rb else printf s is not equal to s in any base 2 36 n a b return 0 结果 输入12 5 输出 12 base 3 5 base 6 程序实例 2 define N 50 include long ha long x long y int i k 1 for i 1 i y i k k x return k long maxmum px char px long x 2 k while px 0 if pxx x px 47 if px 64 px return x long value x1 px char px long x1 char py long y i j k 0 py px for px 0 px px for i 0 px py i if px 64 k k px 55 ha x1 i if px 58 k k px 48 ha x1 i px return k main char char1 N char2 N long i j k n m l flag 1 scanf s char1 scanf s char2 n maxmum m maxmum for i n i 36 i for j m j 36 j k value i l value j if k l printf s base ld s base ld n char1 i char2 j flag 0 break if flag printf s is not equal to s in any base 2 36 n char1 char2 结果 输入 123 456 输出 123 is not equal to 456 in any base 2 36 23 删除重复字符删除重复字符 06秋 背景 输入一个长度不超过 100 的字符串 删除串中的重复字符 输入 输入要检查的字符串 长度不超过 1

温馨提示

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

最新文档

评论

0/150

提交评论