BC18-计算带余除法
描述
给定两个整数a和b (0 < a,b < 10,000),计算a除以b的整数商和余数。
输入描述:
一行,包括两个整数a和b,依次为被除数和除数(不为零),中间用空格隔开。
输出描述:
一行,包含两个整数,依次为整数商和余数,中间用一个空格隔开。
#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
printf("%d %d", a / b, a % b);
return 0;
}
BC13-ASCII码
描述
BoBo教KiKi字符常量或字符变量表示的字符在内存中以ASCII码形式存储。BoBo出了一个问题给KiKi,转换以下ASCII码为对应字符并输出他们。
73, 32, 99, 97, 110, 32, 100, 111, 32, 105, 116 , 33
输入描述:
无
输出描述:
一行输出转换题目中给出的所有ASCII码对应的字符,无需以空格隔开。
#include <stdio.h>
int main()
{
int arr[] = { 73, 32, 99, 97, 110, 32, 100, 111, 32, 105, 116 , 33 };
int sz = sizeof(arr) / sizeof(arr[0]);
int i = 0;
for (i = 0; i < sz; i++)
{
printf("%c", arr[i]);
}
return 0;
}
BC14-出生日期输入输出
描述
输入一个人的出生日期(包括年月日),将该生日中的年、月、日分别输出。
数据范围:年份满足 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。
#include <stdio.h>
int main()
{
int year = 0;
int month = 0;
int day = 0;;
scanf("%4d%2d%2d", &year, &month, &day);
printf("year=%4d\nmonth=%02d\ndate=%02d\n", year, month, day);
return 0;
}
坑点:
通过scanf函数的%m格式控制可以指定输入域宽,输入数据域宽(列数),按此宽度截取所需数据;通过printf函数的%0格式控制符,输出数值时指定左面不使用的空位置自动填0。
BC11-学生基本信息输入输出
描述
依次输入一个学生的学号,以及3科(C语言,数学,英语)成绩,在屏幕上输出该学生的学号,3科成绩(注:输出成绩时需进行四舍五入且保留2位小数)。
数据范围:学号满足 1 \le n \le 20000000 \1≤n≤20000000 ,各科成绩使用百分制,且不可能出现负数
输入描述:
学号以及3科成绩,学号和成绩之间用英文分号隔开,成绩之间用英文逗号隔开。
输出描述:
学号,3科成绩,输出格式详见输出样例。
#include <stdio.h>
int main()
{
int num = 0;
float c = 0;
float math = 0;
float english = 0;
scanf("%d;%f,%f,%f", &num, &c, &math, &english);
printf("The each subject score of No. %d is %.2f, %.2f, %.2f.", num, c, math, english);
return 0;
}
坑点:float和double获取数据可能存在差异 ,要都尝试一下
BC9-printf函数的返回值
描述
KiKi写了一个输出“Hello world!”的程序,BoBo老师告诉他printf函数有返回值,你能帮他写个程序输出printf(“Hello world!”)的返回值吗?
输入描述:
无
输出描述:
包括两行:
第一行为“Hello world!”
第二行为printf(“Hello world!”)调用后的返回值。
#include <stdio.h>
int main()
{
int n = printf("Hello world!");
printf("\n%d\n", n);
return 0;
}
坑点:1.printf的返回值是打印的数值个数(int)
2.\n换行符也占printf返回值中的个数计算