码蹄集网站地址:https://www.matiji.net/exam/ojquestionlist
目录
MT1101 带参数的宏II
(1)题目
请编写一个简单程序,把f(x)=x*(x-1)定义成带参数的宏,从键盘输入a,b,将a+b的和作为宏实参计算并输出结果。
格式
输入格式: 输入整型,空格分隔。 输出格式: 输出为实型
样例1
输入: 3 5 输出: 56.000000
(2)参考代码
#include<stdio.h> #define f(x) ((x)*((x)-1)) int main() { int a, b; scanf("%d %d", &a, &b); printf("%lf\n", (double)f(a+b)); return 0; }
MT1102 长方体
(1)题目
将长方体体积计算公式定义为宏。在主函数中输入长方体长、宽、高求体积。不考虑不合理的输入或是溢出等特殊情况。
格式
输入格式: 输入为实型(正数),空格分隔。 输出格式: 输出为实型
样例1
输入: 3 4 5 输出: 60.000000
(2)参考代码
#include<stdio.h> #define VOLUME(x, y, z) ((x)*(y)*(z)) int main() { double x, y, z; scanf("%lf %lf %lf", &x, &y, &z); printf("%lf\n", VOLUME(x, y, z)); return 0; }
MT1103 球体积
(1)题目
将球体积计算公式定义为宏。在主函数中输入半径求体积。
格式
输入格式: 输入为实型 输出格式: 输出为实型
样例1
输入: 3.5 输出: 179.594228
(2)参考代码
#include<stdio.h> #define PI 3.14159 #define VOLUME(r) (4.0/3.0*PI*(r)*(r)*(r)) int main() { double r; scanf("%lf", &r); printf("%lf\n", VOLUME(r)); return 0; }
MT1104 三角形
(1)题目
格式
输入格式: 输入为实型 输出格式: 输出为实型
样例1
输入格式: 3 4 5 输出格式: 6.000000
(2)参考代码
#include<stdio.h> #include <math.h> #define Area(a, b ,c, s) (sqrt((s)*((s)-(a))*((s)-(b))*((s)-(c)))) int main() { double a, b, c, s; scanf("%lf %lf %lf", &a, &b, &c); s = (a + b + c) / 2; if (a+b>c && a+c>b && b+c>a) { printf("%lf", Area(a, b, c, s)); } else { printf("%d", -1); } return 0; }
MT1105 英寸英尺英里
(1)题目
定义关于长度的宏,英寸/厘米、英尺/米、英里/公里,计算英制与公制单位转换,在主函数中输入数据输出计算结果。假定1英寸=2.54厘米、1英尺=0.31米、1英里=1.61公里。
格式
输入格式: 输入英寸、英尺、英里为实型,空格分隔。 输出格式: 输出厘米、米、公里为实型,空格分隔。保留2位小数。
样例1
输入: 1 1 1 输出: 2.54 0.31 1.61
(2)参考代码
#include<stdio.h> #define INCH_cm(x) ((x) * 2.54) #define FEET_m(x) ((x) * 0.31) #define MILE_km(x) ((x) * 1.61) int main() { double a, b, c; scanf("%lf %lf %lf", &a, &b, &c); printf("%.2lf %.2lf %.2lf\n", INCH_cm(a), FEET_m(b), MILE_km(c)); return 0; }
MT1106 盎司磅
(1)题目
定义关于重量的宏,盎司/克、磅/公斤,计算美制单位与公制转换,在主函数中输入数据输出计算结果。
格式
输入格式: 输入盎司、磅为实型,空格分隔 输出格式: 输出克、公斤实型,空格分隔。保留2位小数。
样例1
输入格式: 1 1 输出格式: 28.35 0.45
(2)参考代码
#include<stdio.h> #define oz_g(oz) ((oz)*28.35) #define lb_kg(lb) ((lb)*0.45) int main() { double oz, lb; scanf("%lf %lf", &oz, &lb); printf("%.2lf %.2lf", oz_g(oz), lb_kg(lb)); return 0; }
MT1107 加仑/升
(1)题目
定义关于容量的宏,加仑/升,计算单位转换,在主函数中输入数据输出计算结果。
格式
输入格式: 输入加仑为实型。 输出格式: 输出升为实型,保留2位小数。
样例1
输入: 1 输出: 3.79
(2)参考代码
#include<stdio.h> #define GALLON_LITRE(x) ((x) * 3.79) int main() { double x; scanf("%lf", &x); printf("%.2lf\n", GALLON_LITRE(x)); return 0; }
MT1108 保留小数
(1)题目
将一个浮点型K数保留n(1≤n≤5)位小数(四舍五入)的算法定义为宏。在主函数中输入数据输出计算结果。
格式
输入格式: 输入k为实型,n为整数,空格分隔。 输出格式: 输出为实型
样例1
输入: 3.1415926 3 输出: 3.142
(2)参考代码
#include<stdio.h> #define ROUND_UP(k, n) printf("%.*lf", (n), (k)) int main() { double k; int n; scanf("%lf %d", &k, &n); ROUND_UP(k, n); return 0; }