
中M2018秋C入门和进阶练习
大厂gogogo
写好代码就不累
展开
-
7-66 找出总分最高的学生 (15 point(s))
7-66 找出总分最高的学生 (15 point(s))给定N个学生的基本信息,包括学号(由5个数字组成的字符串)、姓名(长度小于10的不包含空白字符的非空字符串)和3门课程的成绩([0,100]区间内的整数),要求输出总分最高学生的姓名、学号和总分。输入格式:输入在一行中给出正整数N(≤10)。随后N行,每行给出一位学生的信息,格式为“学号 姓名 成绩1 成绩2 成绩3”,中间以空格...原创 2018-11-17 11:36:45 · 956 阅读 · 0 评论 -
7-46 爬动的蠕虫 (15 point(s))
7-46 爬动的蠕虫 (15 point(s))一条蠕虫长1寸,在一口深为N寸的井的底部。已知蠕虫每1分钟可以向上爬U寸,但必须休息1分钟才能接着往上爬。在休息的过程中,蠕虫又下滑了D寸。就这样,上爬和下滑重复进行。请问,蠕虫需要多长时间才能爬出井?这里要求不足1分钟按1分钟计,并且假定只要在某次上爬过程中蠕虫的头部到达了井的顶部,那么蠕虫就完成任务了。初始时,蠕虫是趴在井底的(即高度为0...原创 2018-11-19 09:57:09 · 183 阅读 · 0 评论 -
7-45 找完数 (20 point(s))
7-45 找完数 (20 point(s))所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。输入格式:输入在一行中给出2个正整数m和n(1<m≤n≤10000),中间以空格分隔。输出格式:逐行输出给定范围内每个完数的因子累加形式的分解式,每个完数占一行,格式为“完数 = 因...原创 2018-11-19 09:57:29 · 498 阅读 · 0 评论 -
7-44 黑洞数 (20 point(s))
7-44 黑洞数 (20 point(s))黑洞数也称为陷阱数,又称“Kaprekar问题”,是一类具有奇特转换特性的数。任何一个各位数字不全相同的三位数,经有限次“重排求差”操作,总会得到495。最后所得的495即为三位黑洞数。所谓“重排求差”操作即组成该数的数字重排后的最大数减去重排后的最小数。(6174为四位黑洞数。)例如,对三位数207:第1次重排求差得:720 - 27 ...原创 2018-11-19 09:57:52 · 222 阅读 · 0 评论 -
7-42 整除光棍 (20 point(s))
7-42 整除光棍 (20 point(s))这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被一个不以5结尾的奇数整除。比如,111111就可以被13整除。 现在,你的程序要读入一个整数x,这个整数一定是奇数并且不以5结尾。然后,经过计算,输出两个数字:第一个数字s,表示x乘以s是一个光棍,第二个数字n是这个光棍的位数。...原创 2018-11-19 09:58:33 · 160 阅读 · 0 评论 -
7-41 计算阶乘和 (10 point(s))
7-41 计算阶乘和 (10 point(s))对于给定的正整数N,需要你计算 S=1!+2!+3!+...+N!。输入格式:输入在一行中给出一个不超过10的正整数N。输出格式:在一行中输出S的值。输入样例:3输出样例:9#include <stdio.h>double factorial(int n) { int i; ...原创 2018-11-19 09:58:49 · 344 阅读 · 1 评论 -
7-40 到底是不是太胖了 (10 point(s))
7-40 到底是不是太胖了 (10 point(s))据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。真实体重与标准体重误差在10%以内都是完美身材(即 | 真实体重 − 标准体重 | < 标准体重×10%)。已知市斤是公斤的两倍。现给定一群人的身高和实际体重,请你告诉他们是否太胖或太瘦了。输入格式:输入第一行给出一个正整数N(≤ 20)。随...原创 2018-11-19 09:59:03 · 1481 阅读 · 1 评论 -
7-39 龟兔赛跑 (20 point(s))
7-39 龟兔赛跑 (20 point(s))乌龟与兔子进行赛跑,跑场是一个矩型跑道,跑道边可以随地进行休息。乌龟每分钟可以前进3米,兔子每分钟前进9米;兔子嫌乌龟跑得慢,觉得肯定能跑赢乌龟,于是,每跑10分钟回头看一下乌龟,若发现自己超过乌龟,就在路边休息,每次休息30分钟,否则继续跑10分钟;而乌龟非常努力,一直跑,不休息。假定乌龟与兔子在同一起点同一时刻开始起跑,请问T分钟后乌龟和兔子谁...原创 2018-11-19 09:59:18 · 204 阅读 · 1 评论 -
7-38 支票面额 (15 point(s))
7-38 支票面额 (15 point(s))一个采购员去银行兑换一张y元f分的支票,结果出纳员错给了f元y分。采购员用去了n分之后才发觉有错,于是清点了余额尚有2y元2f分,问该支票面额是多少?输入格式:输入在一行中给出小于100的正整数n。输出格式:在一行中按格式y.f输出该支票的原始面额。如果无解,则输出No Solution。 输入样例1:23输出样...原创 2018-11-20 08:53:45 · 143 阅读 · 0 评论 -
7-37 输出整数各位数字 (15 point(s))
7-37 输出整数各位数字 (15 point(s))本题要求编写程序,对输入的一个整数,从高位开始逐位分割并输出它的各位数字。输入格式:输入在一行中给出一个长整型范围内的非负整数。输出格式:从高位开始逐位输出该整数的各位数字,每个数字后面有一个空格。输入样例:123456输出样例:1 2 3 4 5 6 #include <stdio.h&...原创 2018-11-20 08:54:02 · 632 阅读 · 0 评论 -
7-36 韩信点兵 (10 point(s))
7-36 韩信点兵 (10 point(s))在中国数学史上,广泛流传着一个“韩信点兵”的故事:韩信是汉高祖刘邦手下的大将,他英勇善战,智谋超群,为汉朝建立了卓越的功劳。据说韩信的数学水平也非常高超,他在点兵的时候,为了知道有多少兵,同时又能保住军事机密,便让士兵排队报数:按从1至5报数,记下最末一个士兵报的数为1; 再按从1至6报数,记下最末一个士兵报的数为5; 再按从1至7报数,记...原创 2018-11-20 08:54:51 · 250 阅读 · 0 评论 -
7-35 猴子吃桃问题 (15 point(s))
7-35 猴子吃桃问题 (15 point(s))一只猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半加一个。到第N天早上想再吃时,见只剩下一个桃子了。问:第一天共摘了多少个桃子?输入格式:输入在一行中给出正整数N(1<N≤10)。输出格式:在一行中输出第一天共摘了多少个桃子...原创 2018-11-19 09:59:44 · 228 阅读 · 1 评论 -
7-34 求分数序列前N项和 (15 point(s))
7-34 求分数序列前N项和 (15 point(s))本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+... 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。输入格式:输入在一行中给出一个正整数N。输出格式:在一行中输出部分和的值,精确到小数点后两位。题目保证计算结果不超过双精度范围。输入样例:20输出样...原创 2018-11-20 08:55:05 · 451 阅读 · 0 评论 -
7-33 统计素数并求和 (20 point(s))
7-33 统计素数并求和 (20 point(s))本题要求统计给定整数M和N区间内素数的个数并对它们求和。输入格式:输入在一行中给出两个正整数M和N(1≤M≤N≤500)。输出格式:在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。输入样例:10 31输出样例:7 143#include <math.h>int ...原创 2018-11-20 08:55:46 · 579 阅读 · 0 评论 -
7-32 求交错序列前N项和 (15 point(s))
7-32 求交错序列前N项和 (15 point(s))本题要求编写程序,计算交错序列 1-2/3+3/5-4/7+5/9-6/11+... 的前N项之和。输入格式:输入在一行中给出一个正整数N。输出格式:在一行中输出部分和的值,结果保留三位小数。输入样例:5输出样例:0.917#include <stdio.h>int main(v...原创 2018-11-20 08:54:18 · 482 阅读 · 0 评论 -
7-31 掉入陷阱的数字 (15 point(s))
7-31 掉入陷阱的数字 (15 point(s))对任意一个自然数N0N_0N0,先将其各位数字相加求和,再将其和乘以3后加上1,变成一个新自然数N1N_1N1;然后对N1N_1N1重复这种操作,可以产生新自然数N2N_2N2;……多次重复这种操作,运算结果最终会得到一个固定不变的数NkN_kNk,就像掉入一个数字“陷阱”。本题要求对输入的自然数,给出其掉入...原创 2018-11-20 08:56:03 · 695 阅读 · 0 评论 -
7-47 二进制的前导的零 (10 point(s))
7-47 二进制的前导的零 (10 point(s))计算机内部用二进制来表达所有的值。一个十进制的数字,比如18,在一个32位的计算机内部被表达为00000000000000000000000000011000。可以看到,从左边数过来,在第一个1之前,有27个0。我们把这些0称作前导的零。现在,你的任务是写一个程序,输入一个整数,输出在32位表达下它前导的零的个数。输入格式:一个...原创 2018-11-19 09:56:51 · 340 阅读 · 0 评论 -
7-48 求组合数 (15 point(s))
7-48 求组合数 (15 point(s))本题要求编写程序,根据公式Cnm=m!(n−m)!n!算出从n个不同元素中取出m个元素(m≤n)的组合数。建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是double。输入格式:输入在一行中给出两个正整数m和n(m≤n),以空格分隔。输出格式:按照格式“result = 组合数计算结果...原创 2018-11-18 22:54:14 · 223 阅读 · 0 评论 -
7-50 近似求PI (15 point(s))
7-50 近似求PI (15 point(s))本题要求编写程序,根据下式求π的近似值,直到最后一项小于给定精度eps。2π=1+31!+3×52!+3×5×73!+⋯+3×5×⋯×(2×i+1)i!+⋯输入格式:输入在一行中给出精度eps,可以使用以下语句来读输入:scanf("%le", &eps);输出格式...原创 2018-11-17 11:38:30 · 378 阅读 · 0 评论 -
7-65 平面向量加法 (15 point(s))
7-65 平面向量加法 (15 point(s))本题要求编写程序,计算两个二维平面向量的和向量。输入格式:输入在一行中按照“x1 y1 x2 y2”的格式给出两个二维平面向量v1=(x1,y1)和v2=(x2,y2)的分量。输出格式:在一行中按照(x, y)的格式输出和向量,坐标输出小数点后一位(注意不能输出−0.0...原创 2018-11-17 11:36:54 · 461 阅读 · 0 评论 -
7-64 最长对称子串 (25 point(s))
7-64 最长对称子串 (25 point(s))对给定的字符串,本题要求你输出最长对称子串的长度。例如,给定Is PAT&TAP symmetric?,最长对称子串为s PAT&TAP s,于是你应该输出11。输入格式:输入在一行中给出长度不超过1000的非空字符串。输出格式:在一行中输出最长对称子串的长度。输入样例:Is PAT&TAP s...原创 2018-11-17 11:37:05 · 312 阅读 · 0 评论 -
7-63 查验身份证 (15 point(s))
7-63 查验身份证 (15 point(s))一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:Z:0 1 2 3 4 5 6 7 8 9 10M:1...原创 2018-11-17 11:37:18 · 279 阅读 · 0 评论 -
7-62 切分表达式——写个tokenizer吧 (20 point(s))
7-62 切分表达式——写个tokenizer吧 (20 point(s))[先说点出题背景]这个题是为低年级同学、学C语言的同学准备的,因为,对这部分同学,这个题目编写起来略有一点复杂。如果是高年级、学过了正则表达式(Regular Expression)的同学或者学过了Java等OO语言的同学做这个题,应当发现这题比较简单吧。哦,对了,什么是tokenizer?请自行查询解决。反正在此...原创 2018-11-17 11:37:31 · 499 阅读 · 0 评论 -
7-61 找最长的字符串 (15 point(s))
7-61 找最长的字符串 (15 point(s))本题要求编写程序,针对输入的N个字符串,输出其中最长的字符串。输入格式:输入第一行给出正整数N;随后N行,每行给出一个长度小于80的非空字符串,其中不会出现换行符,空格,制表符。输出格式:在一行中用以下格式输出最长的字符串:The longest is: 最长的字符串如果字符串的长度相同,则输出先输入的字符串。...原创 2018-11-17 11:38:05 · 1183 阅读 · 0 评论 -
7-60 删除重复字符 (20 point(s))
7-60 删除重复字符 (20 point(s))本题要求编写程序,将给定字符串去掉重复的字符后,按照字符ASCII码顺序从小到大排序后输出。输入格式:输入是一个以回车结束的非空字符串(少于80个字符)。输出格式:输出去重排序后的结果字符串。输入样例:ad2f3adjfeainzzzv输出样例:23adefijnvz#include <stdi...原创 2018-11-17 11:38:19 · 372 阅读 · 0 评论 -
7-59 字符串逆序 (15 point(s))
7-59 字符串逆序 (15 point(s))输入一个字符串,对该字符串进行逆序,输出逆序后的字符串。输入格式:输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。输出格式:在一行中输出逆序后的字符串。输入样例:Hello World!输出样例:!dlroW olleH #include <stdio.h>#inc...原创 2018-11-18 22:54:27 · 183 阅读 · 0 评论 -
7-58 求整数序列中出现次数最多的数 (15 point(s))
7-58 求整数序列中出现次数最多的数 (15 point(s))本题要求统计一个整型序列中出现次数最多的整数及其出现次数。输入格式:输入在一行中给出序列中整数个数N(0<N≤1000),以及N个整数。数字间以空格分隔。输出格式:在一行中输出出现次数最多的整数及其出现次数,数字间以空格分隔。题目保证这样的数字是唯一的。输入样例:10 3 2 -1 5 3 4 3...原创 2018-11-18 22:54:43 · 612 阅读 · 0 评论 -
7-57 查找整数 (10 point(s))
7-57 查找整数 (10 point(s))本题要求从输入的N个整数中查找给定的X。如果找到,输出X的位置(从0开始数);如果没有找到,输出“Not Found”。输入格式:输入在第一行中给出两个正整数N(≤20)和X,第二行给出N个整数。数字均不超过长整型,其间以空格分隔。输出格式:在一行中输出X的位置,或者“Not Found”。输入样例1:5 73 5 7 ...原创 2018-11-18 22:54:54 · 382 阅读 · 0 评论 -
7-56 找鞍点 (20 point(s))
7-56 找鞍点 (20 point(s))一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。本题要求编写程序,求一个给定的n阶方阵的鞍点。输入格式:输入第一行给出一个正整数n(1≤n≤6)。随后n行,每行给出n个整数,其间以空格分隔。输出格式:输出在一行中按照“行下标 列下标”(下标从0开始)的格式输出鞍点的位置。如果鞍点不存在,则输出“NONE”。题...原创 2018-11-18 22:55:05 · 188 阅读 · 0 评论 -
7-55 矩阵运算 (20 point(s))
7-55 矩阵运算 (20 point(s))给定一个n×n的方阵,本题要求计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。副对角线为从矩阵的右上角至左下角的连线。输入格式:输入第一行给出正整数n(1<n≤10);随后n行,每行给出n个整数,其间以空格分隔。输出格式:在一行中给出该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。输入样例:42...原创 2018-11-18 22:55:39 · 212 阅读 · 0 评论 -
7-54 将数组中的数逆序存放 (20 point(s))
7-54 将数组中的数逆序存放 (20 point(s))本题要求编写程序,将给定的n个整数存入数组中,将数组中的这n个数逆序存放,再按顺序输出数组中的元素。输入格式:输入在第一行中给出一个正整数n(1≤n≤10)。第二行输入n个整数,用空格分开。输出格式:在一行中输出这n个整数的处理结果,相邻数字中间用一个空格分开,行末不得有多余空格。输入样例:410 8 1 2...原创 2018-11-18 22:56:01 · 364 阅读 · 0 评论 -
7-53 求最大值及其下标 (20 point(s))
7-53 求最大值及其下标 (20 point(s))本题要求编写程序,找出给定的n个数中的最大值及其对应的最小下标(下标从0开始)。输入格式:输入在第一行中给出一个正整数n(1<n≤10)。第二行输入n个整数,用空格分开。输出格式:在一行中输出最大值及最大值的最小下标,中间用一个空格分开。输入样例:62 8 10 1 9 10输出样例:10 2...原创 2018-11-18 22:55:16 · 282 阅读 · 0 评论 -
7-52 数组元素循环右移问题 (20 point(s))
7-52 数组元素循环右移问题 (20 point(s))一个数组AAA中存有NNN(>0>0>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移MMM(≥0\ge 0≥0)个位置,即将AAA中的数据由(A0A1⋯AN−1A_0 A_1 \cdots A_{N-1}A0A1⋯AN−1)变换为(AN−M⋯AN−1A0A1⋯AN−M−1A_{N-M}...原创 2018-11-18 22:55:50 · 210 阅读 · 0 评论 -
7-51 求n以内最大的k个素数以及它们的和 (20 point(s))
7-51 求n以内最大的k个素数以及它们的和 (20 point(s))本题要求计算并输出不超过n的最大的k个素数以及它们的和。输入格式:输入在一行中给出n(10≤n≤10000)和k(1≤k≤10)的值。输出格式:在一行中按下列格式输出:素数1+素数2+…+素数k=总和值其中素数按递减顺序输出。若n以内不够k个素数,则按实际个数输出。输入样例1:1000...原创 2018-11-18 22:55:28 · 1367 阅读 · 0 评论 -
7-43 Shuffling Machine (20 point(s))
7-43 Shuffling Machine (20 point(s))Shuffling is a procedure used to randomize a deck of playing cards. Because standard shuffling techniques are seen as weak, and in order to avoid "inside jobs" wh...原创 2018-11-17 11:36:01 · 331 阅读 · 0 评论 -
7-30 念数字 (15 point(s))
7-30 念数字 (15 point(s))输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu字。十个数字对应的拼音如下:0: ling1: yi2: er3: san4: si5: wu6: liu7: qi8: ba9: jiu输入格式:输入在一行中给出一个整数,如:1234。提示:整数包括负数、零和正数。输出格式:在一行中输出这...原创 2018-11-20 08:56:19 · 327 阅读 · 0 评论 -
7-11 计算平均分 (5 point(s))
7-11 计算平均分 (5 point(s))已知某位学生的数学、英语和计算机课程的成绩分别是87分、72分和93分,求该生3门课程的平均成绩(结果按整型输出)。输入格式:本题无输入输出格式:按照下列格式输出结果:math = 87, eng = 72, comp = 93, average = 计算所得的平均成绩#include<stdio.h>...原创 2018-11-20 08:55:24 · 412 阅读 · 0 评论 -
7-10 算术入门之加减乘除 (10 point(s))
7-10 算术入门之加减乘除 (10 point(s))对于输入的两个整数,按照要求输出其和差积商。输入格式:在一行内输入两个不超过100的非负整数a和b,中间以一个空格间隔,且保证b不为0。输出格式:共四行,格式是:[a] + [b] = [a+b][a] - [b] = [a-b][a] * [b] = [a*b][a] / [b] = [a/b]其中,带...原创 2018-11-22 07:55:16 · 438 阅读 · 0 评论 -
7-9 求整数均值 (10 point(s))
7-9 求整数均值 (10 point(s))本题要求编写程序,计算4个整数的和与平均值。题目保证输入与输出均在整型范围内。输入格式:输入在一行中给出4个整数,其间以空格分隔。输出格式:在一行中按照格式“Sum = 和; Average = 平均值”顺序输出和与平均值,其中平均值精确到小数点后一位。输入样例:1 2 3 4输出样例:Sum = 10; Av...原创 2018-11-22 07:55:35 · 638 阅读 · 0 评论 -
7-8 是不是太胖了 (5 point(s))
7-8 是不是太胖了 (5 point(s))据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。已知市斤是公斤的两倍。现给定某人身高,请你计算其标准体重应该是多少?(顺便也悄悄给自己算一下吧……)输入格式:输入第一行给出一个正整数H(100 < H ≤ 300),为某人身高。输出格式:在一行中输出对应的标准体重,单位为市斤,保留小数点后...原创 2018-11-22 07:55:48 · 259 阅读 · 0 评论