From 3dec252d7ebac946d1a1d63c7abcc833750adbc9 Mon Sep 17 00:00:00 2001 From: Baoshuo Date: Fri, 29 Nov 2024 16:02:24 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E5=AE=9E=E8=B7=B5=E8=AF=BE=E5=86=85?= =?UTF-8?q?=E3=80=9113.=E6=8C=87=E9=92=881?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 【实践课内】13.指针1/6-1 交换两个整数的值.c | 5 +++ 【实践课内】13.指针1/6-1 交换两个整数的值.md | 34 +++++++++++++++ 【实践课内】13.指针1/6-2 利用指针找最大值.c | 7 +++ 【实践课内】13.指针1/6-2 利用指针找最大值.md | 40 +++++++++++++++++ 【实践课内】13.指针1/6-3 字符串的连接.c | 6 +++ 【实践课内】13.指针1/6-3 字符串的连接.md | 46 ++++++++++++++++++++ 【实践课内】13.指针1/6-4 移动字母.c | 5 +++ 【实践课内】13.指针1/6-4 移动字母.md | 45 +++++++++++++++++++ 8 files changed, 188 insertions(+) create mode 100644 【实践课内】13.指针1/6-1 交换两个整数的值.c create mode 100644 【实践课内】13.指针1/6-1 交换两个整数的值.md create mode 100644 【实践课内】13.指针1/6-2 利用指针找最大值.c create mode 100644 【实践课内】13.指针1/6-2 利用指针找最大值.md create mode 100644 【实践课内】13.指针1/6-3 字符串的连接.c create mode 100644 【实践课内】13.指针1/6-3 字符串的连接.md create mode 100644 【实践课内】13.指针1/6-4 移动字母.c create mode 100644 【实践课内】13.指针1/6-4 移动字母.md 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 +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 + +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 +#include + +#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 +#include + +#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 +```