pta中级题库

目录

7-1 三个整数排序

7-3 求数列前n项之和

7-4 求一组数据的平均值

7-5 输出图形

7-6 一行字符变换

7-7 sdut- C语言实验——删除指定字符

7-35 二维数组中每行最大值和每行和

7-36 矩阵转置

7-38 二维数组元素变化

7-39 沙漏图形

7-40 连接两个字符串

7-41 统计各类字符个数

7-42 截取字符串

7-51 n!小于32000的最大的值

7-53 输出100~200之间素数

7-54 泰勒展开式求sinx近似值

7-55 小于m的最大的10个素数

7-64 十进制转换为十六进制数

7-324 打印倒三角形图案

7-327 CJ006 求和

7-328 九九乘法表(双重循环)


7-1 三个整数排序

分数 10

作者 崔孝凤

单位 山东理工大学

从键盘上输入3个整数,按照升序排序,最后输出结果。

输入格式:

输入三个整数,中间用空格分隔。

输出格式:

输出三个整数,中间用英文逗号分隔,最后换行。

输入样例1:

1  2  3

输出样例1:

1,2,3

输入样例2: 

1  3  2

 输出样例2:

1,2,3

输入样例3: 

2  1  3

输出样例3: 

1,2,3

输入样例4:

2  3  1

输出样例4:

1,2,3

输入样例5:

3  1  2

输出样例5:

1,2,3

输入样例6:

3  2  1

输出样例6:

1,2,3

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include<stdio.h>
int main()
{
    int a[3],i,t=0;
    for(i=0;i<3;i++)
        
    {scanf("%d",&a[i]);}
    for( i=0;i<2;i++)
    {
        for(int j=i+1;j<3;j++)
        {
            if(a[i]>a[j])
            {t=a[i];a[i]=a[j];a[j]=t;}
            
            }
    }
    printf("%d,%d,%d\n",a[0],a[1],a[2]);
}

7-3 求数列前n项之和

作者 陈波

单位 山东理工大学

已知数列1,1/3,1/5,1/7,…,求出其前n项之和,其中的实型变量用double类型。

输入格式:

输入n的值,n的值为1到100之间的整数。

输出格式:

以保留两位小数的形式输出数列前n项的和并换行。

输入样例:

3

输出样例:

1.53

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include<stdio.h>
int main()
{
    double sum=0;
    int n;
    scanf("%d",&n);
    for(int i=1,j=1,k=1;k<=n;k++,j=(2*k)-1)
        sum+=(double)i/j;
    printf("%.2f\n",sum);
}

7-4 求一组数据的平均值

作者 陈波

单位 山东理工大学

输入若干个整数,以EOF作为输入结束标记,求这些数据的平均值,结果保留两位小数。其中的实型数据用double类型。

提示:在Windows系统中,输入Ctrl+Z并回车,则scanf函数的返回值为EOF。若以y=scanf("%d",&x);的形式输入,则此时y的值为EOF。

输入格式:

输入数据之间以回车作为分隔符。

输出格式:

保留两位小数。

输入样例:

121
364
7968

输出样例:

2817.67

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include<stdio.h>
int main()
{
    int a[100]={0},i=0;
    double sum=0;
    for(;scanf("%d",&a[i])!=EOF;)
    {
        
        sum+=a[i];
        i++;
    }
    sum=sum/i;
    printf("%.2f",sum);
}

7-5 输出图形

分数 10

作者 陈波

单位 山东理工大学

输入一个正整数n,输出一个按以下规律变化的n行的直角三角形,每个数据都采用6个域宽左对齐的方式显示。

输入格式:

输入一个正整数。

输出格式:

输出按规律变化的图形,每个数据都采用6个域宽左对齐的方式显示。

输入样例:

3

输出样例:

1     
2     4     
3     6     9     

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include<stdio.h>
int main()
{
    int n,i,j,k;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        k=1;
        for(j=i;k<=i;j=i*k)
        {
            printf("%-6d",j);
            k++;
        }
        printf("\n");
    }
}

7-6 一行字符变换

分数 10

作者 陈波

单位 山东理工大学

从键盘输入一行字符,以回车结束。若为小写字母,则转换为对应的大写字母;若为大写字母,则转换为对应的小写字母;其他字符保持不变。

输入格式:

输入一行字符。

输出格式:

输出变换后的一行字符。

输入样例:

How are you?

输出样例:

hOW ARE YOU?

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include<stdio.h>
int main()
{
    char a[100];
    int i=0;
    do
    {
        scanf("%c",&a[i]);
        if(a[i]>='a'&&a[i]<='z')
        { a[i]-=32;printf("%c",a[i]);}
        else if(a[i]>='A'&&a[i]<='Z')
        {a[i]+=32;printf("%c",a[i]);}
       else  printf("%c",a[i]);
    }while(a[i]!='\n');
}

7-7 sdut- C语言实验——删除指定字符

分数 10

作者 马新娟

单位 山东理工大学

从键盘输入一个字符串给str和一个字符给c,删除str中的所有字符c并输出删除后的字符串str。

输入格式:

第一行是一个字符串,不超过100个字符;
第二行是一个字符。

输出格式:

删除指定字符后的字符串。

输入样例:

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

sdf$$$sdf$$
$

输出样例:

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

sdfsdf

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include<stdio.h>
#include<string.h>
int main()
{
    char a[100],c;
    gets(a);
    scanf("%c",&c);
    int i;
    for(i=0;i<strlen(a);i++)
    {
        if(a[i]!=c)printf("%c",a[i]);
    }
}

7-35 二维数组中每行最大值和每行和

分数 10

作者 王跃萍

单位 东北石油大学

求一个3*3二维数组中每行的最大值和每行的和。

输入格式:

在一行中输入9个小于100的整数,其间各以一个空格间隔

输出格式:

输出3行3列的二维数组,并在每行后面分别输出每行最大值和每行元素的和,每个数据输出占4列。

输入样例:

3 6 5 9 8 2 1 4 5

输出样例:

   3   6   5   6  14
   9   8   2   9  19
   1   4   5   5  10

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include<stdio.h>
int main()
{
    int i=0,j=0,t,k,a[3][3];
    for(i=0;i<3;i++)
        for(j=0;j<3;j++)
            scanf("%d",&a[i][j]);
    for(i=0;i<3;i++)
    {
        t=0;k=0;
        for(j=0;j<3;j++)
        {printf("%4d",a[i][j]);
        if(k<a[i][j])k=a[i][j];
        t+=a[i][j];}
        if(j==3){printf("%4d%4d\n",k,t);}
    }   
}

7-36 矩阵转置

分数 10

作者 王跃萍

单位 东北石油大学

将一个3×3矩阵转置(即行和列互换)。

输入格式:

在一行中输入9个小于100的整数,其间各以一个空格间隔。

输出格式:

输出3行3列的二维数组,每个数据输出占4列。

输入样例:

1 2 3 4 5 6 7 8 9

输出样例:

   1   4   7
   2   5   8
   3   6   9

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include<stdio.h>
int main()
{
    int i=0,j=0,t,a[3][3];
    for(i=0;i<3;i++)
        for(j=0;j<3;j++)
            scanf("%d",&a[i][j]);
    for(i=0;i<3;i++)
        for(j=0;j<3;j++)
        {printf("%4d",a[j][i]);
         if(j==2)printf("\n");}
}

7-38 二维数组元素变化

分数 10

作者 王跃萍

单位 东北石油大学

将一个二维数组a[3][3]={1,2,3,4,5,6,7,8,9}作如下处理后输出。将主对角线上的元素变为其平方,左下三角的元素变成自身乘 2,右上三角元素变成自身加3。

输出格式:

输出变化后的3行3列矩阵,每个数据占3列。

输出样例:

  1  5  6
  8 25  9
 14 16 81

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include<stdio.h>
int main()
{
    int a[3][3]={1,2,3,4,5,6,7,8,9},i=0,j=0;

    for(i=0;i<3;i++)
        for(j=0;j<3;j++)
        {
            if(i==j)a[i][j]=a[i][j]*a[i][j];
            else if(i>j)a[i][j]*=2;
            else  a[i][j]+=3;
        }
    for(i=0;i<3;i++)
        for(j=0;j<3;j++)
        {printf("%3d",a[i][j]);
         if(j==2)printf("\n");}
}

7-39 沙漏图形

分数 8

作者 王跃萍

单位 东北石油大学

利用二维数组输出如图所示的图形。

输出格式:

完整输出7行7列二位数组,如上图所示,每个星号占1列,第一行星号左侧没有空格。

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include<stdio.h>
int main()
{
    char a[7][7];
    int i,j;
    //初始化数组
    for(i=0;i<7;i++)
        for(j=0;j<7;j++)
            a[i][j]=' ';
    //输入*
    for(i=0;i<4;i++)
        for(j=i;j<7-i;j++)
            a[i][j]='*';
    for(i=4;i<7;i++)
        for(j=6-i;j<=i;j++)
            a[i][j]='*';
    //输出数组
    for(i=0;i<7;i++)
    {for(j=0;j<7;j++)
            printf("%c",a[i][j]);
        printf("\n");}
}

7-40 连接两个字符串

分数 10

作者 王跃萍

单位 东北石油大学

连接两个字符串,不允许使用strcat函数。

输入格式:

在两行分别输入两个长度小于20的字符串。

输出格式:

在一行中直接输出连接后的字符串。

输入样例:

abc
123

输出样例:

abc123

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include<stdio.h>
#include<string.h>
int main()
{
    char a[20],c[40];
    int i=0,j=0;
    gets(c);
    gets(a);
    while(a[i]!=0)
    {
        i++;
    }
    while(a[j]!=0)
    {
        c[i]=a[j];
        i++;
        j++;
    }
    printf("%s",c);
}

7-41 统计各类字符个数

分数 8

作者 王跃萍

单位 东北石油大学

分别统计一个字符串中出现小写字母、大写字母、数字和空格的个数。

输入格式:

在一行中输入长度不超过40的字符串。

输出格式:

第一行中输出“小写字母=x“
第二行中输出“大写字母=y“
第三行中输出“数字=z”
第四行中输出“空格=m”
所有结果均原样输出,没有列宽控制。

输入样例:

sd2h b57 sA

输出样例:

小写字母=5
大写字母=1
数字=3
空格=2

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include<stdio.h>
#include<string.h>
int main()
{
    char a[41];
    int i=0,x=0,y=0,z=0,m=0;
    gets(a);
    for(;i<strlen(a);i++)
    {
        if(a[i]>='a'&&a[i]<='z')x++;
        if(a[i]>='A'&&a[i]<='Z')y++;
        if(a[i]>='0'&&a[i]<='9')z++;
        if(a[i]==' ')m++;
    }
    printf("小写字母=%d\n大写字母=%d\n数字=%d\n空格=%d",x,y,z,m);
}

7-42 截取字符串

分数 10

作者 王跃萍

单位 东北石油大学

从键盘输入一个字符串,再输入两个整数m和n,将字符串从下标为m的字符开始的n个字符复制到另一个字符数组中。

输入格式:

在第一行中输入一个长度不超过20的字符串,并以回车结束,在第二行中输入用一个空格间隔的两个整数。

输出格式:

在一行中输出满足条件的字符串。

输入样例:

asdfghj
2 3

输出样例:

dfg

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include<stdio.h>
#include<string.h>
int main()
{
    char a[21],b[21];
    int c,d,i,j;
    gets(a);
    scanf("%d %d",&c,&d);
    for(i=c,j=0;i<c+d;i++,j++)
    {
        b[j]=a[i];
    }
    b[j]=0;
    puts(b);
}

7-51 n!小于32000的最大的值

分数 10

作者 王跃萍

单位 东北石油大学

计算n!,求出小于32 000的最大的值,并求出此时n的值。

输出格式:

在一行中按照“n=结果1,t=结果2”的格式输出,结果1和结果2均原样输出整型数据,没有列宽控制。

输出样例:

n=7,t=5040

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include<iostream>
using namespace std;
int main()
{
    int n=1;
    int t=1;
    for(;t<32000;n++)
        t*=n;
    n-=1;
    t/=n;
    n-=1;
    printf("n=%d,t=%d\n",n,t);
}

7-53 输出100~200之间素数

作者 王跃萍

单位 东北石油大学

求出100~200之间的全部素数,每行输出8个数,每个数宽度为5列。

输出格式:

每行输出8个素数数,每个素数宽度为5列。

输出样例:

  101  103  107  109  113  127  131  137
  139  149  151  157  163  167  173  179
  181  191  193  197  199

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include<stdio.h>
int main()
{
    int i,j,k=1,a[21],b=0;
    for(i=100;i<=200;i++)
    {
        k=1;
        for(j=2;j<i/2;j++)
        {
            if(i%j==0)
            {
                k=0;
                break;
            }
            
        }
        if(k){a[b]=i;b++;}
    }
    for(i=0;i<21;i++)
    {printf("%5d",a[i]);
        if((i+1)%8==0)printf("\n");}
}

7-54 泰勒展开式求sinx近似值

作者 王跃萍

单位 东北石油大学

用泰勒展开式求sinx近似值的多项式为:

输入x求sinx的近似值,要求误差不大于0.00001。

输入格式:

直接输入一个实型数据。没有其它任何附加字符。

输出格式:

直接输出保留3位小数的实型结果。

输入样例:

2.5

输出样例:

0.598

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include<iostream>
#include<cmath>
using namespace std;
double tsin(double x)
{
    double sum=0;
    double t=x;
    int n=1;
    do
    {
        sum+=t;
        n++;
        t=-t*x*x/(2*n-1)/(2*n-2);
    }while(fabs(t)>=1e-5);
    return sum;
}
int main()
{
    double x,y;
    cin>>x;
    y=tsin(x);
    printf("%.3f",y);
}

7-55 小于m的最大的10个素数

作者 王跃萍

单位 东北石油大学

给定一个整数m(200<m<20000),找出小于m的最大的10个素数。

输入格式:

直接输入一个正整数m(200<m<20000)。没有其它任何附加字符。

输出格式:

在一行中输出10个满足条件的素数,每个素数输出占6列。没有其它任何附加格式和字符。

输入样例:

229

输出样例:

   227   223   211   199   197   193   191   181   179   173

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
    int m,n,t,a,b=1;
    int c[10];
    cin>>m;
    a=m-1;
    for(n=1;n<=10;a--)
    {
        b=1;
        for(t=2;t<m/2;t++)
        {
            if(a%t==0){b=0;break;}
        }
        if(b){c[n-1]=a;n++;}
    }
    for(n=0;n<10;n++)
        cout<<setw(6)<<c[n];
}

7-64 十进制转换为十六进制数

作者 王跃萍

单位 东北石油大学

输入一个十进制的正整数,输出它对应的十六进制数。

输入格式:

直接输入一个正整数。

输出格式:

直接输出结果,没有任何附加字符。

输入样例:

123

输出样例:

7B

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include<stdio.h>
int main()
{
    int a;
    scanf("%d",&a);
    printf("%X\n",a);
}
//嘻嘻

7-324 打印倒三角形图案

作者 张高燕-2019期末

单位 浙大城市学院

本题要求编写程序,打印一个高度为n的、由“*”组成的倒三角形图案。

输入格式:

输入在一行中给出一个正整数n。

输出格式:

输出由n行星号“*”组成的倒三角形,如样例所示。第一行的行首没有空格,每一行的行末没有空格,星号之间没有空格。

输入样例:

3

输出样例:

*****
 ***
  *

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include<iostream>
using namespace std;
int main()
{
    int n;
    cin>>n;
    for(int i=n;i>0;i--)
    {for(int j=0;j<n-i;j++)
            cout<<' ';
    for(int k=0;k<2*i-1;k++)
    {
        cout<<'*';
    }
     cout<<endl;
    }
}

7-327 CJ006 求和

作者 周治国

单位 东北师范大学

输入整数m和n,求出m到n之间所有整数的和。

输入格式:

一行给出两个整数m和n。

输出格式:

求出m到n(包括m和n)之间所有整数的和(和不会超出整数范围)。

输入样例:

1 5

输出样例:

15

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include<stdio.h>
int main()
{
    int a,b;
    scanf("%d%d",&a,&b);
    int sum=0;
    for(int i=a;i<=b;i++)
        sum+=i;
    printf("%d",sum);
}

7-328 九九乘法表(双重循环)

作者 周永

单位 西南石油大学

打印九九乘法表,乘法表格式如图。

接收用户从键盘输入的一个1到9(含边界)的整数,假设该整数是n,则打印乘法表的前n行。
说明:
(1)用户输入的整数不在1到9这个范围内,则固定输出下面信息:

INPUT ERROR.

(2)两个整数之间的乘号,是使用的大写字母X。同一行的多个乘法结果之间,用制表符\t分开,一行末尾没有多余的制表符。

输入格式:

一个整数n。

输出格式:

乘法表的前n行。

输入样例1:

如用户输入16。

16

输出样例1:

提示用户输入的数据有误。

INPUT ERROR.

输入样例2:

如用户输入3,打印乘法表前3行。

3

输出样例2:

提示用户输入的数据有误。

1X1=1
2X1=2	2X2=4
3X1=3	3X2=6	3X3=9

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

 

#include<iostream>
using namespace std;
int main()
{
    int n;
    cin>>n;
    if(n>9||n<1) cout<<"INPUT ERROR."<<endl;
else 
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=i;j++)
        {
            cout<<i<<'X'<<j<<'='<<i*j;
            if(j!=i)printf("\t");
            if(j==i) printf("\n");
        }
    }
}

  • 31
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: -plugin是什么? A:mysql-cj-abandoned-connection-cleanup-plugin是一个MySQL插件,它用于自动关闭已经被应用程序丢弃的连接。它可以帮助管理员减少数据库服务器上的资源消耗和性能问题。该插件通过一个“拦截器”模式来捕捉被应用程序丢弃的连接,并在事先定义的时间间隔后关闭这些连接。 ### 回答2: mysql-cj-abandoned-connection-cleanup是一个MySQL Connector/J库的参数,用于在连接池清理已被废弃的连接。 MySQL Connector/J是一个用于Java程序连接MySQL数据库的驱动程序。在使用连接池时,连接池会提供一组已经建立好的数据库连接,供Java程序使用,以提高数据库连接的效率和性能。 然而,在某些情况下,可能会出现一些连接没有被正确关闭的情况,这些连接就被视为废弃的连接。废弃的连接可能导致连接池的连接资源被占用,无法再被其他程序使用,从而浪费了系统资源。 为了解决这一问题,MySQL Connector/J引入了mysql-cj-abandoned-connection-cleanup参数。当设置为true时,默认为false,此参数会开启废弃连接的自动清理功能。一旦开启,连接池会定期检查已分配的连接是否已经被释放,如果发现连接已经被废弃,则会将其关闭并从连接池移除。 使用mysql-cj-abandoned-connection-cleanup参数可以有效地解决废弃连接导致的问题,提高连接池的使用效率和资源利用率。但需要注意的是,设置过于频繁的检查时间可能会对系统性能产生一定的影响,因此在设置时需要根据具体的场景和需求进行权衡和调整。 总之,mysql-cj-abandoned-connection-cleanup参数在MySQL Connector/J库扮演着清理废弃连接的重要角色,通过设置此参数可以自动检测和清理掉废弃的连接,提高连接池的性能和资源利用率。 ### 回答3: mysql-cj-abandoned-connection-cleanup是MySQL Connector/J JDBC驱动程序一个功能,用于清理连接池被废弃的连接。 在使用连接池管理数据库连接时,有时候会发生连接被废弃但未被正确关闭的情况。这可能是因为应用程序在使用连接后忘记关闭连接,或者因为网络或服务器等原因导致连接失效。如果这些废弃的连接不得及时清理,会占用服务器资源,导致性能下降甚至崩溃。 为了解决这个问题,MySQL Connector/J JDBC驱动程序引入了mysql-cj-abandoned-connection-cleanup功能。当启用这个功能时,MySQL Connector/J会定期检查连接池的连接,并识别那些被废弃的连接。被认定为废弃的连接是指从连接被创建后一段时间内未被使用的连接。 一旦识别出被废弃的连接,mysql-cj-abandoned-connection-cleanup功能会自动将这些连接关闭,以释放服务器资源。这样可以保持连接池的健康状态,提高应用程序的性能和可靠性。 为了启用mysql-cj-abandoned-connection-cleanup功能,可以在应用程序的JDBC连接字符串添加如下参数:abandonedConnectionCleanup=true。启用该功能后,可以通过设置一些其他参数来调整清理废弃连接的策略,如连接被认为废弃的超时时间和清理频率等。 总之,mysql-cj-abandoned-connection-cleanup功能是MySQL Connector/J JDBC驱动程序一个重要功能,用于自动清理连接池被废弃的连接,以提高应用程序的性能和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值