
浙大第三版C语言程序与实验习题
Mrrr_Li
时间一直都在向前,你也应该一直向前。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
实验7-2-10 简易连连看 (20分)
#include<stdio.h> char matrix[10][10]; void print(int N){ for(int i=1;i<=2*N;i++){ for(int j=1;j<=2*N;j++){ if(j!=1)printf(" "); printf("%c",matrix[i][j]); } printf("\n"); } } int main().原创 2020-08-11 13:53:19 · 404 阅读 · 0 评论 -
实验11-1-9 藏尾诗 (20分)
#include<stdio.h> #include<ctype.h> #include<string.h> #include<math.h> #include<stdlib.h> int main() { char arr[4][30], result[9]; int i, j = 0, len; for ( i = 0; i < 4; i++) scanf("%s", arr[i]); for.原创 2020-08-11 13:26:11 · 187 阅读 · 0 评论 -
实验11-1-7 藏头诗 (15分)
#include<stdio.h> #include<ctype.h> #include<string.h> #include<math.h> #include<stdlib.h> int main() { char arr[4][20], result[9]; int i, j = 0; for ( i = 0; i < 4; i++) scanf("%s", arr[i]); //即使输入是汉字.原创 2020-08-11 13:12:06 · 327 阅读 · 0 评论 -
实验11-1-1 英文单词排序 (25分)
这道题使用结构体数组好一点,每个节点存储单词,以及他的长度,以便之后排序输出。 #include<stdio.h> #include<ctype.h> #include<string.h> #include<math.h> #include<stdlib.h> struct english{ char word[15]; int len; }; int cmp( void const *a, void const *b){ .原创 2020-08-11 12:55:49 · 391 阅读 · 0 评论 -
实验10-1 圆形体体积计算器 (20分)
#include<stdio.h> #include<ctype.h> #include<string.h> #include<math.h> #include<stdlib.h> #define PI 3.1415926535 int main() { int order; double radius, heigh; while(1){ printf("1-Ball\n2-Cylinder\n3-Co...原创 2020-08-11 11:24:12 · 562 阅读 · 0 评论 -
实验9-10 平面向量加法 (15分)
当x, y的绝对值小于0.05时,x和y是正数时会照常输出0.0,而x和y是负数时,由于保留一位小数,所以会输出-0.0,此时为满足题意,就直接将fabs(x) 或fabs(y) < 0.05的全部将x,y设置为0.0。就满足题意了 #include <stdio.h> #include <math.h> int main() { double x1, y1, x2, y2; scanf("%lf %lf %lf %lf", &x1, &.原创 2020-08-11 10:38:07 · 216 阅读 · 0 评论 -
实验9-8 通讯录排序 (20分)
这道题主要是对生日进行排序,上一次我将生日表示成了int型,这次试了一下字符串表示,也可以。 也就是对结构体数组里的字符串进行排序,我使用了qsort快排,发现过不去编译,还以为我的cmp函数有问题,于是各种查CSDN,后来发现是我的最后的输出语句少写了一些变量 所以说,做事情不到最后一刻不能放松,不然可能会有大问题。 #include<stdio.h> #include<ctype.h> #include<string.h> #include<math.h>.原创 2020-08-11 10:15:17 · 285 阅读 · 0 评论 -
实验9-5 查找书籍 (20分)
题目不难,但是也有要注意的一些细节。就是比如输入n之后要读取一个换行符,而gets读取姓名之后则不需要读取换行符(gets读取一行字符和换行符之后舍弃换行符),之后scanf读取完成绩之后需要读取换行符,防止被下次循环时gets读取到。 #include<stdio.h> #include<ctype.h> #include<string.h> #include<math.h> #include<stdlib.h> struct books{ .原创 2020-08-11 08:44:28 · 308 阅读 · 0 评论 -
实验9-1 计算职工工资 (15分)
这道题不难,但是也有一些要注意的东西, 比如说在pta做题不会给你在结构体后面主动加分号,还有题目说输入输出保证在单精度范围内,所以只能用float型的数据,其他过不去测试(亲测) #include<stdio.h> #include<ctype.h> #include<string.h> #include<math.h> #include<stdlib.h> struct salary{ char name[15]; float.原创 2020-08-11 07:15:49 · 677 阅读 · 0 评论 -
实验9-2 时间换算 (15分)
#include<stdio.h> #include<ctype.h> #include<string.h> #include<math.h> #include<stdlib.h> int main() { int h, m, s, se; scanf("%d:%d:%d", &h, &m, &s); scanf("%d", &se); s += se; if ( s >= 60.原创 2020-08-11 06:53:20 · 176 阅读 · 0 评论 -
(含字符选择排序,字符串去重接口)实验7-3-10 删除重复字符 (20分)
#include<stdio.h> #include<ctype.h> #include<string.h> #include<math.h> #include<stdlib.h> void sort( char arr[], int n ){ char temp; int i, j; for ( i = 0; i < n - 1; i++) for ( j = i + 1; j < n; j+.原创 2020-08-10 16:17:57 · 280 阅读 · 0 评论 -
( 含注释)实验7-3-7 字符转换 (15分)
#include<stdio.h> #include<ctype.h> #include<string.h> #include<math.h> #include<stdlib.h> int main() { char arr[81]; gets(arr); int len = strlen(arr), i, temp, flag = 1; for ( i = 0; i < len; i++) if.原创 2020-08-10 14:30:13 · 782 阅读 · 0 评论 -
实验7-3-4 字符串替换 (15分)
#include<stdio.h> #include<ctype.h> #include<string.h> #include<math.h> #include<stdlib.h> int main() { char arr[81]; gets(arr); int len = strlen(arr), i; for ( i = 0; i < len; i++){ if (arr[i] >= .原创 2020-08-10 11:27:17 · 377 阅读 · 0 评论 -
(含详细注释)实验7-2-8 找鞍点 (20分)
#include<stdio.h> #include<ctype.h> #include<string.h> #include<math.h> #include<stdlib.h> int main() { int n, arr[6][6], i, j, k, flag = 1, temp = 0, max; scanf("%d", &n); for ( i = 0; i < n; i++) fo.原创 2020-08-10 09:40:49 · 530 阅读 · 0 评论 -
(最简,含详细注释及解题思路)实验7-2-7 方阵循环右移 (20分)
#include<stdio.h> #include<ctype.h> #include<string.h> #include<math.h> #include<stdlib.h> int main() { int m, n, i, j, arr[6][6]; scanf("%d %d", &m, &n); m %= n; //m >= n时取余得到要移动的次数m .原创 2020-08-10 08:53:57 · 299 阅读 · 0 评论 -
(含最容易理解的详细注释)实验7-2-6 打印杨辉三角 (20分)
#include<stdio.h> #include<ctype.h> #include<string.h> #include<math.h> #include<stdlib.h> int main() { int n, i, j, k, arr[10][10] = {0}; //先将二维数组全部初始化为0,为后面计算不是1的元素做准备。 scanf("%d", &n); for ( i = 0; i &l.原创 2020-08-10 07:39:52 · 182 阅读 · 0 评论 -
实验7-2-4 计算天数 (15分)
#include <stdio.h> int main() { int result, year, month, day, flag = 0; scanf("%d/%d/%d", &year, &month, &day); if (year%400 == 0 || year%4 == 0 && year%100 != 0) flag = 1; if (month == 1){ resul.原创 2020-08-10 06:34:42 · 396 阅读 · 0 评论 -
实验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个局部极大值,则该行按列号递增输出。若没有局部极大值,则输出“No原创 2020-08-09 19:37:31 · 376 阅读 · 1 评论 -
实验7-2-2 矩阵运算 (20分)
#include<stdio.h> #include<ctype.h> #include<string.h> #include<math.h> #include<stdlib.h> int main() { int n, sum = 0, i, j; scanf("%d", &n); int arr[n][n]; for ( i = 0; i < n; i++) for ( j = 0; .原创 2020-08-09 18:56:15 · 275 阅读 · 0 评论 -
实验7-2-1 求矩阵各行元素之和 (15分)
#include<stdio.h> #include<ctype.h> #include<string.h> #include<math.h> #include<stdlib.h> int main() { int m, n, i, j; scanf("%d %d", &m, &n); int arr[m][n], temp[6] = {0}; for ( i = 0; i < m; i++) .原创 2020-08-09 18:38:34 · 234 阅读 · 0 评论 -
实验7-1-12 组个最小数 (20分)
#include<stdio.h> #include<ctype.h> #include<string.h> #include<math.h> #include<stdlib.h> int main(void) { int i, j, n, a[10], b[50]; // 数组 a是题目输入的十个数字 ,数组 b是 a所代表的所有数字 for (i = 0; i < 10; i++) scanf("%d", &a[i.原创 2020-08-09 18:22:04 · 386 阅读 · 0 评论 -
实验7-1-11 求整数序列中出现次数最多的数 (15分)
本题要求统计一个整型序列中出现次数最多的整数及其出现次数。 输入格式: 输入在一行中给出序列中整数个数N(0<N≤1000),以及N个整数。数字间以空格分隔。 输出格式: 在一行中输出出现次数最多的整数及其出现次数,数字间以空格分隔。题目保证这样的数字是唯一的。 输入样例: 10 3 2 -1 5 3 4 3 0 3 2 输出样例: 3 4 #include<stdio.h> #define N 1000 //思路:使用两个数组,arr[i] arr2[i],arr[i]保存数据,arr原创 2020-08-09 17:26:18 · 476 阅读 · 0 评论 -
实验7-1-8 输出数组元素 (15分)
本题要求编写程序,对顺序读入的n个整数,顺次计算后项减前项之差,并按每行三个元素的格式输出结果。 输入格式: 输入的第一行给出正整数n(1<n≤10)。随后一行给出n个整数,其间以空格分隔。 输出格式: 顺次计算后项减前项之差,并按每行三个元素的格式输出结果。数字间空一格,行末不得有多余空格。 输入样例: 10 5 1 7 14 6 36 4 28 50 100 输出样例: -4 6 7 -8 30 -32 24 22 50 #include<stdio.h> #include<ct原创 2020-08-09 08:55:21 · 342 阅读 · 0 评论 -
实验7-1-6 求一批整数中出现最多的个位数字 (20分)
给定一批整数,分析每个整数的每一位数字,求出现次数最多的个位数字。例如给定3个整数1234、2345、3456,其中出现最多次数的数字是3和4,均出现了3次。 输入格式: 输入在第1行中给出正整数N(≤1000),在第二行中给出N个不超过整型范围的非负整数,数字间以空格分隔。 输出格式: 在一行中按格式“M: n1 n2 …”输出,其中M是最大次数,n1、n2、……为出现次数最多的个位数字,按从小到大的顺序排列。数字间以空格分隔,但末尾不得有多余空格。 输入样例: 3 1234 2345 3456 输出样例原创 2020-08-09 08:31:40 · 224 阅读 · 0 评论 -
实验7-1-4 找出不是两个数组共有的元素 (20分)
给定两个整型数组,本题要求找出不是两者共有的元素。 输入格式: 输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。 输出格式: 在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。题目保证至少存在一个这样的数字。同一数字不重复输出。 输入样例: 10 3 -5 2 8 0 3 5 -15 9 100 11 6 4 8 2 6 -5 9 0 100 8 1 输出样例: 3 5 -15 6 4 1 其实这道题最后输出的时候我原创 2020-08-09 07:05:43 · 573 阅读 · 1 评论 -
实验7-1-1 简化的插入排序 (15分)
本题要求编写程序,将一个给定的整数插到原本有序的整数序列中,使结果序列仍然有序。 输入格式: 输入在第一行先给出非负整数N(<10);第二行给出N个从小到大排好顺序的整数;第三行给出一个整数X。 输出格式: 在一行内输出将X插入后仍然从小到大有序的整数序列,每个数字后面有一个空格。 输入样例: 5 1 2 4 5 7 3 输出样例: 1 2 3 4 5 7 其实就是一个排序题,没有之前做的一道固定插入难做。 #include<stdio.h> #include<ctype.h>原创 2020-08-08 17:08:26 · 601 阅读 · 0 评论 -
实验6-9 统计一行文本的单词个数 (15分)
本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。 输入格式: 输入给出一行字符。 输出格式: 在一行中输出单词个数。 输入样例: Let’s go to room 209. 输出样例: 5 #include <stdio.h> int main() { char a; int cnt = 0,num = 0; while(scanf("%c", &a)){ if(原创 2020-08-08 16:38:17 · 224 阅读 · 0 评论 -
实验6-1 近似求PI (15分)
本题要求编写程序,根据下式求π的近似值,直到最后一项小于给定精度eps。 2 π =1+ 3 1! + 3×5 2! + 3×5×7 3! +⋯+ 3×5×⋯×(2×i+1) i! +⋯ 输入格式: 输入在一行中给出精度eps,可以使用以下语句来读输入: scanf("%le", &eps); 输出格式: 在一行内,按照以下格式输出π的近似值(保留小数点后5位): PI = 近似值 输入样例: 1E-5 输出样例: PI = 3.原创 2020-08-08 10:26:03 · 638 阅读 · 0 评论 -
实验4-2-9 梅森数 (20分)
形如2 n −1的素数称为梅森数(Mersenne Number)。例如2 2 −1=3、2 3 −1=7都是梅森数。1722年,双目失明的瑞士数学大师欧拉证明了2 31 −1=2147483647是一个素数,堪称当时世界上“已知最大素数”的一个记录。 本题要求编写程序,对任一正整数n(n<20),输出所有不超过2 n −1的梅森数。 输入格式: 输入在一行中给出正整数n(n<20)。 输出格式: 按从小到大的顺序输出所有不超过2 n −1的梅森数原创 2020-08-08 09:52:44 · 446 阅读 · 2 评论 -
实验4-2-8 输出整数各位数字 (15分)
本题要求编写程序,对输入的一个整数,从高位开始逐位分割并输出它的各位数字。 输入格式: 输入在一行中给出一个长整型范围内的非负整数。 输出格式: 从高位开始逐位输出该整数的各位数字,每个数字后面有一个空格。 输入样例: 123456 输出样例: 1 2 3 4 5 6 #include<stdio.h> #include<ctype.h> #include<string.h> #include<math.h> #include<stdlib.h>原创 2020-08-08 09:37:28 · 561 阅读 · 0 评论 -
实验4-2-6 输出三角形字符阵列 (15分)
本题要求编写程序,输出n行由大写字母A开始构成的三角形字符阵列。 输入格式: 输入在一行中给出一个正整数n(1≤n<7)。 输出格式: 输出n行由大写字母A开始构成的三角形字符阵列。格式见输出样例,其中每个字母后面都有一个空格。 输入样例: 4 输出样例: A B C D E F G H I J #include<stdio.h> #include<ctype.h> #include<string.h> #include<math.h> #include原创 2020-08-08 09:01:16 · 335 阅读 · 0 评论 -
实验4-2-3 验证“哥德巴赫猜想” (20分)
数学领域著名的“哥德巴赫猜想”的大致意思是:任何一个大于2的偶数总能表示为两个素数之和。比如:24=5+19,其中5和19都是素数。本实验的任务是设计一个程序,验证20亿以内的偶数都可以分解成两个素数之和。 输入格式: 输入在一行中给出一个(2, 2 000 000 000]范围内的偶数N。 输出格式: 在一行中按照格式“N = p + q”输出N的素数分解,其中p ≤ q均为素数。又因为这样的分解不唯一(例如24还可以分解为7+17),要求必须输出所有解中p最小的解。 输入样例: 24 输出样例: 24原创 2020-08-08 07:11:19 · 504 阅读 · 0 评论 -
实验4-1-12 黑洞数 (20分)
黑洞数也称为陷阱数,又称“Kaprekar问题”,是一类具有奇特转换特性的数。 任何一个各位数字不全相同的三位数,经有限次“重排求差”操作,总会得到495。最后所得的495即为三位黑洞数。所谓“重排求差”操作即组成该数的数字重排后的最大数减去重排后的最小数。(6174为四位黑洞数。) 例如,对三位数207: 第1次重排求差得:720 - 27 = 693; 第2次重排求差得:963 - 369 = 594; 第3次重排求差得:954 - 459 = 495; 以后会停留在495这一黑洞数。如果三位数的3个数原创 2020-08-07 20:12:17 · 391 阅读 · 0 评论 -
实验4-1-9 猜数字游戏 (15分)
猜数字游戏是令游戏机随机产生一个100以内的正整数,用户输入一个数对其进行猜测,需要你编写程序自动对其与随机产生的被猜数进行比较,并提示大了(“Too big”),还是小了(“Too small”),相等表示猜到了。如果猜到,则结束程序。程序还要求统计猜的次数,如果1次猜出该数,提示“Bingo!”;如果3次以内猜到该数,则提示“Lucky You!”;如果超过3次但是在N(>3)次以内(包括第N次)猜到该数,则提示“Good Guess!”;如果超过N次都没有猜到,则提示“Game Over”,并结原创 2020-08-07 19:14:46 · 468 阅读 · 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, n; scanf("%d原创 2020-08-07 17:57:29 · 320 阅读 · 0 评论 -
实验4-1-5 韩信点兵 (10分)
在中国数学史上,广泛流传着一个“韩信点兵”的故事:韩信是汉高祖刘邦手下的大将,他英勇善战,智谋超群,为汉朝建立了卓越的功劳。据说韩信的数学水平也非常高超,他在点兵的时候,为了知道有多少兵,同时又能保住军事机密,便让士兵排队报数: 按从1至5报数,记下最末一个士兵报的数为1; 再按从1至6报数,记下最末一个士兵报的数为5; 再按从1至7报数,记下最末一个士兵报的数为4; 最后按从1至11报数,最末一个士兵报的数为10; 请编写程序计算韩信至少有多少兵。 输入格式: 本题无输入 输出格式: 输出韩信至少拥有的士原创 2020-08-07 17:25:02 · 622 阅读 · 0 评论 -
实验3-11 计算油费 (15分)
现在90号汽油6.95元/升、93号汽油7.44元/升、97号汽油7.93元/升。为吸引顾客,某自动加油站推出了“自助服务”和“协助服务”两个服务等级,分别可得到5%和3%的折扣。 本题要求编写程序,根据输入顾客的加油量a,汽油品种b(90、93或97)和服务类型c(m - 自助,e - 协助),计算并输出应付款。 输入格式: 输入在一行中给出两个整数和一个字符,分别表示顾客的加油量a,汽油品种b(90、93或97)和服务类型c(m - 自助,e - 协助)。 输出格式: 在一行中输出应付款额,保留小数点后原创 2020-08-07 16:34:20 · 972 阅读 · 0 评论 -
实验3-5 查询水果价格 (15分)
给定四种水果,分别是苹果(apple)、梨(pear)、桔子(orange)、葡萄(grape),单价分别对应为3.00元/公斤、2.50元/公斤、4.10元/公斤、10.20元/公斤。 首先在屏幕上显示以下菜单: [1] apple [2] pear [3] orange [4] grape [0] exit 用户可以输入编号1~4查询对应水果的单价。当连续查询次数超过5次时,程序应自动退出查询;不到5次而用户输入0即退出;输入其他编号,显示价格为0。 输入格式: 输入在一行中给出用户连续输入的若干个编号原创 2020-08-07 15:44:40 · 502 阅读 · 0 评论 -
实验3-3 比较大小 (10分)(使用qsort快排数组)
本题要求将输入的任意3个整数从小到大输出。 输入格式: 输入在一行中给出3个整数,其间以空格分隔。 输出格式: 在一行中将3个整数从小到大输出,其间以“->”相连。 输入样例: 4 2 8 输出样例: 2->4->8 #include<stdio.h> #include<ctype.h> #include<string.h> #include<math.h> #include<stdlib.h> int cmp(void cons原创 2020-08-06 20:00:48 · 192 阅读 · 0 评论 -
实验3-1 求一元二次方程的根 (20分)
本题目要求一元二次方程的根,结果保留2位小数。 输入格式: 输入在一行中给出3个浮点系数a、b、c,中间用空格分开。 输出格式: 根据系数情况,输出不同结果: 1)如果方程有两个不相等的实数根,则每行输出一个根,先大后小; 2)如果方程有两个不相等复数根,则每行按照格式“实部+虚部i”输出一个根,先输出虚部为正的,后输出虚部为负的; 3)如果方程只有一个根,则直接输出此根; 4)如果系数都为0,则输出"Zero Equation"; 5)如果a和b为0,c不为0,则输出"Not An Equation"。原创 2020-08-06 19:46:23 · 365 阅读 · 0 评论