C++教程2:顺序结构(1)

2.1:回顾输入与输出

        我们用做题的方式来回顾上一讲的内容。

例1:换行输出

题目描述:

输入两个整数,换行输出它们。

输入:
一行,两个整数,用空格隔开。

输出:

换行输出两个整数。

样例输入:
987 654

样例输出:

987
654

        这道题很简单,请看答案:

程序清单2.1.1

//程序清单2.1.1.cpp 
#include <bits/stdc++.h>
using namespace std;
int main(){
	int n1,n2;    //定义输入的两个整数 
	cin>>n1>>n2;    //输入,可以用scanf("%d %d",&n1,&n2);代替 
	cout<<n1<<endl<<n2<<endl;    //输出,可以用printf("%d\n%d",n1,n2);代替 
	return 0;
}

        这道题非常简单,我就不多说了。

2.2:C++中的运算

        既然是一门语言,就有它自己的计算方法。 那么,在C++中,如何实现加法、减法、乘法等一系列运算呢?请看下面的代码:

程序清单2.2.1

//程序清单2.2.1.cpp 
#include <bits/stdc++.h>
using namespace std;
int main(){
	int a,b,c;
	cin>>a>>b;
	c=a+b;    //运算表达式 
	cout<<c<<endl;
	return 0;
}

程序清单2.2.1解析与探讨

        这串代码中,用到了“c=a+b;”这个语句。我们知道,在数学中,“a+b”表示两个代数相加。而这两个代数已经有了一个确定的值,所以计算机会对其进行加法运算。相加之后,前面还有一个“c=”语句,所以,a和b相加的值就会传递给变量c。这种运算被称为“赋值运算”,也就是将运算结果赋值给另外一个变量。当然,这个运算是可以改变的。

        请看下面的程序:

程序清单2.2.2

//程序清单2.2.2.cpp 
#include <bits/stdc++.h>
using namespace std;
int main(){
	int a,b,c;    //定义三个变量 
	cin>>a>>b>>c;    //输入三个数 
	cout<<(a+b)*c<<endl;    //输出表达式的结果 
	return 0;
}

程序清单2.2.2解析与探讨

        上面的程序中,用到了“(a+b)*c”的表达式。计算机碰到表达式之后,会自动计算结果。但是这个表达式是在“cout”输出流里面的,所以程序会自动输出表达式的结果。

重点知识1:

        下面是表达式的运算符,都是一些常用的。

运算符集(常用)
+加法
-减法
*乘法
/除法
%模除(求两个数相除的余数)

        这些都是常见的运算符,每个C++程序员都要熟练地掌握。

2.3:顺序结构的使用

        通常,我们把从上往下执行的程序叫做“顺序结构”。

        下面我们来看一道例题:

例2:简易计算器

题目描述:
输入两个数,分别输出它们经过加、减、乘、除(自动取整数部分,忽略小数部分。注意:不是四舍五入)后的运算结果。

输入:
输入两个整数。

输出:

换行输出它们的运算结果。

样例输入:
36 11

样例输出:

47
25
396
3

        下面是参考答案:
程序清单2.3.1

//程序清单2.3.1.cpp 
#include <bits/stdc++.h>
using namespace std;
int main(){
	int a,b;
	cin>>a>>b;
	cout<<a+b<<endl;    //加法运算
	cout<<a-b<<endl;    //减法运算
	cout<<a*b<<endl;    //乘法运算
	cout<<a/b<<endl;    //除法运算
	return 0;
}

例题解析:
        这道题是让我们知道各种运算如何运用,通过输出流,对运算结果进行输出。为了更方便大家观察,所以我把输出打成了四行。

        当然,如果有C语言基础,你也可以看看下面的代码:

程序清单2.3.2

//程序清单2.3.2.cpp 
#include <bits/stdc++.h>
using namespace std;
int main(){
	int a,b;
	scanf("%d %d",&a,&b);    //C风格输入函数
	//下面是输出语句块: 
	printf("%d\n",a+b);
	printf("%d\n",a-b);
	printf("%d\n",a*b);
	printf("%d\n",a/b);
	return 0;
}

 例3:计算梯形面积

题目描述:
给定一个梯形的上底、下底和高,求这个梯形的面积。

输入:

输入三个数,依次是:上底、下底和高。

输出:
输出梯形的面积。

样例输入:

12 18 10

样例输出:

150

        这道题只需要用到梯形面积计算公式,就可以解出来了。大家看一下参考代码:

程序清单2.3.3

//程序清单2.3.3.cpp 
#include <bits/stdc++.h>
using namespace std;
int main(){
	int s,x,h,m;    //定义上底、下底和高 
	cin>>s>>x>>h; 
	m=(s+x)*h/2;    //计算面积 
	cout<<m<<endl;    //输出面积 
	return 0;
}

例题解析:
        这道题中,让我们计算的是梯形的面积。这是梯形的面积计算公式:(上底+下底)*高/2。所以,在程序中,用到了“m=(s+x)*h/2;”这个语句。但是我们输入下面的数据,就会发现一些问题:

样例输入:

7 10 3

样例输出:

25

        我们可以通过计算发现,(7+10)*3/2的结果是25.5,而它给出的答案是25。这说明我们的计算还不精确。我们这就要运用到浮点数(小数)。在第一讲中,我们知道了许多变量的命名前缀,命名浮点数(小数)最常用的前缀是“double”,所以,就有了下面的代码:

程序清单2.3.4

//程序清单2.3.4.cpp 
#include <bits/stdc++.h>
using namespace std;
int main(){
	double a,b,c,m;    //定义浮点数变量 
	cin>>a>>b>>c;
	m=(a+b)*c/2;    //计算 
	cout<<m<<endl;    //输出,可以使用printf("%g",m); 
	return 0;
}

程序清单2.3.4解析与探讨

        这串代码中,只是把“int”改成了“double”,运行的结果就不一样。这就是整数与浮点数的区别。

2.4:练习题

满分:100分    建议完成时间:30分钟    难度:入门

一、单选题(共5题,每题4分,共20分)

1.下面说法正确的一项是:()。

A.C++中“=”是赋值符号    B.C++中,没有“%”这个运算符    C.C++中,只有顺序结构

2.下面说法正确的一项是:()。

A.变量定义前缀只能是“int”    B.C++中,不能直接输出表达式的运算结果    C.C++中,有“/”运算符

3.下面代码正确的一项是:()。

A:

//选项A 
#include <bits/stdc++.h>
using namespace std;
int main(){
	int a,b,c,d;
	cin>>a>>b>>c;
	a+b+c=d;
	cout<<d<<endl;
	return 0;
}

B:

//选项B 
#include <bits/stdc++.h>
using namespace std;
int main(){
	double x,y,z;
	cin>>x>>y;
	z=x*y;
	cout<<z<<endl;
	return 0;
}

C:

//选项C
#include <bits/stdc++.h>
using namespace std;
int main(){
	int a;
	cin>>a;
	cout<<a^10000000<<endl;
	return 0;
}

4.下面说法错误的是:()。

A.C++中,运算表达式的结果可以保存到变量里    B.从下往上执行命令的是顺序结构    C.除了顺序结构外,没有其它结构

5.下面说法正确的是:()。

A.C++中只有五种运算符    B.C++中没有“^”符号    C.C++中,只有“bits/stdc++.h”这一个头文件

二、应用题(共4题,每题20分,共80分)

1.浮点数计算器

题目描述:

给定两个双精度浮点数,求它们通过四则运算后的值。

输入:
输入两个浮点数。

输出:

输出他们通过四则运算后的值和过程。

样例输入:

3.6 1.2

样例输出:

x+y=4.8
x-y=2.4
x*y=4.32
x/y=3

2.模除

题目描述:
给定两个数a和b,求a除以b的余数。

输入:
输入两个正整数。

输出:
输出一个整数,表示两个数相除的余数。

样例输入:

8 5

样例输出:

3

3.数字反转

题目描述:

输入一个不小于100且小于1000,同时包括小数点后一位的一个保留小数点后一位的浮点数,例如123.4 ,要求把这个数字翻转过来,变成4.321并输出。

输入:

一行一个浮点数。

输出:

一行一个浮点数,表示翻转过来的数。

样例输入:

123.4

样例输出:

4.321

4.三角形面积

题目描述:

一个三角形的一个底边和其对应的高分别是n和m,求三角形的面积。
输入:

输入两个数n和m。

输出:

输出三角形的面积。
样例输入:

20 20

样例输出:

200

2.5:练习题答案

一、1.(A)    2.(C)    3.(B)    4.(C)    5.(B)

二、

1:浮点数计算器

参考代码:

#include <bits/stdc++.h>
using namespace std;
int main(){
	double x,y;
	cin>>x>>y;
	cout<<"x+y="<<x+y<<endl;
	cout<<"x-y="<<x-y<<endl;
	cout<<"x*y="<<x*y<<endl;
	cout<<"x/y="<<x/y<<endl;
	return 0;
}

2:模除

参考代码:

#include <bits/stdc++.h>
using namespace std;
int main(){
	int a,b;
	cin>>a>>b;
	cout<<a%b<<endl;
	return 0;
}

3:数字反转

参考代码:

#include <bits/stdc++.h>
using namespace std;
int main(){
	char a,b,c,d,e;
	cin>>a>>b>>c>>d>>e;    //字符的输入没有空格
	cout<<e<<d<<c<<b<<a<<endl; 
	return 0;
}

4:三角形面积

#include <bits/stdc++.h>
using namespace std;
int main(){
	int a,b;
	cin>>a>>b;
	cout<<a*b/2<<endl; 
	return 0;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值