一、输入一个人的出生日期(包括年月日),将该生日中的年、月、日分别输出。
数据范围:年份满足 1990 \le y \le 2015 \1990≤y≤2015 ,月份满足 1 \le m \le 12 \1≤m≤12 ,日满足 1 \le d \le 30 \1≤d≤30
输入描述:
输入只有一行,出生日期,包括年月日,年月日之间的数字没有分隔符。
输出描述:
三行,第一行为出生年份,第二行为出生月份,第三行为出生日期。输出时如果月份或天数为1位数,需要在1位数前面补0。
int main()
{
int yy, mm, dd;
scanf("%4d%2d%2d", &yy, &mm, &dd);
printf("year=%04d\nmonth=%02d\ndate=%02d", yy, mm, dd);
return 0;
}
二、
实现字母的大小写转换。多组输入输出。
输入描述:
多组输入,每一行输入大写字母。
输出描述:
针对每组输入输出对应的小写字母。
#include <stdio.h>
int main() {
char A = 0;
//EOF意为-1。本语句即只要输入项是字符即可打印
while ((A = getchar()) != EOF) {
//因为回车也算一个字符,所以在输入第一个字符换行后,getchar会读取换行的回车键
//换行的回车被读取,若防止回车被读取,可在其前面多读取一次消耗回车
getchar();
if (A >= 'A' && A <= 'Z') {
putchar(A + 32);
printf("\n");
}
else {
putchar(A - 32);
printf("\n");
}
}
}
三、
BoBo写了一个十六进制整数ABCDEF,他问KiKi对应的十进制整数是多少。
int main()
{
int a = 0xABCDEF;
printf("%15d\n", a);
return 0;
}
四、十进制整数1234对应的八进制和十六进制(字母大写),用空格分开,并且要求,在八进制前显示前导0,在十六进制数前显示前导0X。
实际上就是加上个#,然后就显示前缀,还有16进制的那个大写,就是把x大写就完事了
int main()
{
int a = 1234;
printf("%#o %#X",a ,a);
return 0;
}
五、
输入描述:
读入一个字符,一个整数,一个单精度浮点数用换行符隔开,
输出描述:
按顺序输出字符、整数、单精度浮点数,用空格分隔,浮点数保留 6 位小数
int main()
{
char a = 0;
int b;
float c;
scanf("%c", &a);
getchar();
scanf("%d", &b);
getchar();
scanf("%f", &c);
printf("%c %d %.6f\n", a, b, c);
return 0;
}
六、
输入描述:
输入三个整数,用空格隔开。
输出描述:
输出 3 个整数以第二三个数字占 8 个空格靠右对齐输出
int main()
{
int a, b, c;
scanf("%d %d %d",&a, &b, &c);
printf("%-8d%-8d%-8d", a, b, c);
return 0;
}
七、
输入描述:
一行,一个十六进制数a,和一个八进制数b,中间间隔一个空格。
输出描述:
一行,a+b的十进制结果。
int main()
{
int a, b;
scanf("%x %o", &a, &b);
printf("%d\n", a+b);
return 0;
}
7.21