![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PTA:浙大版《C语言程序设计(第3版)》题目集
小言同学Y
努力提升自己,记录学习过程。
好好学习,用心记录
展开
-
实验7-2-9 螺旋方阵 (20 分)
所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。本题要求构造这样的螺旋方阵。输入格式:输入在一行中给出一个正整数N(<10)。输出格式:输出N×N的螺旋方阵。每行N个数字,每个数字占3位。输入样例:5输出样例: 1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9#include&l...原创 2021-12-31 19:01:25 · 169 阅读 · 0 评论 -
蛇形矩阵
一、题目描述蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。二、数据输入本题有多组数据,每组数据由一个正整数N组成。(N不大于100)。三、数据输出对于每一组数据,输出一个N行的蛇形矩阵。两组输出之间不要额外的空行。矩阵三角中同一行的数字用一个空格分开。行尾不要多余的空格。输入样例:5输出样例:1 3 6 10 152 5 9 144 8 137 1211#include<stdio.h> int main()...原创 2021-12-30 18:40:52 · 220 阅读 · 0 评论 -
习题7-2 求一批整数中出现最多的个位数字 (20 分)
给定一批整数,分析每个整数的每一位数字,求出现次数最多的个位数字。例如给定3个整数1234、2345、3456,其中出现最多次数的数字是3和4,均出现了3次。输入格式:输入在第1行中给出正整数N(≤1000),在第二行中给出N个不超过整型范围的非负整数,数字间以空格分隔。输出格式:在一行中按格式“M: n1 n2 ...”输出,其中M是最大次数,n1、n2、……为出现次数最多的个位数字,按从小到大的顺序排列。数字间以空格分隔,但末尾不得有多余空格。输入样例:31234 2345原创 2021-11-19 16:51:02 · 539 阅读 · 2 评论 -
习题11-4 字符串的连接 (15 分)
本题要求实现一个函数,将两个字符串连接起来。函数接口定义:char *str_cat( char *s, char *t );函数str_cat应将字符串t复制到字符串s的末端,并且返回字符串s的首地址。裁判测试程序样例:#include <stdio.h>#include <string.h>#define MAXS 10char *str_cat( char *s, char *t );int main(){ char *p;...原创 2021-11-15 14:21:38 · 1035 阅读 · 0 评论 -
水仙花数 (20 分)
水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=13+53+33。 本题要求编写两个函数,一个判断给定整数是否水仙花数,另一个按从小到大的顺序打印出给定区间(m,n)内所有的水仙花数。函数接口定义:int narcissistic( int number );void PrintN( int m, int n );函数narcissistic判断number是否为水仙花数,是则返回1,否则返回0。函数PrintN则打印开区间(m,n)内所.原创 2021-11-15 13:24:57 · 1394 阅读 · 0 评论 -
习题8-5 使用函数实现字符串部分复制 (20 分)
本题要求编写函数,将输入字符串t中从第m个字符开始的全部字符复制到字符串s中。函数接口定义:void strmcpy( char *t, int m, char *s );函数strmcpy将输入字符串char *t中从第m个字符开始的全部字符复制到字符串char *s中。若m超过输入字符串的长度,则结果字符串应为空串。裁判测试程序样例:#include <stdio.h>#define MAXN 20void strmcpy( char *t, int m, c原创 2021-11-15 11:44:36 · 1819 阅读 · 1 评论 -
习题10-1 判断满足条件的三位数 (15 分)
本题要求实现一个函数,统计给定区间内的三位数中有两位数字相同的完全平方数(如144、676)的个数。函数接口定义:int search( int n );其中传入的参数int n是一个三位数的正整数(最高位数字非0)。函数search返回[101,n]区间内所有满足条件的数的个数。裁判测试程序样例:#include <stdio.h>#include <math.h>int search( int n );int main(){ int...原创 2021-11-13 22:59:32 · 495 阅读 · 0 评论 -
习题8-8 判断回文字符串 (20 分)
本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。函数接口定义:bool palindrome( char *s );函数palindrome判断输入字符串char *s是否为回文。若是则返回true,否则返回false。裁判测试程序样例:#include <stdio.h>#include <string.h>#define MAXN 20typedef enu原创 2021-11-13 22:39:12 · 108 阅读 · 0 评论 -
分类统计字符个数 (15 分)
习题6-1 分类统计字符个数 (15 分)本题要求实现一个函数,统计给定字符串中英文字母、空格或回车、数字字符和其他字符的个数。函数接口定义:void StringCount( char s[] );其中char s[]是用户传入的字符串。函数StringCount须在一行内按照letter = 英文字母个数, blank = 空格或回车个数, digit = 数字字符个数, other = 其他字符个数的格式输出。裁判测试程序样例:#include <...原创 2021-11-12 13:04:23 · 1633 阅读 · 0 评论 -
习题11-2 查找星期 (15 分)
本题要求实现函数,可以根据下表查找到星期,返回对应的序号。序号 星期 0 Sunday 1 Monday 2 Tuesday 3 Wednesday 4 Thursday 5 Friday 6 Saturday 函数接口定义:int getindex( char *s );函数getindex应返回字符串s序号。如果传入的参数s不是一个代表星期的字符串,则返回-1。裁判测试程序样例:#include &原创 2021-11-12 11:27:28 · 3405 阅读 · 0 评论 -
习题6-6 使用函数输出一个整数的逆序数 (20 分)
本题要求实现一个求整数的逆序数的简单函数。函数接口定义:int reverse( int number );其中函数reverse须返回用户传入的整型number的逆序数。裁判测试程序样例:#include <stdio.h>int reverse( int number );int main(){ int n; scanf("%d", &n); printf("%d\n", reverse(n)); return ...原创 2021-11-11 16:41:43 · 1267 阅读 · 0 评论 -
习题8-2 在数组中查找指定元素 (15 分)
本题要求实现一个在数组中查找指定元素的简单函数。函数接口定义:int search( int list[], int n, int x );其中list[]是用户传入的数组;n(≥0)是list[]中元素的个数;x是待查找的元素。如果找到则函数search返回相应元素的最小下标(下标从0开始),否则返回−1。裁判测试程序样例:#include <stdio.h>#define MAXN 10int search( int list[], int n, int原创 2021-11-11 16:13:52 · 88 阅读 · 0 评论 -
练习8-8 移动字母 (10 分)
本题要求编写函数,将输入字符串的前3个字符移到最后。函数接口定义:void Shift( char s[] );其中char s[]是用户传入的字符串,题目保证其长度不小于3;函数Shift须将按照要求变换后的字符串仍然存在s[]里。裁判测试程序样例:#include <stdio.h>#include <string.h>#define MAXS 10void Shift( char s[] );void GetString( char s[原创 2021-11-11 15:55:56 · 1346 阅读 · 0 评论 -
习题9-6 按等级统计学生成绩 (20 分)
本题要求实现一个根据学生成绩设置其等级,并统计不及格人数的简单函数。函数接口定义:int set_grade( struct student *p, int n );其中p是指向学生信息的结构体数组的指针,该结构体的定义为:struct student{ int num; char name[20]; int score; char grade;};n是数组元素个数。学号num、姓名name和成绩score均是已经存储好的。set_grade函数...原创 2021-11-06 15:28:02 · 391 阅读 · 0 评论 -
习题6-2 使用函数求特殊a串数列和 (20 分)
给定两个均不超过9的正整数a和n,要求编写函数求a+aa+aaa++⋯+aa⋯a(n个a)之和。函数接口定义:int fn( int a, int n );int SumA( int a, int n );其中函数fn须返回的是n个a组成的数字;SumA返回要求的和。裁判测试程序样例:#include <stdio.h>int fn( int a, int n );int SumA( int a, int n );int main(){ int a..原创 2021-11-06 14:07:36 · 907 阅读 · 0 评论 -
习题9-1 时间换算 (15 分)
本题要求编写程序,以hh:mm:ss的格式输出某给定时间再过n秒后的时间值(超过23:59:59就从0点开始计时)。输入格式:输入在第一行中以hh:mm:ss的格式给出起始时间,第二行给出整秒数n(<60)。输出格式:输出在一行中给出hh:mm:ss格式的结果时间。输入样例:11:59:4030输出样例:12:00:10#include<stdio.h>struct time{ int hour; int minute;原创 2021-11-05 16:35:06 · 131 阅读 · 0 评论 -
习题9-5 通讯录排序 (20 分)
输入n个朋友的信息,包括姓名、生日、电话号码,本题要求编写程序,按照年龄从大到小的顺序依次输出通讯录。题目保证所有人的生日均不相同。输入格式:输入第一行给出正整数n(<10)。随后n行,每行按照“姓名 生日 电话号码”的格式给出一位朋友的信息,其中“姓名”是长度不超过10的英文字母组成的字符串,“生日”是yyyymmdd格式的日期,“电话号码”是不超过17位的数字及+、-组成的字符串。输出格式:按照年龄从大到小输出朋友的信息,格式同输出。输入样例:3zhang 198504原创 2021-11-04 19:13:40 · 207 阅读 · 0 评论 -
习题11-3 计算最长的字符串长度 (15 分)
本题要求实现一个函数,用于计算有n个元素的指针数组s中最长的字符串的长度。函数接口定义:int max_len( char *s[], int n );其中n个字符串存储在s[]中,函数max_len应返回其中最长字符串的长度。裁判测试程序样例:#include <stdio.h>#include <string.h>#include <stdlib.h>#define MAXN 10#define MAXS 20int max_l原创 2021-11-01 15:51:13 · 277 阅读 · 0 评论 -
实验2-4-1 统计各位数字之和是5的数 (20 分)
本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于5;另一个函数统计给定区间内有多少个满足上述要求的整数,并计算这些整数的和。函数接口定义:int is( int number );void count_sum( int a, int b );函数is判断number的各位数字之和是否等于5,是则返回1,否则返回0。函数count_sum利用函数is统计给定区间[a,b]内有多少个满足上述要求(即令is返回1)的整数,并计算这些整数的和。最后按照格式count .原创 2021-10-31 16:49:11 · 403 阅读 · 0 评论 -
实验5-6 使用函数判断完全平方数 (10 分)
本题要求实现一个判断整数是否为完全平方数的简单函数。函数接口定义:int IsSquare( int n );其中n是用户传入的参数,在长整型范围内。如果n是完全平方数,则函数IsSquare必须返回1,否则返回0。裁判测试程序样例:#include <stdio.h>#include <math.h>int IsSquare( int n );int main(){ int n; scanf("%d", &n); ...原创 2021-10-31 15:24:46 · 831 阅读 · 0 评论 -
习题7-7 字符串替换 (15 分)
本题要求编写程序,将给定字符串中的大写英文字母按以下对应规则替换:原字母 对应字母 A Z B Y C X D W … … X C Y B Z A 输入格式:输入在一行中给出一个不超过80个字符、并以回车结束的字符串。输出格式:输出在一行中给出替换完成后的字符串。输入样例:Only the 11 CAPItaL LeTtERS are replaced.输出样例:Lnly the原创 2021-10-29 13:42:09 · 443 阅读 · 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-10-25 20:13:09 · 235 阅读 · 0 评论 -
习题10-4 递归求简单交错幂级数的部分和 (15 分)
本题要求实现一个函数,计算下列简单交错幂级数的部分和:f(x,n)=x−x2+x3−x4+⋯+(−1)n−1xn函数接口定义:double fn( double x, int n );其中题目保证传入的n是正整数,并且输入输出都在双精度范围内。函数fn应返回上述级数的部分和。建议尝试用递归实现。裁判测试程序样例:#include <stdio.h>double fn( double x, int n );int main(){ double x;..原创 2021-10-23 22:45:13 · 5553 阅读 · 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-10-22 20:46:25 · 6108 阅读 · 0 评论 -
习题5-4 使用函数求素数和 (20 分)
本题要求实现一个判断素数的简单函数、以及利用该函数计算给定区间内素数和的函数。素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。函数接口定义:int prime( int p );int PrimeSum( int m, int n );其中函数prime当用户传入参数p为素数时返回1,否则返回0;函数PrimeSum返回区间[m,n]内所有素数的和。题目保证用户传入的参数m≤n。裁判测试程序样例:#include <stdio.h>#inclu.原创 2021-10-21 20:32:55 · 154 阅读 · 0 评论 -
练习7-3 将数组中的数逆序存放 (20 分)
本题要求编写程序,将给定的n个整数存入数组中,将数组中的这n个数逆序存放,再按顺序输出数组中的元素。输入格式:输入在第一行中给出一个正整数n(1≤n≤10)。第二行输入n个整数,用空格分开。输出格式:在一行中输出这n个整数的处理结果,相邻数字中间用一个空格分开,行末不得有多余空格。输入样例:410 8 1 2输出样例:2 1 8 10#include<stdio.h>int main(){ int i,n; int a[10];原创 2021-10-18 21:54:11 · 323 阅读 · 0 评论 -
练习7-9 计算天数 (15 分)
本题要求编写程序计算某年某月某日是该年中的第几天。输入格式:输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。输出格式:在一行输出日期是该年中的第几天。输入样例1:2009/03/02输出样例1:61输入样例2:2000/03/02输出样例2:62#include<stdio.h>int main(){原创 2021-10-17 17:37:09 · 161 阅读 · 0 评论 -
习题8-7 字符串排序 (20 分)
本题要求编写程序,读入5个字符串,按由小到大的顺序输出。输入格式:输入为由空格分隔的5个非空字符串,每个字符串不包括空格、制表符、换行符等空白字符,长度小于80。输出格式:按照以下格式输出排序后的结果:After sorted:每行一个字符串输入样例:red yellow blue black white输出样例:After sorted:blackblueredwhiteyellow#include<stdio.h>#inc.原创 2021-10-16 18:55:16 · 109 阅读 · 0 评论 -
习题7-4 求矩阵各行元素之和 (15 分)
本题要求编写程序,求一个给定的m×n矩阵各行元素之和。输入格式:输入第一行给出两个正整数m和n(1≤m,n≤6)。随后m行,每行给出n个整数,其间以空格分隔。输出格式:每行输出对应矩阵行元素之和。输入样例:3 26 31 -83 12输出样例:9-715#include<stdio.h>int main(){ int k[7][7],i,j,n,m,temp; scanf("%d %d",&n,&m);原创 2021-10-15 22:25:14 · 778 阅读 · 0 评论 -
练习7-11 字符串逆序 (15 分)
输入一个字符串,对该字符串进行逆序,输出逆序后的字符串。输入格式:输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。输出格式:在一行中输出逆序后的字符串。输入样例:Hello Word!输出样例:!dlroW olleH#include<stdio.h>#include<string.h>int main(){ char ch[100],s; int i,j,n; gets(ch);原创 2021-10-15 13:59:25 · 319 阅读 · 0 评论 -
习题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<math.h>int main(){ int a,n,sum=0,i; int num1=0,j=1,num2=0;原创 2021-10-14 16:35:30 · 155 阅读 · 0 评论 -
习题4-3 求分数序列前N项和 (15 分)
本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+... 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。输入格式:输入在一行中给出一个正整数N。输出格式:在一行中输出部分和的值,精确到小数点后两位。题目保证计算结果不超过双精度范围。输入样例:20输出样例:32.66#include <stdio.h>int main(){ int n,i; double sum=0,a=1原创 2021-10-13 20:10:05 · 8237 阅读 · 0 评论 -
习题4-2 求幂级数展开的部分和 (20 分)
已知函数ex可以展开为幂级数1+x+x2/2!+x3/3!+⋯+xk/k!+⋯。现给定一个实数x,要求利用此幂级数部分和求ex的近似值,求和一直继续到最后一项的绝对值小于0.00001。输入格式:输入在一行中给出一个实数x∈[0,5]。输出格式:在一行中输出满足条件的幂级数部分和,保留小数点后四位。输入样例:1.2输出样例:3.3201#include<stdio.h>#include<math.h>int main(){原创 2021-10-13 19:57:31 · 6761 阅读 · 0 评论 -
练习4-3 求给定精度的简单交错序列部分和 (15 分)
本题要求编写程序,计算序列部分和 1 - 1/4 + 1/7 - 1/10 + ... 直到最后一项的绝对值不大于给定精度eps。输入格式:输入在一行中给出一个正实数eps。输出格式:在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后六位。题目保证计算结果不超过双精度范围。输入样例1:4E-2输出样例1:sum = 0.854457输入样例2:0.02输出样例2:sum = 0.826310#include <st原创 2021-10-12 19:05:39 · 288 阅读 · 0 评论 -
实验4-2-6 输出三角形字符阵列 (15 分)
本题要求编写程序,输出n行由大写字母A开始构成的三角形字符阵列。输入格式:输入在一行中给出一个正整数n(1≤n<7)。输出格式:输出n行由大写字母A开始构成的三角形字符阵列。格式见输出样例,其中每个字母后面都有一个空格。输入样例:4输出样例:A B C DE F GH IJ#include <stdio.h>int main(){ char ch='A'; int n,i,j; scanf("%d",&...原创 2021-10-11 19:51:50 · 1617 阅读 · 0 评论 -
习题4-9 打印菱形图案(15分)
本题要求编写程序,打印一个高度为n的、由 “*” 组成的正菱形图案。输入格式:输入在一行中给出一个正的奇数n。输出格式:输出由n行星号 “*” 组成的菱形,如样例所示。每个星号后跟一个空格。输入样例:7输出样例: * * * * * * * * ** * * * * * * * * * * * * * * *#include <stdio.h>int main(){ int...原创 2021-10-10 23:42:30 · 36032 阅读 · 16 评论