# akc **Repository Path**: webturing/akc ## Basic Information - **Project Name**: akc - **Description**: c.haodaedu.cn C code - **Primary Language**: C - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-25 - **Last Updated**: 2026-01-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # C语言综合实训平台考试 注意事项 ## 考试环境 ### 服务器 测试服务器: http://c.haodaedu.cn/student/?course_id=1 考试服务器: 10.120.253.128 ### 服务器的判题环境 C95 编译环境 不支持C++的扩展(cin,cout,swap等都不支持) ## 语法细节: 头文件都要自己写 主要是 stdio.h math.h stdlib.h string.h ctype.h ### 输入输出 stdio.h - scanf - printf - gets - puts - getchar - putchar ### 数学库 math.h 支持的函数有: - 三角函数:sin cos tan asin acos atan - 指数函数:exp log - 取整函数:floor ceil round - 绝对值函数:fabs abs - 最大值最小值函数:fmax fmin max min - 随机数函数:rand srand - 其他函数:sqrt pow modf ### 字符和字符串 ### ctype.h 支持的函数有: - 字符分类函数:isalnum isalpha isdigit islower isspace isupper - 字符转换函数:tolower toupper ### string.h 支持的函数有: - 字符串拷贝函数:strcpy strncpy - 字符串连接函数:strcat strncat - 字符串比较函数:strcmp strncmp - 字符串查找函数:strchr strrchr strstr strnstr - 字符串长度函数:strlen - 字符串转换函数:sscanf sprintf ### 其他库 - stdlib.h 支持的函数有: - 内存分配函数:malloc calloc realloc free - 随机数函数:rand srand - 其他函数:*qsort bsearch* ## 题型及答题细节 - 程序填空题 - 填空题要求在程序中填写缺失的代码,使程序能够正常运行。 - 填空题中可能包含变量、常量、运算符、表达式等。 - 程序改错题 - 改错题要求在程序中找到错误并进行修复,使程序能够正常运行。 - 改错题中可能包含语法错误、逻辑错误、运行时错误等。 - 程序阅读题 - 阅读题要求在程序中分析代码的功能和逻辑,回答相关问题。 - 阅读题中可能包含变量、常量、运算符、表达式、循环、分支等。 - 程序设计题 - 设计题要求根据题目描述,设计并实现一个程序。 - 设计题中可能包含循环、子函数、数组、字符串等。 ## 知识点 ### 1. 顺序程序设计 (代码ch01) **主要考点:** - **基本输入输出**:printf格式化输出、scanf格式输入的使用 - **变量和数据类型**:int、float、double、char类型的声明和使用 - **算术运算符**:+、-、*、/、%的基本运算和优先级 - **赋值运算符**:=、+=、-=、*=、/=、%=的复合赋值运算 - **自增自减运算符**:i++、++i、i--、--i的区别和应用 - **逻辑运算符**:&&(逻辑与)、||(逻辑或)的短路特性 - **关系运算符**:<、>、<=、>=、==、!=的比较运算 - **数学函数应用**:sqrt()、sin()、cos()等math.h库函数 - **字符输入输出**:getchar()、putchar()的使用 - **变量作用域**:局部变量和全局变量的概念 ### 2. 分支 if else (代码ch02) **主要考点:** - **单分支if语句**:if(条件)的语法和应用 - **双分支if-else语句**:if-else的完整结构 - **多分支if-else if语句**:处理多个条件的判断 - **条件运算符**:?:的三目运算符使用 - **switch-case语句**:多分支选择结构的switch语法 - **case穿透和break语句**:switch中break的重要作用 - **default分支**:处理未匹配情况 - **逻辑表达式**:复杂条件的组合判断 - **字符判断**:isalpha、isdigit等字符分类函数 - **数值范围判断**:区间条件的判断方法 ### 3. 循环 for while do while (代码ch03) **主要考点:** - **while循环**:先判断条件后执行循环体 - **for循环**:初始化、循环条件、增量表达式的完整语法 - **do-while循环**:先执行循环体后判断条件 - **循环嵌套**:多层循环的嵌套使用 - **break语句**:跳出循环结构 - **continue语句**:跳过本次循环继续下次 - **循环条件设计**:正确的循环终止条件 - **计数器和累加器**:循环中变量的使用 - **字符统计循环**:字符输入和统计的循环实现 - **数学计算循环**:阶乘、求和、数列计算等 ### 4. 数组/字符串 (代码ch04) **主要考点:** - **一维数组**:数组声明、初始化、下标访问 - **二维数组**:多维数组的定义和遍历 - **数组遍历**:for循环遍历数组元素 - **数组最值**:最大值、最小值的查找算法 - **数组统计**:求和、求平均值等统计运算 - **字符串数组**:字符数组和字符串处理 - **字符串函数**:strlen()、strcpy()、strcmp()等string.h函数 - **冒泡排序**:数组排序算法的实现 - **字符串逆序**:字符串反向输出 - **数组边界**:数组越界问题的避免 ### 5. 函数 (代码ch05) **主要考点:** - **函数定义**:函数返回类型、函数名、参数列表 - **函数调用**:函数的正确调用方式 - **函数声明**:函数原型声明的作用 - **参数传递**:值传递和地址传递的区别 - **递归函数**:函数的自我调用 - **局部变量和全局变量**:变量的作用域 - **数组作为函数参数**:数组名作为参数传递 - **指针参数**:通过指针修改实参值 - **函数返回值**:return语句的正确使用 - **数学函数实现**:如最大公约数等算法的函数化 ### 6. 指针 (代码ch06) **主要考点:** - **指针基础**:指针变量的定义和初始化 - **取地址和取值运算符**:&(取地址)和*(取值)操作 - **指针与变量**:指针指向变量的操作 - **指针与数组**:指针访问数组元素的方法 - **指针算术运算**:指针的加减运算 - **指针作为函数参数**:实现地址传递 - **指针与字符串**:字符指针和字符串操作 - **结构体指针**:->操作符的使用 - **指针数组**:数组中存储指针