diff --git a/【实践课内】13.指针1/6-1 交换两个整数的值.c b/【实践课内】13.指针1/6-1 交换两个整数的值.c
new file mode 100644
index 0000000..bd39a57
--- /dev/null
+++ b/【实践课内】13.指针1/6-1 交换两个整数的值.c	
@@ -0,0 +1,5 @@
+void fun(int *a, int *b) {
+    int t = *a;
+    *a = *b;
+    *b = t;
+}
diff --git a/【实践课内】13.指针1/6-1 交换两个整数的值.md b/【实践课内】13.指针1/6-1 交换两个整数的值.md
new file mode 100644
index 0000000..4cfbf86
--- /dev/null
+++ b/【实践课内】13.指针1/6-1 交换两个整数的值.md	
@@ -0,0 +1,34 @@
+# 6-1 交换两个整数的值
+
+函数fun的功能是:实现交换两个整数的值。例如给a和b分别输入3和6 ,输出为a=6 b=3。
+
+### 函数接口定义:
+```c++
+void fun (int *a,int *b);
+```
+
+其中形参`a` 和`b` 都是用户传入的参数。函数fun的功能是实现交换主函数中a和b的值。
+
+### 裁判测试程序样例:
+```c++
+#include<stdio.h>
+void fun (int *a,int *b);
+int main()
+{ int a,b;
+ scanf("a=%d,b=%d",&a,&b);
+ fun(&a,&b);
+ printf("a=%d b=%d\n",a,b);
+ return 0;
+}
+/* 请在这里填写答案 */
+```
+
+### 输入样例:
+```in
+a=3,b=5
+```
+
+### 输出样例:
+```out
+a=5 b=3
+```
diff --git a/【实践课内】13.指针1/6-2 利用指针找最大值.c b/【实践课内】13.指针1/6-2 利用指针找最大值.c
new file mode 100644
index 0000000..bfbf08d
--- /dev/null
+++ b/【实践课内】13.指针1/6-2 利用指针找最大值.c	
@@ -0,0 +1,7 @@
+void findmax(int *px, int *py, int *pmax) {
+    if (*px > *py) {
+        *pmax = *px;
+    } else {
+        *pmax = *py;
+    }
+}
diff --git a/【实践课内】13.指针1/6-2 利用指针找最大值.md b/【实践课内】13.指针1/6-2 利用指针找最大值.md
new file mode 100644
index 0000000..1454ab2
--- /dev/null
+++ b/【实践课内】13.指针1/6-2 利用指针找最大值.md	
@@ -0,0 +1,40 @@
+# 6-2 利用指针找最大值
+
+本题要求实现一个简单函数,找出两个数中的最大值。
+
+### 函数接口定义:
+```c++
+void findmax( int *px, int *py, int *pmax );
+```
+
+其中`px`和`py`是用户传入的两个整数的指针。函数`findmax`应找出两个指针所指向的整数中的最大值,存放在`pmax`指向的位置。
+
+### 裁判测试程序样例:
+```c++
+#include <stdio.h>
+
+void findmax( int *px, int *py, int *pmax );
+
+int main()
+{	
+    int max, x, y; 
+
+    scanf("%d %d", &x, &y);
+    findmax( &x, &y, &max );
+    printf("%d\n", max);
+
+    return 0;
+} 
+
+/* 你的代码将被嵌在这里 */
+```
+
+### 输入样例:
+```in
+3 5
+```
+
+### 输出样例:
+```out
+5
+```
diff --git a/【实践课内】13.指针1/6-3 字符串的连接.c b/【实践课内】13.指针1/6-3 字符串的连接.c
new file mode 100644
index 0000000..70795d3
--- /dev/null
+++ b/【实践课内】13.指针1/6-3 字符串的连接.c	
@@ -0,0 +1,6 @@
+char *str_cat(char *s, char *t) {
+    int s_len = strlen(s),
+        t_len = strlen(t);
+    memcpy(s + s_len, t, t_len);
+    return s;
+}
diff --git a/【实践课内】13.指针1/6-3 字符串的连接.md b/【实践课内】13.指针1/6-3 字符串的连接.md
new file mode 100644
index 0000000..096b0fc
--- /dev/null
+++ b/【实践课内】13.指针1/6-3 字符串的连接.md	
@@ -0,0 +1,46 @@
+# 6-3 字符串的连接
+
+本题要求实现一个函数,将两个字符串连接起来。
+
+### 函数接口定义:
+```c++
+char *str_cat( char *s, char *t );
+```
+函数`str_cat`应将字符串`t`复制到字符串`s`的末端,并且返回字符串`s`的首地址。
+
+### 裁判测试程序样例:
+```c++
+#include <stdio.h>
+#include <string.h>
+
+#define MAXS 10
+
+char *str_cat( char *s, char *t );
+
+int main()
+{
+    char *p;
+    char str1[MAXS+MAXS] = {'\0'}, str2[MAXS] = {'\0'};
+    
+    scanf("%s%s", str1, str2);
+    p = str_cat(str1, str2);
+    printf("%s\n%s\n", p, str1);
+    
+    return 0;
+}
+
+/* 你的代码将被嵌在这里 */
+```
+
+### 输入样例:
+```in
+abc
+def
+```
+
+### 输出样例:
+```out
+abcdef
+abcdef
+
+```
diff --git a/【实践课内】13.指针1/6-4 移动字母.c b/【实践课内】13.指针1/6-4 移动字母.c
new file mode 100644
index 0000000..5ee7705
--- /dev/null
+++ b/【实践课内】13.指针1/6-4 移动字母.c	
@@ -0,0 +1,5 @@
+void Shift(char s[]) {
+    int s_len = strlen(s);
+    memcpy(s + s_len, s, 3);
+    memcpy(s + 3, s, s_len);
+}
diff --git a/【实践课内】13.指针1/6-4 移动字母.md b/【实践课内】13.指针1/6-4 移动字母.md
new file mode 100644
index 0000000..4642e75
--- /dev/null
+++ b/【实践课内】13.指针1/6-4 移动字母.md	
@@ -0,0 +1,45 @@
+# 6-4 移动字母
+
+本题要求编写函数,将输入字符串的前3个字符移到最后。
+
+### 函数接口定义:
+```c++
+void Shift( char s[] );
+```
+其中`char s[]`是用户传入的字符串,题目保证其长度不小于3;函数`Shift`须将按照要求变换后的字符串仍然存在`s[]`里。
+
+### 裁判测试程序样例:
+```c++
+#include <stdio.h>
+#include <string.h>
+
+#define MAXS 10
+
+void Shift( char s[] );
+
+void GetString( char s[] ); /* 实现细节在此不表 */
+
+int main()
+{
+    char s[MAXS];
+
+    GetString(s);
+    Shift(s);
+    printf("%s\n", s);
+	
+    return 0; 
+}
+
+/* 你的代码将被嵌在这里 */
+```
+
+### 输入样例:
+```in
+abcdef
+
+```
+
+### 输出样例:
+```out
+defabc
+```