undeclared identifier“未声明的标识符”(1) 十进制整数:在一个整型常量后面加一个字母 l或 L,则认为是 long int 型常量。(2) 八进制整数。在常数的开头加一个数字 0,就表示这是以八进制数形式表示的常数。(3)十六进制整数。在常数的开头加一个数字0和一个英文字母X(或x),就表示这是以十六进制数形式表示的常数。2. 浮点数的表示方法如果在实数的数字之后加字母 F 或f,表示此数为单精度浮点数,如1234F,-43f,占4 个字节。如果加字母 L 或 l,表示此数为长双精度数(long double), 在Visual C++ 6.0 中占 8 个字节.(2) 指数形式(即浮点形式):用字母 e 表示其后的数是以 10为底的幂,如 e12 表示 1012。1.普通的字符常量:用单撇号括起来的一个字符就是字符型常量如′a′,′#′,′%′,′D′都是合法的字符常量,在内存中占一个字节。“cout<<′\n′; ”将输出一个换行,其作用与“cout<<endl; ” 相同。将一个字符常量存放到内存单元时,实际上并不是把该字符本身放到内存单元中去,而是将该字符相应的 ASCII 代码放到存储单元中。既然字符数据是以 ASCII 码存储的,它的存储形式就与整数的存储形式类似。这样,在 C++中字符型数据和整型数据之间就可以通用。一个字符数据可以赋给一个整型变量,反之,一个整型数据也可以赋给一个字符变量。可以看到:在一定条件下,字符型数据和整型数据是可以通用的。但是应注意字符数据只占一个字节,它只能存放 0~255 范围内的整数。4. 字符串常量:用双撇号括起来的部分就是字符串常量,字符串常量″abc″在内存中占 4 个字节(而不是 3 个字节),编译系统会在字符串最后自动加一个′\0′作为字符串结束标志。但′\0′并不是字符串的一部分,它只作为字符串的结束标志。字符串常量要用字符数组来存放.字符串常量″abc\n″包含几个字符?不是 5 个而是 4 个字符,其中“\n”是一个转义字符。但它在内存中占5 个字节(包括一个“\0”字符) 。编译系统遇到“\”时就会把它认作转义字符的标志,把它和其后的字符一起作为一个转义字符。2.2.4 符号常量:#define PRICE 352.3 变量2.3.1 什么是变量:在程序运行期间其值可以改变的量称为变量。标识符就是一个名字。变量名是标识符的一种.C++规定标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线。一般地,变量名用小写字母表示.2.3.3 定义变量:必须“先定义,后使用”.允许在定义变量时对它赋予一个初值,这称为变量初始化。初值可以是常量,也可以是一个有确定值的表达式. 2.3.5 常变量:对常变量来说,无非在此变量的基础上加上一个限定: 存储单元中的值不允许变化。因此常变量又称为只读变量。
算术运算符的结合方向为“自左至右”,如 a-b+c.++i是先执行i=i+1后,再使用i的值;而i++是先使用i的值后,再执行i=i+11.强制类型转换的一般形式为:(类型名)(表达式)(float)(5%3) 或类型名(表达式)int(x+y)。
例如:(int)x如果 x 原指定为 float 型,值为 3.6,进行强制类型运算后得到一个 int 型的中间变量,它的值等于 3,而 x 原来的类型和值都不变。2.将一个 int、 short 或 long 型数据赋给一个 char 型变量,只将其低 8位原封不动地送到 char 型变量(发生截断)。将 signed(有符号)型数据赋给长度相同的 unsigned(无符号)型变量,将存储单元内容原样照搬(连原有的符号位也作为数值一起传送)。
不同类型的整型数据间的赋值归根结底就是一条:按存储单元中的存储形式直接传送。2.变量可以作为左值。
而左值都可以作为右值。3.赋值表达式也可以包含复合的赋值运算符。如a+=a-=a*a也是一个赋值表达式。如果 a 的初值为 12,此赋值表达式的求解步骤如下:①先进行“a-=a*a”的运算,它相当于 a=a-a*a=12-144=-132。②再进行“a+=-132”的运算,它相当于 a=a+(-132)=-132-132=-264。2.7 逗号运算符与逗号表达式:赋值运算符的优先级别高于逗号运算符。
逗号表达式的一般形式为:表达式 1,表达式 2逗号表达式的求解过程是:先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式 2 的值。第 2 篇面向过程的程序设计第 3 章程序设计初步1.如果一个变量在函数之外进行声明,此变量是全局变量,它的有效范围是从该行开始到本程序单位结束。如果一个变量在函数内声明,此变量是局部变量,它的有效范围是从该行开始到本函数结束.。3.4.3 用 getchar 和 putchar 函数进行字符的输入和输出:1.putchar 函数的作用是向终端输出一个字符。例如putchar(c);它输出字符变量 c 的值。例 3.2 输出单个字符。#include <iostream> //或者包含头文件stdio.h: #include <stdio.h> using namespace std;int main( ){char a,b,c;a='B';b='O';c='Y';putchar(a);putchar(b);putchar(c);putchar('\n');putchar(66);putchar(79);putchar(89);putchar(10);return 0;}运行结果为BOYBOY注:用 putchar 可以输出转义字符,putchar('\n')的作用是输出一个换行符,使输出的当前位置移到下一行的开头。 putchar(66)的作用是将 66 作为 ASCII 码转换为字符输出,66 是字母'B'的 ASCII 码,因此 putchar(66)输出字母'B'。其余类似。putchar(10)中的10是换行符的ASCII 码,putchar(10)输出一个换行符,作用与 putchar('\n') 相同。2.getchar 函数没有参数,其一般形式为 getchar( )函数的值就是从输入设备得到的字符。
3.关系运算和关系表达式:关系运算符(<,<=,>,>=)的优先级别相同,(==,!=)两种也相同,前 4种高于后两种。
②关系运算符的优先级低于算术运算符。③关系运算符的优先级高于赋值运算符。例如:c>a+b 等效于 c>(a+b)a>b==c 等效于(a>b)==ca==b<c 等效于 a==(b<c)a=b>c 等效于 a=(b>c)关系表达式的值是一个逻辑值,即“真”或“假”。例如,关系表达式“5==3”的值为“假”,“5>=0”的值为“真”。。4.逻辑运算举例如下:在一个逻辑表达式中如果包含多个逻辑运算符,按以下的优先次序:(1) !(非)→ &&(与)→(或),即“!”为三者中最高的。(2) 逻辑运算符中的“&&”和“||”低于关系运算符,“!”高于算术运算符。例如:(a>b) && (x>y) 可写成 a>b && x>y(a==b) || (x==y) 可写成 a==b || x==y(!a) || (a>b)可写成 !a || a>ba &&b 若 a,b 为真,则 a && b 为真。a||b 若 a,b 之一为真,则 a||b 为真。!a 若 a 为真,则!a 为假。逻辑表达式的值是一个逻辑量“真”或“假”。在判断一个逻辑量是否为“真”时,采取的标准是: 如果其值是 0就认为是“假”,如果其值是非 0就认为是“真”。
3.7 选择结构和 if 语句{嵌套结构严格用大括号来保证严谨性}1.if 语句都是由一个入口进来,经过对“表达式”的判断(判断是否为“真”或者为“假”),分别执行相应的语句,最后归到一个共同的出口。这种形式的程序结构称为选择结构。补充知识:#include <cmath> //使用数学函数时要包含头文件cmath#include <iomanip> //使用I/O 流控制符要包含头文件iomanip 例 3.6 求三角形的面积。P85条件表达式的一般形式为:表达式 1 ? 表达式 2 ∶表达式 3条件运算符的执行顺序是:先求解表达式 1,若为非 0(真)则求解表达式 2,此时表达式 2 的值就作为整个条件表达式的值。若表达式 1 的值为 0(假),则求解表达式 3,表达式 3 的值就是整个条件表达式的值。条件运算符优先于赋值运算符。
例 3.7 输入一个字符,判别它是否为大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。P933.9 多分支选择结构和 switch 语句3.10 编写选择结构的程序例 3.8 编写程序,判断某一年是否为闰年。P100 if嵌套例 3.9 运输公司对用户计算运费。路程(s)越远,每公里运费越低。P103. switch嵌套#include <iostream>using namespace std;int main( ){int c,s;float p,w,d,f;cout<<"please enter p,w,s:";cin>>p>>w>>s;if(s>=3000) c=12;//将case语句分级使用else c=s/250;//取整操作switch (c){ case 0:d=0;break;case 1:d=2;break;case 2:case 3:d=5;break;case 4: //继续执行下一条语句case 5:case 6:case 7:d=8;break;case 8:case 9:case 10:case 11:d=10;break;case 12:d=15;break;}f=p*w*s*(1-d/100.0);//d为百分数cout<<"freight="<<f<<endl;return 0;}3.11循环结构和循环语句1.while (表达式) 语句2.do语句while (表达式);3.11.3 用 for 语句构成循环for 语句的一般格式为for(表达式 1;表达式 2;表达式 3) 语句它的执行过程如下:(1) 先求解表达式 1。(2) 求解表达式 2,若其值为真(值为非 0),则执行 for语句中指定的内嵌语句,然后执行下面第(3)步。若为假(值为 0),则结束循环,转到第(5)步。(3) 求解表达式 3。(4) 转回上面第(2)步骤继续执行。(5) 循环结束,执行 for 语句下面的一个语句。continue语句和break语句的区别是:continue语句只结束本次循环,而不是终止整个循环的执行。而 break 语句则是结束整个循环过程,不再判断执行循环的条件是否成立。例 3.12 用下面公式求π 的近似值。π/4≈1-1/3+1/5-1/7+…直到最后一项的绝对值小于 10-7为止. P129例 3.13 求 Fibonacci 数列前 40 个数。这个数列有如下特点:第 1、 2 个数为 1、 1。从第 3 个数开始,每个数是其前面两个数之和。即F1=1 (n=1)F2=1 (n=2)Fn=Fn-1+Fn-2(n≥3) P131注释:#include <iomanip>{cout<<setw(12)<<f1<<setw(12)<<f2;//设备输出字段宽度为12,每次输出两个数第 4 章函数与预处理1.主函数写得很简单,它的作用就是调用各个函数。