我从简单到难,一起走上漫漫刷题路!
我会持续在我的博客中更新我每天刷题的内容!
相互交流!
大家一键三连,多多关注!
这是今天我给大家带来的题!以后难度逐渐加深!
1.判断是不是字母
描述
KiKi想判断输入的字符是不是字母,请帮他编程实现。
输入描述:
多组输入,每一行输入一个字符。
输出描述:
针对每组输入,输出单独占一行,判断输入字符是否为字母,输出内容详见输出样例。
#include <stdio.h> #include <ctype.h> int main() { char s; while (scanf("%c\n", &s) != EOF) { if (isalpha(s)) { printf("%c is an alphabet.\n", s); }else { printf("%c is not an alphabet.\n", s); } } return 0; }
2.字母大小写转换
描述
KiKi想完成字母大小写转换,有一个字符,判断它是否为大写字母,如果是,将它转换成小写字母;反之则转换为大写字母。
输入描述:
多组输入,每一行输入一个字母。
输出描述:
针对每组输入,输出单独占一行,输出字母的对应形式。
#include<stdio.h> int main(void) { char ch; while ((ch = getchar()) != EOF) { if (ch >= 'A' && ch <= 'Z') ch = ch + 32; else if (ch >= 'a' && ch <= 'z') ch = ch - 32; else continue; printf("%c\n", ch); } return 0; }
3.判断两个数的大小关系
描述
KiKi想知道从键盘输入的两个数的大小关系,请编程实现。
输入描述:
题目有多组输入数据,每一行输入两个整数(范围-231~231-1),用空格分隔。
输出描述:
针对每行输入,输出两个整数及其大小关系,数字和关系运算符之间没有空格,详见输入输出样例。
#include <stdio.h> int main() { int a,b; while(scanf("%d%d",&a,&b)!=EOF) { if(a<b) printf("%d<%d",a,b); if(a==b) printf("%d=%d",a,b); if(a>b) printf("%d>%d",a,b); printf("\n"); } return 0; }
4.计算单位阶跃函数
描述
KiKi最近学习了信号与系统课程,这门课里有一个非常有趣的函数,单位阶跃函数,其中一种定义方式为:
现在试求单位冲激函数在时域t上的值。
输入描述:
题目有多组输入数据,每一行输入一个t(-1000
输出描述:
输出函数的值并换行。
#include <stdio.h> int main() { int t,n; while(scanf("%d",&t)!=EOF) { if(t>0) printf("1\n"); else if(t<0) printf("0\n"); else printf("0.5\n"); } return 0; }
5.衡量人体胖瘦程度
描述
在计算BMI(BodyMassIndex ,身体质量指数)的案例基础上,判断人体胖瘦程度。BMI中国标准如下表所示。
输入描述:
多组输入,每一行包括两个整数,用空格隔开,分别为体重(公斤)和身高(厘米)。
输出描述:
针对每行输入,输出为一行,人体胖瘦程度,即分类。
#include <stdio.h> int main() { int w,h; float BMI; while(scanf("%d%d",&w,&h)!=EOF) { BMI=w/pow(h/100.0,2); if(BMI<18.5) printf("Underweight\n"); else if(BMI>=18.5&&BMI<=23.9) printf("Normal\n"); else if(BMI>23.9&&BMI<=27.9) printf("Overweight\n"); else printf("Obese\n"); } return 0; }
6.计算一元二次方程
描述
从键盘输入a, b, c的值,编程计算并输出一元二次方程ax2 + bx + c = 0的根,当a = 0时,输出“Not quadratic equation”,当a ≠ 0时,根据△ = b2 - 4*a*c的三种情况计算并输出方程的根。
输入描述:
多组输入,一行,包含三个浮点数a, b, c,以一个空格分隔,表示一元二次方程ax2 + bx + c = 0的系数。
输出描述:
针对每组输入,输出一行,输出一元二次方程ax2 + bx +c = 0的根的情况。
如果a = 0,输出“Not quadratic equation”;
如果a ≠ 0,分三种情况:
△ = 0,则两个实根相等,输出形式为:x1=x2=...。
△ > 0,则两个实根不等,输出形式为:x1=...;x2=...,其中x1 <= x2。
△ < 0,则有两个虚根,则输出:x1=实部-虚部i;x2=实部+虚部i,即x1的虚部系数小于等于x2的虚部系数,实部为0时不可省略。实部= -b / (2*a),虚部= sqrt(-△ ) / (2*a)
所有实数部分要求精确到小数点后2位,数字、符号之间没有空格。
#include <math.h> #include <stdio.h> int main() { double a, b, c, delta, real,imaginary; while (scanf("%lf %lf %lf", &a, &b, &c) != EOF) { delta = b * b - 4 * a * c; if (!a) { printf("Not quadratic equation\n"); } else { real = - (b / (2 * a)); if(real == 0){ real = 0; } if(delta < 0){ imaginary = sqrt(-delta) / (2 * a); } else { imaginary = sqrt(delta) / (2 * a); } if (delta == 0) { printf("x1=x2=%.2f\n",real); } else if (delta > 0) { printf("x1=%.2f;x2=%.2f\n",real - imaginary, real + imaginary); } else { printf("x1=%.2f-%.2fi;x2=%.2f+%.2fi\n",real, imaginary, real, imaginary); } } } return 0; }
7.获得月份天数
描述
KiKi想获得某年某月有多少天,请帮他编程实现。输入年份和月份,计算这一年这个月有多少天。
输入描述:
多组输入,一行有两个整数,分别表示年份和月份,用空格分隔。
输出描述:
针对每组输入,输出为一行,一个整数,表示这一年这个月有多少天。
#include <stdio.h> int main() { int a, b; while (scanf("%d %d", &a, &b) != EOF) { switch (b) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: printf("%d\n", 31); break; case 4: case 6: case 9: case 11: printf("%d\n", 30); break; case 2: if (a % 4 == 0 && a % 100 != 0 || a % 400 == 0) { printf("%d\n", 29); } else { printf("%d\n", 28); } break; } } return 0; }
8.简单计算器
描述
KiKi实现一个简单计算器,实现两个数的“加减乘除”运算,用户从键盘输入算式“操作数1运算符操作数2”,计算并输出表达式的值,如果输入的运算符号不包括在(+、-、*、/)范围内,输出“Invalid operation!”。当运算符为除法运算,即“/”时。如果操作数2等于0.0,则输出“Wrong!Division by zero!”
数据范围:字符串长度满足 3≤n≤50 ,保证运算符是一个char类型字符。
输入描述:
输入一行字符串,操作数1+运算符+操作数2 (其中合法的运算符包括:+、-、*、/)。
输出描述:
输出为一行。
如果操作数和运算符号均合法,则输出一个表达式,操作数1运算符操作数2=运算结果,各数小数点后均保留4位,数和符号之间没有空格。
如果输入的运算符号不包括在(+、-、*、/)范围内,输出“Invalid operation!”。当运算符为除法运算,即“/”时。
如果操作数2等于0.0,则输出“Wrong!Division by zero!”。
#include <stdio.h> int main() { double a = 0.0; double b = 0.0; double c = 0.0; char oper = 0; int flag = 1; scanf("%lf%c%lf", &a, &oper, &b); switch (oper) { case '+': c = a + b; break; case '-': c = a - b; break; case '*': c = a * b; break; case '/': if (b == 0.0) { printf("Wrong!Division by zero!\n"); flag = 0; } else c = a / b; break; default: printf("Invalid operation!\n"); flag = 0; break; } if (flag ==1) printf("%.4lf%c%.4lf=%.4lf\n", a, oper, b, c); return 0; }
9.线段图案
描述
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的线段图案。
输入描述:
多组输入,一个整数(1~100),表示线段长度,即“*”的数量。
输出描述:
针对每行输入,输出占一行,用“*”组成的对应长度的线段。
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int main() { int n, i; while (scanf("%d", &n) != EOF) { for(i = 0; i < n; i++) printf("*"); printf("\n"); } return 0; }