有一个B站号@李桥桉,很多年前讲过PTA里的一些题目的解法。近两年有好多同学反馈,需要读者码才能进行答题,不然只能免费注册、看题、编写代码,就是不能提交代码(大受震撼)。
咱就是说,会不会是同学们找错页面了,有免费的不需要读者码的题目集啊。
先来说打开PTA平台,哪些题目集是需要输入读者码的,哪些是免费练习不需要读者码的。
1、首先百度搜索“PTA”找到下方网址链接
2、点击右上角‘注册‘’或者直接‘登录‘’
3、打开首页
首先有三部分构成【教材部分】、【练习部分】和【考试部分】
【教材部分】是需要买书获取读者验证码的。
【练习部分】和【考试部分】是完全免费的。
-
【教材部分】的题目集前面有下方这个标志,教材部分的题目集都需要买对应的书籍,输入书籍的验证码才可以答题。
随便点进去一个题目集,就会提示下方这两句话。
不输入验证码,就不能正常提交代码。提交代码时会提示【无权限】
-
【练习部分】和【考试部分】的题目集前面有下方这个标志,这两部分的题目集可以直接进行答题,不需要读者验证码。
随便点击去一个题目集,是没有任何多余的提示,全是题目。
写完代码后,可正常点击提交,然后跳转至【提交结果页面】
4、C语言必须掌握的知识点–(赠送《C语言讲义》)
同名公粽号@李桥桉,关注后会免费送一份电子版《C语言讲义》,对初学者以及想要C语言进阶的同学非常友好。
下面的是C语言讲义的目录
目录
1. C语言概述 7
1.1 什么是C语言 7
1.2 为什么要学习C语言 8
1.2.1 C语言特点 8
1.2.2 学习C语言理由 8
1.2.3 C语言应用领域 9
1.2.4 C语言的简洁 9
1.2.5 学习C语言的常见困惑 11
1.3 第一个C语言程序:HelloWorld 11
1.3.1 编写C语言代码:hello.c 11
1.3.2 通过gcc编译C代码 11
1.3.3 代码分析 17
1.4 system函数 18
1.4.1 system函数的使用 18
1.5 C语言编译过程 19
1.5.1 C程序编译步骤 19
1.5.2 gcc编译过程 20
1.5.3 查找程序所依赖的动态库 21
1.6 CPU内部结构与寄存器(了解) 22
1.6.1 64位和32位系统区别 22
1.6.2 寄存器名字(了解) 23
1.6.3 寄存器、缓存、内存三者关系 23
1.7 汇编语言 23
1.7.1 VS中C语言嵌套汇编代码(了解) 23
1.7.2 VS反汇编 24
1.8 集成开发环境IDE 25
1.8.1 Qt Creator 26
1.8.2 Microsoft Visual Studio 26
2. 数据类型 28
2.1 常量与变量 28
2.1.1 关键字 28
2.1.2 数据类型 28
2.1.3 常量 29
2.1.4 变量 29
2.1.5 使用示例 30
2.2整型:int 31
2.2.1 整型变量的定义和输出 31
2.2.2 整型变量的输入 31
2.2.3 short、int、long、long long 32
2.2.4 有符号数和无符号数区别 33
2.3 sizeof关键字 34
2.4字符型:char 35
2.4.1 字符变量的定义和输出 35
2.4.2 字符变量的输入 36
2.4.2 ASCII对照表 36
2.4.3 转义字符 37
2.5实型(浮点型):float、double 38
2.6 进制 39
2.6.1 二进制 40
2.6.2 八进制 41
2.6.3 十六进制 42
2.6.4 C语言如何表示相应进制数 43
2.7 计算机内存数值存储方式 44
2.7.1 原码 44
2.7.2 反码 44
2.7.3 补码 44
2.7.4 补码的意义 45
2.7.5 数值溢出 47
2.8类型限定符 47
2.9字符串格式化输出和输入 48
2.9.1 字符串常量 48
2.9.2 printf函数和putchar函数 48
2.9.3 scanf函数与getchar函数 50
3. 运算符与表达式 51
3.1 常用运算符分类 51
3.2 算术运算符 51
3.3 赋值运算符 51
3.4 比较运算符 52
3.5 逻辑运算符 52
3.6 运算符优先级 52
3.7 类型转换 54
3.7.1 隐式转换 54
3.7.2 强制转换 54
4. 程序流程结构 55
4.1 概述 55
4.2 选择结构 55
4.2.1 if语句 55
4.2.2 if…else语句 56
4.2.3 if…else if…else语句 57
4.2.4 三目运算符 58
4.2.5 switch语句 58
4.3 循环结构 59
4.3.1 while语句 59
4.3.2 do…while语句 59
4.3.3 for语句 60
4.3.4 嵌套循环 60
4.4 跳转语句break、continue、goto 61
4.3.1 break语句 61
4.3.2 continue语句 62
4.3.3 goto语句(无条件跳转,尽量少用) 62
5. 数组和字符串 63
5.1 概述 63
5.2 一维数组 64
5.2.1 一维数组的定义和使用 64
5.2.2 一维数组的初始化 64
5.2.3 数组名 65
5.2.4 强化训练 65
5.3二维数组 67
5.3.1 二维数组的定义和使用 67
5.3.2 二维数组的初始化 69
5.3.3 数组名 69
5.3.4 强化训练 70
5.4多维数组(了解) 71
5.5 字符数组与字符串 71
5.5.1 字符数组与字符串区别 71
5.5.2 字符串的初始化 72
5.5.3 字符串的输入输出 73
5.5.4 强化训练:字符串追加 76
6. 函数 76
6.1 概述 76
6.1.1 函数分类 76
6.1.2 函数的作用 77
6.1.3 函数的调用:产生随机数 78
6.2 函数的定义 79
6.2.1 函数定义格式 79
6.2.2 函数名字、形参、函数体、返回值 80
6.3 函数的调用 82
6.3.1函数执行流程 82
6.3.2 函数的形参和实参 82
6.3.3 无参函数调用 83
6.3.4有参函数调用 83
6.3.5 函数返回值 84
6.4 函数的声明 85
6.5 main函数与exit函数 86
6.6 多文件(分文件)编程 86
6.6.1 分文件编程 86
6.6.2 防止头文件重复包含 87
7. 指针 88
7.1 概述 88
7.1.1 内存 88
7.1.2 物理存储器和存储地址空间 88
7.1.3 内存地址 89
7.1.4 指针和指针变量 89
7.2 指针基础知识 90
7.2.1 指针变量的定义和使用 90
7.2.2 通过指针间接修改变量的值 91
7.2.3 指针大小 91
7.2.4 野指针和空指针 91
7.2.5万能指针void * 92
7.2.6 const修饰的指针变量 92
7.3 指针和数组 92
7.3.1 数组名 92
7.3.2 指针操作数组元素 93
7.3.3 指针加减运算 93
7.3.4 指针数组 95
7.4 多级指针 96
7.5 指针和函数 96
7.5.1 函数形参改变实参的值 96
7.6.2 数组名做函数参数 97
7.6.3 指针做为函数的返回值 97
int *getA() 97
7.7 指针和字符串 98
7.7.1 字符指针 98
7.7.2 字符指针做函数参数 98
7.7.3 const修饰的指针变量 99
7.7.4 指针数组做为main函数的形参 100
7.7.5 项目开发常用字符串应用模型 100
int inverse(char *p) 103
7.7.6 字符串处理函数 104
7.8 指针小结 110
8. 内存管理 110
8.1 作用域 110
代码块作用域(代码块是{}之间的一段代码) 110
8.1.1 局部变量 110
8.1.2 静态(static)局部变量 111
8.1.3 全局变量 112
8.1.4 静态(static)全局变量 112
8.1.5 extern全局变量声明 112
8.1.6 全局函数和静态函数 112
8.1.7 总结 113
8.2 内存布局 113
8.2.1 内存分区 113
8.2.2 存储类型总结 115
8.2.3内存操作函数 116
8.2.4 堆区内存分配和释放 118
8.3 内存分区代码分析 119
1) 返回栈区地址 119
2) 返回data区地址 119
3) 值传递1 120
4) 值传递2 120
5) 返回堆区地址 121
9. 复合类型(自定义类型) 121
9.1 结构体 121
9.1.1 概述 121
9.1.2 结构体变量的定义和初始化 122
9.1.3 结构体成员的使用 123
9.1.4 结构体数组 123
9.1.5 结构体套结构体 124
9.1.6 结构体赋值 125
9.1.7 结构体和指针 126
9.1.8 结构体做函数参数 128
9.2 共用体(联合体) 130
9.3 枚举 131
9.4 typedef 132
10. 文件操作 133
10.1 概述 133
10.1.1磁盘文件和设备文件 133
10.1.2 磁盘文件的分类 133
10.1.3 文本文件和二进制文件 134
10.2 文件的打开和关闭 134
10.2.1 文件指针 134
10.2.2 文件的打开 135
10.2.3 文件的关闭 137
10.2.4 文件指针 137
10.3 文件的顺序读写 137
10.3.1 按照字符读写文件fgetc、fputc 137
10.3.2按照行读写文件fgets、fputs 140
10.3.3按照格式化文件fprintf、fscanf 141
10.3.4按照块读写文件fread、fwrite 143
10.4 文件的随机读写 144
10.5 Windows和Linux文本文件区别 146
10.6 获取文件状态 147
10.7 删除文件、重命名文件名 148
10.8 文件缓冲区 148
10.8.1文件缓冲区 148
10.8.2磁盘文件的存取 149
10.8.3更新缓冲区 149
10.8.4stream:文件指针 149
5、其它
练完PTA,可以去刷力扣平台的算法题,然后就可以尝试去项目啦。