PTA 基础编程题目集(c/c++)

函数题

6-1 简单输出整数

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

编程题

7-1 厘米换算英尺英寸

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

7-2 然后是几点

#include<stdio.h>
int main()
{
    int a = 0, hour = 0, minute = 0, time = 0;
    scanf("%d %d", &a, &time);
    hour = a / 100;
    minute = a % 100;
    hour += (minute + time) / 60;
    minute = (minute + time) % 60;
    if (minute < 0)
    {
        hour--;
        minute += 60;
    }
    printf("%d%02d", hour, minute);
    return 0;
}

7-3 逆序的三位数

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

7-4 BCD解密

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

7-5 表格输出

#include<stdio.h>
int main()
{
    printf("------------------------------------\n");
    printf("Province      Area(km2)   Pop.(10K)\n");
    printf("------------------------------------\n");
    printf("Anhui         139600.00   6461.00\n");
    printf("Beijing        16410.54   1180.70\n");
    printf("Chongqing      82400.00   3144.23\n");
    printf("Shanghai        6340.50   1360.26\n");
    printf("Zhejiang      101800.00   4894.00\n");
    printf("------------------------------------");
    return 0;
}

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

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

7-7 12-24小时制

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

7-8 超速判断

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

7-9 用天平找小球

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

7-10 计算工资

#include <stdio.h>
int main()
{
    int a = 0, b = 0, c = 0; float d = 0;
    scanf("%d %d", &a, &b);
    if (a < 5)
        c = 30;
    else
        c = 50;
    if (b < 40)
        d = b * c;
    else
        d = 40 * c + (b - 40) * c * 1.5;
    printf("%.2f", d);
    return 0;
}

7-11 分段计算居民水费

#include <stdio.h>
int main()
{
    float a = 0.0, b = 0.0;
    scanf("%f", &a);
    if (a <= 15.0)
        b = 4.0 * a / 3.0;
    else
        b = 2.5 * a - 17.5;
    printf("%.2f", b);
    return 0;
}

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

#include <stdio.h>
int main()
{
    int a = 0, b = 0, c = 0; char d = 0;
    scanf("%d %c %d", &a, &d, &b);
    switch (d)
    {
    case'+':
        c = a + b; break;
    case'-':
        c = a - b; break;
    case'*':
        c = a * b; break;
    case'/':
        c = a / b; break;
    case'%':
        c = a % b; break;
    }
    if (d != '+' && d != '-' && d != '*' && d != '/' && d != '%')
        printf("ERROR");
    else
        printf("%d", c);
    return 0;
}

7-13 日K蜡烛图

#include<stdio.h>
int main()
{
    float open, high, low, close;
    scanf("%f %f %f %f", &open, &high, &low, &close);
    if (open > close)
        printf("BW-Solid");
    else
    {
        if (open < close)
            printf("R-Hollow");
        else
            printf("R-Cross");
    }
    if (low<open && low<close && high>open && high>close)
        printf(" with Lower Shadow and Upper Shadow");
    else
    {
        if (low < open && low < close)
            printf(" with Lower Shadow");
        else
        {
            if (high > open && high > close)
                printf(" with Upper Shadow");
        }
    }
    return 0;
}

7-14 求整数段和

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

7-15 计算圆周率

#include <stdio.h>
int main() 
{
    float hold, i = 1, sum = 1, element = 1, numerator = 1;
    scanf("%f", &hold);
    for (i = 1; element / numerator  >= hold; i++) 
    {
        element = element * i;
        numerator = numerator * (2 * i + 1);
        sum = sum + element / numerator ;
    }
    printf("%f", sum * 2);
    return 0;
}

7-16 求符合给定条件的整数集

#include <stdio.h>
int main()
{
    int A = 0, B = 0, a = 0, b = 0, c = 0, sum = 0, i = 0;
    scanf("%d", &A);
    B = A + 4;
    for (a = A; a < B; a++)
    {
        for (b = A; b < B; b++)
        {
            for (c = A; c < B; c++)
            {
                if (a != b && b != c && a != c)
                {
                    sum = a * 100 + b * 10 + c;
                    printf("%d", sum);
                    i++;
                    if (i == 6)
                    {
                        printf("\n");
                        i = 0;
                    }
                    else
                        printf(" ");
                }
            }
        }
    }
    return 0;
}

7-17 爬动的蠕虫

#include <stdio.h>
int main()
{
    int n = 0, u = 0, d = 0, time = 0;
    scanf("%d %d %d", &n, &u, &d);
    for (; n > 0; n += d,time++)
    {
        n -= u;
        time++;
        if (n <= 0)
            break;
    }
    printf("%d", time);
    return 0;
}

7-18 二分法求多项式单根

#include <stdio.h>
#include <math.h>
float a3 = 0, a2 = 0, a1 = 0, a0 = 0;
float f(float x)
{
	float y = 0;
	y = a3 * x * x * x + a2 * x * x + a1 * x + a0;
	return y;
}
int main()
{
	float a = 0, b = 0, flag = 0;
	int i = 0, j = 0;
	scanf("%f %f %f %f", &a3, &a2, &a1, &a0);
	scanf("%f %f", &a, &b);
	while (fabs(a - b) >= 0.0001)
	{
		flag = f((a + b) / 2);
		if (flag == 0)
			break;
		else if (flag * f(a) > 0)
			a = (a + b) / 2;
		else if (flag * f(b) > 0)
			b = (a + b) / 2;
	}
	printf("%.2f", (a + b) / 2);
	return 0;
}

7-19 支票面额

#include <stdio.h>
int main ()
{
    int n;
    scanf("%d", &n);
    int y,f;
    int flag=0;
    for(y=0;y<100;y++)
    {
        for(f=y;f<100;f++)
        {
            if(n+199*y==98*f)
            {
                flag=1;
                break;
            }
        }
        if(flag==1)
            break;
    }
    if(y==100)
    {
        printf("No Solution");
    }
    else
    {
        printf("%d.%d",y,f);
    }
    return 0;
}

7-20 打印九九口诀表

#include <stdio.h>
int main()
{
	int N = 0, a = 1, b = 1;
	scanf("%d", &N);
	for (; a <= N && b <= N ;a++)
	{
		printf("%d*%d=%-4d", a, b, a * b);
		if (a == b)
		{
			b++;
			a = 0;
			printf("\n");
		}
	}
}

7-21 求特殊方程的正整数解

#include <stdio.h>
#include <math.h>
int main()
{
	int n = 0, x = 0, y = 0, i = 0;
	scanf("%d", &n);
	for (x = 1; x <= 10000; x++)
	{
		for (y = 1; y <= 10000; y++)
		{
			if (x * x + y * y == n && x <=y )
			{
				printf("%d %d\n", x, y);
				i++;
			}
		}
	}
	if (i == 0)
		printf("No Solution\n");
}

7-22 龟兔赛跑

#include <stdio.h>
int main()
{
	int T = 0, time = 0, turtle = 0, rabbit = 0, rest = 0;
	scanf("%d", &T);
	for (; time < T; time++)
	{
		turtle += 3;
		if (time % 10 == 0 && rest == 0 && rabbit > turtle)
			rest = 30;
		if (rest == 0)
			rabbit += 9;
		else
			rest--;
	}
	if (turtle > rabbit)
		printf("@_@ %d", turtle);
	else
	{
		if (turtle < rabbit)
			printf("^_^ %d", rabbit);
		else
			printf("-_- %d", rabbit);
	}
	return 0;
}

7-23 币值转换

#include <stdio.h>
int main()
{
	int n = 0, i = 0;
	int arr[10] = { 0 };
	scanf("%d", &n);
	if (n == 0)
		printf("a");
	while (n > 0)
	{
		arr[i++] = n % 10;
		n /= 10;
	}
	for (i--; i >= 0; i--)
	{
		if (arr[i])
		{
			switch (i % 4)
			{
				case 3: printf("%cQ", arr[i] + 'a'); break;
				case 2: printf("%cB", arr[i] + 'a'); break;
				case 1: printf("%cS", arr[i] + 'a'); break;
				case 0: printf("%c", arr[i] + 'a'); break;
			}
		}
		else if (arr[i] == 0 && arr[i - 1] != 0 && i > 0)
			printf("%c", arr[i] + 'a');
		if (i == 8) 
			printf("Y");
		else if (i == 4 && (arr[4] + arr[5] + arr[6] + arr[7]) > 0) 
			printf("W");
	}
	return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值