CPP2022-28-期末模拟测试01

文章包含一系列编程题目,包括计算三角形面积的函数实现,选择排序算法的升序排列功能,分段函数的值计算以及阶乘序列的求和问题。题目要求合理处理输入并输出相应结果,涉及基础数学运算和算法应用。

 

 

 

6-1 实现一个计算三角形面积的简单函数(假设输入的边长合理)。

分数 10

全屏浏览题目

切换布局

作者 王和兴

单位 东北大学秦皇岛分校

实现一个计算三角形面积的简单函数(假设输入的边长合理)。

函数接口定义:


double area(double a, double b, double c);

其中 a,b 和 c 是三角形的三条合理边长,由用户输入。

裁判测试程序样例:


#include <iostream> #include <iomanip> #include <cmath> using namespace std; double area(double a, double b, double c); int main() { double a, b, c, s; cin>>a>>b>>c; s=area(a,b,c); cout<<setiosflags(ios::fixed)<<setprecision(2)<<s<<endl; return 0; } /* 请在这里填写答案 */

输入样例:

3.0 4.0 5.0

输出样例:

6.00
double area(double a, double b, double c)
{
    double p=(a+b+c)/2;
    return sqrt(p*(p-a)*(p-b)*(p-c));
}

 

6-2 编写一个选择排序函数,实现升序排序功能。

分数 10

全屏浏览题目

切换布局

作者 王和兴

单位 东北大学秦皇岛分校

编写一个选择排序函数,实现升序排序功能。

函数接口定义:


void select_sort(int array[], int n);

其中array是待排序的数组名,n为数据array中元素的个数。

裁判测试程序样例:


#include <iostream> using namespace std; int main() { void select_sort(int array[],int n); int a[10]={6,3,1,4,0,9,8,2,5,7},i; select_sort(a,10); for(i=0;i<10;i++) cout<<a[i]<<" "; cout<<endl; return 0; } /* 你的代码将被嵌在这里 */

输出样例:

0  1  2  3  4  5  6  7  8  9

 

void select_sort(int array[], int n)
{
    for(int i=0;i<n;i++)
    {
        for(int j=i;j<n;j++)
        {
            if(array[i]>array[j])
            {
                int temp=array[i];
                array[i]=array[j];
                array[j]=temp;
            }
        }
    }
}

 

7-1 计算下列分段函数f(x)的值。

分数 10

全屏浏览题目

切换布局

作者 王和兴

单位 东北大学秦皇岛分校

计算下列分段函数f(x)的值。
f(x)={2x−13x+6​x≥0x<0​

输入

在一行中给出实数x。

输出

在一行中按“f = result”的格式输出计算结果,要求保留两位小数位数。结尾有换行。

输入样例

2.5

输出样例

f = 4.00
#include<bits/stdc++.h>
using namespace std;
int main()
{
    double n;
    cin>>n;
    if(n>=0)
    {
        cout<<"f = "<<fixed<<setprecision(2)<<2*n-1;
    }
    else
    {
        cout<<"f = "<<fixed<<setprecision(2)<<3*n+6;
    }
    return 0;
}

 

7-2 求1!+2!+3!+…+n!。

分数 10

全屏浏览题目

切换布局

作者 王和兴

单位 东北大学秦皇岛分校

编写程序,求1!+2!+3!+…+N!。

其中4 <= N <10

输入样例:

5

输出样例:

1!+2!+...+5! = 153
#include<bits/stdc++.h>
using namespace std;
int check(int n)
{
    if(n==1)
    {
        return 1;
    }
    else
    {
        return n*check(n-1);
    }
}
int main()
{
    int n;
    cin>>n;
    int sum=0;
    for(int i=1;i<=n;i++)
    {
        sum=sum+check(i);
    }
    cout<<"1!+2!+...+"<<n<<"!"<<" = "<<sum;
    return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值