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