mirror of
https://github.com/renbaoshuo/202401-programming-assignments.git
synced 2024-12-16 15:44:39 +00:00
【实践课内】13.指针1
This commit is contained in:
parent
cf20fb9c7b
commit
3dec252d7e
5
【实践课内】13.指针1/6-1 交换两个整数的值.c
Normal file
5
【实践课内】13.指针1/6-1 交换两个整数的值.c
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
void fun(int *a, int *b) {
|
||||||
|
int t = *a;
|
||||||
|
*a = *b;
|
||||||
|
*b = t;
|
||||||
|
}
|
34
【实践课内】13.指针1/6-1 交换两个整数的值.md
Normal file
34
【实践课内】13.指针1/6-1 交换两个整数的值.md
Normal file
@ -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
|
||||||
|
```
|
7
【实践课内】13.指针1/6-2 利用指针找最大值.c
Normal file
7
【实践课内】13.指针1/6-2 利用指针找最大值.c
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
void findmax(int *px, int *py, int *pmax) {
|
||||||
|
if (*px > *py) {
|
||||||
|
*pmax = *px;
|
||||||
|
} else {
|
||||||
|
*pmax = *py;
|
||||||
|
}
|
||||||
|
}
|
40
【实践课内】13.指针1/6-2 利用指针找最大值.md
Normal file
40
【实践课内】13.指针1/6-2 利用指针找最大值.md
Normal file
@ -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
|
||||||
|
```
|
6
【实践课内】13.指针1/6-3 字符串的连接.c
Normal file
6
【实践课内】13.指针1/6-3 字符串的连接.c
Normal file
@ -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;
|
||||||
|
}
|
46
【实践课内】13.指针1/6-3 字符串的连接.md
Normal file
46
【实践课内】13.指针1/6-3 字符串的连接.md
Normal file
@ -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
|
||||||
|
|
||||||
|
```
|
5
【实践课内】13.指针1/6-4 移动字母.c
Normal file
5
【实践课内】13.指针1/6-4 移动字母.c
Normal file
@ -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);
|
||||||
|
}
|
45
【实践课内】13.指针1/6-4 移动字母.md
Normal file
45
【实践课内】13.指针1/6-4 移动字母.md
Normal file
@ -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
|
||||||
|
```
|
Loading…
Reference in New Issue
Block a user