2021-05-28

期末复习记录帖子 5.28创建
实验10
6-1 多项式求值 (10 分)
本题要求实现一个函数,计算阶数为n,系数为a[0] … a[n]的多项式f(x)=∑
​i=0
​n
​​ (a[i]×x
​i
​​ ) 在x点的值。

函数接口定义:
double f( int n, double a[], double x );
其中n是多项式的阶数,a[]中存储系数,x是给定点。函数须返回多项式f(x)的值。

裁判测试程序样例:
#include <stdio.h>

#define MAXN 10

double f( int n, double a[], double x );

int main()
{
int n, i;
double a[MAXN], x;

scanf("%d %lf", &n, &x);
for ( i=0; i<=n; i++ )
    scanf(“%lf”, &a[i]);
printf("%.1f\n", f(n, a, x));
return 0;

}

/* 你的代码将被嵌在这里 */

double f(int n,double a[],double x)
{
    double sum=0;
    double t=1;
    int i;
    for(i=0;i<=n;i++)
    {
        sum+=t*a[i];
        t=t*x;
    }
    return sum; 
}

6-2 移动字母 (10 分)
本题要求编写函数,将输入字符串的前3个字符移到最后。

函数接口定义:
void Shift( char s[] );
其中char s[]是用户传入的字符串,题目保证其长度不小于3;函数Shift须将按照要求变换后的字符串仍然存在s[]里。

裁判测试程序样例:
#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; 

}

/* 你的代码将被嵌在这里 */
输入样例:
abcdef
输出样例:
defabc

void Shift( char s[] )
{
    char x,y,z;
    x=s[0];
    y=s[1];
    z=s[2];
    int i;
    int n;
    n=strlen(s);
    for(i=3;i<=n-1;i++)
    {
        s[i-3]=s[i];
    }
    s[n-1]=z;
    s[n-2]=y;
    s[n-3]=x;
}

6-3 在数组中查找指定元素 (10 分)
本题要求实现一个在数组中查找指定元素的简单函数。

函数接口定义:
int search( int list[], int n, int x );
其中list[]是用户传入的数组;n(≥0)是list[]中元素的个数;x是待查找的元素。如果找到

则函数search返回相应元素的最小下标(下标从0开始),否则返回−1。

裁判测试程序样例:
#include <stdio.h>
#define MAXN 10

int search( int list[], int n, int x );

int main()
{
int i, index, n, x;
int a[MAXN];

scanf("%d", &n);
for( i = 0; i < n; i++ )
    scanf("%d", &a[i]);
scanf("%d", &x);
index = search( a, n, x );
if( index != -1 )
    printf("index = %d\n", index);
else
    printf("Not found\n");

return 0;

}

/* 你的代码将被嵌在这里 */
输入样例1:
5
1 2 2 5 4
2
输出样例1:
index = 1
输入样例2:
5
1 2 2 5 4
0
输出样例2:
Not found

int search( int list[], int n, int x )
{
    int i;
    for(i=0;i<=n-1;i++)
    {
        if(list[i]==x)
        {
            return i;
        }
    }
    return -1;
} 

6-4 删除字符 (10 分)
本题要求实现一个删除字符串中的指定字符的简单函数。

函数接口定义:
void delchar( char *str, char c );
其中char *str是传入的字符串,c是待删除的字符。函数delchar的功能是将字符串str中出现的所有c字符删除。

裁判测试程序样例:
#include <stdio.h>
#define MAXN 20

void delchar( char str, char c );
void ReadString( char s[] ); /
由裁判实现,略去不表 */

int main()
{
char str[MAXN], c;

scanf("%c\n", &c);
ReadString(str);
delchar(str, c);
printf("%s\n", str);

return 0;

}

/* 你的代码将被嵌在这里 */
输入样例:
a
happy new year
输出样例:
hppy new yer

这个题要注意
1.找到要删去的字符
2.处理该字符后面的序列,向前进一位

void delchar( char *str, char c )
{
    int i,j,n;
    n=strlen(str);
    for(i=0;i<=n-1;i++)
    {
        while(c==str[i])
        {
            for(j=i;j<=n-1;j++)
            {
                str[j]=str[j+1];
            }
            n--;
        }
    }
    return str;
}

6-5 分类统计各类字符个数 (10 分)
本题要求实现一个函数,统计给定字符串中的大写字母、小写字母、空格、数字以及其它字符各有多少。

函数接口定义:
void StringCount( char *s );
其中 char *s 是用户传入的字符串。函数StringCount须在一行内按照

大写字母个数 小写字母个数 空格个数 数字个数 其它字符个数
的格式输出。

裁判测试程序样例:
#include <stdio.h>
#define MAXS 15

void StringCount( char *s );
void ReadString( char s ); / 由裁判实现,略去不表 */

int main()
{
char s[MAXS];

ReadString(s);
StringCount(s);

return 0;

}

/* Your function will be put here /
输入样例:
aZ&
?
093 Az
输出样例:
2 2 1 3 4

void StringCount( char *s )
{
    int x,y,z,p,q;
    x=y=z=p=q=0;
    int i=0;
    int n=strlen(s);
    for(i=0;i<=n-1;i++)
    {
        if('A'<=s[i]&&s[i]<='Z')
            x++;
        else if('a'<=s[i]&&s[i]<='z')
            y++;
        else if('0'<=s[i]&&s[i]<='9')
            p++;
        else if(s[i]==' ')
            z++;
        else
            q++;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

硕鼠酱er

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值