第一章VC程序设计入门.ppt

上传人:本田雅阁 文档编号:2254541 上传时间:2019-03-11 格式:PPT 页数:70 大小:445.51KB
返回 下载 相关 举报
第一章VC程序设计入门.ppt_第1页
第1页 / 共70页
第一章VC程序设计入门.ppt_第2页
第2页 / 共70页
第一章VC程序设计入门.ppt_第3页
第3页 / 共70页
亲,该文档总共70页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第一章VC程序设计入门.ppt》由会员分享,可在线阅读,更多相关《第一章VC程序设计入门.ppt(70页珍藏版)》请在三一文库上搜索。

1、Visual C+程序设计,主讲:黄霞,1.1 程序设计,程序设计:指设计、编制、调试程序的方法和过程。 程序设计实质是对所需解决的问题,设计好算法和相应的数据结构,再利用程序设计语言将设计好的算法和数据结构编写为程序,再反复进行调试、修改,一直到正确运行的过程。 基本要求:正确、可读、可理解、可维护,程序的运行过程,源程序需要保存在硬盘中, 运行时先要读入内存, 为其数据和代码分配相应的内存空间,数据存放在内存数据区中,代码在内存代码区中存为一连串的指令,CPU取出一条条的指令执行,并将运算的结果保存到内存中。,1.1 程序设计语言,程序设计语言:是指人与计算机交流的语言。 分类: 机器语言

2、(二进制代码表示的语言,直接执行) 汇编语言(助记符表示的语言,编译后执行) 高级语言(与自然语言较接近的语言,较易学习,需要编译及连接后执行,如C, Java, Visual C+等),高级程序设计语言,高级程序设计语言有严格的语法规则,否则不能通过编译。 程序设计语言的基本成分: 数据成分:指数据描述,如整型、实型、数组等 控制成分:指控制流程,如顺序、条件、循环 运算成分:指数据运算,如算术、关系及逻辑运算 传输成分:指数据的输入和输出操作。,程序设计语言是表达软件的工具,C+是一种高级程序设计语言,用其编写的程序必须先编译成机器语言表示的目标程序,计算机才能运行。 使用可视化集成开发工

3、具Visual C+, 来编写C+源程序, 编译、调试正确后直接运行。,C+程序的执行过程,C+程序设计学习内容简介,C+程序设计语言本身的语法知识 基本的典型算法(在程序学习过程中积累) 面向对象程序设计方面的基本知识,Visual C+字符集与标识符,Visual C+字符集:所有组成C+语句的字符集合, 严格区分大小写。 关键字:被C+作为程序语句中有特定意义的保留字。如:void 、int、char、main 标识符:可以用来命名的符号 以字母和下划线开头的字母、数字及下划线的组合。如 合法:_a2, b33 不合法:3d, dd.d 不能用关键字。如 合法:Void 不合法:void

4、,1. 下列标识符中,合法的标识符为 。 A 7Ab B main C a3.b+ D _12b3,Visual C+程序,任一个C+程序都是从main主函数开始执行,一直执行到主函数结束。 在main主函数中调用其他自定义的函数或库函数。 库函数:是系统定义的函数,在程序中包含相应的头文件后,可以直接使用库函数。,Visual C+程序举例,1、void main(void) /此函数体为空 /* The program is very simple. These are all explanation . */ 2、#include /编译预处理命令 void main( ) /函数头定义

5、 /函数体开始 cout“ Hello World! ”; /程序语句 /函数体结束,#include #include void main( ) cout“-4绝对值的平方根为:”sqrt(fabs(-4); 运行输出: -4绝对值的平方根为:2,基本的数据类型,程序中用到的数据必须指明数据类型 可以明确该数据所占用的存储空间 可以规定该数据所能执行的操作和运算 基本数据类型(存储字节数决定取值范围和精度) char(1B)、short int (2B)、 int(4B) 、 long int (4B)、 unsigned int float (4B)、double (8B) void,常量

6、,常量分为字面常量(值常量)和标识符常量。 字面常量分为整型常量、实型常量、字符型常量和字符串常量。 整型常量可分别用十进制、八进制(以0开头0-7),十六进制(以0X(x)开头0-F)来表示。 如: 075, 0xA8E 后缀表示长整型,后缀表示无符号,实型常量系统默认为double双精度类型,只有后面加上f后,才被认为float单精度类型。 3.14 3.14f 实型常量可用十进制小数形式(由数字和小数点组成)和指数形式(也称科学记数法,E或e前必须有数字,其后必须是整数) 如: 合法:0.13 .25 -78. 0.23e3 / e10 .e5 1.0e3.5,字符型常量: 1. 表示为

7、单引号括起的单个字符 a。 2. 用单引号括起的转义序列(以转义符开始,后跟一个字符或一个0-255之间的整型常量(可用八进制ddd 或十六进制xdd 整数)表示。 如: n :表示换行;t : 表示水平制表符; , , ,转义为原来的标点符号本身; 032, 101, x41, x22 :表示相应ASCII码值代表的字符。,字符串常量:用双引号括起来的若干个字符. “A” , “1234”, “student” a 与 ”a” 不同 字符串常量存储方式: 字符串常量在计算机中按顺序存放字符串中的字符,每个字节对应存放一个字符的ASCII码,系统会自动在末尾加上一个字符串结束符标志0, 其AS

8、CII码值为0。 字符串常量的存储容量=(字符串中的字符个数+1)B,标识符常量,标识符常量(常量被命名为标识符) 使用编译预处理define #define pi 3.1415 /预处理命令 使用常量说明符const const float pi = 3.1415; /程序语句,例:利用符号常量求半径为5的圆周长 #include “iostream.h” #define PI 3.14159 void main () const int R=5; cout“半径为5的圆周长:”2*PI*Rendl; /输出:半径为5的圆周长:31.4159,例:利用符号常量求半径为5的圆周长 #inclu

9、de “iostream.h” #define PI 3.14159; void main () const int R=5; cout“半径为5的圆周长:”2*PI*Rendl; /编译出错在输出行。,2. 以下选项中不合法的常量是 。 Aa B. 068 C. “ab0cd” D. 224L 3. 以下常量表示中不正确的是 。 A55 B. 55 C. x55 D. 0x55 4. 设有四个: (1)4e0.5 (2)87 (3)0X54 (4) “” 其中的合法的常量是 。 A(1)(2) B. (2)(4) C. (3)(4) D. (1)(3),变量,变量:保存某种类型的值并可以被修

10、改的量。 变量的定义: 数据类型 变量名; int a; 变量定义同时初始化 数据类型 变量名=初值; int b1=2; int c1(5); /相当于c1=5 float b2, c2; /可同时定义同一类型的多个变量 变量必须先定义,再被初始化才能被使用。 int d=a1+2; /变量a1未被定义,不能直接使用 int a1 ; int d=a1+2; /语法错误a1的值并未确定。 int a1=1; int d=a1+2; /ok,变量的值和变量的地址,定义一个变量后,运行时系统会给变量分配相应的内存单元块,保存变量的值。如int a=5; 变量的值可以随时被改变,保存最后一次被修改

11、的值。 变量的地址是指分给变量的内存单元块的首字节地址,变量定义后,变量地址就定了。 &a / 变量a的地址,&指取变量的地址符 变量一般可以通过变量名来访问变量的值,也可以通过变量的地址来访问变量的值。,#include void main( ) int age =19; cout“age的值为”age; cout“age的地址为” /输出的地址为十六进制整数,以0x开头,20,age,0xa379ef45,0xa379ef49,#include void main( ) float b(3.0f); /注常量实数默认为double类型 double c(5.5); cout“b的值为”b“

12、b的地址为” ,标准输入输出流,使用标准输入输出流进行输入输出,必须包含标准输入输出流的头文件。 # include /文件包含预处理命令 标准输入流cin 对应键盘输入。 cin变量1变量2; 使用提取运算符,用键盘输入值给变量 标准输出流cout 对显示器输出。 cout表达式1表达式2; 使用插入运算符, 将表达式值在显示器中输出,输入流,cin变量名1变量名2; /只能对变量输值 /从键盘输入数值给相应数据类型的变量。 int a ;double b; cin ab;/输入的值之间用空格或回车键作为间隔, 可输入 :3 4.5 回车 cin.get(字符变量名); 一次只能对一个字符变

13、量输值,包括空格或换行字符也作为输入值。,char a, b; cin.get(a); cin.get(b); 输入:3 4 即:a=3 b= char a, b; cinab; 输入:3 4 即:a=3 b=4 注: 当程序运行到输入语句时,程序运行光标会停下闪烁,等待输入值。一次性输入所有值后回车,输入值全部存入缓冲区,再分别取出给相应变量赋值。,P8 例1.5 #include void main() int a; char b; float c; cinabc; couta“ “b“ “cendl; 输入 1.2 3.4 5.6 输出 1 . 2,输出流 cout,cout表达式1 表

14、达式2 表达式3; 将各表达式的值按相应格式显示输出。 cout表达式1 t表达式2 endl; 注1:输出流的表达式可以是变量、含变量或常量的表达式,分别输出相应变量的值,或表达式的值。 注2:t :按制表位输出。 n 或 endl :指换行输出。,流对象的成员函数控制输出格式,系统默认输出小数形式,是六位有效数字,最后一位有效数字由其后面位四舍五入得到。 系统对小数位为的,只输出整数位。,#include void main() double a=0.444444778888; coutaendl; 输出0.444445,#include void main() double a = 21

15、.444444778888; coutaendl; /输出: 21.4444,#include void main() double a = 21.0000; coutaendl; /输出:21,流对象的成员函数控制输出格式,cout.setf(ios:fixed) /设置小数形式输出固定位数格式,默认6位小数位数 cout 头文件。 自行阅读例1.7和例1.8,对整数设置不同进制形式输入和输出,输入输出默认进制为十进制,串上oct表示后面的相应数据项改为八进制, 串上hex表示改为十六进制,串上dec表示改回十进制。 输入与输出是分开设置的,无论输入输出设置了一直会保持这种进制到下一次改变。

16、,#include void main() int a,b,c; cinahexbc; couta“ “b“ “hexcendl; couta“ “octb“ “cendl; 输入: 11 12 1A 输出: 11 18 1a b 22 32,1.8 指针变量,指针:变量的地址 指针变量: 存储其他变量地址(指针)的变量. 指针变量的定义: 数据类型 * 指针变量名; int *p; int b=5; p=,指针变量所指向的变量,变量一般直接通过变量名来访问,变量也可以通过指针变量来访问,如果指针变量保存了某个变量的地址,即表示指针变量指向了这个变量,则可通过指针变量来访问其所指向的变量。 利

17、用取内容运算符 * 指针变量名,来表示指针变量所指向的变量。 int a=5; int *p=,a: 9,p 0x234588,改错,int a=3; int * p1;*p1=,指针变量值和指针变量地址,指针变量值表示这个指针变量所保存的那个变量的地址。 指针变量地址表示这个指针变量本身被分配的内存单元地址。 指针变量所指向的变量的值即表示指针变量所指向的内存单元的值。 int a=50; int *p=,改错: #include void main() int a, b,c,d; cinabd; c=a*a+b*b+d*d; cout“c=”tcendl; ,编程: #include vo

18、id main( ) int a, b, c, d; cinabd; c=a*a+b*b+d*d; cout“area=”cendl; ,编程: #includ void main( ) int a, b, d; cinabd; cout“area=”a*a+b*b+d*dend; ,1.9 引用类型变量,引用类型变量: 可作为变量的一个别名。 定义:数据类型 /10 10,枚举类型是指在某一特定范围内取值的数据类型。 枚举类型的定义: enum 枚举类型名 枚举常量1,枚举常量2,枚举常量3,,枚举常量n; 如 enum weekdays Sun,Mon,Tue, Wed, Thu, Fri

19、, Sat;,枚举类型,注:(1)每个枚举常量对应一个整型值,默认从0开始递增。可以为枚举常量确定一个整型值,其后的枚举常量从这个确定值开始递增。 如:enum weekdays Sun=4, Mon=1,Tue, Wed, Thu, Fri, Sat;,定义枚举类型变量,先定义枚举类型,再定义变量 enum color red, yellow, blue,green ; color a=red, b; 定义枚举类型,同时定义变量。 enum color red, yellow, blue,green a, b; 不指明枚举类型名,直接定义变量。 enum red, yellow, blue,

20、green a, b;,枚举类型变量的使用,枚举类型变量可以用枚举量表中的枚举常量赋值,相同枚举类型变量之间也可以赋值。 枚举类型变量不能从键盘直接输入值,但可以输出枚举类型变量,输出的是其对应的整数值。 enum color red, yellow, blue, green ; color a=red; color b; b=a; a=blue; coutatbendl; /输出:2 0,1. 下列程序的输出结果是 。 #include enum weekdays Sun,Mon=2,Tue,Wed=Tue+5,Thu,Fri; void main( ) weekdays a=Sun, c=

21、Fri,d=a; couta,c,dendl; /输出 0,10,0,自增+、自减-运算,后置自增 变量+ ,先取变量参与运算,再将变量的值加1。 前置自增 +变量 ,先将变量的值加1,再将变量参与运算。 int i =5, j; j=i+; / j=5 i=6 int i =5, j; j=+i; / i=6 j=6 int i=5, j; j=i-; / j=5 i=4 int i=5,j; j=-i; / j=4 i=4,-、+、*、/、%,其中%为模运算,即求余运算,1. 当两个整数作/运算时,作整除运算。有实数参与的/运算为一般的除法运算。 3/4=0 3.0/4=0.75 2. 运

22、算%两侧必须都是整型操作数。若不是整型数必须将操作数强制转换成整型再进行求余运算,否则出现编译错误。 3. 作%运算时,若操作数中有负值,求余的原则为:先取绝对值求余数,余数取与被除数相同的符号。 -10%3=-1 10%-3=1,关系运算符 (6 个,、=、= =、 !=,运算结果:1=真; 0=假),1.当关系表达式成立时,关系表达式的结果为1,否则为0。 例:有a=4,b=3,c=2,求表达式abc的值? 解:abc的值相当于(ab)c,而ab的值为1,即再求 1c,最后表达式的值为0。 2.不要混淆赋值运算符“=”和比较运算符“=”。 例:int a=0,b=1,c=2; couta=

23、bendl; a=b; couta=bendl;,逻辑运算优先级别为: ! & |,高,低,注:在逻辑运算过程中不等于零即认为是真,可参与逻辑运算,但运算最后的结果真为1,假为0. ! 非零值=0 !0=1 非零值&非零值=1 非零值&0= 0 0|0=0 非零值|0=1 0|非零值=1 例: !5 (22),赋值运算符,变量=表达式; 赋值语句 (变量=表达式) 赋值表达式 1 变量被赋值。 2 表达式本身的值,为被赋的值。 如:(a=3 ) / 区别于(a=3) int a=b=c=5;/ b,c 没有定义 b=a+3=c; /错 a+3不是变量,不能被赋值,常用复合赋值运算符,二元算术运

24、算符与赋值运算符组合成的运算符称为复合赋值运算符。+=(加等)、-=、*=、/=、%=(求余等)、&=(与等)、=(异或等)、|=(或等)。 复合赋值运算:变量与赋值运算符右边的表达式参与运算后的值,重新赋给这个变量。 如:a+=b+=a*=b+5 从右到左, a*=b+5相当于a=a*(b+5) b=b+a a=a+b,用逗号运算符连接起来的表达式。 一般形式:, 即按从左到右的顺序依次求出各表达式的值,并把最后一个表达式的值作为整个逗号表达式的值。,例:设b=2,c=3,d=4,则下列逗号表达式 如:( a=5+5,b=b*b+c,d=d*a+b) 的值为47 y=x=(a=3,6*3)

25、结果:x=y=18,a=3 (y=x=a=3,6*3) 结果:x=y=a=3 y=(x=a=3,6*3) 结果:x=a=3,y=18,sizeof()运算符,sizeof(数据类型):数据类型占用的字节数 sizeof(表达式):表达式的值所占用的字节数 如: sizeof(double) 8 sizeof(char) 1 sizeof(a) 1 sizeof(a+b) 4 sizeof(a+5) 4,int k=11; k=1/3*k+; 后 k的值为多少?,2. int x, y ; float a, b ; 数学式2x/(3ab),在C+程序中对应的正确表达式是 。 A2/3*x/a/b

26、 B. 2*x/3/a/b C. 2*x/3*a*b D. 2/a/b/3*x,赋值运算符与赋值表达式,逗号运算符与逗号表达式,逻辑运算符与逻辑表达式,算术运算符与算术表达式,低,高,关系运算符与关系表达式,单目运算,逻辑表达式优化的副作用 即指在求逻辑表达式时,从左至右,若表达式某部分值可直接确定整个逻辑表达式的值,则其后的运算不再进行。 已知 int a=0,b=2, c=3 , d; 求 d= a&b+&+c 的值。 因为a为0,则不必进行b+、+c的运算,就可得整个逻辑表达式的值为0,变量b,c都没有作自加运算,赋值运算最后进行,d=0。 另请自行阅读P17的例1.12,6. 设有说明

27、”int a ,b , c ; a = b =c=5 ; 执行语句 “ b += +ab|+cb; ” , 则a, b, c的值分别是 。 A6,7,6 B. 6, 5, 5 C. 6, 6, 5 D. 6, 1, 6 7. 设有说明 “int a =3, b =5, m” , 则表达式 “m=a/b&a+” 的值为 。 A0 B. 1 C. false D. true,表达式的书写要求,表达式:指由变量、常量、运算符、函数、圆括号按一定规则组成的式子。 表达式书写规则: 1. 出现的括号只能用圆括号 2. 乘号*不能省略 3. 除号/只作除号,不能作为表示分子除以分母的分数号 看书上P18的

28、示例。,类型转换的方式有两种:一种是隐式类型转换,一种是强制转换。,1.隐式类型转换主要分为两类: (1)算术转换 不同类型的进行算术运算,小的向大的转换. (2)赋值转换 右边的向左边的类型转换.,例2:A + 32 + 7.23 * 6 - 5 / 3,int,int,double,double,运算结果的类型为:,例1: a+3=100/进行了隐式类型转换,(1) double y=3.45678; int x; 用以下的表达式可以对y中数值保留小数点后2位四舍五入; x=y*100+0.5, y=x/100.0; (2) int x ,double y=5.4; x=y;,强制类型运算

29、 (单目运算),形式1 : (数据类型) 表达式 只对数据类型后的一个数据项,作强制类型转换 如: double i=5.8; couti/3.0n; 1.93333 cout(int)i/3.0; 1.66667 couti; 5.8 /只改变运算操作数的类型, /变量本身数据类型没改变。 形式2: 数据类型 (表达式)或 (数据类型) (表达式) 对表达式整个的结果值进行强制类型转换 double i=5.8; coutint(i/3.0); 1 couti; 5.8,typedef 语句,typedef 数据类型 新的数据数型名; 用来定义一种已存在数据类型的别名;可以同样用来定义这种数据类型的变量。 typedef int INT; INT x, y; /相当于 int x, y;,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1