码蹄集网站地址:https://www.matiji.net/exam/ojquestionlist
目录
MT1021 %f格式符
(1)题目
输入一个实数,第一次按实型输出;第二次保留2位小数输出;第三次保留3位小数但最小列宽8列输出,空格分隔。
格式
输入格式: 输入实型 输出格式: 输出实型,空格分隔。
样例1
输入: 31331.14345435 输出: 31331.143454 31331.14 31331.143
(2)参考代码
#include<stdio.h> int main() { double x; scanf("%lf", &x); printf("%lf %.2lf %8.3lf", x, x, x); return 0; }
MT1022 小数、指数
(1)题目
输出3.1415926、12345678.123456789的小数、指数形式。
格式
输入格式: 无 输出格式: 输出为实型,空格分隔
样例1
输入: 无 输出: 3.141593 3.141593e+000 12345678.123457 1.234568e+007
(2)参考代码
#include<stdio.h> int count(int x) { int count = 0; while (x / 10 != 0) { x = x / 10; count++; } return count; } int main() { double x1 = 3.1415926; double x2 = 12345678.123456789; double x3 = x2; while ((int)x3 != 1) { x3 = x3 / 10; } printf("%lf %.6lfe+%0*d\n", x1, x1, 3, count(x1)); printf("%lf %.6lfe+%0*d\n", x2, x3, 3, count(x2)); return 0; }
MT1023 进制乱炖
(1)题目
输入一个正整数,输出它的十进制形式、八进制形式、十六进制形式(小写)、无符号的十进制形式,空格分隔。
格式
输入格式: 输入整型,空格分隔。 输出格式: 输出整型,空格分隔。
样例1
输入格式: 33 输出格式: 33 41 21 33
(2)参考代码
#include<stdio.h> int main() { int x; scanf("%d", &x); printf("%d %o %x %u", x, x, x, x); return 0; }
MT1024 进制形式
(1)题目
分别输出128、456789的十进制、八进制、十六进制(字母大写)数据形式。
格式
输入格式: 无 输出格式: 输出为整型,空格分隔。
样例1
输入格式: 无 输出格式: 128 200 80 456789 1574125 6F855
(2)参考代码
#include<stdio.h> int main() { printf("%d %o %X\n", 128, 128, 128); printf("%d %o %X", 456789, 456789, 456789); return 0; }
MT1025 八、十六进制
(1)题目
输出202、117、70、130的十进制、八进制、十六进制数据形式,结果为0ddddd或0Xddddd。
格式
输入格式: 无 输出格式: 输出为整型,空格分隔。每个数的输出占一行。
样例1
输入: 无 输出: 202 0312 0XCA 117 0165 0X75 70 0106 0X46 130 0202 0X82
(2)参考代码
#include<stdio.h> int main() { int x1 = 202, x2 = 117, x3 = 70, x4 = 130; printf("%d %#o %#X\n", x1, x1, x1); printf("%d %#o %#X\n", x2, x2, x2); printf("%d %#o %#X\n", x3, x3, x3); printf("%d %#o %#X\n", x4, x4, x4); return 0; }
MT1026 合并
(1)题目
已知a、b、c是一个十进制数的百位、十位、个位,求这个十进制数。
格式
输入格式: 输入为正整型a、b、c,空格分隔 输出格式: 输出为整型
样例1
输入: 1 3 4 输出: 134
备注
注意这里所有整数的范围应该使用32位整数存储(如在c/c++下应使用int)。
(2)参考代码
#include<stdio.h> int main() { int a, b, c; scanf("%d %d %d", &a, &b, &c); printf("%d\n", 100*a+10*b+c); return 0; }
MT1027 整数逆序
(1)题目
编写一个程序,要求输入一个两位数的数字,然后逆序输出数字。不考虑不合理的输入或是溢出等特殊情况。
格式
输入格式: 输入正整数 输出格式: 输出为逆序后的字符串
样例1
输入: 28 输出: 82
(2)参考代码
#include<stdio.h> int main() { int num, a, b; scanf("%d", &num); a = num / 10; b = num % 10; printf("%d%d", b, a); return 0; }
MT1028 四位数逆序
(1)题目
将一个四位数正整数(如1278)逆序(如8721)输出。不考虑负数等特殊情况。
格式
输入格式: 输入为整型 输出格式: 输出为逆序后的字符串
样例1
输入格式: 1234 输出格式: 4321
(2)参考代码
#include<stdio.h> int main() { int x, a, b, c, d; scanf("%d", &x); a = x % 10; b = x % 100 / 10; c = x / 100 % 10; d = x / 1000; printf("%d%d%d%d", a, b, c, d); return 0; }
MT1029 位数
(1)题目
编写一个程序,计算一个数字包含多少位数。您可以假定该数字不超过四位数。本题不考虑负数或者其他特殊情况。
格式
输入格式: 输入为整型 输出格式: 输出为整型
样例1
输入格式: 87 输出格式: 2
(2)参考代码
#include<stdio.h> int main() { int x, count = 1; scanf("%d", &x); for (int i=0;i<4;i++) { if (x / 10 != 0) { x /= 10; count++; } } printf("%d", count); return 0; }