第二章c++概述
2.1 c++语言基本语法成分
(1)把英里转换成千米
//miles.cpp
//Converts distance in miles to kilometers
#include<iostream>
using namespace std;
int main() //start of main function
{
const float KM_PER_MILE=1.609; //1.609 km in a mile
float miles, //input:distance in miles
kms; //output:distance in kilometers
//Get the distance in miles.
cout<<"Enter the distance in miles: ";
cin>>miles;
//Convert the distance to kms.
kms=KM_PER_MILE*miles;
//Display the distance in kms.
cout<<"The distance in kms is"<<kms<<endl;
return 0; //Exit main function
}
2.1.1注释
格式://注释
/*注释*/
2.1.2编译预处理命令#include
编译预处理指令:程序中以“#”开头的命令行,编译系统在对源程序进行行编译之前,需要先对这些命令进行处理。
头文件:以类的方式对数据及其相关操作进行描述的一类文件。
标准库:c++系统所提供的一个事先定义好的集合体。
格式:#include<iostream>
注意:在编译预处理命令语句行结束处不能加“ ; ”。
2.1.3命令空间Namespace std
格式: using namespace region;
说明:必须在#include命令行的下面。
2.1.4 main函数
格式:int main()
{
函数体
}
说明:程序总是从main函数开始执行的。函数体被包含在一对花括号中。函数体内的最后的一条语句是:
return 0;
这表示当程序运行结束时,main函数将"0"作为返回值返回给操作系统。
2.1.5 声明语句
例子: float miles;
2.1.6 可执行语句
cout(c-out):输出设备,使用"<<"符号。
cin(c-in):输入设备,使用">>"符号。
2.2 保留字和标识符
保留字(关键字):c++中有着特定含义的单词。
保留字 | 含义 |
const | 常量,表示该数据元素的值不能改变 |
float | 浮点数,表示该数据项是一个实型数据 |
include | 预处理指令,用于插入一个库函数 |
int | 整数,表示main函数的返回值是整型数据 |
namespace | 命名空间,程序中各种元素的定义范围 |
return | 退出被调用函数,返回到调用函数中 |
using | 表示可以使用由特定的名空间(namespace)中所定义的各种数据 |
标识符:必须以字母或下划线开头,它只能包含字母,数字,下划线。
2.3数据类型和声明
2.3.1数据类型
1.实型
定点表示法:整数的机器内部存储形式。
浮点表示法:实数的机器内部存储形式。
尾数:用于浮点表示法中的0.5到1.0之间的二进制小数。
2.字符型
转义序列:以反斜杠(\)开头,由两个字符组成的一个序列,用来表示一个特殊字符。
3.常量声明
格式:const类型符号常量标识符=值;
例子:const float PI=3.14159;
4.c++程序读入字符和字符串,向程序用户显示个人信息。
//File:hello.cpp
//Displays a user's name
#include<iostream>
#include<string>
using namespace std;
int main()
{
char letter1,letter2; //input and output:first two initials
string lastName; //input and output:last name
//Enter letters and print message.
cout<<"Enter 2 initials and a last name: ";//输出
cin>>letter1>>letter2>>lastName; //输入letter1,letter2,lastName.
cout<<"Hello"<<letter1<<". "<<letter2<<". "<<lastName<<"! "; //输出
cout<<"We hope you enjoy studying c++."<<endl; //输出
return 0;
}
2.4可执行语句
可执行语句:可执行语句被翻译成机器语言指令之后再执行,
赋值语句: 将值或中间计算结果赋给变量。
输入操作:通过输入设备将数据读入内存的指令。
输出操作:显示内存中存储信息的指令。
流:与输入设备,输出设备及磁盘文件相关联的字符序列。
2.4.4输入语句
格式:cin>> data-store;
例子:cin>>age>>firstInitial;
2.4.5程序输出
提示:计算机的显示信息,表示计算机目前已做好准备,接受用户输入的数据或指令。
屏幕光标:一个移动的位置标志,指示下一个字符将要在屏幕上显示的位置。
格式: cout<< data-element;
例子:cout<<"My height in inches is "<<height<<endl;
说明:endl表示屏幕光标将向前移到下一行。显示字符串时,双引号不显示。
如果不使用endl,屏幕光标就不会前移到下一行,下一条输出语句就会输出字符显示 在当前位置。
2.4.6 return语句
格式: return表达式
例子:return 0;
说明:return语句的作用是将控制权由本函数交给该函数的调用函数。对于main函数,则是 将控制权转交给操作系统。表达式的值作为函数的执行结果返回给调用函数。
2.6算术运算符
/:除
%:求余
混合类型表达式: 所含操作数位int和float类型的表达式。
int+int=int;
int+float=float;
2.6.4包含多个运算符的表达式
单目运算符:带有一个操作数的运算符。
双目运算符:带有两个操作数的运算符。
表达式求值运算
1)括号原则: 凡是括号内的表达式先运算。碰到嵌套的括号,从内往外运算。
2)运算符优先原则:单目运算符 " + ", " - ":优先级最高
" * "," / "," % ":优先级次之
双目运算符 " + "," - ":优先级最低
3)结合性规则:左结合性:对于同一表达式中或具有同一优先级的双目运算符。
右结合性:对于同一表达式中或具有同一优先级的单目运算符。
问题
1.你的儿子一直攒硬币,包括面值5美分和1美分的两种。他想去银行把这些硬币兑换成整钱,因此需要统计出这组硬币总共有多少美元零多少美分。
//File:coins.cpp
//Determines the value of a coin collection
#include<iostream>
#include<string>
using namespace std;
int main()
{
string name; //input:son's first name
int pennies; //input:count of pennies
int nickels; //input:count of nickels
int dollars; //output:value of coins in dollars
int change; //output:value of coins in cents
int totalCents; //total cents represented
//Read in your son's first name.
cout<<"Enter your first name: ";
cin>>name;
//Read in the count of nickels and pennies.
cout<<"Enter the number of nickels: ";
cin>>nickels;
cout<<"Enter the number of pennies: ";
cin>>pennies;
//Compute the total value in cents.
totalCents=5*nickels+pennies;
//Find the value in dollars and change.
dollars=totalCents/100;
change=totalCents%100;
//Display the value in dollars and change.
cout<<"Good work "<<name<<'!'<<endl;
cout<<"Your collection is worth"<<dollars<<"dollars and"<<change<<"cents."<<endl;
return 0;
}
2.7交互模式,批处理模式和数据文件
交互模式:一种程序运行模式,用户能够与运行着的程序通过键入数据的方式进行交互。
批处理模式:程序运行的非交互模式,程序所需要的全部数据必须在程序开始运行之前提供。
输入/输出重定向:使用操作系统命令将标准输入设备的关联由键盘转向输入文件,将标准输出设备的关联由屏幕转向输出文件。
例子:将英里转换为千米的程序的批处理版本
//File:milesBatch.cpp
//Converts distance in miles to kilometers.
#include<iostream>
using namespace std;
int main()
{
const float KM_PER_MILE=1.609; //1.609 km in a mile
float miles, //input:distance in miles
kms; //output:distance in kms
//Get the distance in miles.
cin>>miles;
cout<<"The distance in miles is "<< miles << endl;
//Convert the distance to kms.
kms=KM_PER_MILE*miles;
//Display the distance in kms.
cout<<"The distance in kms is "<< kms <<endl;
return 0;
}