Chap1_C基础2012.ppt

上传人:gsy****95 文档编号:88521655 上传时间:2023-04-26 格式:PPT 页数:101 大小:843KB
返回 下载 相关 举报
Chap1_C基础2012.ppt_第1页
第1页 / 共101页
Chap1_C基础2012.ppt_第2页
第2页 / 共101页
点击查看更多>>
资源描述

《Chap1_C基础2012.ppt》由会员分享,可在线阅读,更多相关《Chap1_C基础2012.ppt(101页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Visual C+程序设计与软件技术基础计算机科学与软件学院计算机科学与软件学院 史巧硕史巧硕教学说明教学说明n主要内容主要内容C+基础基础C+面向对象程序设计面向对象程序设计*VC*n学时:学时:60(30上课上课+30上机)上机)n上机安排上机安排南院南院9教教-701,703,705 上机卡上机卡从第三周开始从第三周开始n考试考试闭卷笔试闭卷笔试题型:运行结果、改错、程序填空、编程题型:运行结果、改错、程序填空、编程学时安排n总共:总共:60学时学时n讲课:讲课:30学时(学时(24,617周)周)4+6+4+1n上机:上机:30学时(学时(34,618周)周)C基础基础n基本语法三种基

2、本结构数组指针n函数n结构体Part I C+基本语法基本语法一、程序设计方法及一、程序设计方法及C+程序程序二、二、VC调试环境调试环境三、词法与数据类型三、词法与数据类型四、运算符与表达式四、运算符与表达式五、输入输出五、输入输出六、流程控制语句六、流程控制语句七、数组七、数组八、指针与引用八、指针与引用一一.程序设计方法及程序设计方法及C+程序程序n面向过程程序设计(面向过程程序设计(Procedural Programming)方法是结构化的程序设计方方法是结构化的程序设计方法。法。n面向对象程序设计(面向对象程序设计(OOP-Object Oriented Programming)方

3、法是目前程序设计的主流方法是目前程序设计的主流方法。方法。n面向过程与面向对象并不是矛盾的面向过程与面向对象并不是矛盾的,而是各有而是各有用途用途,互为补充的互为补充的.1.面向过程程序设计方法n程序程序=算法算法+数据结构数据结构n编程机制:编程机制:编写程序的首要目标是首先定义所编写程序的首要目标是首先定义所要要实现的功能实现的功能,然后设计为这些功能所,然后设计为这些功能所必须采取的必须采取的步骤(或过程)步骤(或过程)。将解决问题的重点放在如何实。将解决问题的重点放在如何实现过程的细节方面,将数据与操作这些数据的函现过程的细节方面,将数据与操作这些数据的函数分开,围绕功能实现或操作流程

4、来设计程序。数分开,围绕功能实现或操作流程来设计程序。n编程采用自顶向下(瀑布式的流程),逐步求精编程采用自顶向下(瀑布式的流程),逐步求精的方法来组织程序的结构的方法来组织程序的结构功能分解法。功能分解法。例:计算两数之和(使用面向过程方法)n功能:计算两数之和功能:计算两数之和n设计流程(功能分解、逐步求精):设计流程(功能分解、逐步求精):提示输入第一个数和第二个数;提示输入第一个数和第二个数;计算两数之和;计算两数之和;显示出总和值。显示出总和值。#include iostream.hint add(int a,int b)/操作的方法操作的方法return a+b;void main

5、()int x,y,sum;/操作的数据操作的数据cinxy;sum=add(x,y);coutsumendl;n缺点:由于数据与操作这些数缺点:由于数据与操作这些数据的代码(函数)两者相分离,据的代码(函数)两者相分离,一旦问题(数据)改变,程序一旦问题(数据)改变,程序员则需要改写或重新编写新的员则需要改写或重新编写新的解决方法(功能函数);只能解决方法(功能函数);只能以函数的方式实现代码重用,以函数的方式实现代码重用,效率低,是手工作坊式的编程效率低,是手工作坊式的编程模式。模式。n一般适用于中小型的程序设计一般适用于中小型的程序设计及编程应用。及编程应用。2.面向对象程序设计方法n程

6、序程序=对象对象+对象对象+对象对象 对象对象=算法算法+数据结构数据结构n将自然界看作由一组彼此相关并能相互通信的实将自然界看作由一组彼此相关并能相互通信的实体(体(Object,“对象对象”)所组成的。)所组成的。n根据所要解决的问题的各个相关性转化为程序中根据所要解决的问题的各个相关性转化为程序中的各个类相关性,然后将每个类具体化产生出对的各个类相关性,然后将每个类具体化产生出对应的问题对象,以应的问题对象,以消息传递的机制消息传递的机制来组织对象之来组织对象之间的相互作用。间的相互作用。n程序的组成程序的组成对象对象+消息消息,对象与对象之间通,对象与对象之间通过消息作为连接相互驱动。

7、对象(问题)之间的过消息作为连接相互驱动。对象(问题)之间的关系是编程关心的重点,而对象(问题)的功能关系是编程关心的重点,而对象(问题)的功能实现过程则处于次要的地位。实现过程则处于次要的地位。#include iostream.hclass AddClasspublic:void Add(int x,int y)sum=x+y;void Add(float x,float y)sumf=x+y;void printSum(int flag)coutTotal Sum=sumendl;void printSum(float flag)coutTotal Sum=sumfendl;privat

8、e:int sum;float sumf;void main()AddClass addObj;/定义出一个对象(它代表所要解决的问题定义出一个对象(它代表所要解决的问题“1+2=?”)addObj.Add(1,2);/向此问题的对象发送一条向此问题的对象发送一条“累加累加”的消息同时附带二个消息参数的消息同时附带二个消息参数addObj.Add(3.4f,5.6f);addObj.printSum(1);/再向此问题的对象发送一条再向此问题的对象发送一条“显示总和显示总和”的消息的消息addObj.printSum(1.0f);计算两数之和(面向对象方法)计算两数之和(面向对象方法)计算两数

9、之和(面向对象方法)计算两数之和(面向对象方法)定义出一个定义出一个“加加”类类描描述述出出各各种种类类型型的的数数相相加操作;加操作;将将此此类类(实实例例化化)具具体体化化定定义义出出一一个个对对象象(本本次次计算的问题);计算的问题);向对象发送一条消息向对象发送一条消息将将二二数数相相加加并并发发送送消消息息参数;参数;再再向向对对象象发发送送一一条条消消息息显示出总和值。显示出总和值。3.从从C到到C+n1960年出现了一种面向问题的高级语言年出现了一种面向问题的高级语言ALGOL 60。n1963年英国剑桥大学推出了年英国剑桥大学推出了CPL(Combined Programmin

10、g Language)语言,后来简化为语言,后来简化为BCPL语言。语言。n1970年美国贝尔实验室的年美国贝尔实验室的K.Thompson以以BCPL语言为基础,语言为基础,设计了类似设计了类似BCPL的语言,取第一字母的语言,取第一字母B,称为称为B语言语言。n1972年美国年美国贝尔实验室的贝尔实验室的Dennis M.Ritchie为克服为克服B语言的语言的诸多不足,在诸多不足,在B语言基础上重新设计了一种语言,取其第二语言基础上重新设计了一种语言,取其第二字母字母C,故称为故称为C语言语言。n1980年贝尔实验室的年贝尔实验室的Bjarne Stroustrup对对C语言进行了扩充,

11、语言进行了扩充,推出了推出了“带类的带类的C”,多次修改后起名为多次修改后起名为C+。以后又经过不以后又经过不断的改进,发展成为今天的断的改进,发展成为今天的C+。C+nC+从从C发发展展而而来来,C+语语言言保保留留了了C语语言言的的全全部部内内容容,并并在在C语语言言的的基基础础之之上上增增加加了了面面向对象编程的内容向对象编程的内容.nC+既既支支持持面面向向过过程程的的程程序序设设计计,又又支支持持新新型型的的面面向向对对象象程程序序设设计计,因因此此不不是是纯纯粹粹的的面面向对象程序设计语言。向对象程序设计语言。4.C+程序的编写与实现程序的编写与实现编辑编辑-编译编译-链接链接-运

12、行运行n编编辑辑(edit):把把C+源源程程序序(source program)通通过过编编辑辑器器输输入入计计算算机机,并并存存盘。盘。C+源文件的扩展名为源文件的扩展名为.CPP(C plus plus 的缩写)的缩写)。n编编译译(compile):将将编编辑辑好好的的C+源源程程序序通通过过编编译译器器(compiler)转转换换为为二二进进制的目标程序制的目标程序(object program),目标程序的扩展名为目标程序的扩展名为.OBJ文件。文件。编译是以源程序为单位分别编译的编译是以源程序为单位分别编译的,若有多个源文件若有多个源文件,则编译成多个目标程序则编译成多个目标程序

13、.编译的作用是对程序进行词法检查和语法检查编译的作用是对程序进行词法检查和语法检查.编编译译系系统统给给出出两两种种出出错错信信息息:错错误误(error)和和警警告告(warning).有有错错误误则则不不能能生生成成目目标文件标文件.必须改正后重新编译必须改正后重新编译.n链链接接(link):将将用用户户程程序序生生成成的的多多个个目目标标代代码码文文件件(.obj)和和系系统统提提供供的的库库文文件件(.lib)以以及及系系统统提提供供的的其其他他信信息息连连接接起起来来,最最终终生生成成一一个个可可执执行行的的二进制文件(二进制文件(.exe)。)。n运运行行(run):运运行行生生

14、成成的的可可执执行行文文件件.exe,在在屏屏幕幕上上显显示示运运行行结结果果。用用户户可可以根据运行结果来判断程序是否正确。以根据运行结果来判断程序是否正确。高级语言开发过程高级语言开发过程编辑编译链接源程序目标程序可执行程序(.exe)扩展名.cpp。怎么写?VC集成开发环境俗话说:三分编程,七分调试俗话说:三分编程,七分调试运行警告警告警告警告(Warning):(Warning):表示编译器认为有问题,希望引起注意,不会表示编译器认为有问题,希望引起注意,不会妨碍程序的编译,通常可忽略妨碍程序的编译,通常可忽略。如定义某变量后未使用等。如定义某变量后未使用等。错误错误错误错误(Erro

15、r):(Error):语法错误语法错误语法错误语法错误 /编译错误编译错误编译错误编译错误syntax error/compilationsyntax error/compilation 运行时错误运行时错误运行时错误运行时错误runtime error:runtime error:例如输入错误。例如输入错误。例如输入错误。例如输入错误。逻辑错误逻辑错误逻辑错误逻辑错误logic errorlogic error:运行结果不正确运行结果不正确运行结果不正确运行结果不正确调试调试调试调试(Debugging):Debugging):寻找并修正错误的过程寻找并修正错误的过程寻找并修正错误的过程寻找

16、并修正错误的过程。程序开发是一个需要反复修改的过程。Visual C+是是集集集集编编编编辑辑辑辑、编编编编译译译译、链链链链接接接接、调调调调试试试试、执执执执行行行行、向向向向导导导导等等等等功功功功能能能能于于于于一一一一体体体体的的的的可可可可视视视视化化化化C+C+语语语语言言言言的的的的集集集集成成成成开开开开发发发发 环环环环 境境境境。在在Visual C+6.0中中,可可以以使使用用向向导导(Wizard)、MFC类类库库(Microsoft Foundation Classes)、活活动动模模板板(Active Template Library,简简 称称 ATL)和和 A

17、PI(Application Programming Interface,应应用用程程序序接接口口)函函数数来来开开发发Windows 和和Web应用程序。应用程序。二、二、编程环境介绍(编程环境介绍(Visual C+6.0)Project:一个一个VC+应用程序称为一个工程应用程序称为一个工程 工程是一些工程是一些相互关联的源文件的集合相互关联的源文件的集合,包括:,包括:Source Files 源程序代码文件源程序代码文件 .cpp Header Files 头文件头文件 .h Resource Files 资源文件资源文件 程序结构信息文件程序结构信息文件 系统参数设置文件等系统参数

18、设置文件等 一个工程的文件可以存放在不同的文件夹和驱动器中一个工程的文件可以存放在不同的文件夹和驱动器中涉及到的四种工程涉及到的四种工程Win32 Console ApplicationWin32 ApplicationMFC AppWizardexeMFC AppWizarddll 动态连接库:可供VC或其他高级语言使用.v工程(工程(project)project)可包含多个工程,可包含多个工程,一般只包含一个工程一般只包含一个工程 Visual C+以工程工作区方式组织文件、以工程工作区方式组织文件、工程和工程和工程配置。工程配置。建立工程时,自动建立工程工作区文件建立工程时,自动建立工

19、程工作区文件.dsw 用于描述工程工作区的内容和设置用于描述工程工作区的内容和设置 同时建立工程文件同时建立工程文件.dsp和和 工作区选项文件工作区选项文件.opt 用于保存工程工作区的设置用于保存工程工作区的设置 在工程工作区中可查看和访问工程中的各种元素在工程工作区中可查看和访问工程中的各种元素v工程工作区(工程工作区(workspace)workspace)工程工作区窗口工程工作区窗口nClassView:显示工程中定义的C类,成员变量,成员函数等nResource View:显示工程中包含的资源,如Dialog,Menu等nFile View:显示包含在工程工作区中的文件查看文件增加

20、文件Project/Add to Project/Files删除文件文件操作是针对工程,不能从物理上删除或增加一个文件1.启动启动Visual C+6.0,2.创建创建新工程到工程工作区新工程到工程工作区3.建立建立新的源文件新的源文件,要,要添加添加到到指定工程指定工程中中4.编辑编辑/输入源程序,保存程序输入源程序,保存程序.cpp(.h)注意:注意:一个工程中只能有一个含一个工程中只能有一个含main函数的文件函数的文件5.编译源程序编译源程序:Build 菜单中的菜单中的Compile命令命令(ctrl+F7),形形成目标文件成目标文件.obj。6.链接目标程序,形成可执行文件链接目标

21、程序,形成可执行文件:Build 菜单中的菜单中的Build命令命令(F7),形成可执行文件形成可执行文件.exe。7.运行程序运行程序:Build 菜单中的菜单中的Execute命令命令(ctrl+F5)Visual C+6.0Visual C+6.0中创建一个中创建一个中创建一个中创建一个C/C+C/C+程序程序程序程序(新工程新工程新工程新工程)的步骤:的步骤:的步骤:的步骤:调试程序过程中可能会出现各种错误调试程序过程中可能会出现各种错误n语法错误:编译和链接时产生的错误n语义/逻辑错误:表达的意思错误,使程序运行结果错误编译错误:常见错误有:编译错误:常见错误有:nerror C21

22、46:syntax error:missing;before identifier cnerror C2065:a:undeclared identifiernwarning C4700:local variable a used without having been initializednwarning C4508:main:function should return a value;void return type assumed(main函数类型应定义为:void)链接错误链接错误nLinking.一个程序包含两个主函数aaa.obj:error LNK2005:_main alr

23、eady defined in tra1.objDebug/triangle.exe:fatal error LNK1169:one or more multiply defined symbols foundError executing link.exe.调试程序调试程序(debugging)n在程序运行过程中设置断点查看值的变化设置断点:F9继续运行:F10/Step Over或F11/Step Into在断点处查看值:ViewDebug WindowsVariablesWatchMemory注意注意n一个工程就是一个程序。完成一个程序后,开始下一个程序的编制时,一定要新建一个新工程,不

24、能在原来工程中添加源文件。n再次打开程序时:应打开项目工作区文件项目工作区文件:.dswdsw(然后再打开项目中的源程序文件.cpp进行编辑),不要直接打开cpp文件。n好程序可读性:格式无要求,但采用缩进易于阅读。每个花括号应单独占用一行。Alt+F8可自动排列缩进格式。C+程序的基本框架(仅主函数)程序的基本框架(仅主函数)n#includen#includenvoid main()定义变量输入/赋值处理/运算输出文件包含命令文件包含命令/输出半径为输出半径为2.52.5的圆的面积的圆的面积#include void main()double r,area;/变量定义变量定义 r=2.5

25、/赋值赋值 area=3.14*r*r;/计算计算 cout area;/输出输出C+程序说明nC+程序由函数构成,但有且只有一个main函数,程序由main函数开始运行直至main运行结束。n#include 为文件包含命令.作用是告知编译器在此包含iostream.h库(称为头文件),该库是支持控制台输入输出所必需的。在程序中可使用系统已经定义好的函数,此时需要知道该函数声明所在的.h 文件(头文件),然后用#include 指令包含进来即可。与”的区别系统头文件一般用,而自定义头文件通常用“”nvoid表示函数没有返回值,不可省略,否则出现警告n语句以分号结束n书写时:一行一条语句缩进注

26、释:/*/三、词法与数据类型n n标识符标识符(identifier)n n数据类型数据类型(Data Type)命名规则命名规则命名规则命名规则:以:以:以:以字母或下划线字母或下划线字母或下划线字母或下划线开头,后跟字母、数字、开头,后跟字母、数字、开头,后跟字母、数字、开头,后跟字母、数字、下划线组成的串下划线组成的串下划线组成的串下划线组成的串例例例例:name:name、totaltotal、sub_1sub_1、a11a11、_A11_A11合法合法合法合法 2b2b、sum 1sum 1、s$1s$1非法标识符非法标识符非法标识符非法标识符 标识符标识符标识符标识符:一个名字,由

27、一串符号构成。作为标志与:一个名字,由一串符号构成。作为标志与:一个名字,由一串符号构成。作为标志与:一个名字,由一串符号构成。作为标志与识别,常用来标识常量、变量、数据类型、函数等识别,常用来标识常量、变量、数据类型、函数等识别,常用来标识常量、变量、数据类型、函数等识别,常用来标识常量、变量、数据类型、函数等1、标识符、标识符(identifier)_在标识符里区分大小写字母在标识符里区分大小写字母在标识符里区分大小写字母在标识符里区分大小写字母例:例:例:例:namename、NameName、NAME NAME 是是是是不同标识符不同标识符_长度长度长度长度:标识符长度任意(:标识符长

28、度任意(:标识符长度任意(:标识符长度任意(C+C+编译器不同)编译器不同)编译器不同)编译器不同)_一个标识符不能分行书写一个标识符不能分行书写一个标识符不能分行书写一个标识符不能分行书写_习惯上取有意义的名字,如习惯上取有意义的名字,如习惯上取有意义的名字,如习惯上取有意义的名字,如sumsum、areaarea等,尽量不要重名。等,尽量不要重名。等,尽量不要重名。等,尽量不要重名。习惯上变量名、函数名常用小写字母习惯上变量名、函数名常用小写字母习惯上变量名、函数名常用小写字母习惯上变量名、函数名常用小写字母关键字(关键字(keyword)又叫保留字(又叫保留字(又叫保留字(又叫保留字(R

29、eserved word),Reserved word),是预先定义好的,被系是预先定义好的,被系是预先定义好的,被系是预先定义好的,被系统占用的标识符,具有特定的含义。统占用的标识符,具有特定的含义。统占用的标识符,具有特定的含义。统占用的标识符,具有特定的含义。关键字是具有特关键字是具有特定含义,作为专用定义符的单词,不允许另作它用。定含义,作为专用定义符的单词,不允许另作它用。注:关键字不能用做用户标识符注:关键字不能用做用户标识符注:关键字不能用做用户标识符注:关键字不能用做用户标识符autobreakcasechar classconstcontinuedefault do defa

30、ultdeletedouble elseenum explicit externfloatforfriend gotoifinlineintlong mutablenewoperatorprivateprotectedpublicregisterreturnshort signedsizeofstaticstatic_caststruct switchthistypedefunionunsigned virtualvoidwhile(1)(1)基本数据类型基本数据类型(2)(2)常量与变量常量与变量 程程序序主主要要是是对对数数据据进进行行处处理理,首首先先要要存存储储数数据据:用用多多大大的

31、的空空间间存存储储数数据据、怎怎样样存存,进进行行什么运算什么运算2 2 数据类型数据类型(1)(1)数据类型数据类型构造类型构造类型构造类型构造类型基本类型基本类型基本类型基本类型空类型空类型空类型空类型(void)(void)字符型字符型字符型字符型(char)(char)(char)(char)实型实型实型实型整型整型整型整型(int,long,shortint,long,short)枚举型枚举型枚举型枚举型类类类类(class)(class)(class)(class)单精度型(单精度型(float)双精度型双精度型 (double)长双精度型(长双精度型(long double)指针

32、类型指针类型指针类型指针类型*数组数组数组数组结构体结构体结构体结构体(structstruct)共用体共用体共用体共用体(unionunion)布尔类型(布尔类型(bool)基本数据类型基本数据类型N 不同数据类型的存储位数不同不同数据类型的存储位数不同,数的范围不同数的范围不同N进行数据处理时,根据数的特点选择数据类型进行数据处理时,根据数的特点选择数据类型数据类型数据类型数据类型数据类型字节范围整型整型整型整型intint4 4-2147483648-2147483648 21474836472147483647字符型字符型字符型字符型charchar1 1-128 +127-128 +

33、127实实实实型型型型单精度单精度单精度单精度 floatfloat4 41010-38-38 1010+38+38(7)(7)双精度双精度双精度双精度 doubledouble8 81010-308-308 1010+308+308(15)(15)常量常量常量常量:是指在是指在是指在是指在程序运行过程程序运行过程程序运行过程程序运行过程中,中,中,中,其值不变的量其值不变的量其值不变的量其值不变的量。常量都具有一。常量都具有一。常量都具有一。常量都具有一定的数据类型,由其表示方法决定。定的数据类型,由其表示方法决定。定的数据类型,由其表示方法决定。定的数据类型,由其表示方法决定。(2)常量与

34、变量常量与变量#include void main()double r,s,a;coutr;s=2*r*3.14;a=r*r*3.14;couts=sendl;coutarea=aendl;u 整型整型:八进制(0123)、十六进制(0 x122a)、123Lu 实型实型:double,123.5 2.1e5 1220.3Fu 字符型字符型:单引号u字符串字符串:双引号转义字符:n t 0 字符串常量字符串常量(0):a abcd常量表示:a“a”字符串常量字符串常量:双引号双引号括起来的一串字符括起来的一串字符 例例 3a9d#=s 2天津天津ABC 字符串常量存储:存储:依次存放各自的依次

35、存放各自的ASCII码,尾部自码,尾部自动加动加字符串结束标志字符串结束标志0,即:,即:00110011 01100001 001110010110010003 a 9 d#=s 0长度:长度:为该串中含字符的个数,不含结束标志,为该串中含字符的个数,不含结束标志,即串长度。即串长度。上例串长度为:上例串长度为:7 7 符号常量 C+C+中常量可以是中常量可以是中常量可以是中常量可以是常数常数常数常数,也可以是代表,也可以是代表,也可以是代表,也可以是代表固定不固定不固定不固定不变的值的名字变的值的名字变的值的名字变的值的名字符号常量符号常量符号常量符号常量。比如程序中经常用到。比如程序中经

36、常用到。比如程序中经常用到。比如程序中经常用到某个常数,此时可以定义一个名字来表示此常数,某个常数,此时可以定义一个名字来表示此常数,某个常数,此时可以定义一个名字来表示此常数,某个常数,此时可以定义一个名字来表示此常数,以便改进程序的可读性。以便改进程序的可读性。以便改进程序的可读性。以便改进程序的可读性。例如例如例如例如:计算圆面积或圆周长要用到计算圆面积或圆周长要用到计算圆面积或圆周长要用到计算圆面积或圆周长要用到3.1415926 3.1415926 (不能直接用(不能直接用(不能直接用(不能直接用 ),可定义为符号常量。),可定义为符号常量。),可定义为符号常量。),可定义为符号常量

37、。定义符号常量一般形式:定义符号常量一般形式:定义符号常量一般形式:定义符号常量一般形式:constconst 数据类型数据类型数据类型数据类型 符号常量符号常量符号常量符号常量=表达式表达式表达式表达式;例如:例如:例如:例如:const double PI=3.1415926;const double PI=3.1415926;一般用大写字母一般用大写字母#include void main()double r,s,a;coutr;s=2*r*3.14;a=r*r*3.14;couts=sendl;coutarea=aendl;#include const double PI=3.14;v

38、oid main()double r,s,a;coutr;s=2*r*PI;a=r*r*PI;couts=sendl;coutarea=aendl;3.1415926;变量变量:在程序运行过程中值可以改变的量。在程序运行过程中值可以改变的量。在程序运行过程中值可以改变的量。在程序运行过程中值可以改变的量。用来存放用来存放用来存放用来存放数据。数据。数据。数据。名字、类型、值和地址。名字、类型、值和地址。名字、类型、值和地址。名字、类型、值和地址。“先定义,后使用先定义,后使用先定义,后使用先定义,后使用”定义了定义了定义了定义了变量名、数据类型变量名、数据类型变量名、数据类型变量名、数据类型,

39、由此系统为其在内存中由此系统为其在内存中由此系统为其在内存中由此系统为其在内存中分配一定的存储单元,用来分配一定的存储单元,用来分配一定的存储单元,用来分配一定的存储单元,用来存放变量的值存放变量的值存放变量的值存放变量的值。变量定义语句变量定义语句 数据类型名数据类型名 变量名表;变量名表;变量的变量的变量的变量的赋值与赋值与赋值与赋值与初始化初始化初始化初始化char c;char c;intint i,j,k;i,j,k;float x,y,z;float x,y,z;double t1,t2;double t1,t2;已知已知f求求c:c=5/9(f-32)已经梯形上底已经梯形上底a、

40、下底下底b,高,高h,求面积求面积.公式为:公式为:area=1/2(a+b)h三、三、运算符和表达式运算符和表达式注意:注意:程序中的大部分运算都是通过表达式完成的;程序中的大部分运算都是通过表达式完成的;要区分数学式与程序设计语言表达式书写的不同。要区分数学式与程序设计语言表达式书写的不同。操作数:操作数:运算符:运算符:圆括号:圆括号:优先级优先级优先级优先级:相邻两个运算符之间的运相邻两个运算符之间的运相邻两个运算符之间的运相邻两个运算符之间的运 算顺序算顺序算顺序算顺序结合性结合性结合性结合性:优先级相同时起作用,左、右结合性优先级相同时起作用,左、右结合性优先级相同时起作用,左、右

41、结合性优先级相同时起作用,左、右结合性常量、变量、函数或其他表达式常量、变量、函数或其他表达式改变运算符的运算次序改变运算符的运算次序_表达式的组成表达式的组成_值值_书写书写对数学式子要写成表达式,没有上、下标,对数学式子要写成表达式,没有上、下标,只有圆括号,乘号不能省略只有圆括号,乘号不能省略例如:例如:A+32+7.23*6/3-(4+3)/3说明运算的含义说明运算的含义n n结合性结合性左结合左结合:大多数双目右结合右结合:单目、三目和赋值n优先级别优先级别算术算术-关系关系-逻辑逻辑-条件条件-赋值赋值-逗号逗号单目运算符的优先级高于双目单目运算符的优先级高于双目算术运算符算术运算

42、符-(-(-(-(负号负号负号负号)*/%*/%*/%*/%+-+-+-+-单目单目双目双目双目双目高高低低求模求模求模求模/取余运算符取余运算符取余运算符取余运算符%:两个操作数必须均为整型。两个操作数必须均为整型。两个操作数必须均为整型。两个操作数必须均为整型。值为值为值为值为被除数的符号被除数的符号被除数的符号被除数的符号相同的相同的相同的相同的余数余数余数余数 式子式子式子式子 c+c+表达式表达式表达式表达式 (a+b)/(c-d)(a+b)/(c-d)a a*a a*a asinxsinxsin(x)sin(x)sqrt(gsqrt(g)cosxcosxcos(xcos(x)exp

43、(x)exp(x)#include#include#include#include using namespace std;using namespace std;|x|fabs(x)xn pow(x,n)系统函数(内部函数)系统函数(内部函数)nsqrt 平方根nfabs 绝对值npow 幂#include nrand 产生032767之间的随机整数#includensrand 改变种子#includentime:time(0)函数返回当前时间与1970-1-1 0:0:0的时间间隔,以秒为单位#includensqrt(x*x+y*y)nfabs(x)npow(x,n)nrand()产生要

44、得到产生要得到 100以内以内(099)的随机数:的随机数:n1=rand()%100;nsrand(time(0)使使rand()每次得到不同每次得到不同的随机数的随机数产生随机数据:产生随机数据:rand函数函数nrand()功能:返回一个随机的正整数,032767之间#include 例如 n1=rand();n2=rand()%10;/0=n2 10n3=rand()%21+10/1030 char t=rand()%26+65 /AZn为使程序在每次运行时rand()函数得到不同的随机数(rand()生成的是伪随机数,即在相同的系统上每次运行都会生成相同的数列,原因是因为控制产生随机

45、数生成的种子的值没有发生变化,默认为1)可增加如下语句:srand(time(0);/位于 stdlib.h中,改变种子time(0)/作为种子值,位于#include 产生随机数产生随机数n#include n#include n#include nvoid main()nnint a;nsrand(time(0);na=1+rand()%100;/产生产生1100内的随机整数内的随机整数n n coutaendl;n赋值运算符和赋值表达式赋值运算符和赋值表达式=_赋值表达式:赋值表达式:=赋值号左边赋值号左边只能是变量名只能是变量名_赋值运算符:赋值运算符:_赋值过程赋值过程 :b=(a=

46、2.4+3.8);b=a=2.4+3.8先求表达式的值,转换类型,再赋值先求表达式的值,转换类型,再赋值先求表达式的值,转换类型,再赋值先求表达式的值,转换类型,再赋值intint a=3;a=3;a=a+1;a=a+1;_优先级仅高于逗号表达式,优先级仅高于逗号表达式,从右向左从右向左_注意赋值表达式的值和类型注意赋值表达式的值和类型_ =复合的赋值运算复合的赋值运算=()算术运算符复合算术运算符复合算术运算符复合算术运算符复合 +=+=,-=-=,*=,/=/=,%=%=例如:例如:a a+=1+=1a=a+1a=a+1a*=6+2a*=6+2x%=y+3x%=y+3=a=a*(6+2)a

47、=a*(6+2)x=x%(y+3)x=x%(y+3)自增自减运算符与表达式自增自减运算符与表达式_自增自减运算符自增自减运算符:+-单目单目_区别:区别:要求操作数必须是变量要求操作数必须是变量_自增自减表达式:自增自减表达式:i+i+先先取值,取值,后后自加自加,等价于:等价于:i=i+1 i=i+1 +i+i 先先自加,自加,后后取值取值,等价于:等价于:i=i+1 i=i+1 -i -i 先先自减,自减,后后取值取值,等价于:等价于:i=i-1 i=i-1 i-i-先先取值,取值,后后自减自减,等价于:等价于:i=i-1i=i-1先自增减,再计算先自增减,再计算 +i -i+i -i先计

48、算,再自增减先计算,再自增减 i+i-i+i-表达式的值与变量的值表达式的值与变量的值程序段程序段程序段程序段1 1:#include#include void main()void main()intint i=1,j;i=1,j;j=i+;j=i+;coutcoutij;ij;$i+i+与与+i+i的区别举例的区别举例程序段程序段程序段程序段2 2:#include#include void main()void main()intint i=1,j;i=1,j;j=+i;j=+i;coutcoutij;ij;功功功功能能能能:从从从从第第第第一一一一个个个个开开开开始始始始(左左左左),

49、依依依依次次次次计计计计算算算算每每每每个个个个表表表表达达达达式式式式的的的的值值值值,最最最最后后后后(右)一个表达式的值即为逗号表达式的值。(右)一个表达式的值即为逗号表达式的值。(右)一个表达式的值即为逗号表达式的值。(右)一个表达式的值即为逗号表达式的值。优先级别优先级别:最低最低逗号运算符与逗号表达式逗号运算符与逗号表达式例:例:例:例:intint a,b,c,d;a,b,c,d;d=(a=1,b=a+2,c=b+3);d=(a=1,b=a+2,c=b+3);coutcoutddendlendl;/;/结果:结果:结果:结果:d=6d=6d=a=1,b=a+2,c=b+3;d=a

50、=1,b=a+2,c=b+3;/d=1/d=1关系运算符及表达式关系运算符及表达式双目,判断两个操作数的大小。双目,判断两个操作数的大小。双目,判断两个操作数的大小。双目,判断两个操作数的大小。比较运算,比较运算,比较运算,比较运算,左结合左结合左结合左结合优先级:优先级:、!高高低低逻辑运算符及逻辑表达式逻辑运算符及逻辑表达式运算符运算符运算符运算符操作操作操作操作结合性结合性结合性结合性 !逻辑逻辑逻辑逻辑非非非非右右右右结合结合结合结合单单单单目运算符目运算符目运算符目运算符&逻辑逻辑逻辑逻辑与与与与左结合左结合左结合左结合双双双双目运算符目运算符目运算符目运算符|逻辑逻辑逻辑逻辑或或或

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁