制作网站的主题,景安网站,国外优秀网站设计,如何创建一个平台型公司片头
嗨#xff01;小伙伴们#xff0c;今天我们将学习C蓝桥杯基础篇#xff08;二#xff09;#xff0c;继续练习相关习题#xff0c;准备好了吗#xff1f;咱们开始咯~ 第1题
简单计算器输入两个数#xff0c;以及一个运算符 #xff0c;-#xff0c;*#xff…片头
嗨小伙伴们今天我们将学习C蓝桥杯基础篇二继续练习相关习题准备好了吗咱们开始咯~ 第1题
简单计算器输入两个数以及一个运算符 -*/输出这两个数运算后的结果。当运算符是/,且除数是0时,输出Divided byzero!;当输入的字符不是 -* / 时输出Invalid operator!”
代码如下
//简易计算器
//输入2个数,以及一个运算符、-、*、/,输入这2个数运算后的结果
//当运算符是/且除数是0时,输出Divided by zero!,
//当输入的字符不是、-、*、/时,输出Invalid operator!int main() {int a, b;char c;cin a b c;if (c ) {cout a b endl;}else if (c -) {cout a - b endl;}else if (c *) {cout a * b endl;}else if (c /) {if (b 0) {cout Divided by zero! endl;}else cout a / b endl;}else {cout Invalid operator! endl;}return 0;
}
注意当执行除法运算时必须加上if-else条件判断如果不加else那么当除数为0时依然会执行 a/b编译器报错。 第2题
输入一个0~100之间的分数如果大于等于85,输出A如果大于等于70并且小于85,输出B如果大于等于60并且小于70,输出C如果小于60,输出D
代码如下
方法一
int main() {int score;cin score;if (score 85) {cout A endl;}else if (score 70 score 85) {cout B endl;}else if (score 60 score 70) {cout C endl;}else {cout D endl;}return 0;
}
我们可以将上面的代码完善一下可以将条件简化。
方法二
int main() {int score;cin score;if (score 85) {cout A endl;}else if (score 70) {cout B endl;}else if (score 60) {cout C endl;}else {cout D endl;}return 0;
} 第3题
判断闰年。闰年有两种情况:(1)能被 100 整除时必须能被 400 整除(2)不能被 100 整除时被4整除即可。输入一个年份如果是闰年输出yes否则输出 no。
代码如下
int main() {int year;cin year;if ((year % 400 0) || (year % 4 0 year % 100 ! 0)) {cout yes endl;}else {cout no endl;}return 0;
} 第4题 最大值
输入3个数,输出3个数中的最大值
思路我们可以使用if-else语句来实现先比较2个数再和第3个数进行比较
//输入3个数,输出3个数中的最大值
/*如果 a b,如果 a ca是最大值否则c是最大值否则如果 b cb是最大值否则c是最大值
*/int main() {int a, b, c;cin a b c;if (a b) {if (a c) {cout a endl;}else {//accout c endl;}}else {//abif (b c) {cout b endl;}else {//bccout c endl;}}return 0;
}
方法二我们直接进行比较得出最大值
int main() {int a, b, c;cin a b c;if (a b a c) {cout a endl;}else if (b a b c) {cout b endl;}else {cout c endl;}return 0;
} 第5题 倍数 代码如下
//倍数
//读取2个正整数值(A和B)
//如果其中1个是另一个的整数倍,则输出Sao Multiplos
//否则输出Nao sao Multiplosint main() {int A, B;cin A B;if ((A % B 0) || (B % A 0)) {cout Sao Multiplos endl;}else {cout Nao sao Multiplos endl;}return 0;
} 第6题 零食 代码如下
//零食
//某商店出售5种零食,零食编号1~5
//5种零食的价目表如下所示//零食种类 价格
//零食 1 R$ 4.00
//零食 2 R$ 4.50
//零食 3 R$ 5.00
//零食 4 R$ 2.00
//零食 5 R$ 1.50//现在给定某种零食的编号和数量,请你计算总价值
//输入包含2个整数x和y,其中x为零食编号,y为零食数量
//输出格式为Total:R$ X,其中,X为总价值,保留2位小数int main() {int x, y;cin x y;double ret 0;if (x 1) {ret 4.00 * y;}else if (x 2) {ret 4.50 * y;}else if (x 3) {ret 5.00 * y;}else if (x 4) {ret 2.00 * y;}else if (x 5) {ret 1.50 * y;}printf(Total:R$ %.2lf\n, ret);return 0;
}
方法二可以在最后计算总价格减少代码量
int main() {int x, y;cin x y;double sale;if (x 1) sale 4;else if (x 2) sale 4.5;else if (x 3) sale 5;else if (x 4) sale 2;else if (x 5) sale 1.5;printf(Total:R$ %.2lf\n, y * sale);return 0;
} 第7题 区间 代码如下
//区间
//给定一个浮点数,请你判断该数字属于以下哪个区间
//[0,25],(25,50],(50,75],(75,100]
//如果给定的数值小于0或大于100,
//则程序输出Fora de intervalo,表示超出范围
//开区间(a,b):在实数a和实数b之间的所有实数,但不包含a和b
//闭区间[a,b]:在实数a和实数b之间的所有实数,包括a和b
//输入一个浮点数
//判断输入值位于哪个区间,按格式Intervalo x输出,
//其中,x为区间范围[0,25],(25,50],(50,75],(75,100]中的1个
//如果数值位于所有区间之外,则输出Fora de intervaloint main() {double x;cin x;if (x 0 x 25) {cout Intervalo [0,25] endl;}else if (x 25 x 50) {cout Intervalo (25,50] endl;}else if (x 50 x 75) {cout Intervalo (50,75] endl;}else if (x 75 x 100) {cout Intervalo (75,100] endl;}else {cout Fora de intervalo endl;}return 0;
} 第8题 三角形 怎么判断能否构成三角形呢三角形的任意两边之和大于第三边两边之差小于第三边
代码如下
//三角形
//读取3个浮点数(A,B,C)并验证是否可以用它们形成三角形
//如果可能,则计算并输出三角形的周长
//Perimetro XX.X
//如果不可能,则计算并输出以A和B为底,以C为高的梯形面积
//Area XX.X
//输入共一行,包含3个浮点数A,B,C
//输出答案,保留一位小数int main17() {double A, B, C;cin A B C;double area;if ( (A B C A - B C)|| (A C B A - C B)|| (B C A B - C A)) {printf(Perimetro %.1lf\n, A B C);}else {area (A B) * C * 0.5;printf(Area %.1lf\n, area);}return 0;
}
方法二
int main() {double a, b, c;cin a b c;if (a b c a c b b c a) {printf(Perimetro %.1lf\n, a b c);}else {printf(Area %.1lf\n, (a b) * c * 0.5);}return 0;
} 第9题 游戏时间 打个比方我从下午2点开始打游戏下午5点结束。那么持续时间为5-23小时。如果我从晚上10点开始打游戏一直到凌晨2点持续时间为24-2224小时。
因此我们需要判断开始时间和结束时间的大小如果结束时间开始时间持续时间为结束-开始如果结束时间开始时间说明结束时间为第二天应该用24点-开始时间结束时间
代码如下
//游戏时间
//读取2个整数A和B,表示游戏的开始时间和结束时间,以时间为单位
//计算游戏的持续时间,已知游戏可以在一天开始并在另一天结束
//最长持续时间为24小时
//如果A和B相等,则视为持续了24小时
//输入供一行,包含2个整数A和B
//输出格式为O JOGO DUROU X HORA(S),其中,X为游戏持续时间int main1() {int A, B;cin A B;int ret;if (B A) {ret B - A;}else {ret 24 - A B;}cout O JOGO DUROU ret HORA(S) endl;return 0;
} 第10题 加薪 代码如下
//加薪
//公司决定给员工加薪,加薪情况如下所示
// 薪水 涨薪幅度
// 0~400.00 15%
// 400.01~800.00 12%
// 800.01~1200.00 10%
// 1200.01~2000.00 7%
// 超过 2000.00 4%//读取员工的工资,计算并输出员工的新工资,
//以及员工增加的收入和涨薪幅度//输入共一行,包含一个保留2位小数的浮点数
int main() {double salary; //员工工资cin salary;double new_salary; //新工资double harvest; //增加的收入double ret; //涨薪幅度if (salary 0 salary 400) {new_salary salary * 1.15;harvest new_salary - salary;ret 0.15;}else if (salary 400 salary 800) {new_salary salary * 1.12;harvest new_salary - salary;ret 0.12;}else if (salary 800 salary 1200) {new_salary salary * 1.10;harvest new_salary - salary;ret 0.10;}else if (salary 1200 salary 2000) {new_salary salary * 1.07;harvest new_salary - salary;ret 0.07;}else {new_salary salary * 1.04;harvest new_salary - salary;ret 0.04;}printf(员工的新工资为: %.2lf\n, new_salary);printf(员工增加的收入为: %.2lf\n, harvest);printf(涨薪幅度为: %.0lf %%\n, ret * 100);return 0;
}
方法二
int main() {double salary; //员工工资cin salary;double ret; //涨薪幅度if (salary 400) ret 0.15;else if (salary 800) ret 0.12;else if (salary 1200) ret 0.10;else if (salary 2000) ret 0.07;else ret 0.04;printf(员工的新工资为: %.2lf\n, salary * (1 ret));printf(员工增加的收入为: %.2lf\n, ret * salary);printf(涨薪幅度为: %.0lf %%\n, ret * 100);return 0;
} 第11题 动物 代码如下
//动物
//给定3个单词,这些词将根据下表从左到右定义一个动物
//请你确定并输出这个动物的名称int main() {string a, b, c;cin a b c;if (a vertebrado) {if (b ave) {if (c carnivoro)cout aguia endl;elsecout pomba endl;}else if (b mamifero) {if (c onivoro)cout homem endl;elsecout vaca endl;}}else if (a invertebrado) {if (b inseto) {if (c hematofago)cout pulga endl;else cout lagarta endl;}else if (b anelideo) {if (c hematofago)cout sanguessuga endl;elsecout minhoca endl;}}return 0;
} 第12题 选择练习1 代码如下
//选择练习1
//读取4个整数值A,B,C,D
//如果4个整数值同时满足以下条件
// 1.BC
// 2.DA
// 3.CDAB
// 4.C0,D0
// 5.A是偶数
// 则输出Valores aceitos,否则,输出Valores nao aceitos//输入占一行,包含4个整数A,B,C,D
//如果输入数值满足题目条件则输出Valores aceitos
//否则输出Valores nao aceitos
int main5() {int A, B, C, D;cin A B C D;if (B C D A ((C D) (A B)) C 0 D 0 (A % 2 0)) {cout Valores aceitos endl;}else {cout Valores nao aceitos endl;}return 0;
} 第13题 城市名称 代码如下
//给定一个整数,根据下表确定并输出其对应的城市名称:
// 编号 城市名称
// 61 Brasilia
// 71 Salvador
// 11 Sao Paulo
// 21 Rio de Janeiro
// 32 Juiz de Fora
// 19 Campinas
// 27 Vitoria
// 31 Belo Horizonte
//如果输入数字不在上表中则输出DDD nao cadastradoint main() {int num;cin num;if (num 61) cout Brasilia endl;else if (num 71) cout Salvador endl;else if (num 11) cout Sao Paulo endl;else if (num 21) cout Rio de Janeiro endl;else if (num 32) cout Juiz de Fora endl;else if (num 19) cout Campinas endl;else if (num 27) cout Vitoria endl;else if (num 31) cout Belo Horizonte endl;else cout DDD nao cadastrado endl;return 0;
} 第14题 坐标 代码如下
//坐标
//给定2个保留1位小数的浮点数X,Y,用来表示一个点的横纵坐标
//请你判断该点在坐标系中的位置
//共一行,包含2个浮点数X,Y,表示点的横纵坐标
//如果点在第一象限,则输出Q1,在第二象限,则输出Q2....
//如果点在原点处,则输出Origem
//如果点在x坐标轴上,则输出Eixo X;在y坐标轴上,则输出Eixo Yint main() {double x, y; //点的横纵坐标cin x y;if (x 0 y 0) cout Origem endl;else if (y 0) cout Eixo X endl;else if (x 0) cout Eixo Y endl;if (x 0 y 0) cout Q1 endl;else if (x 0 y 0) cout Q2 endl;else if (x 0 y 0) cout Q3 endl;else if (x 0 y 0) cout Q4 endl;return 0;
} 第15题 三角形类型 注意等边三角形一定是锐角三角形不能是直角、钝角三角形。等腰三角形有可能是锐角三角形或者钝角三角形。
此外题目明确输入的3个数随机需要排成降序。我们可以在main函数外面定义Swap函数在main函数中直接调用即可。
代码如下
//三角形类型
//读取表示三角形3条边的3个浮点数(A,B,C),
//并按照降序排列,使A边是三边中最大的一边
//根据以下情况,确定它们可以组成的三角形类型:
//如果 A B C ,
//则说明三条边不能构成三角形,请输出NAO FORMA TRIANGULO
//否则,说明三条边可以构成三角形,按照如下情况输出:
//如果 A*A B*B C*C , 请输出: TRIANGULO RETANGULO
//如果 A*A B*B C*C , 请输出: TRIANGULO OBTUSANGULO
//如果 A*A B*B C*C , 请输出: TRIANGULO ACUTANGULO
//如果三个边长度都相同 , 请输出: TRIANGULO EQUILATERO
//如果只有2个边长度相同而第3个边长度不同
//请输出: TRIANGULO ISOSCELES//输入共一行,包含3个浮点数A,B,C
//输出A,B,C组成的三角形的类型
//上述条件可能满足不止一条,
//这种情况下将所有类型名称,按照题目介绍顺序输出,每行输出一条//排降序
void Swap(double m, double n) {int temp m;m n;n temp;
}int main() {double a, b, c;cin a b c;if (a b) Swap(a, b);if (a c) Swap(a, c);if (b c) Swap(b, c);if (a b c) cout 不构成三角形 endl;else {if (a * a b * b c * c) cout 直角三角形 endl;else if (a * a b * b c * c) cout 钝角三角形 endl;else if (a * a b * b c * c) cout 锐角三角形 endl;if (a b b c) cout 等边三角形 endl;else if (a b || a c || b c) cout 等腰三角形 endl;}return 0;
} 第16题 游戏时间2 诶刚刚我们做了游戏时间1这道题和上一道题有啥不一样的地方呢
噢现在是用小时和分钟来分别表示开始时间和结束时间。比如开始时间为下午2点10分结束时间为下午5点30分一共持续了3个小时20分钟。再比如开始时间为晚上22点30分结束时间为凌晨3点50分一共持续了2个小时20分钟。
但是这只是我们人思考的方式。那么怎么将这种方式转化为计算机能够执行的代码呢
我们可以统一单位将小时转换为分钟进行计算。最后将分钟转换为小时。 思路定义变量start和end分别表示开始时间和结束时间统一将小时转换为分钟如果结束时间开始时间那么用end-start如果结束时间开始时间用24×60分钟-开始时间结束时间最后将得出的结果/60得到小时将结果%60得到分钟。 代码如下
//游戏时间2
//读取4个整数A,B,C,D,用来表示游戏的开始时间和结束时间
//其中A和B为开始时刻的小时和分钟数
//C和D为结束时刻的小时和分钟数
//请你计算游戏的持续时间
//比赛最短持续1分钟,最长持续24小时
//输入共一行,包含4个整数A,B,C,D
//输出格式为O JOGO DUROU X HORA(S) E Y MINUTO(S),
//表示游戏共持续了X小时Y分钟int main() {int a, b, c, d;cin a b c d;//统一单位,全部转化成分钟int start a * 60 b;int end c * 60 d;int ret;if (end start) {ret end - start;}else {ret 24 * 60 - start end;}cout O JOGO DUROU ret / 60 HORA(S) E ret % 60 MINUTO(S);return 0;
} 第17题 税 对于这道题我们需要分段考虑。
比如我的工资为5000元0~2000元的部分不收税2000~3000元部分税率为8%3000~4500元部分税率为18%超过4500元的部分税率为28%。那么需要缴纳的税为3000-2000× 8% 4500-3000× 18% 5000-4500× 28% 490元。
代码如下
//税
//读取一个保留2位小数的浮点数值,表示一个公民的工资
//在公民缴纳个人所得税时,不同收入部分需要缴纳的税率也是不同的
//请根据下表确定该公民需要缴纳的个人所得税是多少
// 薪资 税率
// 0.00~2000.00 无
// 2000.01~3000.00 8%
// 3000.01~4500.00 18%
// 4500元以上 28%//输入共一行,包含1个浮点数
//输出格式为R$ X,其中,X为个税的金额,保留2位小数
//如果公民收入低于2000,则输出Isento//易错题!!!!
int main() {double salary;cin salary;double temp salary;double y;double tax;double Sum 0;if (temp 2000) cout Isento endl;else {if (temp 2000) {y 3000;tax 0.08;if (temp y) y temp;Sum (y - 2000) * tax;}if (temp 3000) {y 4500;tax 0.18;if (temp y) y temp;Sum (y - 3000) * tax;}if (temp 4500) {tax 0.28;Sum (temp - 4500) * tax;}printf(R$ %.2lf\n, Sum);}return 0;
} 第18题 简单排序 代码如下
//简单排序
//读取3个数并按升序对它们进行排序
//输入共一行,包含3个整数
//首先,将3个整数按照升序顺序输出,每行输出一个整数
//接着,输出一个空行
//紧接着,将3个整数按原输出顺序输出,每行输出一个整数void Swap(int m, int n) {int temp m;m n;n temp;
}int main() {int a, b, c;cin a b c;int x a, y b, z c; //用x,y,z分别保存原来a,b,c的值if (a b) Swap(a, b);if (a c) Swap(a, c);if (b c) Swap(b, c);cout a endl b endl c endl endl;cout x endl y endl z endl;return 0;
} 第19题 一元二次方程式 代码如下
//一元二次方程公式
//读取3个浮点数a,b,c的值,
//利用一元二次方程求根公式对方程ax^2bxc 0,进行求解
//一元二次方程求根公式为:
// x1 -bsqrt(b^2-4ac)/2a ; x2 -b-sqrt(b^2-4ac)/2a
//如果 b^2-4ac 0,导致方程无解或 a 0,则输出Impossivel calcular
//输入3个浮点数a,b,c
//参照输出格式,输出方程的根
//输出结果保留5位小数,如果无解则输出Impossivel calcular
//2个根可以按任意顺序输出,都算正确
//数据保证不存在只有1个解的情况int main() {double a, b, c;cin a b c;double x1, x2;double delt b * b - 4 * a * c;if (delt 0 || a 0) cout Impossivel calcular endl;else {x1 (-b sqrt(delt)) / (2 * a);x2 (-b - sqrt(delt)) / (2 * a);printf(R1 %.5lf\n, x1);printf(R2 %.5lf\n, x2);}return 0;
} 第20题 平均数3 代码如下
//平均数3
//读取4个数字N1,N2,N3,N4,
//这4个数字都是保留1位小数的浮点数,对应于学生获得的4个分数
//这4个分数的权重分别为2,3,4,1
//请计算学生成绩的平均值X并输出Media: X
//接下来分为以下3种情况:
// 1.如果平均值为7.0或更高,则输出Aluno aprovado.
// 2.如果平均值小于5.0,则输出Aluno reprovado.
// 3.如果平均值介于5.0和7.0之间,则输出Aluno em exame.
//并再读取一个数字Y,然后输出Nota do exame: Y
//接下来重新计算平均值 Z (XY)/2,
//如果 Z5.0 ,则输出Aluno aprovado.
//否则输出Aluno reprovado.
//最后输出Media final: Z,表示学生的最终成绩//输入中包含4个浮点数,表示学生的4个成绩
//也有部分满足情况3的数据,多包含一个浮点数
//输出的结果均保留1位小数,具体形式参照题目描述和输出样例int main() {double n1, n2, n3, n4;scanf(%lf%lf%lf%lf, n1, n2, n3, n4);double X;X (2 * n1 3 * n2 4 * n3 1 * n4) / (2 3 4 1);printf(Media: %.1lf\n, X);if (X 7.0) cout Aluno aprovado. endl;else if (X 5.0) cout Aluno reprovado. endl;else {cout Aluno em exame. endl;double Y;scanf(%lf, Y);printf(Nota do exame: %.1lf\n, Y);double Z (X Y) / 2;if (Z 5.0) cout Aluno aprovado. endl;else cout Aluno reprovado. endl;printf(Media final: %.1lf\n, Z);}return 0;
} 片尾
今天我们学习了C蓝桥杯基础篇二希望这篇文章对友友们有所帮助
求点赞收藏加关注
谢谢大家