PTA程序教学
微凉的百年署
程序员
展开
-
6-7 十进制转换二进制(15 分)
6-7 十进制转换二进制(15 分)本题要求实现一个函数,将正整数n转换为二进制后输出。函数接口定义:void dectobin( int n );函数dectobin应在一行中打印出二进制的n。建议用递归实现。裁判测试程序样例:#include void dectobin( int n );int main(){ int n;原创 2017-12-30 17:54:36 · 12338 阅读 · 0 评论 -
7-9 选择法排序(20 分)
7-9 选择法排序(20 分)本题要求将给定的n个整数从大到小排序后输出。输入格式:输入第一行给出一个不超过10的正整数n。第二行给出n个整数,其间以空格分隔。输出格式:在一行中输出从大到小有序的数列,相邻数字间有一个空格,行末不得有多余空格。输入样例:45 1 7 6输出样例:7 6 5 1#includemai原创 2017-12-29 11:14:41 · 23995 阅读 · 5 评论 -
7-15 打印杨辉三角(20 分)
7-15 打印杨辉三角(20 分)本题要求按照规定格式打印前N行杨辉三角。输入格式:输入在一行中给出N(1≤N≤10)。输出格式:以正三角形的格式输出前N行杨辉三角。每个数字占固定4位。输入样例:6输出样例: 1 1 1 1 2 1 1 3 3 1 1原创 2017-12-29 11:16:50 · 19729 阅读 · 0 评论 -
7-18 螺旋方阵(20 分)
7-18 螺旋方阵(20 分)所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。本题要求构造这样的螺旋方阵。输入格式:输入在一行中给出一个正整数N(10)。输出格式:输出N×N的螺旋方阵。每行N个数字,每个数字占3位。输入样例:5输出样例: 1 2 3 4原创 2017-12-30 11:15:46 · 4408 阅读 · 0 评论 -
7-19 简易连连看(20 分)
7-19 简易连连看(20 分)本题要求实现一个简易连连看游戏模拟程序。给定一个2N×2N的方阵网格游戏盘面,每个格子中放置一些符号。这些符号一定是成对出现的,同一个符号可能不止一对。程序读入玩家给出的一对位置(x1,y1)、(x2,y2),判断这两个位置上的符号是否匹配。如果匹配成功,则将两个符号消为“*”并输出消去后的盘面;否则输出“Uh-oh”。若原创 2017-12-30 11:17:50 · 3285 阅读 · 1 评论 -
7-1 换硬币(20 分)
7-1 换硬币(20 分)将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?输入格式:输入在一行中给出待换的零钱数额x∈(8,100)。输出格式:要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换法。每行输出一种换法,格式为:“fen5:5分硬币数量, fen2:2分硬币数量, fen1:1分硬币数量, total:原创 2017-12-30 11:19:55 · 8584 阅读 · 0 评论 -
6-1 使用函数实现字符串部分复制(20 分)
6-1 使用函数实现字符串部分复制(20 分)本题要求编写函数,将输入字符串t中从第m个字符开始的全部字符复制到字符串s中。函数接口定义:void strmcpy( char *t, int m, char *s );函数strmcpy将输入字符串char *t中从第m个字符开始的全部字符复制到字符串char *s中。若m超过输入字符串的长度,则结果字符串原创 2018-01-08 20:22:01 · 25750 阅读 · 7 评论 -
6-2 判断回文字符串(20 分)
6-2 判断回文字符串(20 分)本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。函数接口定义:bool palindrome( char *s );函数palindrome判断输入字符串char *s是否为回文。若是则返回true,否则返回false。裁判测试程原创 2018-01-08 20:53:08 · 26460 阅读 · 4 评论 -
6-4 查找星期(15 分)
6-4 查找星期(15 分)本题要求实现函数,可以根据下表查找到星期,返回对应的序号。序号星期0Sunday1Monday2Tuesday3Wednesday4Thursday5Friday原创 2018-01-08 22:32:15 · 22690 阅读 · 1 评论 -
7-1 通讯录的录入与显示(10 分)
7-1 通讯录的录入与显示(10 分)通讯录中的一条记录包含下述基本信息:朋友的姓名、出生日期、性别、固定电话号码、移动电话号码。 本题要求编写程序,录入N条记录,并且根据要求显示任意某条记录。输入格式:输入在第一行给出正整数N(≤10);随后N行,每行按照格式姓名 生日 性别 固话 手机给出一条记录。其中姓名是不超过10个字符、不包含空格的非空字符串;生日按yyyy/mm/dd的格式给出年月日;...原创 2018-03-16 18:18:41 · 8698 阅读 · 1 评论 -
7-2367 平面向量加法(20 分)
7-2367 平面向量加法(20 分)本题要求编写程序,计算两个二维平面向量的和向量。输入格式:输入在一行中按照“x1 y1 x2 y2”的格式给出两个二维平面向量v1=(x1,y1)和v2=(x2,y2)的分量。输出格式:在一行中按照(x, y)的格式输出和向量,坐标输出小数点后一位(注意不能输出−0.0)。输入样例:3.5 -2.7 ...原创 2018-03-16 18:20:15 · 1681 阅读 · 1 评论 -
7-2367 有理数比较(20 分)
7-2367 有理数比较(20 分)本题要求编写程序,比较两个有理数的大小。输入格式:输入在一行中按照“a1/b1 a2/b2”的格式给出两个分数形式的有理数,其中分子和分母全是整形范围内的正整数。输出格式:在一行中按照“a1/b1 关系符 a2/b2”的格式输出两个有理数的关系。其中“>”表示“大于”,“<”表示“小于”,“=”表示“等于”。输入样例1:1/2 3/4输出样例1:1...原创 2018-03-17 10:15:46 · 3577 阅读 · 0 评论 -
7-2367 计算职工工资(20 分)
7-2367 计算职工工资(20 分)给定N个职员的信息,包括姓名、基本工资、浮动工资和支出,要求编写程序顺序输出每位职员的姓名和实发工资(实发工资=基本工资+浮动工资-支出)。输入格式:输入在一行中给出正整数N。随后N行,每行给出一位职员的信息,格式为“姓名 基本工资 浮动工资 支出”,中间以空格分隔。其中“姓名”为长度小于10的不包含空白字符的非空字符串,其他输入、输出保证在单精度范围内。输出...原创 2018-03-17 11:03:57 · 18699 阅读 · 0 评论 -
输出月份英文名(20 分)
6-2366 输出月份英文名(20 分)本题要求实现函数,可以返回一个给定月份的英文名称。函数接口定义:char *getmonth( int n );函数getmonth应返回存储了n对应的月份英文名称的字符串头指针。如果传入的参数n不是一个代表月份的数字,则返回空指针NULL。裁判测试程序样例:#include <stdio.h>char *getmonth( int n )...原创 2018-03-17 18:16:22 · 8211 阅读 · 0 评论 -
7-2367 查找书籍(20 分)
7-2367 查找书籍(20 分)给定n本书的名称和定价,本题要求编写程序,查找并输出其中定价最高和最低的书的名称和定价。输入格式:输入第一行给出正整数n(<10),随后给出n本书的信息。每本书在一行中给出书名,即长度不超过30的字符串,随后一行中给出正实数价格。题目保证没有同样价格的书。输出格式:在一行中按照“价格, 书名”的格式先后输出价格最高和最低的书。价格保留2位小数。输入样例:3...原创 2018-03-18 10:43:32 · 5966 阅读 · 0 评论 -
7-2367 有理数加法(20 分)
7-2367 有理数加法(20 分)本题要求编写程序,计算两个有理数的和。输入格式:输入在一行中按照a1/b1 a2/b2的格式给出两个分数形式的有理数,其中分子和分母全是整形范围内的正整数。输出格式:在一行中按照a/b的格式输出两个有理数的和。注意必须是该有理数的最简分数形式,若分母为1,则只输出分子。输入样例1:1/3 1/6输出样例1:1/2输入样例2:4/3 2/3输出样例2:2作...原创 2018-03-18 10:47:51 · 1699 阅读 · 0 评论 -
7-8 简化的插入排序(15 分)
7-8 简化的插入排序(15 分)本题要求编写程序,将一个给定的整数插到原本有序的整数序列中,使结果序列仍然有序。输入格式:输入在第一行先给出非负整数N(10);第二行给出N个从小到大排好顺序的整数;第三行给出一个整数X。输出格式:在一行内输出将X插入后仍然从小到大有序的整数序列,每个数字后面有一个空格。输入样例:51 2 4 5 73原创 2017-12-29 11:13:26 · 16596 阅读 · 1 评论 -
7-7 输出数组元素(15 分)
7-7 输出数组元素(15 分)本题要求编写程序,对顺序读入的n个整数,顺次计算后项减前项之差,并按每行三个元素的格式输出结果。输入格式:输入的第一行给出正整数n(1n≤10)。随后一行给出n个整数,其间以空格分隔。输出格式:顺次计算后项减前项之差,并按每行三个元素的格式输出结果。数字间空一格,行末不得有多余空格。输入样例:105 1 7 14原创 2017-12-29 11:12:13 · 34609 阅读 · 1 评论 -
7-6 将数组中的数逆序存放(20 分)
7-6 将数组中的数逆序存放(20 分)本题要求编写程序,将给定的n个整数存入数组中,将数组中的这n个数逆序存放,再按顺序输出数组中的元素。输入格式:输入在第一行中给出一个正整数n(1≤n≤10)。第二行输入n个整数,用空格分开。输出格式:在一行中输出这n个整数的处理结果,相邻数字中间用一个空格分开,行末不得有多余空格。输入样例:410 8 1原创 2017-12-29 11:10:57 · 48282 阅读 · 4 评论 -
7-1 统计学生平均成绩与及格人数(15 分)
7-1 统计学生平均成绩与及格人数(15 分)本题要求编写程序,计算学生们的平均成绩,并统计及格(成绩不低于60分)的人数。题目保证输入与输出均在整型范围内。输入格式:输入在第一行中给出非负整数N,即学生人数。第二行给出N个非负整数,即这N位学生的成绩,其间以空格分隔。输出格式:按照以下格式输出:average = 成绩均值count = 及格人数原创 2017-12-30 17:57:54 · 57215 阅读 · 2 评论 -
7-6 最大公约数和最小公倍数(15 分)
7-6 最大公约数和最小公倍数(15 分)本题要求两个给定正整数的最大公约数和最小公倍数。输入格式:输入在一行中给出两个正整数M和N(≤1000)。输出格式:在一行中顺序输出M和N的最大公约数和最小公倍数,两数字间以1空格分隔。输入样例:511 292输出样例:73 2044#includemain(){ int原创 2017-12-30 17:58:57 · 7116 阅读 · 0 评论 -
7-10 大笨钟(10 分)
7-10 大笨钟(10 分)微博上有个自称“大笨钟V”的家伙,每天敲钟催促码农们爱惜身体早点睡觉。不过由于笨钟自己作息也不是很规律,所以敲钟并不定时。一般敲钟的点数是根据敲钟时间而定的,如果正好在某个整点敲,那么“当”数就等于那个整点数;如果过了整点,就敲下一个整点数。另外,虽然一天有24小时,钟却是只在后半天敲1~12下。例如在23:00敲钟,就是“当当当当当当当当当当当”,而到原创 2017-12-30 17:59:52 · 10192 阅读 · 4 评论 -
7-11 到底是不是太胖了(10 分)
7-11 到底是不是太胖了(10 分)据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。真实体重与标准体重误差在10%以内都是完美身材(即 | 真实体重 − 标准体重 | 标准体重×10%)。已知市斤是公斤的两倍。现给定一群人的身高和实际体重,请你告诉他们是否太胖或太瘦了。输入格式:输入第一行给出一个正整数N(≤ 20)。随后N原创 2017-12-30 18:00:48 · 10134 阅读 · 0 评论 -
6-4 统计大于等于平均分人数(10 分)
6-4 统计大于等于平均分人数(10 分)函数 fun 的功能是:从m个学生的成绩中统计出高于和等于平均分的学生人数, 此人数由函数值返回。平均分通过形参传回,输入学生成绩时, 用-1结束输入,由程序自动统计学生人数。函数接口定义:int fun ( float *s, int n, float *aver );其中s、n、aver 都是用户传入的参数。n值是学生原创 2018-01-11 19:57:22 · 8910 阅读 · 0 评论 -
6-1 统计某类完全平方数(20 分)
本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。函数接口定义:int IsTheNumber ( const int N );其中N是用户传入的参数。如果N满足条件,则该函数必须返回1,否则返回0。裁判测试程序样例:#include #include int IsTheNumber ( cons原创 2017-12-28 22:43:04 · 1533 阅读 · 0 评论 -
6-2 在数组中查找指定元素(15 分)
6-2 在数组中查找指定元素(15 分)本题要求实现一个在数组中查找指定元素的简单函数。函数接口定义:int search( int list[], int n, int x );其中list[]是用户传入的数组;n(≥0)是list[]中元素的个数;x是待查找的元素。如果找到则函数search返回相应元素的最小下标(下标从0开始),否则返回−1。裁判原创 2017-12-28 22:45:38 · 51855 阅读 · 2 评论 -
6-3 数组循环右移(20 分)
6-3 数组循环右移(20 分)本题要求实现一个对数组进行循环右移的简单函数:一个数组a中存有n(>0)个整数,将每个整数循环向右移m(≥0)个位置,即将a中的数据由(a0a1⋯an−1)变换为(an−m⋯an−1a0a1⋯an−m−1)(最后m个数循环移至最前面的m个位置)。函数接口定义:int ArrayShift(原创 2017-12-28 22:46:54 · 34677 阅读 · 2 评论 -
6-4 报数(20 分)
6-4 报数(20 分)报数游戏是这样的:有n个人围成一圈,按顺序从1到n编好号。从第一个人开始报数,报到m(n)的人退出圈子;下一个人从1开始报数,报到m的人退出圈子。如此下去,直到留下最后一个人。本题要求编写函数,给出每个人的退出顺序编号。函数接口定义:void CountOff( int n, int m, int out[] );其中n是初始人数;m是原创 2017-12-28 22:48:20 · 3583 阅读 · 0 评论 -
6-5 使用函数的选择法排序(25 分)
6-5 使用函数的选择法排序(25 分)本题要求实现一个用选择法对整数数组进行简单排序的函数。函数接口定义:void sort( int a[], int n );其中a是待排序的数组,n是数组a中元素的个数。该函数用选择法将数组a中的元素按升序排列,结果仍然在数组a中。裁判测试程序样例:#include #define MAXN 10void原创 2017-12-29 10:57:48 · 29771 阅读 · 0 评论 -
7-1 后天(5 分)
7-1 后天(5 分)如果今天是星期三,后天就是星期五;如果今天是星期六,后天就是星期一。我们用数字1到7对应星期一到星期日。给定某一天,请你输出那天的“后天”是星期几。输入格式:输入第一行给出一个正整数D(1 ≤ D ≤ 7),代表星期里的某一天。输出格式:在一行中输出D天的后天是星期几。输入样例:3输出样例:5#inclu原创 2017-12-29 11:03:28 · 2373 阅读 · 0 评论 -
7-2 念数字(15 分)
7-2 念数字(15 分)输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu字。十个数字对应的拼音如下:0: ling1: yi2: er3: san4: si5: wu6: liu7: qi8: ba9: jiu输入格式:输入在一行中给出一个整数,如:1234。提示:整数包括负数、零和正数。输出格式:在一行中输出这原创 2017-12-29 11:04:13 · 7180 阅读 · 1 评论 -
7-3 找完数(20 分)
7-3 找完数(20 分)所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。输入格式:输入在一行中给出2个正整数m和n(1m≤n≤10000),中间以空格分隔。输出格式:逐行输出给定范围内每个完数的因子累加形式的分解式,每个完数占一行,格式为“完数 = 因子1原创 2017-12-29 11:06:14 · 4981 阅读 · 1 评论 -
7-4 求最大值及其下标(20 分)
7-4 求最大值及其下标(20 分)本题要求编写程序,找出给定的n个数中的最大值及其对应的最小下标(下标从0开始)。输入格式:输入在第一行中给出一个正整数n(1n≤10)。第二行输入n个整数,用空格分开。输出格式:在一行中输出最大值及最大值的最小下标,中间用一个空格分开。输入样例:62 8 10 1 9 10输出样例:10 2原创 2017-12-29 11:07:35 · 8091 阅读 · 3 评论 -
7-5 交换最小值和最大值(15 分)
7-5 交换最小值和最大值(15 分)本题要求编写程序,先将输入的一系列整数中的最小值与第一个数交换,然后将最大值与最后一个数交换,最后输出交换后的序列。注意:题目保证最大和最小值都是唯一的。输入格式:输入在第一行中给出一个正整数N(≤10),第二行给出N个整数,数字间以空格分隔。输出格式:在一行中顺序输出交换后的序列,每个整数后跟一个空格。输入原创 2017-12-29 11:08:59 · 44054 阅读 · 5 评论 -
7-2367 计算平均成绩(20 分)
7-2367 计算平均成绩(20 分)给定N个学生的基本信息,包括学号(由5个数字组成的字符串)、姓名(长度小于10的不包含空白字符的非空字符串)和成绩([0,100]区间内的整数),要求计算他们的平均成绩,并顺序输出平均线以下的学生名单。输入格式:输入在一行中给出正整数N(≤10)。随后N行,每行给出一位学生的信息,格式为“学号 姓名 成绩”,中间以空格分隔。输出格式:首先在一行中输出平均成绩,...原创 2018-03-18 12:38:59 · 8271 阅读 · 0 评论