实验2 数据类型、运算符、表达式、基本输入输出与结构控制
这个过于简单我就不用写了,把题目先写上,有问题私聊我
一、实验目的
- 了解C++语言中数据类型的意义。
- 理解常用运行符的意义,C++语言表达式的运行规则。
- 掌握C++的基本输入输出格式。
- 掌握各种选择语句的使用。
- 掌握各种循环语句的使用。
- 掌握各种转向语句的使用。
- 学会综合运用控制语句进行简单的编程。
- 掌握中止语句和预处理语句。
二、知识要点
-
-
-
- C++语言中数据类型
-
-
-
-
-
- 基本输入/输出
-
-
C++中有2个预定义的流对象:
(1)cin是标准输入流对象,键盘为标准设备;
(2)cout是标准输出流对象,显示器为标准设备;
“<<”和“>>”本来在C++中是被定义为左移位运算符和右移位运算符的,由于在iostream头文件中对它们进行了重载,使它们能用作标准类型数据的输入和输出运算符,所以,在出现它们的程序中必须用#include<iostream>
如果想将“<<”和“>>”用于自己声明的类型的数据中,就不能简单地采用包含iostream头文件来解决,必须对“<<”和“>>”进行重载。
-
-
-
- 结构控制
-
-
C++语言中结构化算法的基本控制结构有3种:顺序结构、选择结构和循环结构。另外还有多个转向语句,如break、continue、goto语句等。
(1)顺序结构
语句1
语句2
……
语句n+1
(2)选择结构
实现选择结构可用if和switch语句。
① 简单if选择语句
if(表达式)
{
语句组
}
当语句组织有一个语句时,可以省略大括号。
② 双重if选择语句
if(表达式)
{
语句组1
}
else
{
语句组2
}
③ 多重if选择语句
if(表达式)
{
语句组1
}
else if(表达式2)
{
语句组2
}
else if(表达式3)
{
语句组3
}
……
else
{
语句组n+1
}
④ switch语句
switch(表达式)
{
case 常量表达式1:语句组1;break;
case 常量表达式2:语句组2;break;
……
case 常量表达式3:语句组3;break;
default: 语句组n+1;break;
}
(3)循环结构
① while语句
while(表达式)
{
语句组
}
② do-while语句
do
{
语句组
}
while(表达式);
③ for语句
for(表达式1; 表达式2; 表达式3)
{
语句组
}
(4)break语句
break语句用于switch语句或循环语句中,其作用是跳出switch语句或内层循环,继续执行其后面的语句。
(5)continue语句
continue语句用于循环语句中,其作用是结束本次循环开始判断是否继续执行下一次循环。
(6)goto语句
goto语句是非结构化语句,其作用是使程序的执行流程跳转到语句标号所指定的语句。由于goto语句的使用会破坏程序结构,所以应该尽量少或不用。
三、实验内容和步骤
1. 使用C++的输入输出流。
【实例1】从键盘上输入数值时,两个值之间一般用空格分隔,也可以用Tab键或换行符。输入如下程序。
#include <iostream>
using namespace std;
void main()
{
int a,b;
cin>>a>>b;
cout<<a<<endl;
cout<<b<<endl;
}
2. 用if语句编写多重选择程序
【实例2】比较两个实数的大小,要求输出相等、大于、小于等情况。
本题练习的是用if语句编写多重选择程序,即if-else if-else结构。比较两个实数的大小,有3种可能结果。其关系表达式非常简单,方法也较多,除了if-else if-else结构,还可以用if-else的嵌套结构。
#include <iostream>
using namespace std;
void main()
{
double x,y;
cout<<"请输入两个实数:";
cin>>x>>y;
if(x>y)
cout<<"x>y"<<endl;
else if(x<y)
cout<<"x<y"<<endl;
else
cout<<"x=y"<<endl;
}
注意:C++的相等运算符是“
;
=”。
3. 用switch语句编写程序
【实例3】实现两个整数的简单四则运算。
本题练习的是用switch语句编写多重选择程序,简单四则运算有加(+)、减(-)、乘(*)、除(/),我们可以设一个字符型变量,通过比较这个变量,选择相应运算。
#include <iostream>
using namespace std;
void main()
{
int data1,data2;
char op;
cout<<"输入一组运算:";
cin>>data1>>op>> data2;
switch(op)
{
case '+':cout<<data1<<op<<data2<<"="<<data1+data2<<endl;break;
case '-':cout<<data1<<op<<data2<<"="<<data1-data2<<endl;break;
case '*':cout<<data1<<op<<data2<<"="<<data1*data2<<endl;break;
case '/':cout<<data1<<op<<data2<<"="<<data1/data2<<endl;break;
default: cout<<"输入有错!"<<endl;
}
}
注意:当程序输入不是“+”、“-”、“*”、“/”的时候,则显示“输入有错!”。实验人员可能输入整数时也可以运行,此时注意此数据类型的转换。
4. 用while语句编写实现循环的程序
【实例4】用while语句编写程序,求自然数50至100之和。
本题练习的是用while语句编写程序。可用累加算法,累加过程是一个循环过程。
#include <iostream>
using namespace std;
void main()
{
int i=50,sum=0;
while(i<=100)
{
sum+=i;
i++;
}
cout<<"50至100之和为:"<<sum<<endl;
}
注意:注意累加运算的起点和终点,避免遗漏和重复。
5. 用do-while语句编写实现循环的程序
【实例5】用do-while语句编写程序,求自然数50至100之和。
本题练习的是用do-while语句编写程序。它与while循环语句的区别是do语句必需至少执行一次循环体,而while循环可能一次都没有执行就跳出循环。
#include <iostream>
using namespace std;
void main()
{
int i=50,sum=0;
do
{
sum+=i;
i++;
}while(i<=100);
cout<<"50至100之和为:"<<sum<<endl;
}
注意:do-while语句中,while行结束出有分号“;”,不要遗漏。
6. 用for语句编写实现循环的程序
【实例6】用for语句编写程序,输入一个整数,求出它所有的因子。
本题练习的是用for语句编写循环程序。所谓正数i的因子是指所有能够整除i的整数。可以通过穷举法,对1~i之间的全部整数进行判断。
#include <iostream>
using namespace std;
void main()
{
int i,j;
cout<<”请输入一个正的整数:”;
cin>>i;
cout<<”整数”<<i<<”的因子有:”<<endl;
for(j=1;j<i;j++)
if(i%j==0)
cout<<j<<” ”;
cout<<endl;
}
注意:for语句的下一行是循环体,如果循环体有多行语句,应使用大括号“{}”。
7. 转向语句的使用
【实例7】用continue语句编写程序,输入10个实数,求出其中正数之和。
本题练习的是用continue语句编写程序。continue语句只能用在循环语句的循环体中结束本次循环,接着在判断是否执行下一次循环。在输入得10个实数中,可能有负数。可以通过if语句来判断正负;如果为负数就结束这次循环,如果为正数就累加求和。
#include <iostream>
using namespace std;
void main()
{
const int N=10;
float num,sum=0;
cout<<”请输入10个实数:”;
for(int i=0;i<N;i++)
{
cin>>num;
if(num<0)
continue;
sum+=num;
}
cout<<”其中正数之和为:”<<sum<<endl;
}
注意:continue语句只能用在循环语句的循环体内,用来结束本次循环,不能用在switch语句中。