高级语言程序设计(C++)(AdvancedLanguageProgramming(C++))华北电力大学Information&NetworkManagementCenterofNorthChinaElectricPowerUniversity信息与网络管理中心张锋奇考核方式:笔试+上机第一讲•概述C++语言第一个C++程序程序设计语言•第一章C语言基础赋值表达式逗号表达式算术表达式数据类型程序设计语言1.程序设计语言机器语言例如:A=10,B=4,求A+B的值。001111100000101000000110000001001000000001110110LDA,0AHLDB,04HADDA,BHALTmain(){inta,b;a=10,b=4;c=a+b;printf(“%d”,c);}用0、1代码表示的指令。汇编语言执行速度快难记忆、不通用用助记符表示的指令。不通用便于记忆类似自然语言和数学语言FORTRANVisualC++高级语言语言处理程序2.语言处理程序0011111000001010LDA,0AHLDB,04HA=10B=4...目的程序汇编语言源程序00000110汇编程序高级语言源程序源程序结果解释程序源程序目的程序可执行程序结果编译程序连接程序......解释方式编译方式C++的发展历史•C语言1972年至1973年期间,DennisRitchie在B语言的基础上开发出来的,取名为C语言。设计C语言的最初目的是编写操作系统。由于其简洁、灵活的特点,C语言很快就被用于编写各种不同类型的程序,从而成为世界上最流行的语言之一。C语言的主要特点:(1)语言简洁、灵活。(2)有丰富的运算符和数据类型。(3)支持结构化程序设计。(4)C语言既具备高级语言的结构和编程环境,又提供类似于汇编语言那样的系统资源操纵能力及程序执行效率。适合解决有实时要求的问题。C++的发展历史C++:为C语言的超集,C++继承了C的所有优点,又对数据类型做了扩充。C++支持面向对象程序设计,通过类和对象的概念把数据和对数据的操作封装在一起,通过派生、继承、重载和多态性等特征实现了软件重用,使得大型复杂软件的构造和维护变得更加有效和容易。C++与C完全兼容,很多用C编写的库函数和应用程序都可以为C++所用。但正是由于与C兼容,使得C++不是纯面向对象的语言,它既支持面向对象程序设计,也支持面向过程设计。但我们应当注意用面向对象的思想进行设计,以发挥出C++的优势。C++的发展历史第一个C++程序例2.1第一个C++程序,在屏幕上输出“Hello,world!”。#includeiostream.hvoidmain(){coutHello,world!;}•算法解决问题的步骤打印“Hello,world!”•程序(code或programming)解决问题的某种语言的指令序列怎么做?具体实施?第一个C++程序#includeiostream.hvoidmain(){coutHello,world!;}/*程序文件名为EX1_6.cpp*/注释(概括性)注释•编程目的-计算机看得懂-自己和别人看得懂//输入输出包含头文件//主函数,程序入口//函数体开始//函数体结束缩进c++程序的组成:•编译预处理指令•程序体•注释Hello,world!C++语法•c++语言程序初步分析–一行可以写若干语句,一条语句可写在多行上–单词应连续书写,中间不可加空格–每一条C++语句由“;”结束–区分大小写建议一行只写一条语句,采用缩进作业请参照本章例题,编写一个C程序,输出以下信息:******************************Verygood!******************************字符集26个小写字母abcdefghijklmnopqrstuvwxyz26个大写字母ABCDEFGHIJKLMNOPQRSTUVWXYZ10个阿拉伯数字0123456789其他符号+-*/=,._:;?\'~|!#%&()[]{}^空格符号+语法规则关键字数据类型说明符与修饰符boolcharwchar_tclassconstdoubleenumfloatintlongshortsignedstructunionunsignedvoidvolatile存储类型说明符autoexterninlineregisterstatic访问说明符friendprivateprotectedpublic其它说明符asmoperatortemplatethistypedefvirtual语句与标号breakcasecatchcontinuedefaultdoelseforgotoifreturnswitchthrowtrywhile运算符及逻辑值deletefalsenewsizeoftrueC++预定义的标志符Aaa111a没意义标识符•程序员声明的字符序论,用于命名程序中的一些实体:变量、函数、类名、对象名等。•c++标识符构成规则:–合法标识符由字母或下划线开始–由字母、数字、下划线组成–大小写有区别–不能是c++关键字整型常量•定义•类型–其值不变,即常数例如:•写法:–十进制–八进制–十六进制20//十进制024//八进制数以0开头0x14//十六进制数以0x开头135L//longint135U//unsignedint135UL//unsignedlongint135LU//unsignedlongint–缺省:int–后+L或l表示longint–后+U或u表示unsigned…例如:实型常量•通常意义的实数•写法–十进制形式:12.345–科学计数法:1.2345E+1(0.12345e+2)•类型–缺省double–后+F或f表示float–后+L或l表示longdouble3.14159//double3.14159F//float3.14159L//longdouble字符型常量•字符型数据–字符常量:用’括起来的一个字符.–转义字符:用‘\’开头的字符.如:‘\n’是“换行”符–字符串常量:用”括起来的字符序列.a如:hello,c!CHINA‘a’与“a”是有区别的!…a\0…a西文字符表示ASCII码(美国标准信息交换码)七位二进制码表示,共表示128个字符,查书12页A:1000001(:0101000?:01111110000表示A1111表示A标准转义字符名称符号空字符(null)\0换行(newline)\n换页(formfeed)\f回车(carriagereturn)\r退格(backspace)\b响铃(bell)\a水平制表(horizontaltab)\t垂直制表(verticaltab)\v反斜线(backslash)\\问号(questionmark)\?单引号(singlequote)\’双引号(doublequote)\”符号常量•符号常量:#define符号常量名字符串•格式:例如:#definePI3.14.5926;注意:符号常量在定义时一定要赋初值,而在程序中不能改变其值例如:#definePI3.14PI=3.14.5926;变量•定义类型的定义–其值可变•变量名(标识符)英文字母、数字和下划线。必须以字母或下划线开头。例如:sum,n_4,_123,#av•类型–整型、实性型、字符型int整型float实型char字符型short短整型long长整型double双精度型unsinedlong无符号长整型•建议–变量名一般用小写字母(index)–标识符一般使用助记名字(on_loan,salary)–对于多个词构成的标识符,习惯上在每个词之间加_或内嵌的每个词第一字母大写(student_loan,studentLoan)变量•格式类型变量1[,变量2]…[,变量n];例如:intx,y;shortsum;intpr=10;floatx,y;doublesum;floatpr=10.0;注意:变量必须先定义后使用•变量的初始化在定义时为变量提供数值例:两种形式inti=10;inti(10);doubled(1.0);doubled=1.2;如:inta=10,b=4,c;acb104常变量•常变量:const类型变量名=常量;•格式:例如:constfloatPI=3.14.5926;注意:常变量在定义时一定要赋初值,而在程序中不能改变其值例如:constfloatPI;PI=3.14.5926;自增、自减运算符举例例如:i=1;couti++;//首先输出i的值,然后i=i+1cout++i;//首先i=i+1,然后输出i的值12结果:结果: