题目一
这道超级简单的题目没有任何输入。
你只需要把这句很重要的话 —— “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;
}