目录
C/C++简单计算器
一、题目要求
1、编程实现
2、输入输出
二、解题思路
1、案例分析
三、程序代码
四、程序说明
五、运行结果
六、考点分析
C/C++简单计算器
2019年12月 C/C++编程等级考试一级编程题
一、题目要求
1、编程实现
一个最简单的计算器,支持+, -, , / 四种运算。仅需考虑输入输出为整数的情况,数据和运算结果不会超过int表示的范围。
2、输入输出
输入描述:输入只有一行,共有三个参数,其中第1、2个参数为整数,第3个参数为操作符(+,-,*,/)。
输出描述:输出只有一行,一个整数,为运算结果。然而:
如果出现除数为0的情况,则输出:Divided by zero!
如果出现无效的操作符(即不为 +, -, *, / 之一),则输出:Invalid operator!
输入样例:
1 2 +
输出样例:
3
二、解题思路
1、案例分析
- 从给定题目的初步分析可以看出,首先需要从键盘获取2个整数和一个字符
- 可以使用int和char类型进行变量的声明,用来保存键盘输入的数据
- 然后可以通过多分支if...elif...else语句进行四则运算
- 也可以通过switch case语句进行处理,以上两种方式都可以
- 小兔子老师这里采用的是switch case语句,处理起来相对更方便点
- 根据输入的操作符进行判断,加减乘比较简单,在除的时候需要判断除数是否为0的情况
- 如果是0则按要求输出除数不能为0,如果不是0的时候还需要将a和b其中一个值转化为小数,可以使用强制类型转化也可以直接乘以1.0
- 还需要判断输入的操作符不是加减乘除的时候需要输出无效字符
三、程序代码
#include<iostream>
using namespace std;
int main()
{
int a,b;
char c;
cin>>a>>b>>c;
switch(c)
{
case '+':
cout<<a+b;break;
case '-':
cout<<a-b;break;
case '*':
cout<<a*b;break;
case '/':
if(b==0)
{
cout<<"Divided by zero!";
}
else
{
cout<<a*1.0/b;
}
break;
default:
cout<<"Invalid operator!";
}
return 0;
}
四、程序说明
- 根据题目要求声明2个整形int变量和一个char变量
- 然后利用输入流对象cin,从键盘读取三个变量的值
- 接着对输入的字符利用switch语句,分4种情况进行相应的输出,每次case输出后都需要加上break语句,在碰到除法运算的时候时序像程序分析的第7步一样再次进行判断
- 同时最后需要有个default字句,用来规避无效的运算符
五、运行结果
1 2 +
3
六、考点分析
难度级别:容易,这题相对而言还是比较简单的,具体主要考查如下:
- 分析题目,找到解题思路
- 变量的声明和使用
- 输入流对象cin的使用,与流提取运算符 >>结合使用从键盘读取想要的数据
- switch case和if多分支语句的使用,在满足不同的条件执行不同的处理结果
- 除法运算(/):除号左右两边都是整数的时候返回结果也是整数,所以要正常除法运算需要将两边至少一边转化为小数才可以
- 输出流对象cout的使用,与流插入运算符 << 结合使用将对象输出到终端显示
- 充分掌握变量定义和使用、多分支语句、除法运算和简单算法知识的使用及输入输出的用法
PS:方式方法有多种,小朋友们只要能够达到题目要求即可!