浙大版C语言实验
PTA C语言实验
追寻远方的人
你的职责是平整土地,而非焦虑时光。
展开
-
实验11-2-9 链表逆置 (20分)
实验11-2-9 链表逆置 (20分)本题要求实现一个函数,将给定单向链表逆置,即表头置为表尾,表尾置为表头。链表结点定义如下:struct ListNode { int data; struct ListNode *next;};函数接口定义:struct ListNode *reverse( struct ListNode *head );其中head是用户传入的链表的头指针;函数reverse将链表head逆置,并返回结果链表的头指针。裁判测试程序样例:#inclu原创 2021-02-05 11:09:38 · 431 阅读 · 0 评论 -
实验11-2-8 单链表结点删除 (20分)
实验11-2-8 单链表结点删除 (20分)本题要求实现两个函数,分别将读入的数据存储为单链表、将链表中所有存储了某给定值的结点删除。链表结点定义如下:struct ListNode { int data; ListNode *next;};函数接口定义:struct ListNode *readlist();struct ListNode *deletem( struct ListNode *L, int m );函数readlist从标准输入读入一系列正整数,按照读入顺序原创 2021-02-05 11:08:15 · 143 阅读 · 0 评论 -
实验11-2-7 统计专业人数 (15分)
实验11-2-7 统计专业人数 (15分)本题要求实现一个函数,统计学生学号链表中专业为计算机的学生人数。链表结点定义如下:struct ListNode { char code[8]; struct ListNode *next;};这里学生的学号共7位数字,其中第2、3位是专业编号。计算机专业的编号为02。函数接口定义:int countcs( struct ListNode *head );其中head是用户传入的学生学号链表的头指针;函数countcs统计并返回he原创 2021-02-05 11:06:07 · 332 阅读 · 0 评论 -
实验11-2-6 奇数值结点链表 (20分)
实验11-2-6 奇数值结点链表 (20分)本题要求实现两个函数,分别将读入的数据存储为单链表、将链表中奇数值的结点重新组成一个新的链表。链表结点定义如下:struct ListNode { int data; ListNode *next;};函数接口定义:struct ListNode *readlist();struct ListNode *getodd( struct ListNode **L );函数readlist从标准输入读入一系列正整数,按照读入顺序建立单链表原创 2021-02-05 11:04:24 · 111 阅读 · 0 评论 -
实验11-2-5 链表拼接 (20 分)
实验11-2-5 链表拼接 (20 分)本题要求实现一个合并两个有序链表的简单函数。链表结点定义如下:struct ListNode { int data; struct ListNode *next;};函数接口定义:struct ListNode *mergelists(struct ListNode *list1, struct ListNode *list2);其中list1和list2是用户传入的两个按data升序链接的链表的头指针;函数mergelists将两个链表原创 2021-02-05 10:47:26 · 749 阅读 · 0 评论 -
实验11-2-3 逆序数据建立链表 (20分)
实验11-2-3 逆序数据建立链表 (20分)本题要求实现一个函数,按输入数据的逆序建立一个链表。函数接口定义:struct ListNode *createlist();函数createlist利用scanf从输入中获取一系列正整数,当读到−1时表示输入结束。按输入数据的逆序建立一个链表,并返回链表头指针。链表节点结构定义如下:struct ListNode { int data; struct ListNode *next;};裁判测试程序样例:#include &l原创 2021-02-05 10:24:22 · 873 阅读 · 0 评论 -
实验11-2-2 学生成绩链表处理 (20分)
实验11-2-2 学生成绩链表处理 (20分)本题要求实现两个函数,一个将输入的学生成绩组织成单向链表;另一个将成绩低于某分数线的学生结点从链表中删除。函数接口定义:struct stud_node *createlist();struct stud_node *deletelist( struct stud_node *head, int min_score );函数createlist利用scanf从输入中获取学生的信息,将其组织成单向链表,并返回链表头指针。链表节点结构定义如下:str原创 2021-02-05 10:07:56 · 489 阅读 · 0 评论 -
实验11-2-1 建立学生信息链表 (20 分)
实验11-2-1 建立学生信息链表 (20 分)本题要求实现一个将输入的学生成绩组织成单向链表的简单函数。函数接口定义:void input();该函数利用scanf从输入中获取学生的信息,并将其组织成单向链表。链表节点结构定义如下:struct stud_node { int num; /*学号*/ char name[20]; /*姓名*/ int score; /*成绩*/原创 2021-02-05 09:33:53 · 206 阅读 · 0 评论 -
实验11-1-3 查找星期 (15 分)
实验11-1-3 查找星期 (15 分)本题要求实现函数,可以根据下表查找到星期,返回对应的序号。序号 星期0 Sunday1 Monday2 Tuesday3 Wednesday4 Thursday5 Friday6 Saturday函数接口定义:int getindex( char *s );函数getindex应返回字符串s序号。如果传入的参数s不是一个代表星期的字符串,则返回-1。裁判测试程序样例:#include <stdio.h>#include &原创 2021-02-04 20:23:58 · 521 阅读 · 0 评论 -
实验11-1-2 输出月份英文名 (15分)
实验11-1-2 输出月份英文名 (15分)本题要求实现函数,可以返回一个给定月份的英文名称。函数接口定义:char *getmonth( int n );函数getmonth应返回存储了n对应的月份英文名称的字符串头指针。如果传入的参数n不是一个代表月份的数字,则返回空指针NULL。裁判测试程序样例:#include <stdio.h>char *getmonth( int n );int main(){ int n; char *s; sc原创 2021-02-04 20:15:05 · 1056 阅读 · 0 评论 -
实验10-9 十进制转换二进制 (15 分)
实验10-9 十进制转换二进制 (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原创 2021-02-04 19:45:12 · 444 阅读 · 0 评论 -
实验8-2-3 删除字符 (20分)
实验8-2-3 删除字符 (20分)本题要求实现一个删除字符串中的指定字符的简单函数。函数接口定义:void delchar( char *str, char c );其中char *str是传入的字符串,c是待删除的字符。函数delchar的功能是将字符串str中出现的所有c字符删除。裁判测试程序样例:#include <stdio.h>#define MAXN 20void delchar( char *str, char c );void ReadString( c原创 2021-02-04 16:46:42 · 316 阅读 · 0 评论 -
实验8-1-8 报数 (20 分)
实验8-1-8 报数 (20 分)报数游戏是这样的:有n个人围成一圈,按顺序从1到n编好号。从第一个人开始报数,报到m(<n)的人退出圈子;下一个人从1开始报数,报到m的人退出圈子。如此下去,直到留下最后一个人。本题要求编写函数,给出每个人的退出顺序编号。函数接口定义:void CountOff( int n, int m, int out[] );其中n是初始人数;m是游戏规定的退出位次(保证为小于n的正整数)。函数CountOff将每个人的退出顺序编号存在数组out[]中。因为C语言原创 2021-02-04 16:35:35 · 765 阅读 · 0 评论 -
实验6-5 使用函数输出指定范围内的Fibonacci数 (20分)
实验6-5 使用函数输出指定范围内的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-02-04 11:05:26 · 1189 阅读 · 4 评论 -
实验6-4 使用函数输出指定范围内的完数 (20分)
实验6-4 使用函数输出指定范围内的完数 (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-02-04 10:42:26 · 329 阅读 · 0 评论 -
实验11-1-9 藏尾诗 (20分)
实验11-1-9 藏尾诗 (20分)本题要求编写一个解密藏尾诗的程序。输入格式:输入为一首中文藏尾诗,一共四句。每句一行,但句子不一定是等长的,最短一个汉字,最长九个汉字。注意:一个汉字占两个字节。输出格式:取出每句的最后一个汉字并连接在一起形成一个字符串并输出。同时在末尾输入一个换行符。输入样例:悠悠田园风然而心难平兰花轻涌浪兰香愈幽静输出样例:风平浪静#include <stdio.h>#include <string.h>int main(原创 2021-02-03 19:44:47 · 286 阅读 · 0 评论 -
实验10-1 圆形体体积计算器 (20分)
实验10-1 圆形体体积计算器 (20分)本题要求实现一个常用圆形体体积的计算器。计算公式如下:球体体积 V=(3/4)πr3,其中r是球体半径。圆柱体体积 V=πr2h,其中r是底圆半径,h是高。圆锥体体积 V=(1/3)πr2h,其中r是底圆半径,h是高。输入格式:在每次计算之前,要求输出如下界面:1-Ball2-Cylinder3-Coneother-ExitPlease enter your command:然后从标准输入读进一个整数指令。输出格式:如果读入的指原创 2021-02-03 19:14:21 · 902 阅读 · 0 评论 -
实验9-5 查找书籍 (20 分)
实验9-5 查找书籍 (20 分)给定n本书的名称和定价,本题要求编写程序,查找并输出其中定价最高和最低的书的名称和定价。输入格式:输入第一行给出正整数n(<10),随后给出n本书的信息。每本书在一行中给出书名,即长度不超过30的字符串,随后一行中给出正实数价格。题目保证没有同样价格的书。输出格式:在一行中按照“价格, 书名”的格式先后输出价格最高和最低的书。价格保留2位小数。输入样例:3Programming in C21.5Programming in VB18.5P原创 2021-02-03 17:17:31 · 460 阅读 · 2 评论 -
实验8-1-9 输出学生成绩 (20 分)
实验8-1-9 输出学生成绩 (20 分)本题要求编写程序,根据输入学生的成绩,统计并输出学生的平均成绩、最高成绩和最低成绩。建议使用动态内存分配来实现。输入格式:输入第一行首先给出一个正整数N,表示学生的个数。接下来一行给出N个学生的成绩,数字间以空格分隔。输出格式:按照以下格式输出:average = 平均成绩max = 最高成绩min = 最低成绩结果均保留两位小数。输入样例:385 90 95输出样例:average = 90.00max = 95.00min原创 2021-02-03 11:41:12 · 409 阅读 · 0 评论 -
实验7-3-7 字符转换(15 分)
实验7-3-7 字符转换(15 分)本题要求提取一个字符串中的所有数字字符('0'……'9'),将其转换为一个整数输出。输入格式:输入在一行中给出一个不超过80个字符且以回车结束的字符串。输出格式:在一行中输出转换后的整数。题目保证输出不超过长整型范围。输入样例:free82jeep5输出样例:825#include<stdio.h>#include<string.h>#define N 85//思路:使用字符数组存储数字的字符形式,然后将字符处理成原创 2021-02-03 11:20:04 · 679 阅读 · 0 评论 -
实验7-3-4 字符串替换(15 分)
实验7-3-4 字符串替换(15 分)本题要求编写程序,将给定字符串中的大写英文字母按以下对应规则替换:原字母 对应字母A ZB YC XD W… …X CY BZ A 输入格式:输入在一行中给出一个不超过80个字符、并以回车结束的字符串。 输出格式:输出在一行中给出替换完成后的字符串。 输入样例:Only the 11 C原创 2021-02-03 11:18:46 · 2822 阅读 · 1 评论 -
实验7-2-9 螺旋方阵 (20分)
实验7-2-9 螺旋方阵 (20分)所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。本题要求构造这样的螺旋方阵。输入格式:输入在一行中给出一个正整数N(<10)。输出格式:输出N×N的螺旋方阵。每行N个数字,每个数字占3位。输入样例:5输出样例: 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9#原创 2021-02-03 10:08:48 · 145 阅读 · 0 评论 -
实验7-2-7 方阵循环右移(20 分)
实验7-2-7 方阵循环右移(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个整数,每个整数后输出一个空格。 输入样例:2 31 2 34 5 67 8 9 输出样例:2 3 15 6 4原创 2021-02-02 20:07:37 · 707 阅读 · 0 评论 -
实验7-1-13 装箱问题 (20分)
实验7-1-13 装箱问题 (20分)假设有N项物品,大小分别为s1、s2、…、si、…、sN,其中si为满足1≤si≤100的整数。要把这些物品装入到容量为100的一批箱子(序号1-N)中。装箱方法是:对每项物品, 顺序扫描箱子,把该物品放入足以能够容下它的第一个箱子中。请写一个程序模拟这种装箱过程,并输出每个物品所在的箱子序号,以及放置全部物品所需的箱子数目。 输入格式:输入第一行给出物品个数N(≤1000);第二行给出N个正整数si(1≤si原创 2021-02-02 16:16:22 · 304 阅读 · 0 评论 -
实验7-1-11 求整数序列中出现次数最多的数 (15分)
实验7-1-11 求整数序列中出现次数最多的数 (15 分)本题要求统计一个整型序列中出现次数最多的整数及其出现次数。输入格式:输入在一行中给出序列中整数个数N(0<N≤1000),以及N个整数。数字间以空格分隔。输出格式:在一行中输出出现次数最多的整数及其出现次数,数字间以空格分隔。题目保证这样的数字是唯一的。输入样例:10 3 2 -1 5 3 4 3 0 3 21输出样例:3 4#include<stdio.h>int main () { /*本题思想原创 2021-02-02 16:15:07 · 3531 阅读 · 0 评论 -
实验7-1-8 输出数组元素(15 分)
实验7-1-8 输出数组元素(15 分)本题要求编写程序,对顺序读入的n个整数,顺次计算后项减前项之差,并按每行三个元素的格式输出结果。输入格式:输入的第一行给出正整数n(1<n≤10)。随后一行给出n个整数,其间以空格分隔。 输出格式:顺次计算后项减前项之差,并按每行三个元素的格式输出结果。数字间空一格,行末不得有多余空格。 输入样例:105 1 7 14 6 36 4 28 50 100输出样例:-4 6 7-8 30 -3224 22 50#inc原创 2021-02-02 16:14:34 · 648 阅读 · 0 评论 -
实验7-1-6 求一批整数中出现最多的个位数字(20 分)
实验7-1-6 求一批整数中出现最多的个位数字(20 分)给定一批整数,分析每个整数的每一位数字,求出现次数最多的个位数字。例如给定3个整数1234、2345、3456,其中出现最多次数的数字是3和4,均出现了3次。 输入格式:输入在第1行中给出正整数N(≤1000),在第二行中给出N个不超过整型范围的非负整数,数字间以空格分隔。输出格式:在一行中按格式“M: n1 n2 ...”输出,其中M是最大次数,n1、n2、……为出现次数最多的个位数字,按从小到大的顺序排列。数字间以空格分隔,但末尾不原创 2021-02-02 16:14:03 · 284 阅读 · 1 评论 -
实验7-1-4 找出不是两个数组共有的元素 (20分)
实验7-1-4 找出不是两个数组共有的元素 (20分)给定两个整型数组,本题要求找出不是两者共有的元素。输入格式:输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。输出格式:在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。题目保证至少存在一个这样的数字。同一数字不重复输出。输入样例:10 3 -5 2 8 0 3 5 -15 9 10011 6 4 8 2 6 -5 9 0 100 8 1输出原创 2021-02-02 16:13:32 · 165 阅读 · 1 评论 -
实验7-1-1 简化的插入排序 (15分)
实验7-1-1 简化的插入排序 (15分)本题要求编写程序,将一个给定的整数插到原本有序的整数序列中,使结果序列仍然有序。 输入格式:输入在第一行先给出非负整数N(<10);第二行给出N个从小到大排好顺序的整数;第三行给出一个整数X。 输出格式:在一行内输出将X插入后仍然从小到大有序的整数序列,每个数字后面有一个空格。 输入样例:51 2 4 5 73输出样例:1 2 3 4 5 7 #include<stdio.h>int main()原创 2021-02-02 16:13:10 · 1579 阅读 · 0 评论