GESP 6月认证C++三级真题 · GESP C++ 三级 · 传习 四个特殊字符构成。\n\n2. 密码最短长度 $:6$ 个字符,密码最大长度 $:12$ 个字符。\n\n3. 大写字母,小写字母和数字必须至少有其中两种,以及至少有四个特殊字符中的一个。","timeLimitSec":1,"inputFormatMd":"输入一行不含空格的字符串。约定长度不超过 $100$。该字符串被英文逗号分隔为多段,作为多组被检测密码。","memoryLimitMb":512,"outputFormatMd":"输出若干行,每行输出一组合规的密码。输出顺序以输入先后为序,即先输入则先输出。","referenceSolution":{"code":"#include \u003ciostream>\nusing namespace std;\nchar line[101];\nchar pwd[101];\n// 检查从 str 开始、长度为 l 的密码是否合规\nbool check(char * str, int l) {\n if (l \u003c 6 || l > 12)\n return false;\n bool hasC = false, hasL = false, hasD = false, hasS = false;\n for (int i = 0; str[i] != '\\0'; i++) {\n if ('A' \u003c= str[i] && str[i] \u003c= 'Z') {\n hasC = true;\n } else if ('a' \u003c= str[i] && str[i] \u003c= 'z') {\n hasL = true;\n } else if ('0' \u003c= str[i] && str[i] \u003c= '9') {\n hasD = true;\n } else if (str[i] == '!' || str[i] == '@' ||\n str[i] == '#' || str[i] == ' ) {\n hasS = true;\n } else\n return false;\n }\n if (!hasS)\n return false;\n if (hasC + hasL + hasD \u003c 2)\n return false;\n return true;\n}\nint main() {\n cin >> line;\n // 按逗号对输入进行切分,并依次判断\n int len = 0;\n for (int i = 0; line[i] != '\\0'; i++) {\n if (line[i] != ',') {\n pwd[len] = line[i];\n len++;\n } else {\n pwd[len] = '\\0';\n if (check(pwd, len))\n cout \u003c\u003c pwd \u003c\u003c endl;\n len = 0;\n }\n }\n if (len > 0) {\n pwd[len] = '\\0';\n if (check(pwd, len))\n cout \u003c\u003c pwd \u003c\u003c endl;\n }\n return 0;\n}\n","language":"cpp","verification":{"toolchain":"Apple clang version 17.0.0 (clang-1700.6.4.2);g++ -O2 -std=c++14 -I content/_tools/cxx-shim","compiledOk":true,"verifiedAt":"2026-09-05T02:07:55.224Z","reproducesSamples":true}}},"outcomeRules":[{"when":"on_graded","score":{"from":"submission_score"},"outcomeId":"9fc6ef57-b23b-4010-96c5-5d3cd4ea5d90"}],"questionId":"gesp-cpp-l3-2023-06-prog-02","guideForCardId":null,"createdAt":"2026-09-05T02:36:29.270Z","updatedAt":"2026-09-05T02:36:29.270Z","guideFor":null,"challengePassed":null}],"isOwner":false,"canViewTeacherEdition":false,"sourceKey":"gesp-cpp-l3/papers/gesp-cpp-l3-2023-06"},"course":{"id":"2c3c4c15-d5a7-44ee-b00c-8e02408e387c","sourceKey":"gesp-cpp-l3","ownerId":"46d3dc3e-1a5c-4353-b8f5-c701c912fb9c","title":"GESP C++ 三级","description":"掌握计算机中常用进位制、位运算及数据编码的知识,掌握一维数组、字符串类型及其函数的使用,掌握枚举法、模拟法的原理和运用技巧,对于较简单的实际问题能构造算法、描述算法、实现算法并调试程序。\n\n本课程以官方真题为主体:每篇文章 = 一个知识点(介绍 + 该知识点下的历年真题),另设「历年真题卷」单元供模拟考。知识点体系取自 CCF 编程能力等级认证标准(C++ 三级)。","coverUrl":null,"coverFocalX":50,"coverFocalY":50,"coverScale":1,"status":"published","visibility":"listed","createdAt":"2026-08-15T09:20:04.916Z","updatedAt":"2026-09-05T00:45:39.270Z","units":[{"id":"8627aa36-9eb3-4626-a139-5ffe7c564162","sourceKey":"gesp-cpp-l3/l3.encoding","courseId":"2c3c4c15-d5a7-44ee-b00c-8e02408e387c","title":"数据编码","order":0,"createdAt":"2026-09-05T00:45:39.276Z","updatedAt":"2026-09-05T00:45:39.276Z","articles":[{"id":"3ab71919-c70b-4de0-bad7-e7b728192665","title":"原码、反码、补码","summary":"了解二进制数据编码:原码、反码、补码。","order":0}]},{"id":"ec61de15-2392-490b-9c8a-96801d2bba2f","sourceKey":"gesp-cpp-l3/l3.radix","courseId":"2c3c4c15-d5a7-44ee-b00c-8e02408e387c","title":"进制转换","order":1,"createdAt":"2026-09-05T00:45:39.281Z","updatedAt":"2026-09-05T00:45:39.281Z","articles":[{"id":"b23ac358-d1a3-4f7b-b0a5-e437c9aa54f5","title":"二进制与十进制互转","summary":"掌握数据的进制转换:二进制、十进制。","order":0},{"id":"db7a85e9-e3bc-4f95-ae2e-5534981135a3","title":"八进制与十六进制转换","summary":"掌握数据的进制转换:八进制、十六进制。","order":1}]},{"id":"4b8b8a5f-64a0-4595-9791-5e6fc55b3a23","sourceKey":"gesp-cpp-l3/l3.bitwise","courseId":"2c3c4c15-d5a7-44ee-b00c-8e02408e387c","title":"位运算","order":2,"createdAt":"2026-09-05T00:45:39.287Z","updatedAt":"2026-09-05T00:45:39.287Z","articles":[{"id":"38af6022-6a18-410f-9878-31a1988a558f","title":"位运算:与(&)、或(|)、非(~)","summary":"掌握位运算:与(&)、或(|)、非(~)的基本使用方法及原理。","order":0},{"id":"30b8d6b8-ae02-405e-8887-297f81b23abb","title":"位运算:异或(^)","summary":"掌握位运算:异或(^)的基本使用方法及原理。","order":1},{"id":"a0fdf9bf-5064-4844-9723-fcc505e1eb30","title":"位运算:左移(\u003c\u003c)与右移(>>)","summary":"掌握位运算:左移(\u003c\u003c)、右移(>>)的基本使用方法及原理。","order":2}]},{"id":"58a101fa-1da5-4ce8-be54-416f798ac3a4","sourceKey":"gesp-cpp-l3/l3.algorithm","courseId":"2c3c4c15-d5a7-44ee-b00c-8e02408e387c","title":"算法与描述","order":3,"createdAt":"2026-09-05T00:45:39.296Z","updatedAt":"2026-09-05T00:45:39.296Z","articles":[{"id":"9686f942-947d-410b-b77c-621f2c712e77","title":"算法的概念","summary":"了解算法的概念与描述。","order":0},{"id":"d8784643-141f-4100-a435-52f01744d0b2","title":"算法的三种描述方式","summary":"熟练运用自然语言、流程图、伪代码方式来描述算法。","order":1},{"id":"e6d644d8-d64d-464e-afd4-4273246f331f","title":"枚举法","summary":"理解枚举算法的原理及特点,可以解决实际问题。","order":2},{"id":"d79f4c3a-3271-4ac7-8640-9ceae76fda59","title":"模拟法","summary":"理解模拟算法的原理及特点,可以解决实际问题。","order":3}]},{"id":"ba0e775e-c669-4faf-9569-fd939b273767","sourceKey":"gesp-cpp-l3/l3.array","courseId":"2c3c4c15-d5a7-44ee-b00c-8e02408e387c","title":"一维数组","order":4,"createdAt":"2026-09-05T00:45:39.305Z","updatedAt":"2026-09-05T00:45:39.305Z","articles":[{"id":"3ced4892-0d2e-4125-81fb-ba090a77f2e6","title":"一维数组的定义与访问","summary":"C++一维数组基本应用(不包括变长数组):数组定义、初始化与元素访问。","order":0},{"id":"43578758-4e65-4d01-8455-8409703eeb5c","title":"一维数组的基本应用","summary":"C++一维数组基本应用(不包括变长数组):遍历、统计、查找、计数等常见应用。","order":1}]},{"id":"9adbf03e-f5dd-4ebb-b216-998d64c32a53","sourceKey":"gesp-cpp-l3/l3.string","courseId":"2c3c4c15-d5a7-44ee-b00c-8e02408e387c","title":"字符串及其函数","order":5,"createdAt":"2026-09-05T00:45:39.310Z","updatedAt":"2026-09-05T00:45:39.310Z","articles":[{"id":"8d015f22-c18b-496f-b1a2-5afc26337cdc","title":"字符串的表示与基本操作","summary":"掌握字符串及其函数的使用(字符串的定义、输入输出、长度与下标访问)。","order":0},{"id":"8515caab-ce76-4eb8-9953-7da169fd02f8","title":"字符串大小写转换","summary":"掌握字符串函数的使用:大小写转换。","order":1},{"id":"96937e7e-1282-4b59-8fd4-161e2c0908bc","title":"字符串搜索","summary":"掌握字符串函数的使用:字符串搜索。","order":2},{"id":"7213a6d3-846e-4202-a95b-1c0aee7ef3ef","title":"字符串分割与替换","summary":"掌握字符串函数的使用:分割、替换。","order":3}]},{"id":"e475090c-276a-4ebf-b7e1-47b5693e98b2","sourceKey":"gesp-cpp-l3/papers","courseId":"2c3c4c15-d5a7-44ee-b00c-8e02408e387c","title":"历年真题卷","order":6,"createdAt":"2026-09-05T00:45:39.318Z","updatedAt":"2026-09-05T00:45:39.318Z","articles":[{"id":"32357816-919f-4a17-8937-1f78ff8296b0","title":"GESP 6月认证C++三级真题","summary":"2023年6月 · 3 个分区 · 27 道题","order":0},{"id":"e35cec4b-a0ca-4d8b-b26d-692f4f3e8182","title":"GESP 9月认证C++三级真题","summary":"2023年9月 · 3 个分区 · 27 道题","order":1},{"id":"43ab401f-4e9b-4964-ba23-91da15d46897","title":"GESP 12月认证C++三级真题","summary":"2023年12月 · 3 个分区 · 27 道题","order":2},{"id":"b68bd243-d214-42ed-b4c4-3b15d90b6e10","title":"GESP 3月认证C++三级真题","summary":"2024年3月 · 3 个分区 · 27 道题","order":3},{"id":"b68f5b75-448a-4339-85e0-4d6649e3d815","title":"GESP 6月认证 C++ 三级真题","summary":"2024年6月 · 3 个分区 · 27 道题","order":4},{"id":"72e54b49-4377-46c4-81f0-2eef83f7157e","title":"GESP 9月认证 C++ 三级真题","summary":"2024年9月 · 3 个分区 · 27 道题","order":5},{"id":"83b0934e-e690-46ce-ad10-4fc5a585c53c","title":"GESP 2024年12月认证 C++ 3级真题","summary":"2024年12月 · 3 个分区 · 27 道题","order":6},{"id":"40a4859f-8c3b-42b0-aca3-5de3d92d9572","title":"CCF GESP 2025年3月认证 C++ 3级试题","summary":"2025年3月 · 3 个分区 · 27 道题","order":7},{"id":"b510a6f3-ba88-4eb7-aa18-123a2febfd8b","title":"CCF GESP 2025年6月认证 C++ 3级试题","summary":"2025年6月 · 3 个分区 · 27 道题","order":8},{"id":"557ec007-9a59-4c49-8b40-13833bb5584d","title":"CCF GESP 2025年9月认证 C++ 3级试题","summary":"2025年9月 · 3 个分区 · 27 道题","order":9},{"id":"2b3f7d2a-d47c-41e6-bdd1-45d002cc8e72","title":"CCF GESP 2025年12月认证 C++ 3级试题","summary":"2025年12月 · 3 个分区 · 27 道题","order":10},{"id":"97cb105c-0d4d-47fd-9c95-950670bfcc73","title":"CCF GESP 2026年3月认证 C++ 3级试题","summary":"2026年3月 · 3 个分区 · 27 道题","order":11},{"id":"1553b5fe-e105-48af-93b3-05590b80ed8c","title":"CCF GESP 2026年6月认证 C++ 3级试题","summary":"2026年6月 · 3 个分区 · 27 道题","order":12}]}],"owner":{"displayName":"李富荣"},"enrollment":null,"articleProgress":{},"isOwner":false,"outcomeCount":22},"user":null}
传习Chuanxi