【PTA】【C语言(一)】

题目一

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

分析
1.printf输出函数;
2.字符串的打印

方法一(暴力法)

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

方法二(循环法)

#include <stdio.h>

int main()
{
	int i = 1;
	for(i;i<4;i++)
	{
		printf("I'm gonna WIN!\n");
	}
	return 0;
}

题目二

这道超级简单的题目没有任何输入。
你只需要把这句很重要的话 —— I Love GPLT ——竖着输出就可以了。
所谓“竖着输出”,是指每个字符占一行(包括空格),即每行只能有1个字符和回车。

方法一(暴力法)

#include<stdio.h> 
int main(){ 
    printf("I\n \n"); 
    printf("L\no\nv\ne\n \n"); 
    printf("G\nP\nL\nT\n"); 
    return 0; 
}
I
 
L
o
v
e
 
G
P
L
T

题目三

按照下列格式输出带框文字


Welcome


#include <stdio.h>

int main()
{
	printf("************\n");
	printf("  Welcome\n");
	printf("************\n");
	
	return 0;
}
************
  Welcome
************

题目四

厘米换算英尺英寸(减法、除法和乘法)
如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸

输入格式:
输入在一行中给出1个正整数,单位是厘米。
输出格式:
在一行中输出这个厘米数对应英制长度的英尺和英寸的整数值,中间用空格分开。
输入样例:
170
输出样例:
5 6

#include<stdio.h>
int main()
{
 int cm=170;
 scanf("%d",&cm);
 int foot=cm/30.48;//1英尺=30.48厘米
 int inch=((cm/30.48)-foot)*12;
 printf("%d %d",foot,inch);
 return 0;
}
5 6

题目五

据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。已知市斤的数值是公斤数值的两倍。现给定某人身高,请你计算其标准体重应该是多少?(顺便也悄悄给自己算一下吧……)(减法、乘法和保留小数)

输入格式:
输入第一行给出一个正整数H(100 < H ≤ 300),为某人身高。
输出格式:
在一行中输出对应的标准体重,单位为市斤,保留小数点后1位。在一行中输出对应的标准体重,单位为市斤,保留小数点后1位。
输入样例:
169
输出样例:
124.2

#include <stdio.h>

int main(void)
{
	int H;
	double standard;
	
	scanf("%d", &H);
	standard = (H - 100)*0.9*2;
	printf("%.1f\n",standard);

	return 0;
}

题目六

世界上不同国家有不同的写日期的习惯。比如美国人习惯写成“月-日-年”,而中国人习惯写成“年-月-日”。下面请你写个程序,自动把读入的美国格式的日期改写成中国习惯的日期。(日期)

输入格式:
输入在一行中按照“mm-dd-yyyy”的格式给出月、日、年。题目保证给出的日期是1900年元旦至今合法的日期。
输出格式:
在一行中按照“yyyy-mm-dd”的格式给出年、月、日。
输入样例:
03-15-2017
输出样例:
2017-03-15

#include<stdio.h>

int main()
{
	int y,m,d;
	scanf("%d-%d-%d",&m,&d,&y);
	printf("%d-%02d-%02d",y,m,d);

	return 0;
}

题目七

有时候人们用四位数字表示一个时间,比如 1106 表示 11 点零 6 分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。
读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的零,例如 5 点 30 分表示为 530;0 点 30 分表示为 030。注意,第二个数字表示的分钟数可能超过 60,也可能是负数。

输入格式:
输入在一行中给出 2 个整数,分别是四位数字表示的起始时间、以及流逝的分钟数,其间以空格分隔。注意:在起始时间中,当小时为个位数时,没有前导的零,即 5 点 30 分表示为 530;0 点 30 分表示为 030。流逝的分钟数可能超过 60,也可能是负数。
输出格式:
输出四位数字表示的终止时间,当小时为个位数时,没有前导的零。题目保证起始时间和终止时间在同一天内。
输入样例:
1120 110
输出样例:
1310

#include <stdio.h>
int main (){
  
    int x,m,n;
    scanf("%d %d",&n,&m);
    x=60*(n/100)+n%100+m;
    if(x%60>=10)
    printf("%d%d",x/60,x%60);
    else
      printf("%d0%d",x/60,x%60);
    return 0;
    
}

题目八

BCD数是用一个字节来表达两位十进制的数,每四个比特表示一位。所以如果一个BCD数的十六进制是0x12,它表达的就是十进制的12。但是小明没学过BCD,把所有的BCD数都当作二进制数转换成十进制输出了。于是BCD的0x12被输出成了十进制的18了!
现在,你的程序要读入这个错误的十进制数,然后输出正确的十进制数。提示:你可以把18转换回0x12,然后再转换回12。

输入格式:
输入在一行中给出一个[0, 153]范围内的正整数,保证能转换回有效的BCD数,也就是说这个整数转换成十六进制时不会出现A-F的数字。
输出格式:
输出对应的十进制数。
输入样例:
18
输出样例:
12

#include<stdio.h>

int main()
{
    int a,c,i,f;
    i = 1;
    f = 0;
    scanf("%d\n",&a);
    while(a>0)
    {
        c = a % 16;
        a = a / 16;
        f = c * i + f;
        i = 10 * i;
    }
    printf("%d\n",f);
    return 0;
}

题目九

本题目要求计算下列分段函数f(x)的值:
在这里插入图片描述

输入格式:
输入在一行中给出实数x。
输出格式:
在一行中按“f(x) = result”的格式输出,其中x与result都保留一位小数。
输入样例1:
10
输出样例1:
f(10.0) = 0.1
输入样例2:
0
输出样例2:
f(0.0) = 0.0

#inculde<stdio.h>

int main(void)
{
	double x,y;
	scanf("%lf",&x);
	if(x==0)
	y=0;
	else
	y=1.0/x;
	printf("f(%.1f)=%.1f",x,y);

	return 0;
}

题目十

本题目要求计算下列分段函数f(x)的值:

在这里插入图片描述

注:可在头文件中包含math.h,并调用sqrt函数求平方根,调用pow函数求幂。

知识点补充:
C语言中 sqrt(); 函数的最全用法总结,最全!!!
C语言pow()函数:求x的y次方的值

#include<stdio.h>
#include<math.h>

int main()
{
	double x,y;
	scanf("%lf",&x);
	if(x>=0)
	y = pow(x,0.5);
	else
	y =pow(x+1,2)+2*x+1.0/x;	
	printf("f(%.2f)=%.2f",x,y);

	return 0;
}
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值