初学者必刷题---PTA基础编程题目集第一期

🚀write in front🚀
📝个人主页:认真写博客的夏目浅石.
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​
📣系列专栏:初学者必刷题—鹏哥推荐
💬总结:希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🖊
✉️不如沉默去做,看结局怎么去说 ♐


💡函数篇

这里先提示一下:
博主不厉害然后只把会的写了,不会的还没写所以就是后面如果我会了,就会补充上去提供给大家学习。

在这里插入图片描述
在这里插入图片描述

2022.12.8号真实的鹏哥推荐题目,下面开刷。


函数篇:

6-1 简单输出整数

在这里插入图片描述

void PrintN (int N)
{
    for(int i = 1;i <= N;i++)
    {
        printf("%d\n",i);
    }
}

6-2 多项式求值

在这里插入图片描述

double f( int n, double a[], double x )
{
    double s=0.0,x0=1.0;
    for(int i=0;i<=n;i++)
    {
        if(a[i])
            s = s + a[i] * x0;
        x0 = x0 * x;
    }
    return s;
}

6-3 简单求和

在这里插入图片描述

int Sum ( int List[], int N )
{
    float sum=0;
    for(int i=0;i<N;i++)
    {
        sum=sum+List[i];
    }
    return sum;
}

6-4 求自定类型元素的平均

在这里插入图片描述

ElementType Average( ElementType S[], int N )
{
    double average=0.0,sum=0.0;
    for(int i=0;i<=N;i++)
    {
        sum=sum+S[i];
    }
    average=sum/N;
    return average;
}

6-5 求自定类型元素的最大值

在这里插入图片描述

ElementType Max( ElementType S[], int N )
{
    int max;
    for(int i=0;i<N;i++)
    {
        if(S[i]>S[max])
        {
            max=i;
        }
    }
    
    return S[max];
    
    
}

6-7 统计某类完全平方数

在这里插入图片描述

int IsTheNumber ( const int N )
{
    int x,m;
    x=(int)sqrt(N);
    m=x*x;
    if(m==N)
    {
        int num[10]={0};
        while(m>0)
        {
            for(int i=0;i<=9;i++)
            {
                if(m%10==i)
                {
                    num[i]+=1;
                    if(num[i]==2)
                    {
                        return 1;
                    }
                }
            }
            m=m/10;
        }
    }
    return 0;
}
在这里插入代码片

6-8 简单阶乘计算

在这里插入图片描述

int Factorial( const int N )
{
    int s=1;
    if(N>=0)
    {
        for(int i=1;i<=N;i++)
        {
            s=s*i;
        }
        return s;
    }
    else
        return 0;
}

6-12 判断奇偶性

在这里插入图片描述

int even( int n )
{
    if(n==0)
    {
        return 1;
    }
    if(n<0)
    n=-n;
    if(n%2==0)
    {
        return 1;
    }
    if(n%2!=0)
    {
        return 0;
    }
}

🎈编程题篇

7-1 厘米换算英尺英寸

#include<stdio.h>
int main()
{
    int n;
    int foot;
    int inch;
    scanf("%d",&n);
    foot = n/30.48;
    inch =12*(n/30.48-foot);
    printf("%d %d",foot,inch);
    return 0;
} 

7-2 然后是几点

在这里插入图片描述

#include <stdio.h> 
int main(){
    int t,m;
    scanf ("%d %d",&t,&m);
    int m2=t%100+t/100*60;
    int m3=m+m2;
    int t2=m3/60;
    int t3=m3%60;
    printf ("%d%02d",t2,t3);
    return 0;
}

7-3 逆序的三位数

在这里插入图片描述

#include<stdio.h>
int main()
{
//输入
    int n,i=0,j=0;
    scanf("%d",&n);
    int arr[3];
//把每一位存放到数组里
    while(n)
    {
        arr[i++]=n%10;
        n/=10;
    }
//考虑特殊情况
    for(i=0;i<3;i++)
    {
        if(i==0&&arr[i]==0)
        {
            continue;
        }
        if(i==1&&arr[i-1]==0&&arr[i]==0)
        {
            continue;
        }
        else printf("%d",arr[i]);
    }
    return 0;
}

7-4 BCD解密

在这里插入图片描述

#include<stdio.h>
int main()
{
    int n,a,b;
    scanf("%d",&n);
    a=n/16;
    b=n%16;
    printf("%d",a*10+b);
    return 0;
}

7-5 表格输出

在这里插入图片描述

7-6 混合类型数据格式化输入

在这里插入图片描述

#include<stdio.h>
int main()
{
    double a,b;
    int c;
    char d;
    scanf("%lf %d %c %lf",&a,&c,&d,&b);
    printf("%c %d %.2lf %.2lf",d,c,a,b);
    
    return 0;
}

7-7 12-24小时制

在这里插入图片描述

#include<stdio.h>
int main()
{
    int n,m;
    char ch;
    scanf("%d%c%d",&n,&ch,&m);
    if(n<12)
    {
        printf("%d%c%d AM",n,ch,m);
    }
    else if(n==12)
    {
        printf("%d%c%d PM",n,ch,m);
    }
    else if(n>12)
    {
        printf("%d%c%d PM",n-12,ch,m);
    }
    return 0;
}

7-8 超速判断

在这里插入图片描述

#include "stdio.h"
void check()
{
    int n;
    scanf("%d",&n);
    if(n<=60)
        printf("Speed: %d - OK\n",n);
    else
        printf("Speed: %d - Speeding\n",n);
}
int main()
{
    check();
    return 0;
}

7-9 用天平找小球

在这里插入图片描述

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

7-10 计算工资

在这里插入图片描述

#include <stdio.h>
int main()
{ 
    float year,time,pay;
    scanf("%f %f",&year,&time);
    if(5<=year)
    {
        if(40<time) pay=50*40+(time-40)*50*1.5;
        else pay=50*time;
    }
    else
    {
        if(40<time) pay=30*40+(time-40)*30*1.5;
        else pay=30*time;
    }
    printf("%.2f",pay);
}

7-11 分段计算居民水费

在这里插入图片描述

#include<stdio.h>
int main()
{
	float x,y;
	scanf("%f",&x);
	if(x<=15)
    {
		y=4*x/3;
	}
	else
    {
		y=2.5*x-17.5;
	} 
	printf("%.2f",y);
	return 0;
}

7-12 两个数的简单计算器

在这里插入图片描述

#include <stdio.h>
 
int main(){
	int x1,x2;
	char s;
	scanf("%d %c %d",&x1,&s,&x2);
	switch (s){
		case '+':
		    printf("%d",x1+x2);
			break;
		case '-':
			printf("%d",x1-x2);
			break;
		case '*':
			printf("%d",x1*x2);
			break;
		case '%':
			printf("%d",x1%x2);
			break;
		case '/':
			printf("%d",x1/x2);
			break;
		default: 
		    printf("ERROR");
	}
	return 0;
}

这里为啥不写了,因为现在已经快12点了,咱明天继续冲哈,明天更完PTA基础编程题目集

💬我给你挑俩难题,做完就让你嘿嘿嘿~

7-32 说反话-加强版

在这里插入图片描述

#include<stdio.h>
#include<string.h>
int main()
{
    //输入
    char arr[500001];
    gets(arr);
    //思考方法:进行一个计数法来打印空格
    int i=0,cnt=0;
    for(i=strlen(arr)-1;i>=0;i--)
    {
        遇到空格,也就是空出来的,但是没有连续的空格
        if(arr[i]==' ' && cnt>0)
        {
            printf("%s",&arr[i+1]);
            if(arr[0] != ' ')
            {
                printf(" ");
            }
            arr[i]='\0';
            cnt=0;
        }
        //只有空格的状态(连续空格)
        else if(arr[i]==' ')
        {
            arr[i]='\0';
        }
        //没有空格且没有结束
        else if(arr[i]!=' '&&arr[i]!='\0')
        {
            cnt++;
        }
    }
    printf("%s\n",&arr[0]);
    return 0;
}

7-24 约分最简分式

在这里插入图片描述

#include<stdio.h>
int gcd(int a,int b)  //计算最大公约数---辗转相除法
{
    int t;
    while(b > 0)
    {
        t = a % b;
        a = b;
        b = t;
    }
    return a;
}

int main()
{
    int a,b;
    char c;
    scanf("%d%c%d",&a,&c,&b);
    int d=gcd(a,b); 
    a=a/d;
    b=b/d;
    printf("%d%c%d\n",a,c,b);
    
    return 0;
}
//递归实现
int gcd(int a,int b)//递归法--->辗转相除法
{
    if (b==0)
        return a;
    int r = a%b;
    return gcd(b,r);
}
//普通实现
int gcd(int a,int b)  //计算最大公约数---辗转相除法
{
    int t;
    while(b > 0)
    {
        t = a % b;
        a = b;
        b = t;
    }
    return a;
}
//逗号表达式法emmmm博主见过但是emmm我忘了~

如果大家这俩题不会那~
在这里插入图片描述
but 如果会的话
在这里插入图片描述
那咱进入下一个刷题学习吧hhh~
今日看到我的博客那我分享一句鹏哥得语录吧,最近也是非常喜欢下课记录语录来学习:任何人为什么到后期会学的快呢?是因为掌握了方法,触类旁通了,学会一个东西之后,那再学习其他的类似的就会变得快了,不妨碍每一个同学都可以听懂,一定坚持,一定要自信起来,不要着急,日复一日,日复一日得去练。消化理解慢慢来!

我是夏目浅石,欢迎和我一起学习进步,刷题无数!

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

夏目浅石.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值