浙大版《C语言程序设计实验与习题指导(第3版)》题目集
C语言基础题目集
16岁魔法少女
哈哈哈哈哈哈哈哈哈嗝
展开
-
实验11-2-4 删除单链表偶数节点 (20 分)
本题要求实现两个函数,分别将读入的数据存储为单链表、将链表中偶数值的结点删除。链表结点定义如下:struct ListNode { int data; struct ListNode *next;};函数接口定义:struct ListNode *createlist();struct ListNode *deleteeven( struct ListNode *head );函数createlist从标准输入读入一系列正整数,按照读入顺序建立单链表。当读到−1时表示原创 2021-12-06 15:24:57 · 189 阅读 · 0 评论 -
实验11-2-3 逆序数据建立链表 (20 分)
本题要求实现一个函数,按输入数据的逆序建立一个链表。函数接口定义:struct ListNode *createlist();函数createlist利用scanf从输入中获取一系列正整数,当读到−1时表示输入结束。按输入数据的逆序建立一个链表,并返回链表头指针。链表节点结构定义如下:struct ListNode { int data; struct ListNode *next;};裁判测试程序样例:#include <stdio.h>#in原创 2021-12-05 11:40:51 · 116 阅读 · 0 评论 -
实验11-2-2 学生成绩链表处理 (20 分)
本题要求实现两个函数,一个将输入的学生成绩组织成单向链表;另一个将成绩低于某分数线的学生结点从链表中删除。函数接口定义:struct stud_node *createlist();struct stud_node *deletelist( struct stud_node *head, int min_score );函数createlist利用scanf从输入中获取学生的信息,将其组织成单向链表,并返回链表头指针。链表节点结构定义如下:struct stud_node {原创 2021-12-04 21:47:45 · 552 阅读 · 0 评论 -
实验11-2-1 建立学生信息链表 (20 分)
本题要求实现一个将输入的学生成绩组织成单向链表的简单函数。函数接口定义:void input();该函数利用scanf从输入中获取学生的信息,并将其组织成单向链表。链表节点结构定义如下:struct stud_node { int num; /*学号*/ char name[20]; /*姓名*/ int score; /*成绩*/ struct stud_node原创 2021-12-03 00:36:58 · 578 阅读 · 0 评论 -
实验11-1-8 查找子串 (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[] ); /* 裁判提供,细节不表 */int main()原创 2021-11-29 14:22:14 · 411 阅读 · 0 评论 -
实验11-1-9 藏尾诗 (20 分)
本题要求编写一个解密藏尾诗的程序。输入格式:输入为一首中文藏尾诗,一共四句。每句一行,但句子不一定是等长的,最短一个汉字,最长九个汉字。注意:一个汉字占两个字节。输出格式:取出每句的最后一个汉字并连接在一起形成一个字符串并输出。同时在末尾输入一个换行符。输入样例:悠悠田园风然而心难平兰花轻涌浪兰香愈幽静结尾无空行输出样例:风平浪静结尾无空行#include<stdio.h>main() { char a[4][19]; i原创 2021-11-28 11:27:21 · 187 阅读 · 0 评论 -
实验11-1-7 藏头诗 (15 分)
本题要求编写一个解密藏头诗的程序。输入格式:输入为一首中文藏头诗,一共四句,每句一行。注意:一个汉字占两个字节。输出格式:取出每句的第一个汉字并连接在一起形成一个字符串并输出。同时在末尾输入一个换行符。输入样例:一叶轻舟向东流帆稍轻握杨柳手风纤碧波微起舞顺水任从雅客流结尾无空行输出样例:一帆风顺结尾无空行#include<stdio.h>main() { char str[4][15]; //读入 int原创 2021-11-27 20:39:31 · 613 阅读 · 0 评论 -
实验10-10 递归实现顺序输出整数 (15 分)
本题要求实现一个函数,对一个整数进行按位顺序输出。函数接口定义:void printdigits( int n );函数printdigits应将n的每一位数字从高位到低位顺序打印出来,每位数字占一行。裁判测试程序样例:#include <stdio.h>void printdigits( int n );int main(){ int n; scanf("%d", &n); printdigits(n); retur原创 2021-11-24 14:20:45 · 391 阅读 · 0 评论 -
实验10-6 递归计算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, &n..原创 2021-11-22 14:15:46 · 527 阅读 · 0 评论 -
实验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 0;}/* 你的代码将被嵌在原创 2021-11-23 20:22:16 · 1622 阅读 · 2 评论 -
实验10-3 递归求阶乘和 (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 factsum( in原创 2021-11-21 15:46:57 · 304 阅读 · 0 评论 -
实验9-8 通讯录排序 (20 分)
输入n个朋友的信息,包括姓名、生日、电话号码,本题要求编写程序,按照年龄从大到小的顺序依次输出通讯录。题目保证所有人的生日均不相同。输入格式:输入第一行给出正整数n(<10)。随后n行,每行按照“姓名 生日 电话号码”的格式给出一位朋友的信息,其中“姓名”是长度不超过10的英文字母组成的字符串,“生日”是yyyymmdd格式的日期,“电话号码”是不超过17位的数字及+、-组成的字符串。输出格式:按照年龄从大到小输出朋友的信息,格式同输出。输入样例:3zhang 198504原创 2021-11-17 23:01:41 · 177 阅读 · 0 评论 -
实验10-4 递归实现指数函数 (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", &x,原创 2021-11-21 15:49:13 · 310 阅读 · 0 评论 -
实验10-8 递归计算P函数 (15 分)
本题要求实现下列函数P(n,x)的计算,其函数定义如下:函数接口定义:double P( int n, double x );其中n是用户传入的非负整数,x是双精度浮点数。函数P返回P(n,x)函数的相应值。题目保证输入输出都在双精度范围内。裁判测试程序样例:#include <stdio.h>double P( int n, double x );int main(){ int n; double x; scanf("%d %lf原创 2021-11-22 14:27:53 · 468 阅读 · 0 评论 -
实验11-1-3 查找星期 (15 分)
本题要求实现函数,可以根据下表查找到星期,返回对应的序号。序号 星期 0 Sunday 1 Monday 2 Tuesday 3 Wednesday 4 Thursday 5 Friday 6 Saturday 函数接口定义:int getindex( char *s );函数getindex应返回字符串s序号。如果传入的参数s不是一个代表星期的字符串,则返回-1。裁判测试程序样例:#include &l原创 2021-11-25 16:48:42 · 231 阅读 · 0 评论 -
实验11-1-1 英文单词排序 (25 分)
本题要求编写程序,输入若干英文单词,对这些单词按长度从小到大排序后输出。如果长度相同,按照输入的顺序不变。输入格式:输入为若干英文单词,每行一个,以#作为输入结束标志。其中英文单词总数不超过20个,英文单词为长度小于10的仅由小写英文字母组成的字符串。输出格式:输出为排序后的结果,每个单词后面都额外输出一个空格。输入样例:blueredyellowgreenpurple#结尾无空行输出样例:red blue green yellow purple 结尾无原创 2021-11-24 15:31:19 · 184 阅读 · 0 评论 -
实验11-1-6 指定位置输出字符串 (20 分)
本题要求实现一个函数,对给定的一个字符串和两个字符,打印出给定字符串中从与第一个字符匹配的位置开始到与第二个字符匹配的位置之间的所有字符。函数接口定义:char *match( char *s, char ch1, char ch2 );函数match应打印s中从ch1到ch2之间的所有字符,并且返回ch1的地址。裁判测试程序样例:#include <stdio.h>#define MAXS 10char *match( char *s, char ch1, ch原创 2021-11-26 09:27:13 · 433 阅读 · 0 评论 -
实验9-10 平面向量加法 (15 分)
本题要求编写程序,计算两个二维平面向量的和向量。输入格式:输入在一行中按照“x1y1x2y2”的格式给出两个二维平面向量v1=(x1,y1)和v2=(x2,y2)的分量。输出格式:在一行中按照(x, y)的格式输出和向量,坐标输出小数点后一位(注意不能输出−0.0)。输入样例:3.5 -2.7 -13.9 8.7结尾无空行输出样例:(-10.4, 6.0)结尾无空行#include <stdio.h>struct v...原创 2021-11-18 16:34:25 · 233 阅读 · 0 评论 -
实验10-1 圆形体体积计算器 (20 分)
本题要求实现一个常用圆形体体积的计算器。计算公式如下:球体体积V=34πr3,其中r是球体半径。 圆柱体体积V=πr2h,其中r是底圆半径,h是高。 圆锥体体积V=31πr2h,其中r是底圆半径,h是高。输入格式:在每次计算之前,要求输出如下界面:1-Ball2-Cylinder3-Coneother-ExitPlease enter your command:然后从标准输入读进一个整数指令。输出格式:如果读入的指令是1或2或3,则执行相应的体积计算;如果是...原创 2021-11-19 15:19:19 · 315 阅读 · 0 评论 -
实验9-7 找出总分最高的学生 (15 分)
给定N个学生的基本信息,包括学号(由5个数字组成的字符串)、姓名(长度小于10的不包含空白字符的非空字符串)和3门课程的成绩([0,100]区间内的整数),要求输出总分最高学生的姓名、学号和总分。输入格式:输入在一行中给出正整数N(≤10)。随后N行,每行给出一位学生的信息,格式为“学号 姓名 成绩1 成绩2 成绩3”,中间以空格分隔。输出格式:在一行中输出总分最高学生的姓名、学号和总分,间隔一个空格。题目保证这样的学生是唯一的。输入样例:500001 huanglan 78 8原创 2021-11-16 20:30:00 · 253 阅读 · 0 评论 -
实验10-5 递归求简单交错幂级数的部分和 (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-11-21 16:13:57 · 303 阅读 · 0 评论 -
实验9-9 有理数比较 (10 分)
本题要求编写程序,比较两个有理数的大小。输入格式:输入在一行中按照“a1/b1 a2/b2”的格式给出两个分数形式的有理数,其中分子和分母全是整形范围内的正整数。输出格式:在一行中按照“a1/b1 关系符 a2/b2”的格式输出两个有理数的关系。其中“>”表示“大于”,“<”表示“小于”,“=”表示“等于”。输入样例1:1/2 3/4结尾无空行输出样例1:1/2 < 3/4结尾无空行输入样例2:6/8 3/4输出样例2:6/8原创 2021-11-18 16:17:22 · 77 阅读 · 0 评论 -
实验11-1-4 计算最长的字符串长度 (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_le原创 2021-11-25 16:55:05 · 168 阅读 · 0 评论 -
实验10-7 递归求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; scanf("%d", &a.原创 2021-11-22 14:21:31 · 2164 阅读 · 0 评论 -
实验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; scanf("%d", &n);原创 2021-11-25 16:37:30 · 350 阅读 · 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-15 17:23:52 · 152 阅读 · 0 评论 -
实验10-2 判断满足条件的三位数 (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-20 20:50:10 · 736 阅读 · 0 评论 -
实验9-5 查找书籍 (20 分)
给定n本书的名称和定价,本题要求编写程序,查找并输出其中定价最高和最低的书的名称和定价。输入格式:输入第一行给出正整数n(<10),随后给出n本书的信息。每本书在一行中给出书名,即长度不超过30的字符串,随后一行中给出正实数价格。题目保证没有同样价格的书。输出格式:在一行中按照“价格, 书名”的格式先后输出价格最高和最低的书。价格保留2位小数。输入样例:3Programming in C21.5Programming in VB18.5Programming in原创 2021-11-15 16:43:43 · 180 阅读 · 0 评论 -
实验8-2-6 分类统计各类字符个数 (15 分)
本题要求实现一个函数,统计给定字符串中的大写字母、小写字母、空格、数字以及其它字符各有多少。函数接口定义:void StringCount( char *s );其中char *s是用户传入的字符串。函数StringCount须在一行内按照大写字母个数 小写字母个数 空格个数 数字个数 其它字符个数的格式输出。裁判测试程序样例:#include <stdio.h>#define MAXS 15void StringCount( char *s );v..原创 2021-11-10 14:43:58 · 540 阅读 · 0 评论 -
实验8-2-4 使用函数实现字符串部分复制 (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, ch原创 2021-11-09 16:33:24 · 574 阅读 · 0 评论 -
实验8-1-6 函数实现字符串逆序 (15 分)
本题要求实现一个字符串逆序的简单函数。函数接口定义:void f( char *p );函数f对p指向的字符串进行逆序操作。要求函数f中不能定义任何数组,不能调用任何字符串处理函数。裁判测试程序样例:#include <stdio.h>#define MAXS 20void f( char *p );void ReadString( char *s ); /* 由裁判实现,略去不表 */int main(){ char s[MAXS]; R原创 2021-11-04 16:29:06 · 7923 阅读 · 0 评论 -
实验8-1-7 数组循环右移 (20 分)
本题要求实现一个对数组进行循环右移的简单函数:一个数组a中存有n(>0)个整数,将每个整数循环向右移m(≥0)个位置,即将a中的数据由(a0a1⋯an−1)变换为(an−m⋯an−1a0a1⋯an−m−1)(最后m个数循环移至最前面的m个位置)。函数接口定义:void ArrayShift( int a[], int n, int m );其中a[]是用户传入的数组;n是数组的大小;m是右移的位数。函数ArrayShift须将循环右移后的数组仍然存在a[]中。裁判测试原创 2021-11-04 16:41:28 · 250 阅读 · 0 评论 -
实验8-2-2 找最长的字符串 (15 分)
本题要求编写程序,针对输入的N个字符串,输出其中最长的字符串。输入格式:输入第一行给出正整数N;随后N行,每行给出一个长度小于80的非空字符串,其中不会出现换行符,空格,制表符。输出格式:在一行中用以下格式输出最长的字符串:The longest is: 最长的字符串如果字符串的长度相同,则输出先输入的字符串。输入样例:5liwangzhangjinxiang结尾无空行输出样例:The longest is: zhang结尾无空行#inc原创 2021-11-07 01:35:13 · 374 阅读 · 0 评论 -
实验9-1 计算职工工资 (15 分)
给定N个职员的信息,包括姓名、基本工资、浮动工资和支出,要求编写程序顺序输出每位职员的姓名和实发工资(实发工资=基本工资+浮动工资-支出)。输入格式:输入在一行中给出正整数N。随后N行,每行给出一位职员的信息,格式为“姓名 基本工资 浮动工资 支出”,中间以空格分隔。其中“姓名”为长度小于10的不包含空白字符的非空字符串,其他输入、输出保证在单精度范围内。输出格式:按照输入顺序,每行输出一位职员的姓名和实发工资,间隔一个空格,工资保留2位小数。输入样例:3zhao 240 400原创 2021-11-13 11:17:54 · 189 阅读 · 0 评论 -
实验8-1-9 输出学生成绩 (20 分)
本题要求编写程序,根据输入学生的成绩,统计并输出学生的平均成绩、最高成绩和最低成绩。建议使用动态内存分配来实现。输入格式:输入第一行首先给出一个正整数N,表示学生的个数。接下来一行给出N个学生的成绩,数字间以空格分隔。输出格式:按照以下格式输出:average = 平均成绩max = 最高成绩min = 最低成绩结果均保留两位小数。输入样例:385 90 95结尾无空行输出样例:average = 90.00max = 95.00min = 85.原创 2021-11-05 10:44:24 · 462 阅读 · 0 评论 -
实验9-3 计算平均成绩 (15 分)
给定N个学生的基本信息,包括学号(由5个数字组成的字符串)、姓名(长度小于10的不包含空白字符的非空字符串)和成绩([0,100]区间内的整数),要求计算他们的平均成绩,并顺序输出平均线以下的学生名单。输入格式:输入在一行中给出正整数N(≤10)。随后N行,每行给出一位学生的信息,格式为“学号 姓名 成绩”,中间以空格分隔。输出格式:首先在一行中输出平均成绩,保留2位小数。然后按照输入顺序,每行输出一位平均线以下的学生的姓名和学号,间隔一个空格。输入样例:500001 zhang原创 2021-11-14 17:01:48 · 189 阅读 · 0 评论 -
实验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( char s[] ); /* 由原创 2021-11-08 17:58:20 · 350 阅读 · 0 评论 -
实验8-2-9 长整数转化成16进制字符串 (15 分)
本题要求实现一个将长整数转化成16进制字符串的简单函数。函数接口定义:void f( long int x, char *p );其中x是待转化的十进制长整数,p指向某个字符数组的首元素。函数f的功能是把转换所得的16进制字符串写入p所指向的数组。16进制的A~F为大写字母。裁判测试程序样例:#include <stdio.h>#define MAXN 10void f( long int x, char *p );int main(){ long i原创 2021-11-12 17:02:55 · 1309 阅读 · 0 评论 -
实验8-2-10 IP地址转换 (20 分)
一个IP地址是用四个字节(每个字节8个位)的二进制码组成。请将32位二进制码表示的IP地址转换为十进制格式表示的IP地址输出。输入格式:输入在一行中给出32位二进制字符串。输出格式:在一行中输出十进制格式的IP地址,其由4个十进制数组成(分别对应4个8位的二进制数),中间用“.”分隔开。输入样例:11001100100101000001010101110010结尾无空行输出样例:204.148.21.114结尾无空行//一个IP地址是用四个字节(每个字.原创 2021-11-12 22:05:53 · 313 阅读 · 0 评论 -
实验8-2-7 字符串的连接 (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-11 21:32:31 · 427 阅读 · 0 评论