浙大版《C语言程序设计实验与习题指导(第3版)》题目集
蓬蒿人01
这个作者很懒,什么都没留下…
展开
-
带注释 实验9-1 计算职工工资 (15分)
实验9-1 计算职工工资 (15分)给定N个职员的信息,包括姓名、基本工资、浮动工资和支出,要求编写程序顺序输出每位职员的姓名和实发工资(实发工资=基本工资+浮动工资-支出)。输入格式:输入在一行中给出正整数N。随后N行,每行给出一位职员的信息,格式为“姓名 基本工资 浮动工资 支出”,中间以空格分隔。其中“姓名”为长度小于10的不包含空白字符的非空字符串,其他输入、输出保证在单精度范围内。输出格式:按照输入顺序,每行输出一位职员的姓名和实发工资,间隔一个空格,工资保留2位小数。输入样例:3原创 2020-08-23 20:25:37 · 1451 阅读 · 0 评论 -
带注释 实验8-2-10 IP地址转换 (20分)
实验8-2-10 IP地址转换 (20分)一个IP地址是用四个字节(每个字节8个位)的二进制码组成。请将32位二进制码表示的IP地址转换为十进制格式表示的IP地址输出。输入格式:输入在一行中给出32位二进制字符串。输出格式:在一行中输出十进制格式的IP地址,其由4个十进制数组成(分别对应4个8位的二进制数),中间用“.”分隔开。输入样例:11001100100101000001010101110010输出样例:204.148.21.114//2020/8/23#include原创 2020-08-23 19:55:08 · 2215 阅读 · 0 评论 -
带注释 实验8-2-9 长整数转化成16进制字符串 (15分)
实验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 );i原创 2020-08-23 19:21:49 · 1464 阅读 · 0 评论 -
实验8-2-7 字符串的连接 (15分)
实验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(){原创 2020-08-20 19:53:59 · 2510 阅读 · 2 评论 -
带注释 实验8-2-6 分类统计各类字符个数 (15分)
实验8-2-6 分类统计各类字符个数 (15分)本题要求实现一个函数,统计给定字符串中的大写字母、小写字母、空格、数字以及其它字符各有多少。函数接口定义:void StringCount( char *s );其中 char *s 是用户传入的字符串。函数StringCount须在一行内按照大写字母个数 小写字母个数 空格个数 数字个数 其它字符个数的格式输出。裁判测试程序样例:#include <stdio.h>#define MAXS 15void StringCou原创 2020-08-20 19:36:12 · 2611 阅读 · 1 评论 -
带注释 实验8-2-5 判断回文字符串 (20分)
实验8-2-5 判断回文字符串 (20分)本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。函数接口定义:bool palindrome( char *s );函数palindrome判断输入字符串char *s是否为回文。若是则返回true,否则返回false。裁判测试程序样例:#include <stdio.h>#include <string.h>#define MAXN原创 2020-08-20 19:14:48 · 488 阅读 · 0 评论 -
带注释 实验8-2-4 使用函数实现字符串部分复制 (20分)
实验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 strmc原创 2020-08-20 18:59:51 · 666 阅读 · 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( ch原创 2020-08-19 20:08:42 · 776 阅读 · 0 评论 -
带注释 实验8-2-8 字符串排序 (20分)
实验8-2-8 字符串排序 (20分)本题要求编写程序,读入5个字符串,按由小到大的顺序输出。输入格式:输入为由空格分隔的5个非空字符串,每个字符串不包括空格、制表符、换行符等空白字符,长度小于80。输出格式:按照以下格式输出排序后的结果:After sorted:每行一个字符串输入样例:red yellow blue green white输出样例:After sorted:bluegreenredwhiteyellow#include <stdio.h&g原创 2020-08-19 19:10:07 · 402 阅读 · 1 评论 -
带注释 实验8-2-2 找最长的字符串 (15分)
实验8-2-2 找最长的字符串 (15分)本题要求编写程序,针对输入的N个字符串,输出其中最长的字符串。输入格式:输入第一行给出正整数N;随后N行,每行给出一个长度小于80的非空字符串,其中不会出现换行符,空格,制表符。输出格式:在一行中用以下格式输出最长的字符串:The longest is: 最长的字符串如果字符串的长度相同,则输出先输入的字符串。输入样例:5liwangzhangjinxiang输出样例:The longest is: zhang//2020/原创 2020-08-19 18:54:10 · 767 阅读 · 0 评论 -
带注释 实验8-2-1 找最小的字符串 (15分)
实验8-2-1 找最小的字符串 (15分)本题要求编写程序,针对输入的N个字符串,输出其中最小的字符串。输入格式:输入第一行给出正整数N;随后N行,每行给出一个长度小于80的非空字符串,其中不会出现换行符,空格,制表符。输出格式:在一行中用以下格式输出最小的字符串:Min is: 最小字符串输入样例:5LiWangZhaJinXian输出样例:Min is: Jin//2020/8/19#include <stdio.h>#include <st原创 2020-08-19 18:23:32 · 1697 阅读 · 1 评论 -
带注释 实验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语言数组原创 2020-08-18 17:33:48 · 286 阅读 · 0 评论 -
带注释 实验8-1-7 数组循环右移 (20分)
实验8-1-7 数组循环右移 (20分)函数接口定义:int ArrayShift( int a[], int n, int m );其中a[]是用户传入的数组;n是数组的大小;m是右移的位数。函数ArrayShift须将循环右移后的数组仍然存在a[]中。裁判测试程序样例:#include <stdio.h>#define MAXN 10int ArrayShift( int a[], int n, int m );int main(){ int a[MAXN]原创 2020-08-18 17:00:57 · 565 阅读 · 1 评论 -
带注释 实验8-1-6 函数实现字符串逆序 (15分)
实验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(){ ch原创 2020-08-18 11:13:50 · 2518 阅读 · 0 评论 -
带注释 实验8-1-4 使用函数的选择法排序 (25分)
实验8-1-4 使用函数的选择法排序 (25分)本题要求实现一个用选择法对整数数组进行简单排序的函数。函数接口定义:void sort( int a[], int n );其中a是待排序的数组,n是数组a中元素的个数。该函数用选择法将数组a中的元素按升序排列,结果仍然在数组a中。裁判测试程序样例:#include <stdio.h>#define MAXN 10void sort( int a[], int n );int main(){ int i, n;原创 2020-08-18 10:39:19 · 1247 阅读 · 0 评论 -
带注释 实验8-1-5 在数组中查找指定元素 (15分)
实验8-1-5 在数组中查找指定元素 (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 li原创 2020-08-18 10:25:38 · 201 阅读 · 0 评论 -
带注释 实验8-1-3 拆分实数的整数与小数部分 (15分)
实验8-1-3 拆分实数的整数与小数部分 (15分)本题要求实现一个拆分实数的整数与小数部分的简单函数。函数接口定义:void splitfloat( float x, int *intpart, float *fracpart );其中x是被拆分的实数(0≤x<10000),intpart和fracpart分别是将实数x拆分出来的整数部分与小数部分。裁判测试程序样例:#include <stdio.h>void splitfloat( float x, int *int原创 2020-08-18 10:12:42 · 400 阅读 · 0 评论 -
带注释 实验8-1-2 计算两数的和与差 (10分)
实验8-1-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 *原创 2020-08-18 10:00:10 · 671 阅读 · 0 评论 -
带注释 实验8-1-1 利用指针找最大值 (10分)
实验8-1-1 利用指针找最大值 (10分)本题要求实现一个简单函数,找出两个数中的最大值。函数接口定义:void findmax( int *px, int *py, int *pmax );其中px和py是用户传入的两个整数的指针。函数findmax应找出两个指针所指向的整数中的最大值,存放在pmax指向的位置。裁判测试程序样例:#include <stdio.h>void findmax( int *px, int *py, int *pmax );int main(原创 2020-08-18 09:53:15 · 1005 阅读 · 0 评论 -
带注释 实验7-2-10 简易连连看 (20分)
实验7-2-10 简易连连看 (20分)输出格式:根据玩家的每一步输入,输出相应的结果。输出盘面时注意,每行字符间以1个空格分隔,行末不得有多余空格。输入样例1:2I T I TY T I AT A T YI K K T111 1 1 34 2 4 33 1 4 22 2 1 23 1 2 44 4 3 12 1 3 43 3 1 44 1 2 32 4 3 21 1 2 2输出样例1:入样例2:2I T I TY T I AT A T YI K原创 2020-08-17 22:37:08 · 364 阅读 · 0 评论 -
带注释 实验7-3-6 字符串转换成十进制整数 (15分)
实验7-3-6 字符串转换成十进制整数 (15分)输入一个以#结束的字符串,本题要求滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出。如果在第一个十六进制字符之前存在字符“-”,则代表该数是负数。输入格式:输入在一行中给出一个以#结束的非空字符串。输出格式:在一行中输出转换后的十进制数。题目保证输出在长整型范围内。输入样例:±P-xf4±1!#输出样例:-3905#include<stdio.h> //202原创 2020-07-15 21:41:35 · 1012 阅读 · 0 评论 -
带注释 实验7-3-5 输出大写英文字母 (15分)
实验7-3-5 输出大写英文字母 (15分)本题要求编写程序,顺序输出给定字符串中所出现过的大写英文字母,每个字母只输出一遍;若无大写英文字母则输出“Not Found”。输入格式:输入为一个以回车结束的字符串(少于80个字符)。输出格式:按照输入的顺序在一行中输出所出现过的大写英文字母,每个字母只输出一遍。若无大写英文字母则输出“Not Found”。输入样例1:FONTNAME and FILENAME输出样例1:FONTAMEIL输入样例2:fontname and f原创 2020-07-15 21:35:48 · 4173 阅读 · 0 评论 -
带注释 实验7-3-4 字符串替换 (15分)
实验7-3-4 字符串替换 (15分)本题要求编写程序,将给定字符串中的大写英文字母按以下对应规则替换:原字母 对应字母A ZB YC XD W… …X CY BZ A输入格式:输入在一行中给出一个不超过80个字符、并以回车结束的字符串。输出格式:输出在一行中给出替换完成后的字符串。输入样例:Only the 11 CAPItaL LeTtERS are replaced.输出样例:Lnly the 11 XZKRtaO OeGtVIH are replaced.原创 2020-07-15 21:28:45 · 676 阅读 · 0 评论 -
带注释 实验7-3-3 统计大写辅音字母 (15分)
实验7-3-3 统计大写辅音字母 (15分)英文辅音字母是除A、E、I、O、U以外的字母。本题要求编写程序,统计给定字符串中大写辅音字母的个数。输入格式:输入在一行中给出一个不超过80个字符、并以回车结束的字符串。输出格式:输出在一行中给出字符串中大写辅音字母的个数。输入样例:HELLO World!输出样例:4#include<stdio.h> //2020/7/15 //如果对您有帮助的话还请点个赞 int main (void) { int i; c原创 2020-07-15 21:22:29 · 419 阅读 · 1 评论 -
带注释 实验7-3-2 查找指定字符 (15分)
实验7-3-2 查找指定字符 (15分)本题要求编写程序,从给定字符串中查找某指定的字符。输入格式:输入的第一行是一个待查找的字符。第二行是一个以回车结束的非空字符串(不超过80个字符)。输出格式:如果找到,在一行内按照格式“index = 下标”输出该字符在字符串中所对应的最大下标(下标从0开始);否则输出"Not Found"。输入样例1:mprogramming输出样例1:index = 7输入样例2:a1234输出样例2:Not Found#inclu原创 2020-07-15 21:17:09 · 323 阅读 · 0 评论 -
带注释 实验7-3-1 字符串逆序 (15分)
实验7-3-1 字符串逆序 (15分)输入一个字符串,对该字符串进行逆序,输出逆序后的字符串。输入格式:输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。输出格式:在一行中输出逆序后的字符串。输入样例:Hello World!输出样例:!dlroW olleH#include <stdio.h> //2010.7.13//如果有帮助的话还请点个赞 int main (void){ char a[90];//定义字符串最好超过提示的最长长度原创 2020-07-15 21:13:05 · 808 阅读 · 0 评论 -
带注释 实验7-3-10 删除重复字符 (20分)
实验7-3-10 删除重复字符 (20分)本题要求编写程序,将给定字符串去掉重复的字符后,按照字符ASCII码顺序从小到大排序后输出。输入格式:输入是一个以回车结束的非空字符串(少于80个字符)。输出格式:输出去重排序后的结果字符串。输入样例:ad2f3adjfeainzzzv输出样例:23adefijnvz#include<stdio.h> //2020/7/14 int main (void) { char a[90],b[90]; int i,j,k;原创 2020-07-14 21:52:56 · 547 阅读 · 0 评论 -
带注释 实验7-3-9 字符串字母大小写转换 (15分)
实验7-3-9 字符串字母大小写转换 (15分)本题要求编写程序,对一个以“#”结束的字符串,将其小写字母全部转换成大写字母,把大写字母全部转换成小写字母,其他字符不变输出。输入格式:输入为一个以“#”结束的字符串(不超过30个字符)。输出格式:在一行中输出大小写转换后的结果字符串。输入样例:Hello World! 123#输出样例:hELLO wORLD! 123#include<stdio.h> int main (void) { char a[90];原创 2020-07-14 21:28:28 · 1615 阅读 · 0 评论 -
带注释 实验7-3-8 统计字符出现次数 (20分)
实验7-3-8 统计字符出现次数 (20分)本题要求编写程序,统计并输出某给定字符在给定字符串中出现的次数。输入格式:输入第一行给出一个以回车结束的字符串(少于80个字符);第二行输入一个字符。输出格式:在一行中输出给定字符在给定字符串中出现的次数。输入样例:programming is More fun!m输出样例:2#include<stdio.h> int main (void) { char a[90]; char b[3]; int i,j,k;原创 2020-07-14 21:19:07 · 543 阅读 · 0 评论 -
带注释 实验7-3-7 字符转换 (15分)
实验7-3-7 字符转换 (15分)本题要求提取一个字符串中的所有数字字符(‘0’……‘9’),将其转换为一个整数输出。输入格式:输入在一行中给出一个不超过80个字符且以回车结束的字符串。输出格式:在一行中输出转换后的整数。题目保证输出不超过长整型范围。输入样例:free82jeep5输出样例:825#include<stdio.h> int main (void) { char a[90]; char b[90]; int i,j,k; for (i =原创 2020-07-14 21:12:03 · 2461 阅读 · 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 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9#includ原创 2020-07-11 14:08:39 · 614 阅读 · 0 评论 -
带注释 实验7-2-8 找鞍点 (20分)
实验7-2-8 找鞍点 (20分)一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。本题要求编写程序,求一个给定的n阶方阵的鞍点。输入格式:输入第一行给出一个正整数n(1≤n≤6)。随后n行,每行给出n个整数,其间以空格分隔。输出格式:输出在一行中按照“行下标 列下标”(下标从0开始)的格式输出鞍点的位置。如果鞍点不存在,则输出“NONE”。题目保证给出的矩阵至多存在一个鞍点。输入样例1:41 7 4 14 8 3 61 6 1 20 7 8 9输出样例1:原创 2020-07-11 10:53:39 · 353 阅读 · 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 48 9原创 2020-07-11 10:15:55 · 693 阅读 · 0 评论 -
带注释 实验7-2-6 打印杨辉三角 (20分)
实验7-2-6 打印杨辉三角 (20分)本题要求按照规定格式打印前N行杨辉三角。输入格式:输入在一行中给出N(1≤N≤10)。输出格式:以正三角形的格式输出前N行杨辉三角。每个数字占固定4位。#include <stdio.h> //2020/7/10int main (void){ int n,i,j,k; scanf ("%d",&n); int a[n][n]; int c;//杨辉三角的特点为左右两列都是1//从第三行开始,不等于1的元素的值等于其左原创 2020-07-10 17:08:13 · 571 阅读 · 0 评论 -
带注释 实验7-2-5 判断上三角矩阵 (15分)
实验7-2-5 判断上三角矩阵 (15分)上三角矩阵指主对角线以下的元素都为0的矩阵;主对角线为从矩阵的左上角至右下角的连线。本题要求编写程序,判断一个给定的方阵是否上三角矩阵。输入格式:输入第一行给出一个正整数T,为待测矩阵的个数。接下来给出T个矩阵的信息:每个矩阵信息的第一行给出一个不超过10的正整数n。随后n行,每行给出n个整数,其间以空格分隔。输出格式:每个矩阵的判断结果占一行。如果输入的矩阵是上三角矩阵,输出“YES”,否则输出“NO”。输入样例:231 2 30 4 5原创 2020-07-10 16:07:18 · 552 阅读 · 0 评论 -
带注释 实验7-2-4 计算天数 (15分)
实验7-2-4 计算天数 (15分)本题要求编写程序计算某年某月某日是该年中的第几天。输入格式:输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。输出格式:在一行输出日期是该年中的第几天。输入样例1:2009/03/02输出样例1:61输入样例2:2000/03/02输出样例2:62鸣谢湖北汽车工业学院袁科老师补充数据#include &l原创 2020-07-10 15:49:15 · 780 阅读 · 0 评论 -
带注释 实验7-2-3 求矩阵的局部极大值 (15分)
实验7-2-3 求矩阵的局部极大值 (15分)给定M行N列的整数矩阵A,如果A的非边界元素A[i][j]大于相邻的上下左右4个元素,那么就称元素A[i][j]是矩阵的局部极大值。本题要求给定矩阵的全部局部极大值及其所在的位置。输入格式:输入在第一行中给出矩阵A的行数M和列数N(3≤M,N≤20);最后M行,每行给出A在该行的N个元素的值。数字间以空格分隔。输出格式:每行按照“元素值 行号 列号”的格式输出一个局部极大值,其中行、列编号从1开始。要求按照行号递增输出;若同行有超过1个局部极大值,则该原创 2020-07-10 13:14:51 · 988 阅读 · 0 评论 -
带注释 实验7-2-2 矩阵运算 (20分)
实验7-2-2 矩阵运算 (20分)给定一个n×n的方阵,本题要求计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。副对角线为从矩阵的右上角至左下角的连线。输入格式:输入第一行给出正整数n(1<n≤10);随后n行,每行给出n个整数,其间以空格分隔。输出格式:在一行中给出该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。输入样例:42 3 4 15 6 1 17 1 8 11 1 1 1输出样例:35#include <stdio.h>原创 2020-07-10 11:17:02 · 643 阅读 · 0 评论 -
带注释 实验7-2-1 求矩阵各行元素之和 (15分)
实验7-2-1 求矩阵各行元素之和 (15分)本题要求编写程序,求一个给定的m×n矩阵各行元素之和。输入格式:输入第一行给出两个正整数m和n(1≤m,n≤6)。随后m行,每行给出n个整数,其间以空格分隔。输出格式:每行输出对应矩阵行元素之和。输入样例:3 26 31 -83 12输出样例:9-715#include <stdio.h> int main (void){ int m,n,i,j,k; scanf ("%d%d",&m,&原创 2020-07-10 11:06:18 · 1454 阅读 · 0 评论 -
带注释 实验7-1-13 装箱问题 (20分)
实验7-1-13 装箱问题 (20分)输入格式:输入第一行给出物品个数N(≤1000);第二行给出N个正整数si (1≤si ≤100,表示第i项物品的大小)。输出格式:按照输入顺序输出每个物品的大小及其所在的箱子序号,每个物品占1行,最后一行输出所需的箱子数目。输入样例:860 70 80 90 30 40 10 20输出样例:60 170 280 390 430 140 510 120 25#include <stdio.h>原创 2020-07-09 19:54:04 · 328 阅读 · 0 评论