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
d33e765484
commit
0f39a3a688
13
【实践课外】13.指针1/6-1 删除字符串中数字字符.c
Normal file
13
【实践课外】13.指针1/6-1 删除字符串中数字字符.c
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
void delnum(char *s) {
|
||||||
|
int s_len = strlen(s);
|
||||||
|
|
||||||
|
for (int i = 0; i < s_len; i++) {
|
||||||
|
if (s[i] >= '0' && s[i] <= '9') {
|
||||||
|
for (int j = i; j < s_len; j++) {
|
||||||
|
s[j] = s[j + 1];
|
||||||
|
}
|
||||||
|
s_len--;
|
||||||
|
i--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
35
【实践课外】13.指针1/6-1 删除字符串中数字字符.md
Normal file
35
【实践课外】13.指针1/6-1 删除字符串中数字字符.md
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
# 6-1 删除字符串中数字字符
|
||||||
|
|
||||||
|
删除一个字符串中的所有数字字符。
|
||||||
|
|
||||||
|
### 函数接口定义:
|
||||||
|
```c++
|
||||||
|
void delnum(char *s);
|
||||||
|
```
|
||||||
|
|
||||||
|
其中 `s `是用户传入的参数。 函数的功能是删除指针 `s `所指的字符串中的所有数字字符。
|
||||||
|
|
||||||
|
### 裁判测试程序样例:
|
||||||
|
```c++
|
||||||
|
#include "stdio.h"
|
||||||
|
void delnum(char *s);
|
||||||
|
int main ()
|
||||||
|
{ char item[80];
|
||||||
|
gets(item);
|
||||||
|
delnum(item);
|
||||||
|
printf("%s\n",item);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 请在这里填写答案 */
|
||||||
|
```
|
||||||
|
|
||||||
|
### 输入样例:
|
||||||
|
```in
|
||||||
|
a0bc+d496df
|
||||||
|
```
|
||||||
|
|
||||||
|
### 输出样例:
|
||||||
|
```out
|
||||||
|
abc+ddf
|
||||||
|
```
|
11
【实践课外】13.指针1/6-2 找最大值及其下标.c
Normal file
11
【实践课外】13.指针1/6-2 找最大值及其下标.c
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
int fun(int *a, int *b, int n) {
|
||||||
|
*b = 0;
|
||||||
|
|
||||||
|
for (int i = 1; i < n; i++) {
|
||||||
|
if (a[i] > a[*b]) {
|
||||||
|
*b = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return a[*b];
|
||||||
|
}
|
39
【实践课外】13.指针1/6-2 找最大值及其下标.md
Normal file
39
【实践课外】13.指针1/6-2 找最大值及其下标.md
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
# 6-2 找最大值及其下标
|
||||||
|
|
||||||
|
|
||||||
|
在一维整型数组中找出其中最大的数及其下标。
|
||||||
|
|
||||||
|
### 函数接口定义:
|
||||||
|
```c++
|
||||||
|
int fun(int *a,int *b,int n);
|
||||||
|
```
|
||||||
|
|
||||||
|
其中形参`a` 、`b`、`n `都是用户传入的参数。函数fun的功能是在指针`a`所指向的一维数组中找出其中最大的数及其下标,下标存到指针`b`所指的变量里,函数返回最大值。
|
||||||
|
|
||||||
|
### 裁判测试程序样例:
|
||||||
|
```c++
|
||||||
|
#include<stdio.h>
|
||||||
|
#define N 10
|
||||||
|
int fun(int *a,int *b,int n);
|
||||||
|
int main()
|
||||||
|
{ int a[N],i,max,p=0;
|
||||||
|
for(i=0;i<N;i++) scanf("%d",&a[i]);
|
||||||
|
max=fun(a,&p,N);
|
||||||
|
printf("max=%d,position=%d\n",max,p);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* 请在这里填写答案 */
|
||||||
|
```
|
||||||
|
|
||||||
|
### 输入样例:
|
||||||
|
```in
|
||||||
|
2 1 5 4 8 4 5 8 9 1
|
||||||
|
```
|
||||||
|
|
||||||
|
### 输出样例:
|
||||||
|
```out
|
||||||
|
max=9,position=8
|
||||||
|
|
||||||
|
```
|
6
【实践课外】13.指针1/6-3 求两数平方根之和.c
Normal file
6
【实践课外】13.指针1/6-3 求两数平方根之和.c
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
double fun(double *a, double *b) {
|
||||||
|
double sqrt_a = sqrt(*a),
|
||||||
|
sqrt_b = sqrt(*b);
|
||||||
|
|
||||||
|
return sqrt_a + sqrt_b;
|
||||||
|
}
|
36
【实践课外】13.指针1/6-3 求两数平方根之和.md
Normal file
36
【实践课外】13.指针1/6-3 求两数平方根之和.md
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
# 6-3 求两数平方根之和
|
||||||
|
|
||||||
|
函数fun的功能是:求两数平方根之和,作为函数值返回。例如:输入12和20,输出结果是:y = 7.936238。
|
||||||
|
|
||||||
|
### 函数接口定义:
|
||||||
|
```c++
|
||||||
|
double fun (double *a, double *b);
|
||||||
|
```
|
||||||
|
|
||||||
|
其中 `a `和 `b `是用户传入的参数。函数求 `a `指针和` b` 指针所指的两个数的平方根之和,并返回和。
|
||||||
|
|
||||||
|
### 裁判测试程序样例:
|
||||||
|
```c++
|
||||||
|
#include<stdio.h>
|
||||||
|
#include <math.h>
|
||||||
|
double fun (double *a, double *b);
|
||||||
|
int main ( )
|
||||||
|
{ double a, b, y;
|
||||||
|
scanf ("%lf%lf", &a, &b );
|
||||||
|
y=fun(&a, &b); printf ("y=%.2f\n", y );
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* 请在这里填写答案 */
|
||||||
|
```
|
||||||
|
|
||||||
|
### 输入样例:
|
||||||
|
```in
|
||||||
|
12 20
|
||||||
|
```
|
||||||
|
|
||||||
|
### 输出样例:
|
||||||
|
```out
|
||||||
|
y=7.94
|
||||||
|
```
|
20
【实践课外】13.指针1/6-4 求一组数中的最大值、最小值和平均值.c
Normal file
20
【实践课外】13.指针1/6-4 求一组数中的最大值、最小值和平均值.c
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
float fun(int a[], int n, int *max, int *min) {
|
||||||
|
float sum = a[0];
|
||||||
|
|
||||||
|
*max = a[0];
|
||||||
|
*min = a[0];
|
||||||
|
|
||||||
|
for (int i = 1; i < n; i++) {
|
||||||
|
sum += a[i];
|
||||||
|
|
||||||
|
if (a[i] > *max) {
|
||||||
|
*max = a[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (a[i] < *min) {
|
||||||
|
*min = a[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return sum / n;
|
||||||
|
}
|
37
【实践课外】13.指针1/6-4 求一组数中的最大值、最小值和平均值.md
Normal file
37
【实践课外】13.指针1/6-4 求一组数中的最大值、最小值和平均值.md
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
# 6-4 求一组数中的最大值、最小值和平均值
|
||||||
|
|
||||||
|
编写函数,求一组数中的最大值、最小值和平均值。
|
||||||
|
|
||||||
|
### 函数接口定义:
|
||||||
|
```c++
|
||||||
|
float fun(int a[],int n,int *max,int *min);
|
||||||
|
```
|
||||||
|
|
||||||
|
其中 `a`、`n`、`max` 和 `min` 都是用户传入的参数。函数求`a`数组中`n`个元素的最大值、最小值和平均值。最大值和最小值分别通过`max` 和 `min`带回,函数返回平均值 。
|
||||||
|
|
||||||
|
### 裁判测试程序样例:
|
||||||
|
```c++
|
||||||
|
#include <stdio.h>
|
||||||
|
float fun(int a[],int n,int *max,int *min);
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int x[10],i,m,n;
|
||||||
|
float p;
|
||||||
|
for(i=0;i<10;i++)
|
||||||
|
scanf("%d",&x[i]);
|
||||||
|
p=fun(x,10,&m,&n);
|
||||||
|
printf("max=%d,min=%d,average=%.2f\n",m,n,p);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
/* 请在这里填写答案 */
|
||||||
|
```
|
||||||
|
|
||||||
|
### 输入样例:
|
||||||
|
```in
|
||||||
|
2 5 4 8 6 9 1 3 7 0
|
||||||
|
```
|
||||||
|
|
||||||
|
### 输出样例:
|
||||||
|
```out
|
||||||
|
max=9,min=0,average=4.50
|
||||||
|
```
|
9
【实践课外】13.指针1/6-5 两个4位正整数的后两位互换.c
Normal file
9
【实践课外】13.指针1/6-5 两个4位正整数的后两位互换.c
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
void fun(int *p, int *q) {
|
||||||
|
int p_s = *p / 100,
|
||||||
|
p_e = *p % 100;
|
||||||
|
int q_s = *q / 100,
|
||||||
|
q_e = *q % 100;
|
||||||
|
|
||||||
|
*p = p_s * 100 + q_e;
|
||||||
|
*q = q_s * 100 + p_e;
|
||||||
|
}
|
37
【实践课外】13.指针1/6-5 两个4位正整数的后两位互换.md
Normal file
37
【实践课外】13.指针1/6-5 两个4位正整数的后两位互换.md
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
# 6-5 两个4位正整数的后两位互换
|
||||||
|
|
||||||
|
|
||||||
|
将输入的任意两个4位正整数的后两位互换,例如输入1234和5678,交换之后输出1278和5634。
|
||||||
|
|
||||||
|
### 函数接口定义:
|
||||||
|
```c++
|
||||||
|
void fun(int *p,int *q);
|
||||||
|
```
|
||||||
|
|
||||||
|
其中` p `和 `q` 是用户传入的参数。函数将指针`p`所指整数与指针`q`所指的整数的后两位互换。
|
||||||
|
|
||||||
|
### 裁判测试程序样例:
|
||||||
|
```c++
|
||||||
|
|
||||||
|
void fun(int *p,int *q);
|
||||||
|
int main()
|
||||||
|
{int a,b;
|
||||||
|
scanf("%d%d",&a,&b);
|
||||||
|
fun(&a,&b);
|
||||||
|
printf("%5d%5d\n",a,b);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* 请在这里填写答案 */
|
||||||
|
```
|
||||||
|
|
||||||
|
### 输入样例:
|
||||||
|
```in
|
||||||
|
1234 5678
|
||||||
|
```
|
||||||
|
|
||||||
|
### 输出样例:
|
||||||
|
```out
|
||||||
|
1278 5634
|
||||||
|
```
|
14
【实践课外】13.指针1/6-6 判断回文字符串.c
Normal file
14
【实践课外】13.指针1/6-6 判断回文字符串.c
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
bool palindrome(char *s) {
|
||||||
|
int p = 0,
|
||||||
|
q = strlen(s) - 1;
|
||||||
|
|
||||||
|
while (p < q) {
|
||||||
|
if (s[p] != s[q]) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
p++;
|
||||||
|
q--;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
59
【实践课外】13.指针1/6-6 判断回文字符串.md
Normal file
59
【实践课外】13.指针1/6-6 判断回文字符串.md
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
# 6-6 判断回文字符串
|
||||||
|
|
||||||
|
本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。
|
||||||
|
|
||||||
|
### 函数接口定义:
|
||||||
|
```c++
|
||||||
|
bool palindrome( char *s );
|
||||||
|
```
|
||||||
|
函数`palindrome`判断输入字符串`char *s`是否为回文。若是则返回`true`,否则返回`false`。
|
||||||
|
|
||||||
|
### 裁判测试程序样例:
|
||||||
|
```c++
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#define MAXN 20
|
||||||
|
typedef enum {false, true} bool;
|
||||||
|
|
||||||
|
bool palindrome( char *s );
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
char s[MAXN];
|
||||||
|
|
||||||
|
scanf("%s", s);
|
||||||
|
if ( palindrome(s)==true )
|
||||||
|
printf("Yes\n");
|
||||||
|
else
|
||||||
|
printf("No\n");
|
||||||
|
printf("%s\n", s);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 你的代码将被嵌在这里 */
|
||||||
|
```
|
||||||
|
|
||||||
|
### 输入样例1:
|
||||||
|
```in
|
||||||
|
thisistrueurtsisiht
|
||||||
|
```
|
||||||
|
|
||||||
|
### 输出样例1:
|
||||||
|
```out
|
||||||
|
Yes
|
||||||
|
thisistrueurtsisiht
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
### 输入样例2:
|
||||||
|
```
|
||||||
|
thisisnottrue
|
||||||
|
```
|
||||||
|
|
||||||
|
### 输出样例2:
|
||||||
|
```
|
||||||
|
No
|
||||||
|
thisisnottrue
|
||||||
|
```
|
Loading…
Reference in New Issue
Block a user