c语言 串最后一次出现字符串,给定程序MODI1.C中函数fun的功能是:求出s所指字符串中最后一次出现的..._考试资料网...
时间: 2024-03-26 15:35:36 浏览: 15
根据您提供的信息,我无法看到MODI1.C中函数fun的具体实现。但是,根据您描述的函数功能,我可以给出通用的思路:
1. 定义一个指向字符串s的指针p,初始化为s的起始地址。
2. 定义一个指向最后一次出现字符串t的位置的指针q,初始化为NULL。
3. 使用strstr函数在字符串p中查找字符串t,如果找到,则将q指向该位置,然后将p指向该位置之后的位置继续查找。
4. 如果没有找到,说明字符串t不在字符串s中,结束查找。
5. 最后返回q指向的位置,即为最后一次出现字符串t的位置。
下面是一个可能的实现:
```c
char *fun(char *s, char *t) {
char *p = s;
char *q = NULL;
while (1) {
p = strstr(p, t);
if (p == NULL) { // 没有找到
break;
}
q = p; // 更新最后一次出现的位置
p++; // 继续查找
}
return q;
}
```
需要注意的是,该函数返回的是最后一次出现字符串t的位置,如果字符串t在字符串s中只出现了一次,那么该函数返回的就是字符串t在字符串s中的位置。
相关问题
给定程序MODI1.C中函数fun 的功能是:判断一个整数n是否是素数,若是返回1,否则返回0。 在main0函数中,若fun返回1输出?ES,若fun返回0输出可O!
根据描述,可以猜测程序如下:
```c
#include <stdio.h>
int fun(int n) {
if (n < 2) {
return 0;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int n;
scanf("%d", &n);
if (fun(n)) {
printf("YES\n");
} else {
printf("NO\n");
}
return 0;
}
```
函数 `fun` 判断一个整数 `n` 是否是素数,若是返回 `1`,否则返回 `0`。在 `main` 函数中,读入一个整数 `n`,如果 `fun(n)` 返回 `1`,则输出 `YES`,否则输出 `NO`。
需要注意的是,`fun` 函数的判断方法使用的是试除法,而不是更高效的算法。如果需要判断的数很大,该程序的运行时间可能会很长。
C语言已知一个数列从第0项开始的前三项分别为0,0,1. 以后的各项是其相邻的前三项之和。给定程序MODI1.C中函数 fun的功能是:计算并输出该数列前n项的平方根之和,n的值通过形参传入
以下是MODI1.C的代码:
```c
#include<stdio.h>
#include<math.h>
double fun(int n)
{
double sum = 0;
int i;
double a[100] = { 0,0,1 };
for (i = 3; i < n; i++)
{
a[i] = a[i - 1] + a[i - 2] + a[i - 3];
}
for (i = 0; i < n; i++)
{
sum += sqrt(a[i]);
}
return sum;
}
int main()
{
int n;
double s;
scanf("%d", &n);
s = fun(n);
printf("%.2lf", s);
return 0;
}
```
该程序定义了一个函数`fun`,其功能是根据题目所给的数列,计算并输出前n项的平方根之和。程序使用循环计算数列的前n项,并将它们的平方根加起来求和,最后返回这个和。
需要注意的是,该程序中使用了`sqrt`函数来计算平方根,因此需要在程序开头引用头文件`<math.h>`。此外,因为n的值通过形参传入,所以在主函数中需要先读入n的值,然后调用`fun`函数计算平方根之和,并将结果输出。