程序设计基础I-单元测试4(机测+编程题)

7-1 逆置一维数组

编写程序,以指针的方式,就地逆置一维数组。

输入格式:

首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。每组测试数据先输入数据个数n,然后输入n个整数。

输出格式:

对于每组测试,在一行上输出逆置之后的结果。数据之间以一个空格分隔。

输入样例:

复制代码
2
4 1 2 5 3
5 4 3 5 1 2

输出样例:

复制代码
3 5 2 1
2 1 5 3 4

#include<stdio.h>
int f(int n,int*p)
{
    int i;
    for(i=n-1;i>=0;i--)
    {
        if(i==n-1)
            printf("%d",p[i]);
        else
            printf(" %d",p[i]);
    }
}
int main()
{
    int m,n;
    int p[1005];
    scanf("%d",&m);
    for(int i=0;i<m;i++)
    {
        scanf("%d",&n);
        for(int i=0;i<n;i++)
        {
            scanf("%d",&p[i]);
        }
        f(n,p);
        printf("\n");
    }
    return 0;
}

7-2 求组合数

本题要求编写程序,根据公式Cnm​=m!(n−m)!n!​算出从n个不同元素中取出m个元素(m≤n)的组合数。

建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是double。

输入格式:

输入在一行中给出两个正整数m和n(m≤n),以空格分隔。

输出格式:

按照格式"result = 组合数计算结果"输出。题目保证结果在double类型范围内。

输入样例:

复制代码
2 7

输出样例:

复制代码
result = 21

#include<stdio.h>
double fact(int n)
{
    int i;
    double sum=1;
    for(i=1;i<=n;i++)
    {
        sum=sum*i;
    }
    return sum;
}
int main()
{
    int m,n;
    double t;
    scanf("%d %d",&m,&n);
    t=fact(n)/(fact(m)*fact(n-m));
    printf("result = %.lf",t);
    return 0;
}

7-3 sdut - C语言实验-保留字母

编一个程序,输入一个允许带空格的字符串,将组成字符串的所有非英文字母的字符删除后输出。

输入格式:

一个字符串,长度不超过80个字符。

输出格式:

删掉非英文字母后的字符串。

输入样例:

复制代码
abc123+xyz.5

输出样例:

在这里给出相应的输出。例如:

复制代码
abcxyz

#include<stdio.h>
int main()
{
    int i;
    char str[80];
    gets(str);
    for(i=0;str[i]!='\0';i++)
    {
        if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z'))
            printf("%c",str[i]);
    }
    return 0;
}

7-4 sdut-C语言实验- 字符统计2

输入英文句子,输出该句子中除了空格外出现次数最多的字符及其出现的次数。

输入格式:

输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行。

输出格式:

逐行输出每个句子中出现次数最多的字符及其出现的次数(如果有多个字符的次数相同,只输出ASCII码最小的字符)。

输入样例:

复制代码
I am a student
a good programming problem
ABCD abcd ABCD abcd

输出样例:

在这里给出相应的输出。例如:

复制代码
a 2
o 4
A 2

#include <stdio.h>
#include <stdlib.h>
int main()
{
    char s[101];
    int i;
    while (gets(s)!=NULL)
    {
        int a[130]={0};
        for (i=0;s[i]!='\0';i++)
        {
            if (s[i]!=' ')
            {
                a[s[i]]++;
            }
        }
        int max=a[0];int k=0;
        for (i=1;i<=129;i++)
        {
             if (a[i]>max)
             {
                 max=a[i];
                 k=i;
             }
        }
        printf("%c %d\n",k,max);
    }
    return 0;
}

7-5 利用指针返回多个函数值

读入n个整数,调用max_min()函数求这n个数中的最大值和最小值。

输入格式:

输入有两行:

第一行是n值;

第二行是n个数。

输出格式:

输出最大值和最小值。

输入样例:

在这里给出一组输入。例如:

复制代码
5
8 9 12 0 3

输出样例:

在这里给出相应的输出。例如:

复制代码
max = 12
min = 0

#include<stdio.h>
int max_min(int n,int *p)
{
    int i;
    int max=p[0],min=p[0];
    for(i=0;i<n;i++)
    {
        if(p[i]>max)
        max=p[i];
        if(p[i]<min)
            min=p[i];
    }
    printf("max = %d\n",max);
    printf("min = %d",min);
}
int main()
{
    int i,n;
    scanf("%d",&n);
    int p[1005];
    for(i=0;i<n;i++)
    {
        scanf("%d",&p[i]);
    }
    max_min(n,p);
    return 0;
}
相关推荐
AiNightVision17 分钟前
无人机夜视模块如何选择?——从参数指标到系统集成的完整选型指南
人工智能·算法·计算机视觉·车载系统·无人机·视频·智能硬件
牧羊人.3331 小时前
卷积神经网络之VGG
人工智能·深度学习·神经网络·算法·cnn
小郎君6582 小时前
Vue 多标签页的加载态设计:为什么我没有用 Suspense 实现 PageLoading
vue.js·算法
JJJennie7772 小时前
MAI Gateway私有化部署全攻略:大模型网关如何接入?附架构图
算法·gateway·ai网关·魔芋ai
東隅已逝,桑榆非晚2 小时前
算法3.双指针法-快乐数
c++·笔记·学习·算法
专注仿真3 小时前
卷积神经网络(CNN)算法详解
人工智能·python·算法·代码·大模型训练
FII工业富联科技服务3 小时前
多智能体如何进入制造现场?从业务协同到数字孪生验证
大数据·人工智能·算法·机器人·制造·数字孪生
≮傷£≯√3 小时前
httpserver_QNetWorkClient
算法
Evand J3 小时前
【PMSM例程11】永磁同步电机(PMSM)基于UKF的转速与转子位置估计。附下载链接
算法·matlab·卡尔曼滤波·永磁同步电机·ukf·pmsm·位置估计
货拉拉技术3 小时前
记忆即智能:重构对话式AI Agent认知基座的四层渐进式记忆与自进化系统
人工智能·算法