摘要1、课程目标 - 掌握常用的字符串操作函数 - 理解安全与不安全的字符串函数 - 掌握Windows字符串API - 了解字符串处理中的安全问题 2、名词解释 3、代码实现 1. 基础字符串函数 2. 安全字符串函数 3. 格式化与解析 4. Windows字符串API 5、课后作业 5.1、作业1:实现字符串函数 手动实现strlen、strcpy、strcmp函数。 5.2、作业2:字符串分割 实现一个函数,按指定分隔符分割字符串。 5.3、作业3:字符串替换 实现字符串替换函数,替换所有匹配的子串。
摘要1、课程目标 - 掌握指针的概念和使用 - 理解指针与数组的关系 - 掌握动态内存分配与释放 - 了解常见的内存错误 2、名词解释 3、代码实现 1. 指针基础 2. 指针运算 3. 动态内存分配 4. Windows内存管理API 5、课后作业 5.1、作业1:实现动态数组 实现可动态增长的数组(简单的vector)。 5.2、作业2:内存分配封装 封装一个安全的内存分配函数,包含分配失败检查。 5.3、作业3:内存拷贝 实现memcpy函数,处理内存重叠情况。
摘要1、课程目标 - 掌握一维和多维数组的定义和使用 - 理解字符串的存储方式 - 掌握字符数组与字符指针的区别 - 了解宽字符和Unicode字符串 2、名词解释 3、代码实现 1. 一维数组 2. 多维数组 3. 字符串基础 4. 宽字符串 5、课后作业 5.1、作业1:数组操作 实现一个函数,将数组元素反转。 5.2、作业2:字符串复制 手动实现strcpy函数,注意处理\0。 5.3、作业3:ANSI转Unicode 使用MultiByteToWideChar实现ANSI到Unicode转换。
摘要1、课程目标 - 掌握for、while、do-while三种循环 - 理解break和continue的作用 - 掌握嵌套循环的使用 - 了解循环优化技巧 2、名词解释 3、代码实现 1. for循环 2. while和do-while循环 3. break和continue 4. 嵌套循环与标签 5. 循环在安全编程中的应用 6、课后作业 6.1、作业1:计算平均值 使用循环计算一个整数数组的平均值。 6.2、作业2:查找最大值 使用循环查找数组中的最大值和其索引。 6.3、作业3:素数判断 实现函数判断一个数是否为素数:
摘要1、课程目标 - 掌握逻辑与、逻辑或、逻辑非运算符 - 理解短路求值的工作原理 - 掌握关系运算符 - 学会构建复杂的条件表达式 2、名词解释 3、代码实现 1. 关系运算符 2. 逻辑运算符 3. 短路求值 4. 短路求值的实用场景 5. 复杂条件表达式 6、课后作业 6.1、作业1:简化条件 将以下代码简化: 6.2、作业2:短路求值应用 使用短路求值实现安全的字符串长度检查函数: 6.3、作业3:密码验证 实现密码强度检查函数,要求: - 长度至少8位 - 包含大写字母 - 包含小写字母 - 包含数字
摘要1、课程目标 - 掌握所有位运算符的使用 - 理解位运算在底层编程中的应用 - 掌握位掩码和标志位操作 - 学会使用位运算进行性能优化 2、名词解释 3、技术原理 3.1、位运算真值表 4、代码实现 1. 基础位运算操作 2. 位操作常用技巧 3. Windows权限标志位操作 4. 位运算实用算法 5、课后作业 5.1、作业1:实现位字段结构 使用位运算实现一个IP地址解析器: 5.2、作业2:权限管理系统 实现一个简单的权限管理系统,支持添加、删除、检查权限。 5.3、作业3:简单加密 使用XOR实现简单的数据加密解密(同一密钥加密两次还原)。
摘要1、课程目标 - 掌握if-else条件判断语句 - 掌握switch-case多分支选择 - 理解条件表达式(三元运算符) - 了解条件判断在安全编程中的应用 2、名词解释 3、代码实现 1. if-else语句详解 2. switch-case语句 3. 三元运算符与条件表达式 4. 安全编程中的条件判断 5、课后作业 5.1、作业1:成绩等级转换 实现一个函数,将分数(0-100)转换为等级(A/B/C/D/F): - 90-100: A - 80-89: B - 70-79: C - 60-69: D - 0-59: F 5.2、作业2:简易计算器 使用switch实现支持+、-、*、/的简易计算器,要处理除零错误。 5.3、作业3:权限检查 实现一个函数,检查用户权限(使用位掩码):
摘要1、课程目标 - 掌握C/C++中的基础数据类型 - 理解不同类型的内存占用和取值范围 - 掌握类型转换的规则和陷阱 - 了解Windows API中常用的类型定义 2、名词解释 3、Windows API常用类型 4、代码实现 1. 基础类型大小与范围 2. 类型转换示例 3. 指针与类型大小 4、课后作业 4.1、作业1:类型大小测试 编写程序,打印以下类型在你的系统上的大小: - , , , - , , 4.2、作业2:溢出检测 实现一个安全的加法函数,能够检测整数溢出: 4.3、作业3:类型转换陷阱 解释以下代码的输出结果:
摘要1、课程目标 - 理解不同进制的概念和转换方法 - 掌握二进制与十六进制在编程中的应用 - 理解位(bit)和字节(byte)的关系 - 能够进行进制间的手动转换 2、名词解释 3、使用工具 4、技术原理 1. 进制基础 2. 进制转换表 3. 内存中的字节序 4、代码实现 1. C语言进制表示与输出 2. 手动实现进制转换 3. 查看内存字节序 4、课后作业 4.1、作业1:进制转换练习 将以下数值转换为其他进制(手算后用程序验证): - 十进制 1024 → 二进制、十六进制 - 二进制 10101010 → 十进制、十六进制 - 十六进制 0xCAFE → 十进制、二进制 4.2、作业2:实现完整转换工具 编写一个程序,能够: 1. 接收用户输入的任意进制数值 2.…
摘要1、课程目标 - 掌握C/C++中所有算术运算符 - 理解运算符优先级和结合性 - 掌握自增自减运算符的细节 - 了解整数除法和取模运算的特点 2、名词解释 3、代码实现 1. 基础算术运算 2. 自增自减运算符 3. 复合赋值运算符 4. 运算符优先级 5、课后作业 5.1、作业1:分离各位数字 给定一个三位数,使用 / 和 % 分离出百位、十位、个位。 5.2、作业2:确定输出 分析以下代码的输出: 5.3、作业3:实现四则运算 实现一个安全的除法函数,处理除零情况: