《C语言程序设计实验与习题指导(第3版)》题目集
浙大版题目集
太极生两鱼
这个世界,强者为尊
展开
-
实验7-3-6 字符串转换成十进制整数
题目输入一个以#结束的字符串,本题要求滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出。如果在第一个十六进制字符之前存在字符“-”,则代表该数是负数。输入格式及样例格式输入在一行中给出一个以#结束的非空字符串。样例输出格式及样例格式在一行中输出转换后的十进制数。题目保证输出在长整型范围内。样例参考代码#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include原创 2021-09-07 12:01:01 · 428 阅读 · 0 评论 -
实验7-3-5 输出大写英文字母
题目本题要求编写程序,顺序输出给定字符串中所出现过的大写英文字母,每个字母只输出一遍;若无大写英文字母则输出“Not Found”。输入格式及样例格式输入为一个以回车结束的字符串(少于80个字符)。样例输出格式及样例格式样例参考代码#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int main() { char arr[80]; int n = 0; for (i原创 2021-09-07 10:21:25 · 185 阅读 · 0 评论 -
实验7-3-4 字符串替换
题目本题要求编写程序,将给定字符串中的大写英文字母按以下对应规则替换:输入格式及样例格式样例输出格式及样例格式样例参考代码#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int main() { char arr[81]; gets_s(arr); for (int i = 0; arr[i] != '\n'; i++) { if (arr[i] >= 'A原创 2021-09-06 20:41:18 · 173 阅读 · 0 评论 -
实验7-3-3 统计大写辅音字母
题目英文辅音字母是除A、E、I、O、U以外的字母。本题要求编写程序,统计给定字符串中大写辅音字母的个数。输入格式及样例格式输入在一行中给出一个不超过80个字符、并以回车结束的字符串。样例输出格式及样例格式输出在一行中给出字符串中大写辅音字母的个数。样例参考代码#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int main() { char* arr = (char*)原创 2021-09-06 20:27:07 · 142 阅读 · 0 评论 -
实验7-3-2 查找指定字符
题目从给定字符串中查找某指定的字符。输入格式及样例格式输入的第一行是一个待查找的字符。第二行是一个以回车结束的非空字符串(不超过80个字符)。样例输出格式及样例格式如果找到,在一行内按照格式“index = 下标”输出该字符在字符串中所对应的最大下标(下标从0开始);否则输出"Not Found"。样例参考代码#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int mai原创 2021-09-06 18:10:17 · 122 阅读 · 0 评论 -
实验7-3-1 字符串逆序
题目字符串逆序输入格式及样例格式样例输出格式及样例格式样例参考代码#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int main() { int n = 0; char* arr = (char*)malloc(sizeof(char)); for (int i = 0;; i++) { scanf("%c", &arr[i]); n++; if原创 2021-09-06 17:40:30 · 78 阅读 · 0 评论 -
实验7-2-10 简易连连看
题目给定一个2N×2N的方阵网格游戏盘面,每个格子中放置一些符号。这些符号一定是成对出现的,同一个符号可能不止一对。程序读入玩家给出的一对位置(x1,y1 )、(x2,y2),判断这两个位置上的符号是否匹配。如果匹配成功,则将两个符号消为“*”并输出消去后的盘面;否则输出“Uh-oh”。若匹配错误达到3次,则输出“Game Over”并结束游戏。或者当全部符号匹配成功,则输出“Congratulations!”,然后结束游戏。输入格式及样例格式输入在一行中给一个正整数N(<5)。随后原创 2021-09-06 17:31:32 · 181 阅读 · 0 评论 -
实验7-2-9 螺旋方阵
题目所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。本题要求构造这样的螺旋方阵。输入格式及样例格式输入在一行中给出一个正整数N(<10)。样例输出格式及样例格式输出N×N的螺旋方阵。每行N个数字,每个数字占3位。样例参考代码#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int main() {原创 2021-09-03 16:03:31 · 117 阅读 · 0 评论 -
实验7-2-8 找鞍点
题目一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。输入格式及样例格式输入第一行给出一个正整数n(1≤n≤6)。随后n行,每行给出n个整数,其间以空格分隔。样例输出格式及样例格式输出在一行中按照“行下标 列下标”(下标从0开始)的格式输出鞍点的位置。如果鞍点不存在,则输出“NONE”。题目保证给出的矩阵至多存在一个鞍点。样例参考代码#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include&l原创 2021-09-03 12:36:31 · 135 阅读 · 2 评论 -
实验7-2-7 方阵循环右移
题目本题要求编写程序,将给定n×n方阵中的每个元素循环向右移m个位置输入格式及样例格式输入第一行给出两个正整数m和n(1≤n≤6)。接下来一共n行,每行n个整数,表示一个n阶的方阵。样例输出格式及样例格式按照输入格式输出移动后的方阵:即输出n行,每行n个整数,每个整数后输出一个空格。样例参考代码#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int main() { i原创 2021-09-03 11:14:27 · 140 阅读 · 0 评论 -
实验7-2-6 打印杨辉三角
题目打印前N行杨辉三角。输入格式及样例格式输入在一行中给出N(1≤N≤10)。样例输出格式及样例格式以正三角形的格式输出前N行杨辉三角。每个数字占固定4位。样例参考代码#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int main() { int n; scanf("%d", &n); int** arr = (int**)malloc(sizeof(in原创 2021-09-02 16:16:22 · 52 阅读 · 0 评论 -
实验7-2-5 判断上三角矩阵
题目本题要求编写程序,判断一个给定的方阵是否上三角矩阵。输入格式及样例格式输入第一行给出一个正整数T,为待测矩阵的个数。接下来给出T个矩阵的信息:每个矩阵信息的第一行给出一个不超过10的正整数n。随后n行,每行给出n个整数,其间以空格分隔。样例231 2 30 4 50 0 621 0-8 2输出格式及样例格式每个矩阵的判断结果占一行。如果输入的矩阵是上三角矩阵,输出“YES”,否则输出“NO”。样例YESNO参考代码#define _CRT_SECURE_NO_原创 2021-09-02 15:19:37 · 91 阅读 · 0 评论 -
实验7-2-4 计算天数
题目编写程序计算某年某月某日是该年中的第几天。输入格式及样例格式输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。样例输出格式及样例格式在一行输出日期是该年中的第几天。样例参考代码#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int main()原创 2021-09-02 12:10:08 · 266 阅读 · 0 评论 -
实验7-2-3 求矩阵的局部极大值
题目给定M行N列的整数矩阵A,如果A的非边界元素A[i][j]大于相邻的上下左右4个元素,那么就称元素A[i][j]是矩阵的局部极大值。本题要求给定矩阵的全部局部极大值及其所在的位置。输入格式及样例格式输入在第一行中给出矩阵A的行数M和列数N(3≤M,N≤20);最后M行,每行给出A在该行的N个元素的值。数字间以空格分隔。样例4 51 1 1 1 11 3 9 3 11 5 3 5 11 1 1 1 1输出格式及样例格式每行按照“元素值 行号 列号”的格式输出一个局部极大值,其中行原创 2021-09-02 10:44:35 · 110 阅读 · 0 评论 -
实验7-2-2 矩阵运算
题目给定一个n×n的方阵,本题要求计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。副对角线为从矩阵的右上角至左下角的连线。输入格式及样例格式输入第一行给出正整数n(1<n≤10);随后n行,每行给出n个整数,其间以空格分隔。样例42 3 4 15 6 1 17 1 8 11 1 1 1输出格式及样例格式在一行中给出该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。样例35参考代码#define _CRT_SECURE_NO_WARNINGS#in原创 2021-09-02 10:19:19 · 196 阅读 · 0 评论 -
实验7-2-1 求矩阵各行元素之和
题目本题要求编写程序,求一个给定的m×n矩阵各行元素之和。输入格式及样例格式输入第一行给出两个正整数m和n(1≤m,n≤6)。随后m行,每行给出n个整数,其间以空格分隔。样例3 26 31 -83 12输出格式及样例格式每行输出对应矩阵行元素之和。样例9-715参考代码#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int main() { int m,原创 2021-09-02 09:51:00 · 534 阅读 · 0 评论 -
实验7-1-13 装箱问题
题目输入格式及样例格式样例860 70 80 90 30 40 10 20输出格式及样例格式样例60 170 280 390 430 140 510 120 25参考代码#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int main() { int n; scanf("%d", &n); int max = 0; int* arr =原创 2021-09-01 16:25:25 · 119 阅读 · 0 评论 -
实验7-1-12 组个最小数
题目给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)。例如:给定两个0,两个1,三个5,一个8,我们得到的最小的数就是10015558。现给定数字,请编写程序输出能够组成的最小的数。输入格式及样例格式输入在一行中给出10个非负整数,顺序表示我们拥有数字0、数字1、……数字9的个数。整数间用一个空格分隔。10个数字的总个数不超过50,且至少拥有1个非0的数字。样例2 2 0 0 0 3 0 0 1 0输出格式及样例格式原创 2021-09-01 14:49:57 · 101 阅读 · 0 评论 -
实验7-1-11 求整数序列中出现次数最多的数
题目本题要求统计一个整型序列中出现次数最多的整数及其出现次数。输入格式及样例格式输入在一行中给出序列中整数个数N(0<N≤1000),以及N个整数。数字间以空格分隔。样例10 3 2 -1 5 3 4 3 0 3 2输出格式及样例格式在一行中输出出现次数最多的整数及其出现次数,数字间以空格分隔。题目保证这样的数字是唯一的。样例3 4参考代码#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<原创 2021-09-01 13:57:46 · 320 阅读 · 0 评论 -
实验7-1-10 交换最小值和最大值
题目本题要求编写程序,先将输入的一系列整数中的最小值与第一个数交换,然后将最大值与最后一个数交换,最后输出交换后的序列。注意:题目保证最大和最小值都是唯一的。输入格式及样例格式输入在第一行中给出一个正整数N(≤10),第二行给出N个整数,数字间以空格分隔。样例58 2 5 1 4输出格式及样例格式在一行中顺序输出交换后的序列,每个整数后跟一个空格。样例1 2 5 4 8参考代码#define _CRT_SECURE_NO_WARNINGS#include<stdio.原创 2021-09-01 13:11:53 · 211 阅读 · 0 评论 -
实验7-1-9 数字加密
题目输入一个四位数,将其加密后输出。方法是将该数每一位上的数字加9,然后除以10取余,做为该位上的新数字,最后将千位和十位上的数字互换,百位和个位上的数字互换,组成加密后的新四位数。例如输入1257,经过加9取余后得到新数字0146,再经过两次换位后得到4601。输入格式及样例格式输入在一行中给出一个四位的整数x,即要求被加密的数。样例1257输出格式及样例格式在一行中按照格式“The encrypted number is V”输出加密后得到的新数V。样例The encrypted原创 2021-09-01 12:41:41 · 204 阅读 · 0 评论 -
实验7-1-6 求一批整数中出现最多的个位数字
题目给定一批整数,分析每个整数的每一位数字,求出现次数最多的个位数字。例如给定3个整数1234、2345、3456,其中出现最多次数的数字是3和4,均出现了3次。输入格式及样例格式输入在第1行中给出正整数N(≤1000),在第二行中给出N个不超过整型范围的非负整数,数字间以空格分隔。样例31234 2345 3456输出格式及样例格式在一行中按格式“M: n1 n2 …”输出,其中M是最大次数,n1、n2、……为出现次数最多的个位数字,按从小到大的顺序排列。数字间以空格分隔,但末尾不得有原创 2021-09-01 12:24:27 · 466 阅读 · 0 评论 -
实验7-1-8 输出数组元素
题目本题要求编写程序,对顺序读入的n个整数,顺次计算后项减前项之差,并按每行三个元素的格式输出结果。输入格式及样例格式输入的第一行给出正整数n(1<n≤10)。随后一行给出n个整数,其间以空格分隔。样例105 1 7 14 6 36 4 28 50 100输出格式及样例格式顺次计算后项减前项之差,并按每行三个元素的格式输出结果。数字间空一格,行末不得有多余空格。样例-4 6 7-8 30 -3224 22 50参考代码#define _CRT_SECURE_NO_WA原创 2021-09-01 11:51:26 · 147 阅读 · 0 评论 -
实验7-1-7 查找整数
题目本题要求从输入的N个整数中查找给定的X。如果找到,输出X的位置(从0开始数);如果没有找到,输出“Not Found”。输入格式及样例格式输入在第一行中给出两个正整数N(≤20)和X,第二行给出N个整数。数字均不超过长整型,其间以空格分隔。样例5 73 5 7 1 9输出格式及样例格式在一行中输出X的位置,或者“Not Found”。样例2参考代码#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include原创 2021-08-31 15:58:39 · 351 阅读 · 0 评论 -
实验7-1-5 选择法排序
题目本题要求将给定的n个整数从大到小排序后输出。输入格式及样例格式输入第一行给出一个不超过10的正整数n。第二行给出n个整数,其间以空格分隔。样例45 1 7 6输出格式及样例格式输出格式:在一行中输出从大到小有序的数列,相邻数字间有一个空格,行末不得有多余空格。样例7 6 5 1参考代码#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>void Swap(int*原创 2021-08-31 11:46:46 · 166 阅读 · 0 评论 -
实验7-1-4 找出不是两个数组共有的元素
题目给定两个整型数组,本题要求找出不是两者共有的元素。输入格式及样例格式输入分别在两行中给出两个整型数组,每行先给出正整数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输出格式及样例格式在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。题目保证至少存在一个这样的数字。同一数字不重复输出。样例3 5 -15 6 4 1参考代码原创 2021-08-31 11:15:12 · 110 阅读 · 0 评论 -
实验7-1-3 将数组中的数逆序存放
题目本题要求编写程序,将给定的n个整数存入数组中,将数组中的这n个数逆序存放,再按顺序输出数组中的元素。输入格式及样例格式输入在第一行中给出一个正整数n(1≤n≤10)。第二行输入n个整数,用空格分开。样例410 8 1 2输出格式及样例格式在一行中输出这n个整数的处理结果,相邻数字中间用一个空格分开,行末不得有多余空格。样例2 1 8 10参考代码#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include&原创 2021-08-30 15:42:39 · 366 阅读 · 0 评论 -
实验7-1-2 求最大值及其下标
题目本题要求编写程序,找出给定的n个数中的最大值及其对应的最小下标(下标从0开始)。输入格式及样例格式输入在第一行中给出一个正整数n(1<n≤10)。第二行输入n个整数,用空格分开。样例62 8 10 1 9 10输出格式及样例格式输入在第一行中给出一个正整数n(1<n≤10)。第二行输入n个整数,用空格分开。样例10 2参考代码#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<s原创 2021-08-30 15:23:07 · 128 阅读 · 0 评论 -
实验7-1-1 简化的插入排序
题目本题要求编写程序,将一个给定的整数插到原本有序的整数序列中,使结果序列仍然有序。输入格式及样例格式输入在第一行先给出非负整数N(<10);第二行给出N个从小到大排好顺序的整数;第三行给出一个整数X。样例51 2 4 5 73输出格式及样例格式在一行内输出将X插入后仍然从小到大有序的整数序列,每个数字后面有一个空格。样例1 2 3 4 5 7参考代码#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#inc原创 2021-08-30 15:05:48 · 233 阅读 · 0 评论 -
实验6-9 统计一行文本的单词个数
题目本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。输入格式及样例格式输入给出一行字符。样例Let’s go to room 209.输出格式及样例格式在一行中输出单词个数。样例5参考代码#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int main() { char* arr = (cha原创 2021-08-30 13:53:27 · 104 阅读 · 0 评论 -
实验6-8 简单计算器
题目模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算。输入格式及样例格式输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数。遇等号”=”说明输入结束。样例1+2*10-10/2=输出格式及样例格式在一行中输出算式的运算结果,或者如果除法分母为0或有非法运算符,则输出错误信息“ERROR”。样例10参考代码#define _CRT_SECURE_NO_WARNINGS#include<std原创 2021-08-30 13:28:20 · 99 阅读 · 0 评论 -
实验6-1 近似求PI
题目输入格式及样例格式输入在一行中给出精度eps,可以使用以下语句来读输入:样例1E-5输出格式及样例格式在一行内,按照以下格式输出π的近似值(保留小数点后5位):样例PI = 3.14158参考代码#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>double fac(int x) { double sum = 1; for (int i = 1; i <= x; i++) { sum *= i; }原创 2021-08-26 13:09:59 · 335 阅读 · 0 评论 -
实验4-2-9 梅森数
题目梅森数输入格式及样例格式输入在一行中给出正整数n(n<20)。样例6输出格式及样例格式样例3731参考代码#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<math.h>int main() { int m; scanf("%d", &m); int juge = 1; for (int i = 2; i &l原创 2021-08-26 12:09:38 · 104 阅读 · 0 评论 -
实验4-2-7 找完数
题目所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。输入格式及样例格式输入在一行中给出2个正整数m和n(1<m≤n≤10000),中间以空格分隔。样例2 30输出格式及样例格式逐行输出给定范围内每个完数的因子累加形式的分解式,每个完数占一行,格式为“完数 = 因子1 + 因子2 + … + 因子k”,其中完数和因子均按递增顺序给出。若区间内没有完数,则输出“None”。样例6 =原创 2021-08-26 11:09:13 · 694 阅读 · 0 评论 -
实验4-2-6 输出三角形字符阵列
题目本题要求编写程序,输出n行由大写字母A开始构成的三角形字符阵列。输入格式及输入样例输出n行由大写字母A开始构成的三角形字符阵列。格式见输出样例,其中每个字母后面都有一个空格。4输出格式及输出样例输出n行由大写字母A开始构成的三角形字符阵列。格式见输出样例,其中每个字母后面都有一个空格。A B C DE F GH IJ参考代码#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>原创 2021-08-26 09:58:31 · 615 阅读 · 0 评论 -
实验4-2-5 水仙花数
题目水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:在这里插入图片描述。本题要求编写程序,计算所有N位水仙花数。输入格式及样例:输入在一行中给出一个正整数N(3≤N≤7)。3输出格式及样例:按递增顺序输出所有N位水仙花数,每个数字占一行。153370371407参考代码#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include&原创 2021-08-25 16:39:15 · 1505 阅读 · 0 评论 -
实验4-2-4 换硬币
将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?输入格式:输入在一行中给出待换的零钱数额x∈(8,100)。输出格式:要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换法。每行输出一种换法,格式为:“fen5:5分硬币数量, fen2:2分硬币数量, fen1:1分硬币数量, total:硬币总数量”。最后一行输出“count = 换法个数”。输入样例:13输出样例:fen5:2, fen2:1, fen1:1, total:4fen5:1, f原创 2021-08-25 14:05:17 · 102 阅读 · 0 评论 -
验证“哥德巴赫猜想”
数学领域著名的“哥德巴赫猜想”的大致意思是:任何一个大于2的偶数总能表示为两个素数之和。比如:24=5+19,其中5和19都是素数。本实验的任务是设计一个程序,验证20亿以内的偶数都可以分解成两个素数之和。输入格式:输入在一行中给出一个(2, 2 000 000 000]范围内的偶数N。输出格式:在一行中按照格式“N = p + q”输出N的素数分解,其中p ≤ q均为素数。又因为这样的分解不唯一(例如24还可以分解为7+17),要求必须输出所有解中p最小的解。输入样例:36输出样例:36=原创 2021-08-24 17:12:20 · 104 阅读 · 0 评论 -
求e的近似值
自然常数 e 可以用级数 1+1/1!+1/2!+⋯+1/n!+⋯ 来近似计算。本题要求对给定的非负整数 n,求该级数的前 n+1 项和。输入格式:输入第一行中给出非负整数 n(≤1000)。输出格式:在一行中输出部分和的值,保留小数点后八位。输入样例:10输出样例:2.71828180#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int fac(int n) { int原创 2021-08-23 16:39:12 · 1803 阅读 · 0 评论 -
实验4-1-12 黑洞数
黑洞数也称为陷阱数,又称“Kaprekar问题”,是一类具有奇特转换特性的数。任何一个各位数字不全相同的三位数,经有限次“重排求差”操作,总会得到495。最后所得的495即为三位黑洞数。所谓“重排求差”操作即组成该数的数字重排后的最大数减去重排后的最小数。(6174为四位黑洞数。)例如,对三位数207:第1次重排求差得:720 - 27 = 693;第2次重排求差得:963 - 369 = 594;第3次重排求差得:954 - 459 = 495;以后会停留在495这一黑洞数。如果三位数的3个数原创 2021-08-23 16:24:01 · 82 阅读 · 0 评论