C/C++程序设计
C/C++的联系与差异
联系:
c++是c的超集,完全涵盖了C语言的内容
差异
-C语言
- 结构化程序设计语言(面向过程)
- 侧重如何设计一个过程,对输入进行运算处理得输出
- 强调算法与数据结构
-C++
- 面向对象
- 侧重如何构造一个与描述问题相对应得的对象模型
- 融入抽象设计的概念
C/C++的输入与输出
-C语言
- 通过scanf与printf实现输入输出
-C++语言
- 保留scanf与printf实现输入输出,使用cin与cout操作进行输入输出
以下采用C++格式数据输出:
cout<<表达式1<<表达式2<<...<<表达式n;
- 说明
- cout代表显示器,‘<<’是插入运算符。表达式的值插入到显示器屏幕上,即输出各表达式的值。
- 各表达式可以是任意类型,数据的输出格式由系统自动决定
- 必须为‘<<’分隔,不能用逗号分隔。
- cout的定义信息存放在C++的输入输出流库中,所以使用如下的文件包含预处理命令以及名字空间说明语句。
#include<iostream>
using namespace std;
数据输出示例:
以下采用C++格式数据输入:
cin>>变量1>>变量2>>...>>变量n;
- 说明
- cin代表显示器,‘>>’是提取运算符。表示从键盘提取数据分别给各个变量,即输入各个变量的值。
- 变量可以是任意类型。表达式间必须为‘>>’分隔,不能用逗号分隔。
- 输入数据时,各数据用空格、换行、制表符分隔
- ‘>>’后面必须是变量,不能加endl
- cin的定义信息存放在C++的输入输出流库之中,所以使用cin程序之前要加:
#include<iostream>
using namespace std;
数据输入示例:
数据类型、运算符与表达式
数据类型
数据是程序的操作对象,具有不同的类型,常量变量形式表达。
- 作用
- 决定数据的存储空间
- 决定数据的取值范围。32位系统,整数范围 -231~231-1
- 决定数据所能参与的运算
- 分类
- 基本数据类型(不可再分)
- 整型 int
- 字符型 char
- 实型:单精度 float、双精度 double (存储空间、精度、取值范围不同)
- 构造类型:数组、结构体、共用体…(由基本数据类型合成的复杂类型)
- 指针类型(*)
- 空指针(void)
- 基本数据类型(不可再分)
变量
程序运行过程中值可变的数据
变量定义
数据类型 变量名表
- 要求
- 先定义后使用
- 参与运算前必须先被赋值,否则运算结果无效。
初始化
定义变量同时指定变量的初值
数据类型 变量名= 表达式
数据类型 变量名(表达式)
常量
程序运行过程中值不能被改变的数据
- 种类
- 值常量
- 符号常量
const 数据类型 标识符 = 常量值
#define 标识符 常量值
运算符
知识点省略,只取题目验证掌握程度
问题:如何编程实现华氏温度到摄氏温度的转化? 转化公式:
C = 5 / 9 ∗ ( F − 32 ) C = 5 / 9 * (F - 32) C=5/9∗(F−32)
#include<iostream>
using namespace std; //使用std命名空间
int main()
{
double f,c;
cout << "请输入华氏温度:"<< endl;
cin >> f;
c = 5.0/ 9.0 * (f - 32);
cout << "对应的摄氏温度为:" << c << endl;
system("pause");
return 0;
}
在此处应注意:整数除法运算先去尾,再进行运算。 所以应为5.0 与9.0 浮点数运算
常见应用:
- 分解整数数位
- 判别整除关系
问题:求三位正整数m的个、十、百位
百位: m/100
十位: m%100/10
各位: m%10
控制结构
问题:利用公式
s = p ( p − a ) ( p − b ) ( p − c ) s = \sqrt{p(p-a)(p-b)(p-c)} s=p(p−a)(p−b)(p−c)
编程求以a,b,c做三边的三角形面积。其中,p为三角形三边和的一半,即:p=(a+b+c)/2
顺序结构
#include<iostream>
using namespace std; //使用std命名空间
int main()
{
double a, b, c, p, s;
cin >> a >> b >> c;
p =