PTA-《C语言程序设计(第3版)》题目集
记录刷题的过程,部分简单的题不包括在内。
Shimizu Ryusuke
咱就是一个劳命的货哟!
展开
-
习题8-3 数组循环右移 (20 分)
思路往左往右移都可以参考往右移int ArrayShift( int a[], int n, int m ){ int i; int tmp; m%=n; while(n-m>0) { for(i=1; i<n; i++) { tmp=a[i]; a[i]=a[i-1]; a[i-1]=tmp; } ..原创 2021-03-22 21:50:52 · 247 阅读 · 0 评论 -
习题8-2 在数组中查找指定元素 (15 分)
审核要求,不包含题干。思路从末尾开始找相同的元素参考int search( int list[], int n, int x ){ int index = -1; while(n>0){ if(list[n-1]==x){ index = n-1; } n--; } return index;}...原创 2021-03-22 20:34:36 · 502 阅读 · 0 评论 -
练习8-8 移动字母 (10 分)
审核要求,不包含题目。思路进行三次排序,每次排序将首字母移到末尾。参考void Shift(char s[]){ int length=strlen(s); int i=3; char tmp; while(i>0) { int j; for(j=0; j<length-1; j++) { tmp=s[j+1]; s[j+1].原创 2021-03-21 15:55:18 · 90 阅读 · 0 评论 -
习题6-5 使用函数验证哥德巴赫猜想 (20 分)
本题要求实现一个判断素数的简单函数,并利用该函数验证哥德巴赫猜想:任何一个不小于6的偶数均可表示为两个奇素数之和。素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。函数接口定义:int prime( int p );void Goldbach( int n );其中函数prime当用户传入参数p为素数时返回1,否则返回0;函数Goldbach按照格式“n=p+q”输出n的素数分解,其中p≤q均为素数。又因为这样的分解不唯一(例如24可以分解为5+19,还可以分解为7+17),要原创 2021-03-20 20:35:09 · 309 阅读 · 1 评论 -
习题6-4 使用函数输出指定范围内的Fibonacci数 (20 分)
本题要求实现一个计算Fibonacci数的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m≤n≤10000)之间的所有Fibonacci数。所谓Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列。函数接口定义:int fib( int n );void PrintFN( int m, int n );其中函数fib须返回第n项Fibonacci数;函数PrintFN要在一行中输出给定范围[m,n]内的所有Fibonacci数,相邻数字间有一.原创 2021-03-19 16:51:08 · 236 阅读 · 0 评论 -
习题6-3 使用函数输出指定范围内的完数 (20 分)
本题要求实现一个计算整数因子和的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m≤n≤10000)之间的所有完数。所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。函数接口定义:int factorsum( int number );void PrintPN( int m, int n );其中函数factorsum须返回int number的因子和;函数PrintPN要逐行输出给定范围[m,n]内每个完数的因子累加形式的分解式,.原创 2021-03-11 14:01:39 · 234 阅读 · 0 评论 -
习题5-7 使用函数求余弦函数的近似值 (15 分)
本题要求实现一个函数,用下列公式求cos(x)的近似值,精确到最后一项的绝对值小于e:cos(x)=x0/0!−x2/2!+x4/4!−x6/6!+⋯函数接口定义:double funcos( double e, double x );其中用户传入的参数为误差上限e和自变量x;函数funcos应返回用给定公式计算出来、并且满足误差要求的cos(x)的近似值。输入输出均在双精度范围内。裁判测试程序样例:#include <stdio.h>#in原创 2021-03-08 19:00:17 · 263 阅读 · 0 评论 -
习题5-5 使用函数统计指定数字的个数 (15 分)
本题要求实现一个统计整数中指定数字的个数的简单函数。函数接口定义:int CountDigit( int number, int digit );其中number是不超过长整型的整数,digit为[0, 9]区间内的整数。函数CountDigit应返回number中digit出现的次数。裁判测试程序样例:#include <stdio.h>int CountDigit( int number, int digit );int main(){ int nu原创 2021-03-08 16:42:58 · 419 阅读 · 0 评论 -
练习2-15 求简单交错序列前N项和 (15 分)
练习2-15求简单交错序列前N项和(15 分)本题要求编写程序,计算序列 1 - 1/4 + 1/7 - 1/10 + ... 的前N项之和。输入格式:输入在一行中给出一个正整数N。输出格式:在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后三位。题目保证计算结果不超过双精度范围。输入样例:10输出样例:sum = 0.819#...原创 2019-10-03 10:34:03 · 622 阅读 · 1 评论 -
练习2-17 生成3的乘方表 (15 分)
练习2-17生成3的乘方表(15 分)输入一个非负整数n,生成一张3的乘方表,输出30~3n的值。可调用幂函数计算3的乘方。输入格式:输入在一行中给出一个非负整数n。输出格式:按照幂的递增顺序输出n+1行,每行格式为“pow(3,i) = 3的i次幂的值”。题目保证输出数据不超过长整型整数的范围。输入样例:3输出样例:pow(3,0) = ...原创 2019-10-03 10:40:16 · 575 阅读 · 0 评论 -
练习2-18 求组合数 (15 分)
练习2-18求组合数(15 分)本题要求编写程序,根据公式Cnm=m!(n−m)!n!算出从n个不同元素中取出m个元素(m≤n)的组合数。建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是double。输入格式:输入在一行中给出两个正整数m和n(m≤n),以空格分隔。输出格式:按照格式“result = 组合数计算结果”输出。题...原创 2019-10-03 10:41:15 · 682 阅读 · 0 评论 -
练习7-4 找出不是两个数组共有的元素 (20 分)
练习7-4 找出不是两个数组共有的元素 (20 分)给定两个整型数组,本题要求找出不是两者共有的元素。输入格式:输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。输出格式:在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。题目保证至少存在一个这样的数字。同一数字不重复输出。输入样例:...原创 2019-10-04 08:07:36 · 4671 阅读 · 1 评论 -
练习7-8 方阵循环右移 (20 分) (需重写)
练习7-8 方阵循环右移 (20 分)本题要求编写程序,将给定n×n方阵中的每个元素循环向右移m个位置,即将第0、1、⋯、n−1列变换为第n−m、n−m+1、⋯、n−1、0、1、⋯、n−m−1列。输入格式:输入第一行给出两个正整数m和n(1≤n≤6)。接下来一共n行,每行n个整数,表示一个n阶的方阵。输出格式:按照输入格式输出移动后的方阵:即输出n行,每行n个整数,每个整数后输...原创 2019-10-04 08:06:52 · 1502 阅读 · 0 评论 -
练习7-10 查找指定字符 (15 分) (待重写)
练习7-10 查找指定字符 (15 分)本题要求编写程序,从给定字符串中查找某指定的字符。输入格式:输入的第一行是一个待查找的字符。第二行是一个以回车结束的非空字符串(不超过80个字符)。输出格式:如果找到,在一行内按照格式“index = 下标”输出该字符在字符串中所对应的最大下标(下标从0开始);否则输出"Not Found"。输入样例1:mprogrammin...原创 2019-10-11 13:54:23 · 1217 阅读 · 1 评论 -
练习7-11 字符串逆序 (15 分)
练习7-11 字符串逆序 (15 分)输入一个字符串,对该字符串进行逆序,输出逆序后的字符串。输入格式:输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。输出格式:在一行中输出逆序后的字符串。输入样例:Hello World!输出样例:!dlroW olleH#include<stdio.h>int main(){...原创 2019-10-11 14:01:18 · 2365 阅读 · 2 评论 -
习题2-2 阶梯电价 (15 分)
习题2-2阶梯电价(15 分)为了提倡居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个“阶梯”:月用电量50千瓦时(含50千瓦时)以内的,电价为0.53元/千瓦时;超过50千瓦时的,超出部分的用电量,电价上调0.05元/千瓦时。请编写程序计算电费。输入格式:输入在一行中给出某用户的月用电量(单位:千瓦时)。输出格式:在一行中输出该用户应支付的电...原创 2019-10-03 10:42:24 · 9956 阅读 · 0 评论 -
习题2-3 求平方与倒数序列的部分和 (15 分)
习题2-3求平方与倒数序列的部分和(15 分)本题要求对两个正整数m和n(m≤n)编写程序,计算序列和m2+1/m+(m+1)2+1/(m+1)+⋯+n2+1/n。输入格式:输入在一行中给出两个正整数m和n(m≤n),其间以空格分开。输出格式:在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后六位。题目保证计算结果不超过双精度范围。输...原创 2019-10-03 10:43:17 · 1430 阅读 · 0 评论 -
习题2-4 求交错序列前N项和 (15 分)
习题2-4求交错序列前N项和(15 分)本题要求编写程序,计算交错序列 1-2/3+3/5-4/7+5/9-6/11+... 的前N项之和。输入格式:输入在一行中给出一个正整数N。输出格式:在一行中输出部分和的值,结果保留三位小数。输入样例:5输出样例:0.917#include <stdio.h>int main (){ ...原创 2019-10-03 10:51:41 · 530 阅读 · 0 评论 -
习题3-2 高速公路超速处罚 (15 分)浮点数的精度
习题3-2 高速公路超速处罚 (15 分)(有疑问)按照规定,在高速公路上行使的机动车,达到或超出本车道限速的10%则处200元罚款;若达到或超出50%,就要吊销驾驶证。请编写程序根据车速和限速自动判别对该机动车的处理。输入格式:输入在一行中给出2个正整数,分别对应车速和限速,其间以空格分隔。输出格式:在一行中输出处理意见:若属于正常行驶,则输出“OK”;若应处罚款,则输出“E...原创 2019-10-03 10:55:13 · 2730 阅读 · 1 评论 -
习题3-5 三角形判断 (15 分)
习题3-5三角形判断(15 分)给定平面上任意三个点的坐标(x1,y1)、(x2,y2)、(x3,y3),检验它们能否构成三角形。输入格式:输入在一行中顺序给出六个[−100,100]范围内的数字,即三个点的坐标x1、y1、x2、y2、x3、y3。输出格式:若这3个点不能构成三角形,则在一行中输出“Im...原创 2019-10-03 10:52:32 · 3175 阅读 · 0 评论 -
习题4-3 求分数序列前N项和 (15 分)
习题4-3求分数序列前N项和(15 分)本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+... 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。输入格式:输入在一行中给出一个正整数N。输出格式:在一行中输出部分和的值,精确到小数点后两位。题目保证计算结果不超过双精度范围。输入样例:20输出样例:3...原创 2019-10-03 10:53:29 · 1972 阅读 · 0 评论 -
习题4-4 特殊a串数列求和 (20 分)
习题4-4特殊a串数列求和(20 分)给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和。输入格式:输入在一行中给出不超过9的正整数a和n。输出格式:在一行中按照“s = 对应的和”的格式输出。输入样例:2 3输出样例:s = 246#include <stdio.h>#include &...原创 2019-10-03 10:54:13 · 398 阅读 · 0 评论 -
习题4-6 水仙花数 (20 分)
习题4-6水仙花数(20分)水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=13+53+33。 本题要求编写程序,计算所有N位水仙花数。输入格式:输入在一行中给出一个正整数N(3≤N≤7)。输出格式:按递增顺序输出所有N位水仙花数,每个数字占一行。输入样例:3输出样例:1533703...原创 2019-10-04 08:08:56 · 1938 阅读 · 3 评论 -
习题4-7 最大公约数和最小公倍数 (15 分)
习题4-7 最大公约数和最小公倍数 (15 分)本题要求两个给定正整数的最大公约数和最小公倍数。输入格式:输入在一行中给出两个正整数M和N(≤1000)。输出格式:在一行中顺序输出M和N的最大公约数和最小公倍数,两数字间以1空格分隔。输入样例:511 292输出样例:73 2044#include<stdio.h>int mai...原创 2019-10-04 08:09:04 · 1507 阅读 · 1 评论 -
习题4-8 高空坠球 (20 分)
习题4-8 高空坠球 (20 分)皮球从某给定高度自由落下,触地后反弹到原高度的一半,再落下,再反弹,……,如此反复。问皮球在第n次落地时,在空中一共经过多少距离?第n次反弹的高度是多少?输入格式:输入在一行中给出两个非负整数,分别是皮球的初始高度和n,均在长整型范围内。输出格式:在一行中顺序输出皮球第n次落地时在空中经过的距离、以及第n次反弹的高度,其间以一个空格分隔,保留一...原创 2019-10-04 08:08:46 · 1124 阅读 · 0 评论 -
习题4-9 打印菱形图案 (15 分)(需重写)
习题4-9 打印菱形图案 (15 分)(需重写)本题要求编写程序,打印一个高度为n的、由“*”组成的正菱形图案。输入格式:输入在一行中给出一个正的奇数n。输出格式:输出由n行星号“*”组成的菱形,如样例所示。每个星号后跟一个空格。输入样例:7输出样例: * * * * * * * * * * * * * * * * * *...原创 2019-10-04 08:08:35 · 752 阅读 · 0 评论 -
习题4-11 兔子繁衍问题 (15 分)
习题4-11兔子繁衍问题(15分)一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对?输入格式:输入在一行中给出一个不超过10000的正整数N。输出格式:在一行中输出兔子总数达到N最少需要的月数。输入样例:30输出样例:9...原创 2019-10-04 08:08:23 · 556 阅读 · 0 评论 -
习题6-7 简单计算器 (20 分)
习题6-7简单计算器(20分)模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算。输入格式:输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数。遇等号”=”说明输入结束。输出格式:在一行中输出算式的运算结果,或者如果除法分母为0或有非法运算符,则输出错误信息“ERROR”。输入样例:...原创 2019-10-04 08:08:11 · 1231 阅读 · 0 评论 -
习题6-8 统计一行文本的单词个数 (15 分)
习题6-8统计一行文本的单词个数(15分)本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。输入格式:输入给出一行字符。输出格式:在一行中输出单词个数。输入样例:Let's go to room 209.输出样例:5#include<stdio.h>int ...原创 2019-10-04 08:07:51 · 1968 阅读 · 0 评论 -
习题7-1 选择法排序 (20 分)
习题7-1 选择法排序 (20 分)选择法排序与冒泡排序法的区别本题要求将给定的n个整数从大到小排序后输出。输入格式:输入第一行给出一个不超过10的正整数n。第二行给出n个整数,其间以空格分隔。输出格式:在一行中输出从大到小有序的数列,相邻数字间有一个空格,行末不得有多余空格。输入样例:45 1 7 6输出样例:7 6 5 1#include...原创 2019-10-11 14:33:45 · 6302 阅读 · 0 评论 -
习题7-3 判断上三角矩阵 (15 分)
习题7-3 判断上三角矩阵 (15 分)上三角矩阵指主对角线以下的元素都为0的矩阵;主对角线为从矩阵的左上角至右下角的连线。本题要求编写程序,判断一个给定的方阵是否上三角矩阵。输入格式:输入第一行给出一个正整数T,为待测矩阵的个数。接下来给出T个矩阵的信息:每个矩阵信息的第一行给出一个不超过10的正整数n。随后n行,每行给出n个整数,其间以空格分隔。输出格式:每个矩阵的判断...原创 2019-10-22 16:39:21 · 2053 阅读 · 0 评论 -
习题7-4 求矩阵各行元素之和 (15 分)
习题7-4 求矩阵各行元素之和 (15 分)本题要求编写程序,求一个给定的m×n矩阵各行元素之和。输入格式:输入第一行给出两个正整数m和n(1≤m,n≤6)。随后m行,每行给出n个整数,其间以空格分隔。输出格式:每行输出对应矩阵行元素之和。输入样例:3 26 31 -83 12输出样例:9-715#include <stdio.h...原创 2019-10-22 16:50:10 · 957 阅读 · 0 评论 -
习题7-5 找鞍点 (20 分)
习题7-5 找鞍点 (20 分)大家节日快乐~一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。本题要求编写程序,求一个给定的n阶方阵的鞍点。输入格式:输入第一行给出一个正整数n(1≤n≤6)。随后n行,每行给出n个整数,其间以空格分隔。输出格式:输出在一行中按照“行下标 列下标”(下标从0开始)的格式输出鞍点的位置。如果鞍点不存在,则输出“NONE...原创 2019-10-24 23:37:42 · 1079 阅读 · 0 评论 -
习题7-6 统计大写辅音字母 (15 分)
习题7-6 统计大写辅音字母 (15 分)英文辅音字母是除A、E、I、O、U以外的字母。本题要求编写程序,统计给定字符串中大写辅音字母的个数。输入格式:输入在一行中给出一个不超过80个字符、并以回车结束的字符串。输出格式:输出在一行中给出字符串中大写辅音字母的个数。输入样例:HELLO World!输出样例:4#include <stdio.h...原创 2019-10-25 10:38:58 · 3181 阅读 · 0 评论 -
习题7-7 字符串替换 (15 分)
习题7-7 字符串替换 (15 分)本题要求编写程序,将给定字符串中的大写英文字母按以下对应规则替换:原字母 对应字母 A Z B Y C X D W … … X C Y B Z A 输入格式:输入在一行中给出一个不超过80个字符、并以回车结束的字符串。输出格式:输出在一行中给出替换完成后...原创 2019-10-25 10:51:59 · 6102 阅读 · 2 评论 -
习题7-8 字符串转换成十进制整数 (15 分)
习题7-8 字符串转换成十进制整数 (15 分)输入一个以#结束的字符串,本题要求滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出。如果在第一个十六进制字符之前存在字符“-”,则代表该数是负数。输入格式:输入在一行中给出一个以#结束的非空字符串。输出格式:在一行中输出转换后的十进制数。题目保证输出在长整型范围内。输入...原创 2019-10-25 16:14:10 · 4054 阅读 · 0 评论 -
习题8-7 字符串排序 (20 分)
C 库函数 - strcmp()描述C 库函数 int strcmp(const char *str1, const char *str2) 把 str1 所指向的字符串和 str2 所指向的字符串进行比较。声明下面是 strcmp() 函数的声明。int strcmp(const char *str1, const char *str2)参数 str1 --...原创 2019-10-31 14:19:10 · 2687 阅读 · 0 评论 -
习题9-1 时间换算 (15 分)
习题9-1 时间换算 (15 分)本题要求编写程序,以hh:mm:ss的格式输出某给定时间再过n秒后的时间值(超过23:59:59就从0点开始计时)。输入格式:输入在第一行中以hh:mm:ss的格式给出起始时间,第二行给出整秒数n(<60)。输出格式:输出在一行中给出hh:mm:ss格式的结果时间。输入样例:11:59:4030输出样例:12:00...原创 2019-10-25 16:53:31 · 690 阅读 · 0 评论 -
习题9-3 平面向量加法 (15 分)
习题9-3 平面向量加法 (15 分)本题要求编写程序,计算两个二维平面向量的和向量。输入格式:输入在一行中按照“x1 y1 x2 y2”的格式给出两个二维平面向量v1=(x1,y1)和v2=(x2,y2)的分量。输出格式:在一行中按照(x, y)的格式输出和向量,坐标输出小数点后一位(注意不能输出−0.0)。输入...原创 2019-10-25 17:08:03 · 9184 阅读 · 10 评论 -
习题9-4 查找书籍 (20 分)
习题9-4 查找书籍 (20 分)给定n本书的名称和定价,本题要求编写程序,查找并输出其中定价最高和最低的书的名称和定价。输入格式:输入第一行给出正整数n(<10),随后给出n本书的信息。每本书在一行中给出书名,即长度不超过30的字符串,随后一行中给出正实数价格。题目保证没有同样价格的书。输出格式:在一行中按照“价格, 书名”的格式先后输出价格最高和最低的书。价格保留2位...原创 2019-10-27 21:23:28 · 10612 阅读 · 10 评论