PTA
ChaoYue_miku
这个作者很懒,什么都没留下…
展开
-
习题11-8 单链表结点删除 (20 分)
习题11-8 单链表结点删除 (20 分)本题要求实现两个函数,分别将读入的数据存储为单链表、将链表中所有存储了某给定值的结点删除。链表结点定义如下:struct ListNode {int data;ListNode *next;};函数接口定义:struct ListNode *readlist();struct ListNode *deletem( struct ListNode *L, int m );函数readlist从标准输入读入一系列正整数,按照读入顺序建立单链表。当读到−原创 2021-05-29 23:53:12 · 302 阅读 · 0 评论 -
习题11-7 奇数值结点链表 (20 分)
习题11-7 奇数值结点链表 (20 分)本题要求实现两个函数,分别将读入的数据存储为单链表、将链表中奇数值的结点重新组成一个新的链表。链表结点定义如下:struct ListNode {int data;ListNode *next;};函数接口定义:struct ListNode *readlist();struct ListNode *getodd( struct ListNode **L );函数readlist从标准输入读入一系列正整数,按照读入顺序建立单链表。当读到−1时表示输原创 2021-05-28 23:51:27 · 167 阅读 · 0 评论 -
习题11-6 查找子串 (20 分)
习题11-6 查找子串 (20 分)本题要求实现一个字符串查找的简单函数。函数接口定义:char *search( char *s, char *t );函数search在字符串s中查找子串t,返回子串t在s中的首地址。若未找到,则返回NULL。裁判测试程序样例:#include <stdio.h>#define MAXS 30char *search(char *s, char t);void ReadString( char s[] ); / 裁判提供,细节不表 */in原创 2021-05-27 23:46:14 · 352 阅读 · 0 评论 -
习题11-5 指定位置输出字符串 (20 分)
习题11-5 指定位置输出字符串 (20 分)本题要求实现一个函数,对给定的一个字符串和两个字符,打印出给定字符串中从与第一个字符匹配的位置开始到与第二个字符匹配的位置之间的所有字符。函数接口定义:char *match( char *s, char ch1, char ch2 );函数match应打印s中从ch1到ch2之间的所有字符,并且返回ch1的地址。裁判测试程序样例:#include <stdio.h>#define MAXS 10char *match( char *原创 2021-05-26 22:57:02 · 286 阅读 · 0 评论 -
习题11-4 字符串的连接 (15 分)
习题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原创 2021-05-25 23:32:32 · 371 阅读 · 0 评论 -
习题11-3 计算最长的字符串长度 (15 分)
习题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 MA原创 2021-05-24 23:38:28 · 445 阅读 · 0 评论 -
习题11-2 查找星期 (15 分)
习题11-2 查找星期 (15 分)本题要求实现函数,可以根据下表查找到星期,返回对应的序号。序号 星期0 Sunday1 Monday2 Tuesday3 Wednesday4 Thursday5 Friday6 Saturday函数接口定义:int getindex( char *s );函数getindex应返回字符串s序号。如果传入的参数s不是一个代表星期的字符串,则返回-1。裁判测试程序样例:#include <stdio.h>#include <s原创 2021-05-23 23:22:56 · 625 阅读 · 0 评论 -
习题11-1 输出月份英文名 (15 分)
习题11-1 输出月份英文名 (15 分)本题要求实现函数,可以返回一个给定月份的英文名称。函数接口定义:char *getmonth( int n );函数getmonth应返回存储了n对应的月份英文名称的字符串头指针。如果传入的参数n不是一个代表月份的数字,则返回空指针NULL。裁判测试程序样例:#include <stdio.h>char *getmonth( int n );int main(){int n;char *s;scanf("%d", &n);原创 2021-05-22 23:11:58 · 299 阅读 · 0 评论 -
习题10-8 递归实现顺序输出整数 (15 分)
习题10-8 递归实现顺序输出整数 (15 分)本题要求实现一个函数,对一个整数进行按位顺序输出。函数接口定义:void printdigits( int n );函数printdigits应将n的每一位数字从高位到低位顺序打印出来,每位数字占一行。裁判测试程序样例:#include <stdio.h>void printdigits( int n );int main(){int n;scanf("%d", &n);printdigits(n);return原创 2021-05-21 23:28:18 · 227 阅读 · 0 评论 -
习题10-7 十进制转换二进制 (15 分)
习题10-7 十进制转换二进制 (15 分)本题要求实现一个函数,将正整数n转换为二进制后输出。函数接口定义:void dectobin( int n );函数dectobin应在一行中打印出二进制的n。建议用递归实现。裁判测试程序样例:#include <stdio.h>void dectobin( int n );int main(){int n;scanf("%d", &n);dectobin(n);return 0;}/* 你的代码将被嵌在这里原创 2021-05-20 23:55:01 · 476 阅读 · 0 评论 -
习题10-6 递归求Fabonacci数列 (10 分)
习题10-6 递归求Fabonacci数列 (10 分)本题要求实现求Fabonacci数列项的函数。Fabonacci数列的定义如下:f(n)=f(n−2)+f(n−1) (n≥2),其中f(0)=0,f(1)=1。函数接口定义:int f( int n );函数f应返回第n个Fabonacci数。题目保证输入输出在长整型范围内。建议用递归实现。裁判测试程序样例:#include <stdio.h>int f( int n );int main(){int n;scan原创 2021-05-19 23:47:13 · 358 阅读 · 0 评论 -
习题10-5 递归计算Ackermenn函数 (15 分)
习题10-5 递归计算Ackermenn函数 (15 分)本题要求实现Ackermenn函数的计算,其函数定义如下:函数接口定义:int Ack( int m, int n );其中m和n是用户传入的非负整数。函数Ack返回Ackermenn函数的相应值。题目保证输入输出都在长整型范围内。裁判测试程序样例:#include <stdio.h>int Ack( int m, int n );int main(){int m, n;scanf("%d %d", &m原创 2021-05-18 23:17:58 · 730 阅读 · 0 评论 -
习题10-4 递归求简单交错幂级数的部分和 (15 分)
习题10-4 递归求简单交错幂级数的部分和 (15 分)本题要求实现一个函数,计算下列简单交错幂级数的部分和:函数接口定义:double fn( double x, int n );其中题目保证传入的n是正整数,并且输入输出都在双精度范围内。函数fn应返回上述级数的部分和。建议尝试用递归实现。裁判测试程序样例:#include <stdio.h>double fn( double x, int n );int main(){double x;int n;scanf("%原创 2021-05-17 23:50:36 · 261 阅读 · 0 评论 -
习题10-3 递归实现指数函数 (15 分)
习题10-3 递归实现指数函数 (15 分)本题要求实现一个计算xn (n≥1)的函数。函数接口定义:double calc_pow( double x, int n );函数calc_pow应返回x的n次幂的值。建议用递归实现。题目保证结果在双精度范围内。裁判测试程序样例:#include <stdio.h>double calc_pow( double x, int n );int main(){double x;int n;scanf("%lf %d",原创 2021-05-16 23:56:56 · 211 阅读 · 0 评论 -
习题10-2 递归求阶乘和 (15 分)
习题10-2 递归求阶乘和 (15 分)本题要求实现一个计算非负整数阶乘的简单函数,并利用该函数求 1!+2!+3!+…+n! 的值。函数接口定义:double fact( int n );double factsum( int n );函数fact应返回n的阶乘,建议用递归实现。函数factsum应返回 1!+2!+…+n! 的值。题目保证输入输出在双精度范围内。裁判测试程序样例:#include <stdio.h>double fact( int n );double fa原创 2021-05-15 23:58:57 · 1344 阅读 · 0 评论 -
习题10-1 判断满足条件的三位数 (15 分)
习题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 m原创 2021-05-14 23:54:06 · 337 阅读 · 0 评论 -
练习10-1 使用递归函数计算1到n之和 (10 分)
练习10-1 使用递归函数计算1到n之和 (10 分)本题要求实现一个用递归计算1+2+3+…+n的和的简单函数。函数接口定义:int sum( int n );该函数对于传入的正整数n返回1+2+3+…+n的和;若n不是正整数则返回0。题目保证输入输出在长整型范围内。建议尝试写成递归函数。裁判测试程序样例:#include <stdio.h>int sum( int n );int main(){int n;scanf("%d", &n);printf ("%d原创 2021-05-13 23:56:40 · 349 阅读 · 0 评论 -
习题9-6 按等级统计学生成绩 (20 分)
习题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-05-12 23:57:49 · 661 阅读 · 0 评论 -
习题9-2 计算两个复数之积 (15 分)
习题9-2 计算两个复数之积 (15 分)本题要求实现一个计算复数之积的简单函数。函数接口定义:struct complex multiply(struct complex x, struct complex y);其中struct complex是复数结构体,其定义如下:struct complex{int real;int imag;};裁判测试程序样例:#include <stdio.h>struct complex{int real;int imag;};s原创 2021-05-11 23:58:33 · 616 阅读 · 0 评论 -
习题8-9 分类统计各类字符个数 (15 分)
习题8-9 分类统计各类字符个数 (15 分)本题要求实现一个函数,统计给定字符串中的大写字母、小写字母、空格、数字以及其它字符各有多少。函数接口定义:void StringCount( char *s );其中 char *s 是用户传入的字符串。函数StringCount须在一行内按照大写字母个数 小写字母个数 空格个数 数字个数 其它字符个数的格式输出。裁判测试程序样例:#include <stdio.h>#define MAXS 15void StringCount(原创 2021-05-10 23:54:03 · 366 阅读 · 0 评论 -
练习8-8 移动字母 (10 分)
练习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(原创 2021-05-09 23:49:54 · 390 阅读 · 0 评论 -
练习8-2 计算两数的和与差 (10 分)
练习8-2 计算两数的和与差 (10 分)本题要求实现一个计算输入的两数的和与差的简单函数。函数接口定义:void sum_diff( float op1, float op2, float *psum, float *pdiff );其中op1和op2是输入的两个实数,psum和pdiff是计算得出的和与差。裁判测试程序样例:#include <stdio.h>void sum_diff( float op1, float op2, float *psum, float *pdi原创 2021-05-08 23:43:27 · 213 阅读 · 0 评论 -
习题6-6 使用函数输出一个整数的逆序数 (20 分)
习题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-05-07 23:42:17 · 864 阅读 · 0 评论 -
习题6-5 使用函数验证哥德巴赫猜想 (20 分)
习题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可原创 2021-05-06 23:33:09 · 371 阅读 · 0 评论 -
习题6-4 使用函数输出指定范围内的Fibonacci数 (20 分)
习题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要在一行中输出原创 2021-05-05 23:56:59 · 709 阅读 · 0 评论 -
习题6-3 使用函数输出指定范围内的完数 (20 分)
习题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要逐行输出给定范原创 2021-05-04 22:19:05 · 289 阅读 · 0 评论 -
习题6-2 使用函数求特殊a串数列和 (20 分)
习题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 ma原创 2021-05-03 21:47:38 · 286 阅读 · 0 评论 -
习题6-1 分类统计字符个数 (15 分)
习题6-1 分类统计字符个数 (15 分)本题要求实现一个函数,统计给定字符串中英文字母、空格或回车、数字字符和其他字符的个数。函数接口定义:void StringCount( char s[] );其中 char s[] 是用户传入的字符串。函数StringCount须在一行内按照letter = 英文字母个数, blank = 空格或回车个数, digit = 数字字符个数, other = 其他字符个数的格式输出。裁判测试程序样例:#include <stdio.h>#d原创 2021-05-02 23:47:12 · 224 阅读 · 0 评论 -
习题5-7 使用函数求余弦函数的近似值 (15 分)
习题5-7 使用函数求余弦函数的近似值 (15 分)本题要求实现一个函数,用下列公式求cos(x)的近似值,精确到最后一项的绝对值小于e:函数接口定义:double funcos( double e, double x );其中用户传入的参数为误差上限e和自变量x;函数funcos应返回用给定公式计算出来、并且满足误差要求的cos(x)的近似值。输入输出均在双精度范围内。裁判测试程序样例:#include <stdio.h>#include <math.h>doub原创 2021-05-01 08:44:58 · 4813 阅读 · 1 评论 -
习题5-6 使用函数输出水仙花数 (20 分)
习题5-6 使用函数输出水仙花数 (20 分)水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如: 。 本题要求编写两个函数,一个判断给定整数是否水仙花数,另一个按从小到大的顺序打印出给定区间(m,n)内所有的水仙花数。函数接口定义:int narcissistic( int number );void PrintN( int m, int n );函数narcissistic判断number是否为水仙花数,是则返回1,否则返回0。函数PrintN则打印开原创 2021-04-30 22:25:03 · 1038 阅读 · 1 评论 -
习题5-5 使用函数统计指定数字的个数 (15 分)
习题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 m原创 2021-04-29 22:19:57 · 329 阅读 · 0 评论 -
习题5-4 使用函数求素数和 (20 分)
习题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原创 2021-04-28 23:09:23 · 2939 阅读 · 4 评论 -
练习5-3 数字金字塔 (15 分)
练习5-3 数字金字塔 (15 分)本题要求实现函数输出n行数字金字塔。函数接口定义:void pyramid( int n );其中n是用户传入的参数,为[1, 9]的正整数。要求函数按照如样例所示的格式打印出n行数字金字塔。注意每个数字后面跟一个空格。裁判测试程序样例:#include <stdio.h>void pyramid( int n );int main(){int n;scanf("%d", &n);pyramid(n);return 0;原创 2021-04-26 22:50:14 · 175 阅读 · 0 评论 -
练习5-2 找两个数中最大者 (10 分)
练习5-2 找两个数中最大者 (10 分)本题要求对两个整数a和b,输出其中较大的数。函数接口定义:int max( int a, int b );其中a和b是用户传入的参数,函数返回的是两者中较大的数。裁判测试程序样例:#include <stdio.h>int max( int a, int b );int main(){int a, b;scanf("%d %d", &a, &b);printf("max = %d\n", max(a, b));原创 2021-04-25 21:28:20 · 292 阅读 · 0 评论 -
练习5-1 求m到n之和 (10 分)
练习5-1 求m到n之和 (10 分)本题要求实现一个计算m~n(m<n)之间所有整数的和的简单函数。函数接口定义:int sum( int m, int n );其中m和n是用户传入的参数,保证有m<n。函数返回的是m~n之间所有整数的和。裁判测试程序样例:#include <stdio.h>int sum(int m, int n);int main(){int m, n;scanf("%d %d", &m, &n);printf("sum原创 2021-04-24 22:56:28 · 341 阅读 · 0 评论 -
习题9-5 通讯录排序 (20 分)
习题9-5 通讯录排序 (20 分)输入n个朋友的信息,包括姓名、生日、电话号码,本题要求编写程序,按照年龄从大到小的顺序依次输出通讯录。题目保证所有人的生日均不相同。输入格式:输入第一行给出正整数n(<10)。随后n行,每行按照“姓名 生日 电话号码”的格式给出一位朋友的信息,其中“姓名”是长度不超过10的英文字母组成的字符串,“生日”是yyyymmdd格式的日期,“电话号码”是不超过17位的数字及+、-组成的字符串。输出格式:按照年龄从大到小输出朋友的信息,格式同输出。输入样例:3原创 2021-04-23 21:17:57 · 795 阅读 · 0 评论 -
习题9-4 查找书籍 (20 分)
习题9-4 查找书籍 (20 分)给定n本书的名称和定价,本题要求编写程序,查找并输出其中定价最高和最低的书的名称和定价。输入格式:输入第一行给出正整数n(<10),随后给出n本书的信息。每本书在一行中给出书名,即长度不超过30的字符串,随后一行中给出正实数价格。题目保证没有同样价格的书。输出格式:在一行中按照“价格, 书名”的格式先后输出价格最高和最低的书。价格保留2位小数。输入样例:3Programming in C21.5Programming in VB18.5Prog原创 2021-04-22 23:40:03 · 115 阅读 · 0 评论 -
习题9-3 平面向量加法 (15 分)
习题9-3 平面向量加法 (15 分)本题要求编写程序,计算两个二维平面向量的和向量。输入格式:输出格式:在一行中按照(x, y)的格式输出和向量,坐标输出小数点后一位(注意不能输出−0.0)。输入样例:3.5 -2.7 -13.9 8.7输出样例:(-10.4, 6.0)#include <stdio.h>#include <math.h> int main(){ double x1,y1,x2,y2; scanf("%lf %lf %lf原创 2021-04-21 22:41:38 · 105 阅读 · 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:10#include<stdio.h>#include<math.h>int main(){原创 2021-04-20 22:32:41 · 189 阅读 · 0 评论 -
习题8-10 输出学生成绩 (20 分)
习题8-10 输出学生成绩 (20 分)本题要求编写程序,根据输入学生的成绩,统计并输出学生的平均成绩、最高成绩和最低成绩。建议使用动态内存分配来实现。输入格式:输入第一行首先给出一个正整数N,表示学生的个数。接下来一行给出N个学生的成绩,数字间以空格分隔。输出格式:按照以下格式输出:average = 平均成绩max = 最高成绩min = 最低成绩结果均保留两位小数。输入样例:385 90 95输出样例:average = 90.00max = 95.00min = 85原创 2021-04-19 23:37:50 · 474 阅读 · 1 评论