0
点赞
收藏
分享

微信扫一扫

PTA团体程序设计天梯赛-练习集(3)

转角一扇门 2022-03-31 阅读 130

PTA团体程序设计天梯赛-练习集

L1-001 Hello World (5 分)
这道超级简单的题目没有任何输入。
你只需要在一行中输出著名短句“Hello World!”就可以了。
输入样例:

输出样例:
Hello World!

#include<iostream>
int main()
{printf("Hello World!");
return 0;
}

L1-003 个位数统计 (15 分)
给定一个 k 位整数 N=dk−110k−1+⋯+d1101+d0 (0≤di≤9, i=0,⋯,k−1, dk−1>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定 N=100311,则有 2 个 0,3 个 1,和 1 个 3。
输入格式:
每个输入包含 1 个测试用例,即一个不超过 1000 位的正整数 N。
输出格式:
对 N 中每一种不同的个位数字,以 D:M 的格式在一行中输出该位数字 D 及其在 N 中出现的次数 M。要求按 D 的升序输出。
输入样例:
100311
输出样例:

int main()
{int b[10]={0},i,k;
char a[1001];
gets(a);
for(i=0;a[i]!='\0';i++)
{for(k=0;k<=9;k++)
{if(a[i]-'0'==k){
    b[k]++;break;
}
}
}
for(i=0;i<=9;i++)
{if(b[i]!=0)
{printf("%d:%d",i,b[i]);
putchar('\n');
}
}
return 0;
}`

L1-004 计算摄氏温度 (5 分)
给定一个华氏温度F,本题要求编写程序,计算对应的摄氏温度C。计算公式:C=5×(F−32)/9。题目保证输入与输出均在整型范围内。
输入格式:
输入在一行中给出一个华氏温度。
输出格式:
在一行中按照格式“Celsius = C”输出对应的摄氏温度C的整数值。
输入样例:
150
输出样例:
Celsius = 65

int main()
{
int F;
int C;
scanf("%d",&F);
C=5*(F-32)/9;
printf("Celsius = %d",C);
return 0;
}

L1-008 求整数段和 (10 分)
给定两个整数A和B,输出从A到B的所有整数以及这些数的和。
输入格式:
输入在一行中给出2个整数A和B,其中−100≤A≤B≤100,其间以空格分隔。
输出格式:
首先顺序输出从A到B的所有整数,每5个数字占一行,每个数字占5个字符宽度,向右对齐。最后在一行中按Sum = X的格式输出全部数字的和X。
输入样例:
-3 8
输出样例:
-3 -2 -1 0 1
2 3 4 5 6
7 8
Sum = 30

#include<stdio.h>
int main()
{
    int a,b,sum,i,j;
    scanf("%d %d",&a,&b);
    j=1;
    sum=0;
    for(i=a;i<=b;i++,j++)
    {
        printf("%5d",i);
        sum+=i;
        if(j%5==0&&i!=b)    
        {printf("\n");}
    }
    printf("\n");
    printf("Sum = %d",sum);
    return 0;
}

L1-010 比较大小 (10 分)
本题要求将输入的任意3个整数从小到大输出。
输入格式:
输入在一行中给出3个整数,其间以空格分隔。
输出格式:
在一行中将3个整数从小到大输出,其间以“->”相连。
输入样例:
4 2 8
输出样例:
2->4->8

#include<stdio.h>
int main()
{
int a,b,c;
int t;
scanf("%d%d%d",&a,&b,&c);
if(a>b){t=a;a=b;b=t;}
if(a>c){t=a;a=c;c=t;}
if(b>c){t=b;b=c;c=t;}
printf("%d->%d->%d",a,b,c);
return 0;
}

L1-012 计算指数 (5 分)
真的没骗你,这道才是简单题 —— 对任意给定的不超过 10 的正整数 n,要求你输出 2
n
。不难吧?
输入格式:
输入在一行中给出一个不超过 10 的正整数 n。
输出格式:
在一行中按照格式 2^n = 计算结果 输出 2 n的值。
输入样例:
5
输出样例:
2^5 = 32

#include<stdio.h>
#include<math.h>
int main()
{
int n;
scanf("%d",&n);
printf("2^%d = %.0lf",n,pow(2,n));
return 0;
}

L1-013 计算阶乘和 (10 分)
对于给定的正整数N,需要你计算 S=1!+2!+3!+…+N!。
输入格式:
输入在一行中给出一个不超过10的正整数N。
输出格式:
在一行中输出S的值。
输入样例:
3
输出样例:
9

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

L1-014 简单题 (5 分)
这次真的没骗你 —— 这道超级简单的题目没有任何输入。
你只需要在一行中输出事实:This is a simple problem. 就可以了。
输入样例:

输出样例:
This is a simple problem.

#include<stdio.h>
int main()
{printf("This is a simple problem.");
 return 0;
}

L1-017 到底有多二 (15 分)
一个整数“犯二的程度”定义为该数字中包含2的个数与其位数的比值。如果这个数是负数,则程度增加0.5倍;如果还是个偶数,则再增加1倍。例如数字-13142223336是个11位数,其中有3个2,并且是负数,也是偶数,则它的犯二程度计算为:3/11×1.5×2×100%,约为81.82%。本题就请你计算一个给定整数到底有多二。
输入格式:
输入第一行给出一个不超过50位的整数N。
输出格式:
在一行中输出N犯二的程度,保留小数点后两位。
输入样例:
-13142223336
输出样例:
81.82%

#include<stdio.h>
#include<stdlib.h>
int main(int argc,char *argv[]){
    char a[55],z=0,key=0;
    float bei=1.0,result;
    int ou=1,x;
    scanf("%s",a);
    if(a[0]=='-'){
        bei=1.5;
        z=1;
    }
    for(;a[z]!='\0';z++){
        if(a[z]=='2'){
            key++;
        }
    }
    if(a[z-1]%2==0){
        ou=2;}
    if(bei==1.5)
    {
        z-=1;
    }
    result=1.0*key*bei*ou*100/z;
    x=(int)(result*100+0.5);
    printf("%.2f%%",x/100.0);
    return 0;}

L1-021 重要的话说三遍 (5 分)
这道超级简单的题目没有任何输入。
你只需要把这句很重要的话 —— “I’m gonna WIN!”——连续输出三遍就可以了。
注意每遍占一行,除了每行的回车不能有任何多余字符。
输入样例:

输出样例:
I’m gonna WIN!
I’m gonna WIN!
I’m gonna WIN!

#include<stdio.h>
int main()
{
printf("I'm gonna WIN!\n");    
printf("I'm gonna WIN!\n"); 
printf("I'm gonna WIN!\n");    
}

L1-022 奇偶分家 (10 分)
给定N个正整数,请统计奇数和偶数各有多少个?
输入格式:
输入第一行给出一个正整N(≤1000);第2行给出N个非负整数,以空格分隔。
输出格式:
在一行中先后输出奇数的个数、偶数的个数。中间以1个空格分隔。
输入样例:
9
88 74 101 26 15 0 34 22 77
输出样例:
3 6

#include<stdio.h>
int main()
{int i;
int N;
int data;
int odd=0;
int even=0;
scanf("%d",&N);
for(i=0;i<N;i++)
{scanf("%d",&data);
    if(data%2==1) 
      odd++;
    else 
      even++;
}
printf("%d ",odd);
printf("%d",even);
return 0;
}

L1-024 后天 (5 分)
如果今天是星期三,后天就是星期五;如果今天是星期六,后天就是星期一。我们用数字1到7对应星期一到星期日。给定某一天,请你输出那天的“后天”是星期几。
输入格式:
输入第一行给出一个正整数D(1 ≤ D ≤ 7),代表星期里的某一天。
输出格式:
在一行中输出D天的后天是星期几。
输入样例:
3
输出样例:
5
#include<stdio.h>
int main()
{
int d,a;
scanf("%d",&d);
if(d<=5)
d=d+2;
else
d=d-5;
printf("%d",d);
return 0;
}
L1-026 I Love GPLT (5 分)
这道超级简单的题目没有任何输入。
你只需要把这句很重要的话 —— “I Love GPLT”——竖着输出就可以了。
所谓“竖着输出”,是指每个字符占一行(包括空格),即每行只能有1个字符和回车。
输入样例:

输出样例:
I

L
o
v
e

G
P
L
T
注意:输出的两个空行中各有一个空格。
#include<stdio.h>
int main()
{
printf("%c\n",‘I’);
printf("%c\n",’ ‘);
printf("%c\n",‘L’);
printf("%c\n",‘o’);
printf("%c\n",‘v’);
printf("%c\n",‘e’);
printf("%c\n",’ ');
printf("%c\n",‘G’);
printf("%c\n",‘P’);
printf("%c\n",‘L’);
printf("%c\n",‘T’);
return 0;
}
L1-036 A乘以B (5 分)
看我没骗你吧 —— 这是一道你可以在 10 秒内完成的题:给定两个绝对值不超过 100 的整数 A 和 B,输出 A 乘以 B 的值。
输入格式:
输入在第一行给出两个整数 A 和 B(−100≤A,B≤100),数字间以空格分隔。
输出格式:
在一行中输出 A 乘以 B 的值。
输入样例:
-8 13
输出样例:
-104
#include<stdio.h>
main()
{
int A;
int B;
scanf("%d%d",&A,&B);
printf("%d",A*B);
}
L1-038 新世界 (5 分)
这道超级简单的题目没有任何输入。
你只需要在第一行中输出程序员钦定名言“Hello World”,并且在第二行中输出更新版的“Hello New World”就可以了。
输入样例:

输出样例:
Hello World
Hello New World
#include<stdio.h>
int main()
{printf(“Hello World\n”);
printf(“Hello New World\n”);
return 0;
}

L1-042 日期格式化 (5 分)
世界上不同国家有不同的写日期的习惯。比如美国人习惯写成“月-日-年”,而中国人习惯写成“年-月-日”。下面请你写个程序,自动把读入的美国格式的日期改写成中国习惯的日期。
输入格式:
输入在一行中按照“mm-dd-yyyy”的格式给出月、日、年。题目保证给出的日期是1900年元旦至今合法的日期。
输出格式:
在一行中按照“yyyy-mm-dd”的格式给出年、月、日。
输入样例:
03-15-2017
输出样例:
2017-03-15
#include<stdio.h>
main()
{
int year,month,date;
scanf("%d-%d-%d",&month,&date,&year);
printf("%d-%02d-%02d",year,month,date);
}
L1-051 打折 (5 分)
去商场淘打折商品时,计算打折以后的价钱是件颇费脑子的事情。例如原价 ¥988,标明打 7 折,则折扣价应该是 ¥988 x 70% = ¥691.60。本题就请你写个程序替客户计算折扣价。

输入格式:
输入在一行中给出商品的原价(不超过1万元的正整数)和折扣(为[1, 9]区间内的整数),其间以空格分隔。

输出格式:
在一行中输出商品的折扣价,保留小数点后 2 位。
输入样例:
988 7
输出样例:
691.60
#include<stdio.h>
int main()
{
int price;
int discount;
float dprice;
scanf("%d%d",&price,&discount);
dprice=pricediscount10*0.01;
printf("%.2f",dprice);
return 0;
}
L1-045 宇宙无敌大招呼 (5 分)
据说所有程序员学习的第一个程序都是在屏幕上输出一句“Hello World”,跟这个世界打个招呼。作为天梯赛中的程序员,你写的程序得高级一点,要能跟任意指定的星球打招呼。
输入格式:
输入在第一行给出一个星球的名字S,是一个由不超过7个英文字母组成的单词,以回车结束。
输出格式:
在一行中输出Hello S,跟输入的S星球打个招呼。
输入样例:
Mars
输出样例:
Hello Mars
#include<string.h>
#include<stdio.h>
int main()
{char star[8];
scanf("%s",star);
printf(“Hello %s”,star);
return 0;}
L1-057 PTA使我精神焕发 (5 分)
PTA使我精神焕发.jpg
以上是湖北经济学院同学的大作。本题就请你用汉语拼音输出这句话。
输入格式:
本题没有输入。
输出格式:
在一行中按照样例输出,以惊叹号结尾。
输入样例:

输出样例:
PTA shi3 wo3 jing1 shen2 huan4 fa1 !
L1-024 后天 (5 分)
如果今天是星期三,后天就是星期五;如果今天是星期六,后天就是星期一。我们用数字1到7对应星期一到星期日。给定某一天,请你输出那天的“后天”是星期几。
输入格式:
输入第一行给出一个正整数D(1 ≤ D ≤ 7),代表星期里的某一天。
输出格式:
在一行中输出D天的后天是星期几。
输入样例:
输出样例:
5
#include<stdio.h>
int main()
{
printf(“PTA shi3 wo3 jing1 shen2 huan4 fa1 !”);
}
#include<stdio.h>
int main()
{
int d,a;
scanf("%d",&d);
if(d<=5)
d=d+2;
else
d=d-5;
printf("%d",d);
return 0;
}

L1-052 2018我们要赢 (5 分)
2018年天梯赛的注册邀请码是“2018wmyy”,意思就是“2018我们要赢”。本题就请你用汉语拼音输出这句话。
输入格式:
本题没有输入。
输出格式:
在第一行中输出:“2018”;第二行中输出:“wo3 men2 yao4 ying2 !”。
输入样例:

输出样例:
2018
wo3 men2 yao4 ying2 !

L1-065 嫑废话上代码 (5 分)
Linux 之父 Linus Torvalds 的名言是:“Talk is cheap. Show me the code.”(嫑废话,上代码)。本题就请你直接在屏幕上输出这句话。
输入格式:
本题没有输入。
输出格式:
在一行中输出 Talk is cheap. Show me the code.。
输入样例:

输出样例:
Talk is cheap. Show me the code.
#include<bits/stdc++.h>
using namespace std;
int main()
{
cout<<“Talk is cheap. Show me the code.”;
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int main()
{
cout<<“Talk is cheap. Show me the code.”;
return 0;
}

L1-052 2018我们要赢 (5 分)
2018年天梯赛的注册邀请码是“2018wmyy”,意思就是“2018我们要赢”。本题就请你用汉语拼音输出这句话。
输入格式:
本题没有输入。
输出格式:
在第一行中输出:“2018”;第二行中输出:“wo3 men2 yao4 ying2 !”。
输入样例:

输出样例:
2018
#include<stdio.h>
main()
{
printf(“2018\n”);
printf(“wo3 men2 yao4 ying2 !”);
}

L1-053 电子汪 (10 分)
据说汪星人的智商能达到人类 4 岁儿童的水平,更有些聪明汪会做加法计算。比如你在地上放两堆小球,分别有 1 只球和 2 只球,聪明汪就会用“汪!汪!汪!”表示 1 加 2 的结果是 3。
本题要求你为电子宠物汪做一个模拟程序,根据电子眼识别出的两堆小球的个数,计算出和,并且用汪星人的叫声给出答案。

输入格式:
输入在一行中给出两个 [1, 9] 区间内的正整数 A 和 B,用空格分隔。
输出格式:
在一行中输出 A + B 个Wang!。
输入样例:
2 1
输出样例:
Wang!Wang!Wang!
#include<stdio.h>
int main()
{int A,B;
int sum;
scanf("%d%d",&A,&B);
sum=A+B;
while(sum–)
printf(“Wang!”);
return 0;
}

L1-057 PTA使我精神焕发 (5 分)
PTA使我精神焕发.jpg
以上是湖北经济学院同学的大作。本题就请你用汉语拼音输出这句话。
输入格式:
本题没有输入。
输出格式:
在一行中按照样例输出,以惊叹号结尾。
输入样例:

输出样例:
PTA shi3 wo3 jing1 shen2 huan4 fa1 !
#include<stdio.h>
int main()
{
printf(“PTA shi3 wo3 jing1 shen2 huan4 fa1 !”);
}

L1-065 嫑废话上代码 (5 分)
Linux 之父 Linus Torvalds 的名言是:“Talk is cheap. Show me the code.”(嫑废话,上代码)。本题就请你直接在屏幕上输出这句话。
输入格式:
本题没有输入。
输出格式:
在一行中输出 Talk is cheap. Show me the code.。

输入样例:

输出样例:
Talk is cheap. Show me the code.
#include<bits/stdc++.h>
using namespace std;
int main()
{
cout<<“Talk is cheap. Show me the code.”;
return 0;
}
L1-066 猫是液体 (5 分)
cat.JPG
测量一个人的体积是很难的,但猫就不一样了。因为猫是液体,所以可以很容易地通过测量一个长方体容器的容积来得到容器里猫的体积。本题就请你完成这个计算。
输入格式:
输入在第一行中给出 3 个不超过 100 的正整数,分别对应容器的长、宽、高。
输出格式:
在一行中输出猫的体积。
输入样例:
23 15 20
输出样例:
6900
#include
using namespace std;
int main()
{int c,k,g,v;
cin>>a>>b>>c;
count<<abc;
}

举报

相关推荐

0 条评论