![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PAT乙级真题
文章平均质量分 80
对方北方
这个作者很懒,什么都没留下…
展开
-
PAT乙级1057. 数零壹(C语言)
PAT乙级真题题解目录#include <stdio.h>#include <ctype.h>int main() { int sum = 0; char c; while((c = getchar()) != '\n') { if (isalpha(c)) { c = tolower...原创 2018-09-04 14:06:13 · 355 阅读 · 0 评论 -
PAT乙级1037. 在霍格沃茨找零钱(C语言)
PAT乙级真题题解目录#include <stdio.h>int main() { int Galleon, Sickle, Knut, P, A, change; scanf("%d.%d.%d", &Galleon, &Sickle, &Knut); P = (Galleon * 17 + Sickle) *...原创 2018-09-02 14:55:58 · 501 阅读 · 1 评论 -
PAT乙级1012. 数字分类(C语言)
PAT乙级真题题解目录#include <stdio.h>int main() { int N, num, A1 = 0, A2 = 0, A3, A5 = 0; int cnt[5] = {0, 0, 0, 0, 0}, isOdd = 1; //统计符合各分类的数字数量;是否为奇数 double A4 = 0.0; scan...原创 2018-08-30 15:51:50 · 992 阅读 · 1 评论 -
PAT乙级1011. A+B和C(C语言)
PAT乙级真题题解目录#include <stdio.h>int main() { long int A, B, C;//声明整数A B C; 如果A、B都是临界值会超过int型的范围,因此用long int型 int T;//测试用例个数 scanf("%d", &T); for (int i = 1; i <= ...原创 2018-08-30 15:32:05 · 380 阅读 · 0 评论 -
PAT乙级1010. 一元多项式求导(C语言)
PAT乙级真题题解目录/** * 本题重点在于 指数为0的项: * 两种情况: * 1. 零多项式(只有一项),输出 0 0 * 2. 非零多项式中的常数项,不输出 */#include &lt;stdio.h&gt;int main() { int coe, index, isFirst = 1; //声明系数和指数,是否为多项式首项 do...原创 2018-08-30 15:21:27 · 407 阅读 · 0 评论 -
PAT乙级1009. 说反话(C语言)
PAT乙级真题题解目录/* * 1. 输入含空格的字符串:用 gets() 读取 * 2. 句子颠倒,单词本身字母不颠倒: * 2.1 从末尾单词开始输出 * 2.2 利用指针使单词本身正序 * 2.3 空格是单词结束的标识 */#include <stdio.h>#include <string.h> ...原创 2018-08-30 13:36:53 · 4107 阅读 · 13 评论 -
PAT乙级1008. 数组元素循环右移问题(C语言)
PAT乙级真题题解目录/* * 1. 元素循环右移M位 可以转化为以下三步: * 1. 元素全部倒置; * 2. 前M个元素倒置; * 3. 之后的所有元素倒置; * 2. 数组部分元素倒置:可用数组下标标记 倒置范围 * 3. 若右移的位数M超出元素数量N,等同于 右移 M % N 位 */#include <stdio.h...原创 2018-08-30 13:21:55 · 394 阅读 · 0 评论 -
PAT乙级1075. 链表元素分类(C语言)
PAT乙级真题题解目录/* * (可回顾 1025. 反转链表) * 1. 通过数组下标表示节点地址 * 2. 存在无效节点 */#include <stdio.h>typedef struct { int addr; int data; int next; } Node;int main() { int fir...原创 2018-09-07 21:21:37 · 637 阅读 · 0 评论 -
PAT乙级1074. 宇宙无敌加法器(C语言)
PAT乙级真题题解目录/* * (可回顾 1048. 数字加密;都涉及使数字位数一致) * 1. 不同位数的PAT数之间如何方便相加 —— 构造相同大小的字符数组,按位数存储对应的数字 * 2. 相加时转为数字进行运算 * 3. 结果为0,为特殊情况,单独写输出代码 */#include <stdio.h>#include <string.h&g...原创 2018-09-07 21:11:14 · 979 阅读 · 0 评论 -
PAT乙级1073. 多选题常见计分法(C语言)
PAT乙级真题题解目录/* * (该题为 1058. 选择题 的基础上,增加了 选择部分正确选项&没选错误选项,则得到50%分数的判断) */#include <stdio.h>#include <stdlib.h>typedef struct { int score;//满分值 int cnt;//2 <=...原创 2018-09-07 21:10:01 · 980 阅读 · 1 评论 -
PAT乙级1072. 开学寄语(C语言)
PAT乙级真题题解目录#include <stdio.h>int main() { int N, M;//学生人数,需要查缴的种类数 scanf("%d %d", &N, &M); int num[M];//物品的编号 for (int i = 0; i < M; i++) { scanf(...原创 2018-09-07 21:08:44 · 521 阅读 · 0 评论 -
PAT乙级1071. 小赌怡情(C语言)
PAT乙级真题题解目录/* 题目漏洞:输出格式中,句子间隔为1个空格;输出样例中,句子间隔为2个空格。 * 实际为2个空格 */#include <stdio.h>int main() { int x, K;//筹码数,游戏次数 scanf("%d %d", &x, &K); int n1, n2, b, t;//...原创 2018-09-07 21:07:35 · 474 阅读 · 0 评论 -
PAT乙级1070. 结绳(C语言)
PAT乙级真题题解目录/* * 1. 分析可知,绳子的对折使 长度指数递减,自然 越长的绳子越迟串联,即可得到最大长度 —— qsort() 排序 * 2. 向下取整 * 2.1 方式一:直接将double型转为int型,即去除小数 * 2.2 方式二:floor()函数 */#include <stdio.h>#include <stdli...原创 2018-09-07 21:06:33 · 495 阅读 · 0 评论 -
PAT乙级1069. 微博转发抽奖(C语言)
PAT乙级真题题解目录#include <stdio.h>#include <string.h>int isGot(int *isWin, int length, int j, char name[][21]) { for (int i = 0; i < length; i++) { if (isWin[i] != 0...原创 2018-09-07 21:05:17 · 575 阅读 · 0 评论 -
PAT乙级1068. 万绿丛中一点红(C语言)
PAT乙级真题题解目录/* * 1. 一定程度上考察对C语言的掌握 * 2. 确定独一无二颜色的像素点 * 2.1 颜色是一个 24 位的数值 —— 以像素数值为下标构造数组,通过计数判断独一无二 * 2.2 即数组下标最大值 < 2^{25},大数组要定义在main函数外,防止栈溢出 * 3. 独一无二颜色的像素点,与其周围 8 个相邻像素的颜色差需要 &...原创 2018-09-07 21:04:20 · 1074 阅读 · 2 评论 -
PAT乙级1067. 试密码(C语言)
PAT乙级真题题解目录/* * (字符的读取,可回顾1054. 求平均值) * PS:用户输入的长度未知,可通过 创建大容量的字符数组 解题; */#include <stdio.h>#include <string.h>int main() { int N; char c, password[21], user[21];...原创 2018-09-07 21:03:10 · 756 阅读 · 2 评论 -
PAT乙级1066. 图像过滤(C语言)
PAT乙级真题题解目录#include <stdio.h>int main() { int M, N, A, B, gray, temp; scanf("%d %d %d %d %d", &M, &N, &A, &B, &gray); for (int i = 0; i < M; i++) {...原创 2018-09-04 17:04:02 · 331 阅读 · 0 评论 -
PAT乙级1038. 统计同成绩学生(C语言)
PAT乙级真题题解目录/* 返回指定分数的人数,因此用分数为下标的数组存储人数最合适。 */#include <stdio.h>int main() { int N, K, grades[101] = {0}, score;//学生人数,要查询的分数个数, 统计各分数的人数 scanf("%d", &N); for (int ...原创 2018-09-02 14:57:29 · 375 阅读 · 0 评论 -
PAT乙级1039. 到底买不买(C语言)
PAT乙级真题题解目录/* 也可采用 将字符作为数组下标的方式统计数量 */#include <stdio.h>#include <string.h>int main() { char line1[1001], line2[1001]; scanf("%s\n%s", line1, line2); for (int i =...原创 2018-09-02 14:58:43 · 742 阅读 · 0 评论 -
PAT乙级1040. 有几个PAT(C语言)
PAT乙级真题题解目录/* * (与PAT字符有关的题目,可回顾一下 1003. 我要通过) * 1. 重点分析字母A : * 1.1 A前有P,后有T才能形成PAT; * 1.2 A能构成的PAT数量 = 之前P的数量 * 之后T的数量 * 2. 突破口:先遍历一遍,获取T的数量 */#include <stdio.h>#include &...原创 2018-09-02 16:26:30 · 671 阅读 · 0 评论 -
PAT乙级1056. 组合数的和(C语言)
PAT乙级真题题解目录#include <stdio.h>int main(){ int N; scanf("%d", &N); int num, sum = 0; for (int i = 0; i < N; i++) { scanf("%d", &num); sum += ...原创 2018-09-03 22:55:18 · 393 阅读 · 0 评论 -
PAT乙级1055. 集体照(C语言)
PAT乙级真题题解目录/* * 1. 利用指针和数组的特点; * 2. 排序规律: * 2.1 人数为 N/K 的共有 K-1排; * 2.2 身高从前排到后排升序; * 2.3 每排从大到小的第偶数个都在左边,且递增; * 2.4 每排第奇数个(包括最高)都在右边,且递减; * 3. 输出时可以 根据排序规律直接输出,不必按照队形排序; */...原创 2018-09-03 22:38:41 · 866 阅读 · 1 评论 -
PAT乙级1054. 求平均值(C语言)
PAT乙级真题题解目录/* * 1. 合法的输入最长为8(-1000.00); * 2. 严谨解法: * 2.1 scanf("%8s", str); 读取 最多前8个字符 * 2.2 利用 ungetc(getchar(), stdin); 读取之后的字符,并推回(避免不必要的误读); * 2.3 isspace(c); 判断是否读取了...原创 2018-09-03 22:25:04 · 1272 阅读 · 0 评论 -
PAT乙级1053. 住房空置率(C语言)
PAT乙级真题题解目录/* 确认好浮点数和整数。其中输出是天数相除得到百分比,需要 从整数到浮点数的转换 */#include <stdio.h>int main(){ int N, D;//住房总套数,观察天数阈值 double e;//低电量阈值 scanf("%d %lf %d", &N, &e, &D...原创 2018-09-03 17:38:11 · 389 阅读 · 0 评论 -
PAT乙级1052. 卖个萌(C语言)
PAT乙级真题题解目录/** * 1. 读取符号 * - getchar() != '\n'; * - 正则表达式 "%[^]]" 读取符号; * - 统计符号集的长度; * 2. 颜文字 实际大小可能不止一个字符 * 3. 颜文字在命令行窗口存在无法显示的情况,需要提交答案才能真正判断正确性; */#include <std...原创 2018-09-03 17:33:23 · 889 阅读 · 5 评论 -
PAT乙级1051. 复数乘法(C语言)
PAT乙级真题题解目录/* * 1. C语言有三角函数库,位于 <math.h> * 2. C语言的格式化输出保留小数,默认四舍五入,在接近0的负数四舍五入之后不输出0.00,而是-0.00。 */#include <stdio.h>#include <math.h>int main(){ double R1, P1, ...原创 2018-09-03 17:03:40 · 681 阅读 · 0 评论 -
PAT乙级1050. 螺旋矩阵(C语言)
PAT乙级真题题解目录/* * 1. 先对输入的数组排序; * 2. 螺旋矩阵的行列数确定的关键:m−n 取所有可能值中的最小值; * 通过sqrt函数,开方再遍历,能最快地得到n; * 3. 螺旋矩阵的填充顺序:上 → 右 → 下 → 左; * 3.1 用二维数组存储螺旋矩阵(个人喜好,一位数组也可行); * 3.2 遍历填充二维数组,以二维数组的圈数作为遍...原创 2018-09-03 16:57:43 · 1266 阅读 · 2 评论 -
PAT乙级1049. 数列的片段和(C语言)
PAT乙级真题题解目录/* * 1. 枚举法易得 第i位元素 需要求和的数量为 i*(n-i+1); * 2. 求和时,上述公式很可能会溢出,因此将相乘时,将double类型的元素前置; */#include <stdio.h>int main() { int N; scanf("%d", &N); double arr[...原创 2018-09-03 16:26:29 · 455 阅读 · 1 评论 -
PAT乙级1048. 数字加密(C语言)
PAT乙级真题题解目录/* * 1. 需要让A和B 对应的位进行计算 * 2. 正整数整数A和B如果长度不一,高位补0使长度一致,进行计算 * 3. 输出从最高位开始输出 */#include <stdio.h>#include <string.h>int main() { char A[101], B[101]; sca...原创 2018-09-03 16:19:52 · 1075 阅读 · 1 评论 -
PAT乙级1047. 编程团体赛(C语言)
PAT乙级真题题解目录#include <stdio.h>int main() { int N; scanf("%d", &N);//参赛总人数 int grades[1001] = {0};//队伍的总分数 数组 int group, num, score;//队伍编号,队员编号,成绩 while (N-- &g...原创 2018-09-03 16:06:05 · 498 阅读 · 0 评论 -
PAT乙级1046. 划拳(C语言)
PAT乙级真题题解目录#include <stdio.h>int main() { int N, a_drink = 0, b_drink = 0;//划拳的次数,甲乙喝酒的杯数 scanf("%d", &N); int a_num, a_sum, b_num, b_sum, sum; while (N-- > 0...原创 2018-09-02 18:17:34 · 258 阅读 · 0 评论 -
PAT乙级1045. 快速排序(C语言)
PAT乙级真题题解目录/* * 1. 可能的主元:前面的最大值比自己小;后面的最小值比自己大 * 2. 解题关键:将原数组 与 升序排序后的数组 比较 * 相同下标的元素仍然相同,且左边最大值比自身小 即可能为主元 */#include <stdio.h>#include <stdlib.h>int cmp(const voi...原创 2018-09-02 18:05:55 · 564 阅读 · 0 评论 -
PAT乙级1044. 火星数字(C语言)
PAT乙级真题题解目录/* * (读取字符要注意回车的处理 可回顾一下 1018. 锤子剪刀布) * 1. 创建二维字符数组的 长度 * 2. 含高位的火星文,如果低位是0,不输出 */#include <stdio.h>#include <string.h>#include <ctype.h>int main() { ...原创 2018-09-02 17:25:03 · 935 阅读 · 3 评论 -
PAT乙级1043. 输出PATest(C语言)
PAT乙级真题题解目录#include <stdio.h>#include <string.h>typedef struct { char c; int cnt;} alpha;int main() { alpha ch[6];//存储P、A、T、e、s、t字符 ch[0].c = 'P', ch[1].c = ...原创 2018-09-02 17:11:35 · 475 阅读 · 0 评论 -
PAT乙级1042. 字符统计(C语言)
PAT乙级真题题解目录/* 只统计英文字母,不区分大小写 */#include <stdio.h>#include <string.h>#include <ctype.h>int main() { char str[1001];//初始字符串 int arr[26] = {0};//最多26个英文字母(不区分大小写...原创 2018-09-02 16:51:38 · 602 阅读 · 0 评论 -
PAT乙级1041. 考试座位号(C语言)
PAT乙级真题题解目录/* 将试机号作为数组下标 */#include &lt;stdio.h&gt;#include &lt;string.h&gt;typedef struct { char examNum[15];//准考证号 int seatNum;//座位号 } examiee;int main() { int N;//考生人数 ...原创 2018-09-02 16:39:15 · 1281 阅读 · 1 评论 -
PAT乙级1065. 单身狗(C语言)
PAT乙级真题题解目录/* * 1. 单身狗的判断: * 1.1 没有对象; * 1.2 有对象,两人中只有一人参加派对; * 2. 以ID为数组下标记录情感状况; * 3. 有对象的人,参加派对的人做特殊标记; */#include <stdio.h>#include <stdlib.h>int main() { ...原创 2018-09-04 16:58:32 · 995 阅读 · 0 评论 -
PAT乙级1064. 朋友数(C语言)
PAT乙级真题题解目录/* 将朋友证号作为数组下标 */#include <stdio.h>int main() { int N, isFriendId[37] = {0}, cnt = 0; // isFriendId 记录是否为朋友数(数字 < 10^4 则朋友数最大为36) scanf("%d", &N); for ...原创 2018-09-04 14:16:00 · 1168 阅读 · 0 评论 -
PAT乙级1063. 计算谱半径(C语言)
PAT乙级真题题解目录#include <stdio.h>#include <math.h>int main(){ int N;//特征值个数 scanf("%d", &N); double max = 0.0; for (int i = 0; i < N; i++) { int a, ...原创 2018-09-04 14:15:03 · 340 阅读 · 0 评论 -
PAT乙级1024. 科学计数法(C语言)
PAT乙级真题题解目录/** * 1. 读取科学计数 —— 利用正则表达式,分开读取 数字部分 和 指数部分 * 2. 判断正负,负数输出 负号 * 3. 判断指数正负: * 3.1 指数 < 0:整数部分必然为 0 * 3.2 指数 >= 0: * - 仍有小数点,何时输出小数点(重点) * -...原创 2018-08-31 18:29:52 · 1271 阅读 · 1 评论