1、Visual C+程序设计主讲:黄霞第1页,共70页。1.1 程序设计程序设计第2页,共70页。程序的运行过程程序的运行过程第3页,共70页。1.1 程序设计语言程序设计语言第4页,共70页。高级程序设计语言高级程序设计语言第5页,共70页。第6页,共70页。C+C+程序的执行过程程序的执行过程 C+C+源程序源程序 C+C+预处理器预处理器 预处理后的源程序预处理后的源程序 C+C+编译程序编译程序 目标程序目标程序 链接程序链接程序 可执行程序可执行程序 其它目标程序和库其它目标程序和库 第7页,共70页。C+程序设计学习内容简介程序设计学习内容简介第8页,共70页。Visual C+字符
2、集与标识符字符集与标识符第9页,共70页。第10页,共70页。Visual C+程序程序第11页,共70页。Visual C+程序举例程序举例 1、2、第12页,共70页。第13页,共70页。基本的数据类型基本的数据类型第14页,共70页。常量常量第15页,共70页。/e10 .e5 1.0e3.5第16页,共70页。第17页,共70页。第18页,共70页。标识符常量标识符常量标识符常量(常量被命名为标识符)第19页,共70页。例:利用符号常量求半径为5的圆周长#第20页,共70页。例:利用符号常量求半径为5的圆周长#第21页,共70页。2.以下选项中不合法的常量是 。A第22页,共70页。变
3、量变量第23页,共70页。变量的值和变量的地址变量的值和变量的地址第24页,共70页。第25页,共70页。20 age0 xa379ef450 xa379ef49第26页,共70页。第27页,共70页。标准输入输出流标准输入输出流第28页,共70页。输入流输入流第29页,共70页。第30页,共70页。P8 例1.5第31页,共70页。输出流输出流 cout第32页,共70页。流对象的成员函数控制输出格式流对象的成员函数控制输出格式 第33页,共70页。第34页,共70页。第35页,共70页。第36页,共70页。流对象的成员函数控制输出格式流对象的成员函数控制输出格式第37页,共70页。对整数设
4、置不同进制形式输入和输出对整数设置不同进制形式输入和输出第38页,共70页。第39页,共70页。1.8 指针变量指针变量第40页,共70页。指针变量所指向的变量指针变量所指向的变量a:9p 0 x234588第41页,共70页。改错改错第42页,共70页。指针变量值和指针变量地址指针变量值和指针变量地址第43页,共70页。第44页,共70页。第45页,共70页。第46页,共70页。1.9 引用类型变量引用类型变量第47页,共70页。枚举类型是指在某一特定范围内取值的数据类型。枚举类型是指在某一特定范围内取值的数据类型。枚举类型的定义:枚举类型的定义:enum 枚举类型名枚举类型名 枚举常量枚举
5、常量1,枚举常量,枚举常量2,枚举常,枚举常量量3,,枚举常量枚举常量n;如如 enum weekdays Sun,Mon,Tue,Wed,Thu,Fri,Sat;枚举类型枚举类型注:(注:(1)每个枚举常量对应一个整型值,默认从)每个枚举常量对应一个整型值,默认从0开始递开始递增。可以为枚举常量确定一个整型值,其后的枚举常量从增。可以为枚举常量确定一个整型值,其后的枚举常量从这个确定值开始递增。这个确定值开始递增。如:如:enum weekdays Sun=4,Mon=1,Tue,Wed,Thu,Fri,Sat;第48页,共70页。定义枚举类型变量定义枚举类型变量先定义枚举类型,再定义变量
6、第49页,共70页。枚举类型变量的使用枚举类型变量的使用第50页,共70页。1.下列程序的输出结果是。第51页,共70页。自增自增+、自减、自减-运算运算第52页,共70页。算术运算符算术运算符-、+、*、/、%,其中,其中%为模运算,即求余运算为模运算,即求余运算1.当两个整数作当两个整数作/运算时,作整除运算。有实运算时,作整除运算。有实数参与的数参与的/运算为一般的除法运算。运算为一般的除法运算。3/4=0 3.0/4=0.752.运算运算%两侧必须都是整型操作数。若不是整两侧必须都是整型操作数。若不是整型数必须将操作数强制转换成整型再进行求余运型数必须将操作数强制转换成整型再进行求余运
7、算,否则出现编译错误。算,否则出现编译错误。3.作作%运算时,若操作数中有负值,求余的原运算时,若操作数中有负值,求余的原则为:先取绝对值求余数,余数取与被除数相同的则为:先取绝对值求余数,余数取与被除数相同的符号。符号。-10%3=-1 10%-3=1第53页,共70页。关系运算符关系运算符(6 个,个,、=、=、!=,运算结果:,运算结果:1=真真;0=假)假)1.当关系表达式成立时,关系表达式的结果为当关系表达式成立时,关系表达式的结果为1,否则,否则为为0。例:有a=4,b=3,c=2,求表达式abc的值?解:abc的值相当于(ab)c,而ab的值为1,即再求 1c,最后表达式的值为0
8、。2.不要混淆赋值运算符不要混淆赋值运算符“=”和比较运算符和比较运算符“=”。例:int a=0,b=1,c=2;couta=bendl;a=b;couta=bendl;第54页,共70页。逻辑运算优先级别为:!&|高高低低 注:在逻辑运算过程中不等于零即认为是真,可参与逻辑运算,但运算最后的结果真为1,假为0.!非零值非零值=0 !0=1 非零值非零值&非零值非零值=1 非零值非零值&0=0 0|0=0 非零值非零值|0=1 0|非零值非零值=1例:!5 (22)第55页,共70页。赋值运算符赋值运算符变量=表达式;赋值语句(变量=表达式)赋值表达式 1 变量被赋值。2 表达式本身的值,为
9、被赋的值。如:(a=3)/区别于(a=3)int a=b=c=5;/b,c 没有定义 b=a+3=c;/第56页,共70页。第57页,共70页。逗号表达式用逗号运算符连接起来的表达式。一般形式:一般形式:,即按从左到右的顺序依次求出各表达式的值,并把最后一个表达式的值作为整个逗号表达式的值。例:例:设b=2,c=3,d=4,则下列逗号表达式 如:(a=5+5,b=b*b+c,d=d*a+b)的值为47 y=x=(a=3,6*3)结果: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 第58页,共70页。sizeof()运
10、算符运算符sizeof(数据类型):数据类型占用的字节数sizeof(表达式):表达式的值所占用的字节数 如:sizeof(double)8 sizeof(char)1 sizeof(a)1 sizeof(a+b)4 sizeof(a+5)4第59页,共70页。第60页,共70页。第61页,共70页。赋值运算符与赋值表达式赋值运算符与赋值表达式逗号运算符与逗号表达式逗号运算符与逗号表达式逻辑运算符与逻辑表达式逻辑运算符与逻辑表达式算术运算符与算术表达式算术运算符与算术表达式优先级别优先级别低低高高关系运算符与关系表达式关系运算符与关系表达式单目运算单目运算第62页,共70页。逻辑表达式优化的副
11、作用逻辑表达式优化的副作用 即指在求逻辑表达式时,从左至右,若表达即指在求逻辑表达式时,从左至右,若表达式某部分值可直接确定整个逻辑表达式的值,则式某部分值可直接确定整个逻辑表达式的值,则其后的运算不再进行。其后的运算不再进行。已知已知 int a=0int a=0,b=2,c=3,d;b=2,c=3,d;求求 d=a&b+&+cd=a&b+&+c 的值。的值。因为因为a a为为0,0,则不必进行则不必进行b+b+、+c+c的运算,就可得的运算,就可得整个逻辑表达式的值为整个逻辑表达式的值为0 0,变量,变量b,cb,c都没有作自加都没有作自加运算,赋值运算最后进行,运算,赋值运算最后进行,d
12、=0d=0。另请自行阅读另请自行阅读P17的例的例1.12第63页,共70页。6.第64页,共70页。表达式的书写要求表达式的书写要求第65页,共70页。类型转换的方式有两种:一种是隐式类型转换,一种是强制转换。不同类型数据的混合运算和赋值时要求类型转换第66页,共70页。例例2:A+32+7.23*6-5/3第67页,共70页。第68页,共70页。强制类型运算 (单目运算)形式形式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第69页,共70页。typedef 语句语句第70页,共70页。