PTA-C入门和进阶练习集
centralunit
这个作者很懒,什么都没留下…
展开
-
7-66 找出总分最高的学生(15 分)
7-66 找出总分最高的学生(15 分)给定N个学生的基本信息,包括学号(由5个数字组成的字符串)、姓名(长度小于10的不包含空白字符的非空字符串)和3门课程的成绩([0,100]区间内的整数),要求输出总分最高学生的姓名、学号和总分。输入格式:输入在一行中给出正整数N(≤10)。随后N行,每行给出一位学生的信息,格式为“学号 姓名 成绩1 成绩2 成绩3”,中间以空格分隔。...原创 2018-07-28 01:17:56 · 27215 阅读 · 0 评论 -
6-1 使用函数求素数和(20 分)
6-1 使用函数求素数和(20 分)本题要求实现一个判断素数的简单函数、以及利用该函数计算给定区间内素数和的函数。 素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。函数接口定义:int prime( int p );int PrimeSum( int m, int n );其中函数prime当用户传入参数p为素数时返回1,否则返回0;函数PrimeSum返回...原创 2018-07-22 19:15:41 · 5913 阅读 · 2 评论 -
7-56 找鞍点(20 分)
7-56 找鞍点(20 分)一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。本题要求编写程序,求一个给定的n阶方阵的鞍点。输入格式:输入第一行给出一个正整数n(1≤n≤6)。随后n行,每行给出n个整数,其间以空格分隔。输出格式:输出在一行中按照“行下标 列下标”(下标从0开始)的格式输出鞍点的位置。如果鞍点不存在,则输出“NONE”。题目保证给...原创 2018-07-27 00:47:46 · 8632 阅读 · 0 评论 -
7-55 矩阵运算(20 分)
7-55 矩阵运算(20 分)给定一个n×n的方阵,本题要求计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。副对角线为从矩阵的右上角至左下角的连线。输入格式:输入第一行给出正整数n(1输出格式:在一行中给出该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。输入样例:42 3 4 15 6 1 17 1 8 11 1 1 1输出样例...原创 2018-07-27 00:41:47 · 1066 阅读 · 0 评论 -
7-54 将数组中的数逆序存放(20 分)
7-54 将数组中的数逆序存放(20 分)本题要求编写程序,将给定的n个整数存入数组中,将数组中的这n个数逆序存放,再按顺序输出数组中的元素。输入格式:输入在第一行中给出一个正整数n(1≤n≤10)。第二行输入n个整数,用空格分开。输出格式:在一行中输出这n个整数的处理结果,相邻数字中间用一个空格分开,行末不得有多余空格。输入样例:410 8 1 2...原创 2018-07-27 00:38:59 · 1942 阅读 · 0 评论 -
7-53 求最大值及其下标(20 分)
7-53 求最大值及其下标(20 分)本题要求编写程序,找出给定的n个数中的最大值及其对应的最小下标(下标从0开始)。输入格式:输入在第一行中给出一个正整数nnn(1<nnn≤10)。第二行输入nnn个整数,用空格分开。输出格式:在一行中输出最大值及最大值的最小下标,中间用一个空格分开。输入样例:62 8 10 1 9 10输出样例:10 ...原创 2018-07-27 00:36:29 · 1687 阅读 · 0 评论 -
7-52 数组元素循环右移问题(20 分)
7-52 数组元素循环右移问题(20 分)一个数组AAA中存有NNN(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移MMM(≥0)个位置,即将AAA中的数据由(A0A1⋯AN−1A0A1⋯AN−1A_0A_1\cdots A_{N-1})变换为(AN−M⋯AN−1A0A1⋯AN−M−1AN−M⋯AN−1A0A1⋯AN−M−1A_{N-M}\cdots A_{N-1}A_...原创 2018-07-27 00:32:26 · 6711 阅读 · 2 评论 -
7-51 求n以内最大的k个素数以及它们的和(20 分)
7-51 求n以内最大的k个素数以及它们的和(20 分)本题要求计算并输出不超过n的最大的k个素数以及它们的和。输入格式:输入在一行中给出n(10≤n≤10000)和k(1≤k≤10)的值。输出格式:在一行中按下列格式输出:素数1+素数2+…+素数k=总和值其中素数按递减顺序输出。若n以内不够k个素数,则按实际个数输出。输入样例1:1000 10...原创 2018-07-27 00:27:18 · 3868 阅读 · 0 评论 -
7-50 近似求PI(15 分)
7-50 近似求PI(15 分)本题要求编写程序,根据下式求π的近似值,直到最后一项小于给定精度eps。π2=1+1!3+2!3×5+3!3×5×7+⋯+i!3×5×⋯×(2×i+1)+⋯π2=1+1!3+2!3×5+3!3×5×7+⋯+i!3×5×⋯×(2×i+1)+⋯\frac\pi2=1+\frac{1!}3+\frac{2!}{3\times5}+\frac{3!}{3\times...原创 2018-07-27 00:24:43 · 13329 阅读 · 0 评论 -
7-49 Have Fun with Numbers(20 分)
7-49 Have Fun with Numbers(20 分)Notice that the number 123456789 is a 9-digit number consisting exactly the numbers from 1 to 9, with no duplication. Double it we will obtain 246913578, which happen...原创 2018-07-27 00:17:43 · 6296 阅读 · 0 评论 -
7-48 求组合数(15 分)
7-48 求组合数(15 分)本题要求编写程序,根据公式Cmn=n!m!(n−m)!Cnm=n!m!(n−m)!C_n^m=\frac{n!}{m!(n−m)!}算出从nnn个不同元素中取出mmm个元素(m≤nm≤nm\leq n)的组合数。建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是double。输入格式:输入在一行中给出两个正整数mmm和nnn(m...原创 2018-07-27 00:04:28 · 6192 阅读 · 0 评论 -
7-47 二进制的前导的零(10 分)
7-47 二进制的前导的零(10 分)计算机内部用二进制来表达所有的值。一个十进制的数字,比如18,在一个32位的计算机内部被表达为00000000000000000000000000011000。可以看到,从左边数过来,在第一个1之前,有27个0。我们把这些0称作前导的零。现在,你的任务是写一个程序,输入一个整数,输出在32位表达下它前导的零的个数。输入格式:一个整数,在32...原创 2018-07-27 00:00:22 · 617 阅读 · 0 评论 -
7-46 爬动的蠕虫(15 分)
7-46 爬动的蠕虫(15 分)一条蠕虫长1寸,在一口深为N寸的井的底部。已知蠕虫每1分钟可以向上爬U寸,但必须休息1分钟才能接着往上爬。在休息的过程中,蠕虫又下滑了D寸。就这样,上爬和下滑重复进行。请问,蠕虫需要多长时间才能爬出井?这里要求不足1分钟按1分钟计,并且假定只要在某次上爬过程中蠕虫的头部到达了井的顶部,那么蠕虫就完成任务了。初始时,蠕虫是趴在井底的(即高度为0)。输入...原创 2018-07-26 23:57:34 · 1137 阅读 · 0 评论 -
7-45 找完数(20 分)
7-45 找完数(20 分)所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。输入格式:输入在一行中给出2个正整数m和n(1输出格式:逐行输出给定范围内每个完数的因子累加形式的分解式,每个完数占一行,格式为“完数 = 因子1 + 因子2 + … + 因子k”,其中完数和因子均按...原创 2018-07-26 23:56:12 · 1509 阅读 · 0 评论 -
7-44 黑洞数(20 分)
7-44 黑洞数(20 分)黑洞数也称为陷阱数,又称“Kaprekar问题”,是一类具有奇特转换特性的数。任何一个各位数字不全相同的三位数,经有限次“重排求差”操作,总会得到495。最后所得的495即为三位黑洞数。所谓“重排求差”操作即组成该数的数字重排后的最大数减去重排后的最小数。(6174为四位黑洞数。)例如,对三位数207:第1次重排求差得:720 - 27 = 693;...原创 2018-07-26 23:50:06 · 2691 阅读 · 2 评论 -
7-43 Shuffling Machine(20 分)
7-43 Shuffling Machine(20 分)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” where empl...原创 2018-07-26 23:21:16 · 712 阅读 · 0 评论 -
6-2 使用函数验证哥德巴赫猜想(20 分)
6-2 使用函数验证哥德巴赫猜想(20 分)本题要求实现一个判断素数的简单函数,并利用该函数验证哥德巴赫猜想:任何一个不小于6的偶数均可表示为两个奇素数之和。素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。函数接口定义:int prime( int p );void Goldbach( int n );其中函数prime当用户传入参数p为素数时返回1,否则...原创 2018-07-22 19:49:17 · 8849 阅读 · 0 评论 -
6-3 判断回文字符串(20 分)
6-3 判断回文字符串(20 分)本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。函数接口定义:bool palindrome( char *s );函数palindrome判断输入字符串char *s是否为回文。若是则返回true,否则返回false。裁判测试程序样例:#...原创 2018-07-22 19:52:48 · 8460 阅读 · 2 评论 -
6-4 查找子串(20 分)
6-4 查找子串(20 分)本题要求实现一个字符串查找的简单函数。函数接口定义:char *search( char *s, char *t );函数search在字符串s中查找子串t,返回子串t在s中的首地址。若未找到,则返回NULL。裁判测试程序样例:#include <stdio.h>#define MAXS 30char *searc...原创 2018-07-22 19:57:11 · 5503 阅读 · 1 评论 -
7-65 平面向量加法(15 分)
7-65 平面向量加法(15 分)本题要求编写程序,计算两个二维平面向量的和向量。输入格式:输入在一行中按照“x1 y1 x2 y2x1 y1 x2 y2x_1\ y_1\ x_2\ y_2 ”的格式给出两个二维平面向量v1=(x1,y1)v1=(x1,y1)v_1=(x_1,y_1)和v2=(x2,y2)v2=(x2,y...原创 2018-07-28 01:16:06 · 11709 阅读 · 0 评论 -
7-64 最长对称子串(25 分)
7-64 最长对称子串(25 分)对给定的字符串,本题要求你输出最长对称子串的长度。例如,给定Is PAT&TAP symmetric?,最长对称子串为s PAT&TAP s,于是你应该输出11。输入格式:输入在一行中给出长度不超过1000的非空字符串。输出格式:在一行中输出最长对称子串的长度。输入样例:Is PAT&TAP symmet...原创 2018-07-28 01:10:18 · 2459 阅读 · 1 评论 -
7-63 查验身份证(15 分)
7-63 查验身份证(15 分)一个合法的身份证号码由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 0 X 9 8 ...原创 2018-07-28 01:06:43 · 4420 阅读 · 0 评论 -
7-62 切分表达式——写个tokenizer吧(20 分)
7-62 切分表达式——写个tokenizer吧(20 分)[先说点出题背景]这个题是为低年级同学、学C语言的同学准备的,因为,对这部分同学,这个题目编写起来略有一点复杂。如果是高年级、学过了正则表达式(Regular Expression)的同学或者学过了Java等OO语言的同学做这个题,应当发现这题比较简单吧。哦,对了,什么是tokenizer?请自行查询解决。反正在此处不应翻译成“令...原创 2018-07-28 01:03:33 · 2247 阅读 · 0 评论 -
7-61 找最长的字符串(15 分)
7-61 找最长的字符串(15 分)本题要求编写程序,针对输入的N个字符串,输出其中最长的字符串。输入格式:输入第一行给出正整数N;随后N行,每行给出一个长度小于80的非空字符串,其中不会出现换行符,空格,制表符。输出格式:在一行中用以下格式输出最长的字符串:The longest is: 最长的字符串如果字符串的长度相同,则输出先输入的字符串。输入样...原创 2018-07-28 00:47:47 · 13755 阅读 · 2 评论 -
7-60 删除重复字符(20 分)
7-60 删除重复字符(20 分)本题要求编写程序,将给定字符串去掉重复的字符后,按照字符ASCII码顺序从小到大排序后输出。输入格式:输入是一个以回车结束的非空字符串(少于80个字符)。输出格式:输出去重排序后的结果字符串。输入样例:ad2f3adjfeainzzzv输出样例:23adefijnvz#include <stdi...原创 2018-07-28 00:43:29 · 3724 阅读 · 0 评论 -
7-59 字符串逆序(15 分)
7-59 字符串逆序(15 分)输入一个字符串,对该字符串进行逆序,输出逆序后的字符串。输入格式:输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。输出格式:在一行中输出逆序后的字符串。输入样例:Hello World!输出样例:!dlroW olleH#include <stdio.h>#includ...原创 2018-07-28 00:39:56 · 4915 阅读 · 1 评论 -
7-58 求整数序列中出现次数最多的数(15 分)
7-58 求整数序列中出现次数最多的数(15 分)本题要求统计一个整型序列中出现次数最多的整数及其出现次数。输入格式:输入在一行中给出序列中整数个数N(0<NNN≤1000),以及NNN个整数。数字间以空格分隔。输出格式:在一行中输出出现次数最多的整数及其出现次数,数字间以空格分隔。题目保证这样的数字是唯一的。输入样例:10 3 2 -1 5 3 4 3 ...原创 2018-07-28 00:37:35 · 8677 阅读 · 2 评论 -
7-57 查找整数(10 分)
7-57 查找整数(10 分)本题要求从输入的N个整数中查找给定的X。如果找到,输出X的位置(从0开始数);如果没有找到,输出“Not Found”。输入格式:输入在第一行中给出两个正整数N(≤20)和X,第二行给出N个整数。数字均不超过长整型,其间以空格分隔。输出格式:在一行中输出X的位置,或者“Not Found”。输入样例1:5 73 5 7 1 9...原创 2018-07-28 00:29:07 · 3416 阅读 · 0 评论 -
7-15 厘米换算英尺英寸(15 分)
7-15 厘米换算英尺英寸(15 分)如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸。输入格式:输入在一行中给出1个正整数,单位是厘米。输出格式:在一行中输出这个厘米数对应英制长度的英尺和英寸的整数值,中间用空格分开。...原创 2018-07-22 20:18:19 · 1778 阅读 · 0 评论 -
7-13 输出倒三角图案(5 分)
7-13 输出倒三角图案(5 分)本题要求编写程序,输出指定的由“*”组成的倒三角图案。输入格式:本题目没有输入。输出格式:按照下列格式输出由“*”组成的倒三角图案。* * * * * * * * * *#include <stdio.h>int main(void) { printf("* * * *\n"); ...原创 2018-07-22 20:15:57 · 1638 阅读 · 1 评论 -
7-3 输出菱形图案(5 分)
7-3 输出菱形图案(5 分)本题要求编写程序,输出指定的由“A”组成的菱形图案。输入格式:本题无输入输出格式:按照下列格式输出由“A”组成的菱形图案。 AA A A#include <stdio.h>int main(void) { printf(" A\n"); printf("A A\n"); ...原创 2018-07-22 20:13:10 · 4770 阅读 · 1 评论 -
7-4 输出带框文字(5 分)
7-4 输出带框文字(5 分)本题要求编写程序,输出指定的带框文字。输入格式:本题无输入输出格式:按照下列格式输出带框文字。************ Welcome************#include <stdio.h>int main(void) { printf("************\n"); pri...原创 2018-07-22 20:10:05 · 1359 阅读 · 0 评论 -
7-8 I Love GPLT(5 分)
7-8 I Love GPLT(5 分)这道超级简单的题目没有任何输入。 你只需要把这句很重要的话 —— I Love GPLT ——竖着输出就可以了。 所谓“竖着输出”,是指每个字符占一行(包括空格),即每行只能有1个字符和回车。#include <stdio.h>#include <string.h>int main(void) { c...原创 2018-07-22 20:04:30 · 2486 阅读 · 0 评论 -
7-6 重要的话说三遍(5 分)
7-6 重要的话说三遍(5 分)这道超级简单的题目没有任何输入。 你只需要把这句很重要的话 —— “I’m gonna WIN!”——连续输出三遍就可以了。 注意每遍占一行,除了每行的回车不能有任何多余字符。#include<stdio.h>int main(void) { for (int i = 1; i <= 3; i++) { ...原创 2018-07-22 19:59:00 · 4226 阅读 · 0 评论 -
7-42 整除光棍(20 分)
7-42 整除光棍(20 分)这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被一个不以5结尾的奇数整除。比如,111111就可以被13整除。 现在,你的程序要读入一个整数x,这个整数一定是奇数并且不以5结尾。然后,经过计算,输出两个数字:第一个数字s,表示x乘以s是一个光棍,第二个数字n是这个光棍的位数。这样的解当然不是...原创 2018-07-26 23:07:21 · 2192 阅读 · 0 评论 -
7-41 计算阶乘和(10 分)
7-41 计算阶乘和(10 分)对于给定的正整数N,需要你计算 S=1!+2!+3!+...+N!S=1!+2!+3!+...+N!S=1!+2!+3!+...+N!。输入格式:输入在一行中给出一个不超过10的正整数NNN。输出格式:在一行中输出SSS的值。输入样例:3输出样例:9#include <stdio.h>doubl...原创 2018-07-26 23:03:56 · 7636 阅读 · 0 评论 -
7-22 用天平找小球(10 分)
7-22 用天平找小球(10 分)三个球A、B、C,大小形状相同且其中有一个球与其他球重量不同。要求找出这个不一样的球。输入格式:输入在一行中给出3个正整数,顺序对应球A、B、C的重量。输出格式:在一行中输出唯一的那个不一样的球。输入样例:1 1 2输出样例:C#include <stdio.h>int main(...原创 2018-07-24 00:46:59 · 1471 阅读 · 0 评论 -
7-21 超速判断(10 分)
7-21 超速判断(10 分)模拟交通警察的雷达测速仪。输入汽车速度,如果速度超出60 mph,则显示“Speeding”,否则显示“OK”。输入格式:输入在一行中给出1个不超过500的非负整数,即雷达测到的车速。输出格式:在一行中输出测速仪显示结果,格式为:Speed: V - S,其中V是车速,S或者是Speeding、或者是OK。输入样例1:40...原创 2018-07-24 00:36:05 · 2449 阅读 · 0 评论 -
7-20 简单计算器(20 分)
7-20 简单计算器(20 分)模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算。输入格式:输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数。遇等号”=”说明输入结束。输出格式:在一行中输出算式的运算结果,或者如果除法分母为0或有非法运算符,则输出错误信息“ERROR”。输入样...原创 2018-07-24 00:33:43 · 3095 阅读 · 0 评论 -
7-19 计算天数(15 分)
7-19 计算天数(15 分)本题要求编写程序计算某年某月某日是该年中的第几天。输入格式:输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。输出格式:在一行输出日期是该年中的第几天。输入样例1:2009/03/02输出样例1:...原创 2018-07-24 00:25:26 · 4031 阅读 · 0 评论