高级语言程序设计辅导.ppt

上传人:s****8 文档编号:67212011 上传时间:2022-12-24 格式:PPT 页数:150 大小:2.84MB
返回 下载 相关 举报
高级语言程序设计辅导.ppt_第1页
第1页 / 共150页
高级语言程序设计辅导.ppt_第2页
第2页 / 共150页
点击查看更多>>
资源描述

《高级语言程序设计辅导.ppt》由会员分享,可在线阅读,更多相关《高级语言程序设计辅导.ppt(150页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、高级语言程序设计高级语言程序设计辅导课(辅导课(1)主讲人:陈建峡主讲人:陈建峡时时间:间:2012-12-2地地点:文点:文A-001主要内容主要内容n序序言:高级程序语言学习方法言:高级程序语言学习方法n第第1章章:程序设计和:程序设计和C语言语言n第第2章章:算法:算法-程序的灵魂程序的灵魂n第第3章章:最简单的程序设计:最简单的程序设计顺序结构设计顺序结构设计n第第4章章:选择结构程序设计:选择结构程序设计大学专业课基本学习方法大学专业课基本学习方法n基本方法:基本方法:“开箱子开箱子”学习方法学习方法了解总体知识框架、抓要点、练难点了解总体知识框架、抓要点、练难点n课前预习:课前预习

2、:自己先做笔记:思维导图等方式(演示)自己先做笔记:思维导图等方式(演示)n听课方法:听课方法:专心听讲、记录难点和重点(关键词)、专心听讲、记录难点和重点(关键词)、PPTn课后复习:课后复习:保证保证1:2的课后学习时间的课后学习时间理解并上机实践经典例题和习题理解并上机实践经典例题和习题编程练习方法编程练习方法敲代码敲代码编程思想是在一定的代码量基础上积累的,要形成一个良好的编程思维,必编程思想是在一定的代码量基础上积累的,要形成一个良好的编程思维,必须要踏实的敲一段时间代码,必须从基本一点一点练起,把须要踏实的敲一段时间代码,必须从基本一点一点练起,把基本语法和常用基本语法和常用的语句

3、的语句记牢!记牢!练习典型题型练习典型题型从基本的题型练起,基本题型主要是弄懂语法的程序流程走向,程序是怎么从基本的题型练起,基本题型主要是弄懂语法的程序流程走向,程序是怎么走的,怎么就会输出这个结果。用程序流程图先写出走的,怎么就会输出这个结果。用程序流程图先写出算法算法,再编写程序。,再编写程序。练习高级题型练习高级题型复杂问题是由复杂问题是由简单问题变化或组成简单问题变化或组成的。要动脑筋思考和总结。这些题一开始的。要动脑筋思考和总结。这些题一开始可能会做不出来,但是一定要根据提供的标准代码自己进行分析,然后再自可能会做不出来,但是一定要根据提供的标准代码自己进行分析,然后再自己练习。己

4、练习。算法共享算法共享大家可以互相交流,每个人写的算法一定不一样,大家互相讨论一下,哪种大家可以互相交流,每个人写的算法一定不一样,大家互相讨论一下,哪种代码的执行效率高,代码编写一定要清晰,程序走向尽量简洁,最后把大家代码的执行效率高,代码编写一定要清晰,程序走向尽量简洁,最后把大家都能看懂的,代码量最少的程序做为优秀程序。都能看懂的,代码量最少的程序做为优秀程序。第第1章章程序设计和程序设计和C语言语言1.C语言程序的基本结构语言程序的基本结构程序组成程序组成函数组成函数组成库函数库函数2.C语言程序的书写格式语言程序的书写格式3.C语言程序的运行环境和步骤语言程序的运行环境和步骤4.程序

5、设计的任务程序设计的任务5.编写程序的步骤编写程序的步骤1.C语言程序的基本结构语言程序的基本结构例1.仅由main()函数构成的C语言程序。一个完整的语言程序,是由一个main()函数(又称主函数)和若干个其它函数结合而成的,或仅由一个main()函数构成。#include /*包含头文件*/void main()/*主函数入口*/printf(This is a C program.n);程序运行结果:This is a C program.stdio.h:标准输入/输出库的头文件 printf:输出库函数 凡是在程序文件中调用到其他程序文件定义的函数(含系统提供的标准 库函数),必须在程

6、序中包含相应的头文件。.h表示标准头文件的后缀.c表示C语言源程序的后缀表示该头文件是系统自带的头文件“”表示该头文件是自定义头文件例2.由main()函数和max函数构成的C语言程序,求两数中大者#include void main()/*主函数*/int max(int x,int y);/*声明被调用函数max()*/int a,b,c;/*定义变量*/scanf(%d,%d,&a,&b);/*输入变量a和b的值*/c=max(a,b);/*调用max函数,将得到的值赋给c*/printf(max=%d,c);/*输出c的值*/int max(int x,int y)/*定义max函数,

7、函数值为整型,形式参数x,y为整型*/int z;/*定义变量z为整型*/if(xy)z=x;else z=y;return(z);/*将z的值返回*/(1)c程序的组成一个c程序可以由一个或多个具有相对独立功 能的函数构成,其中有且仅有一个以main命 名的主函数。程序从main函数开始执行,直到执行完函数 体语句运行结束。其它子函数由函数调用语句引用,运行完子 函数后,返回到调用处继续执行后续语句。函数与函数之间用参数传递信息,子函数只 能被主函数或其它子函数调用,不能单独运 行。(2)函数的组成。)函数的组成。一般形式为:函数类型函数名()形参类型 函数形参数据定义部分函数执行部分函数头

8、部函数体可以没有参数(3)c函数库函数库c函数标准函数用户定义函数由编译程序提供的,其定义是以编译后的目标代码形式存放在系统的函数库中,称为c函数库。用户编程时直接调用标准函数,如scanf、printf等。必须由用户在源程序中编写函数定义,根据模块功能,设计和编写用户定义的函数语句,供其它函数调用。注意:用户定义函数与调用函数的函数名必须一致,两者 参数的个数与参数的类型必须按位置相同放置。2.C语言程序的书写格式语言程序的书写格式一般使用小写英文字母(大小写敏感)。使用分号“;”作为语句的终止符或分隔符。一条语句可以写成多行,多条语句也可以写成 一行。用大括弧对“”表示程序的结构层次范围。

9、c语言的书写支持缩进格式。用/对程序的任何部分作注释。一个c程序总是从main函数开始执行,而不论 main函数在程序的位置如何。开始开始结果结果语法语法错误错误源程序源程序.c/.cpp目标程序目标程序.obj可执行程序可执行程序.exe编辑编辑编译编译连接连接运行运行连接连接错误错误运行运行错误错误3.C语言程序的调试、运行步骤语言程序的调试、运行步骤4.程序设计的任务程序设计的任务问题分析问题分析设计算法设计算法编写程序编写程序对源程序进行编辑、编译和连接对源程序进行编辑、编译和连接运行程序,分析结果运行程序,分析结果编写程序文档编写程序文档5.编写程序的步骤编写程序的步骤程序头文件程序

10、头文件main函数及函数体函数及函数体算法执行语句算法执行语句数据定义语句数据定义语句输入和输出语句输入和输出语句语法和逻辑检查语法和逻辑检查第第2章章算法算法-程序的灵魂程序的灵魂1.算法定义及特性算法定义及特性2.算法的主要表示方法算法的主要表示方法3.结构化程序设计方法结构化程序设计方法4.简单的算法举例简单的算法举例n广义地说,为解决一个问题而采取的方法广义地说,为解决一个问题而采取的方法和步骤,就称为和步骤,就称为“算法算法”n对同一个问题,可以有不同的解题方法和对同一个问题,可以有不同的解题方法和步骤步骤n为了有效地进行解题,不仅需要保证算法为了有效地进行解题,不仅需要保证算法正确

11、,还要考虑算法的质量,选择合适的正确,还要考虑算法的质量,选择合适的算法算法1.算法定义及特性算法定义及特性1.算法定义及特性算法定义及特性n数据是操作的对象数据是操作的对象n操作的目的是对数据进行加工处理,以得到操作的目的是对数据进行加工处理,以得到期望的结果期望的结果n著名计算机科学家沃思著名计算机科学家沃思(NikiklausWirth)提提出一个公式:出一个公式:算法算法+数据结构数据结构=程序程序n算法是解决算法是解决“做什么做什么”和和“怎么做怎么做”的问题的问题n程序中的操作语句,是算法的体现程序中的操作语句,是算法的体现2算法的特性算法的特性(1)有穷性有穷性。一个算法应包含有

12、限的操作步骤,。一个算法应包含有限的操作步骤,而不能是无限的。而不能是无限的。(2)确定性确定性。算法中的每一个步骤都应当是确。算法中的每一个步骤都应当是确定的,而不应当是含糊的、模棱两可的。定的,而不应当是含糊的、模棱两可的。(3)有零个或多个输入有零个或多个输入。所谓输入是指在执行。所谓输入是指在执行算法时需要从外界取得必要的信息。算法时需要从外界取得必要的信息。(4)有一个或多个输出有一个或多个输出。算法的目的是为了求。算法的目的是为了求解,解,“解解”就是输出。就是输出。没有输出的算法是没有意义的。没有输出的算法是没有意义的。(5)有效性有效性。算法中的每一个步骤都应当能有。算法中的每

13、一个步骤都应当能有效地执行,并得到确定的结果。效地执行,并得到确定的结果。2.算法的特性算法的特性n对于一般最终用户来说对于一般最终用户来说:他们并不需要在处理每一个问题时都要自他们并不需要在处理每一个问题时都要自己设计算法和编写程序己设计算法和编写程序可以使用别人已设计好的现成算法和程序可以使用别人已设计好的现成算法和程序只需根据已知算法的要求给予必要的输入,只需根据已知算法的要求给予必要的输入,就能得到输出的结果就能得到输出的结果输入输入3个数个数黑箱子黑箱子3个数中最大数个数中最大数求求3个数的个数的最大数最大数3.用N-S流程图表示算法nN-S流程图用以下的流程图符号流程图用以下的流程

14、图符号:ABABYNpA当当p1成立成立A直到直到p2成立成立顺序结构顺序结构选择结构选择结构循环结构循环结构(当型)(当型)循环结构循环结构(直到型)(直到型)4.简单的算法举例简单的算法举例累加和累乘算法累加和累乘算法判断素数的算法判断素数的算法求最大公约数的算法求最大公约数的算法求最大数的算法求最大数的算法nS1:使:使p=1,或写成,或写成1pnS2:使:使i=2,或写成,或写成2inS3:使:使p与与i相乘,乘积仍放在变量相乘,乘积仍放在变量p中,可表示中,可表示为:为:p*ipnS4:使:使i的值加的值加1,即,即i+1inS5:如果:如果i不大于不大于5,返回重新执行,返回重新执

15、行S3;否则,;否则,算法结束算法结束n最后得到最后得到p的值就是的值就是5!的值的值若是若是1000,求什么?,求什么?例例2.1求求123451000nS1:使:使p=1,或写成,或写成1pnS2:使:使i=2,或写成,或写成2inS3:使:使p与与i相乘,乘积仍放在变量相乘,乘积仍放在变量p中,可表示中,可表示为:为:p*ipnS4:使:使i的值加的值加1,即,即i+1inS5:如果:如果i不大于不大于5,返回重新执行,返回重新执行S3;否则,;否则,算法结束算法结束n最后得到最后得到p的值就是的值就是5!的值的值若若求求135791133221111相当于相当于i 11例例2.11将例

16、将例2.1的求的求5!算法用算法用N-S图表示。图表示。直到直到i51t输出输出t2it*iti+1i例例2.18#includeintmain()inti,t;t=1;i=2;while(i100deno+1deno输出输出sum1sum1sign2deno(-1)*signsignsign*(1/deno)termsum+termsum例例2.19#includeintmain()intsign=1;doubledeno=2.0,sum=1.0,term;while(deno或或w0w=0是是否否输出输出n是素数是素数输出输出n不是素数不是素数#includeintmain()intn,i

17、;printf(“n=?);scanf(%d,&n);for(i=2;i=n-1;i+)if(n%i=0)break;if(in)printf(%disnotn,n);elseprintf(%disn,n);return0;#includeintmain()intn,i;printf(“n=?);scanf(%d,&n);for(i=2;i=n-1;i+)if(n%i=0)break;if(in)printf(%disnotn,n);elseprintf(%disn,n);return0;k=sqrt(n);#includeintmain()intn,i,k;printf(“n=?);scan

18、f(%d,&n);for(i=2;i=k;i+)if(n%i=0)break;if(in)printf(%disnotn,n);elseprintf(%disn,n);return0;k=sqrt(n);#include#includeintmain()intn,i,k;printf(“n=?);scanf(%d,&n);for(i=2;i=k;i+)if(n%i=0)break;if(i=k)printf(%disnotn,n);elseprintf(%disn,n);return0;k=sqrt(n);#include 求求m和和n两个数的最大公约数两个数的最大公约数n#includeni

19、ntmod(intx,inty)nnreturn(x%y);nnmain()nnintm,n,r;nscanf(%d%d,&m,&n);nr=mod(m,n);nwhile(r!=0)nnm=n;nn=r;nr=mod(m,n);nnprintf(n=%d,n);n第第3章章最简单的最简单的C程序设计程序设计1.C语言基本元素语言基本元素2.数据类型、常量数据类型、常量和和变量变量3.常用运算符常用运算符4.C语言基本语句语言基本语句5.数据的输入和输出数据的输入和输出1.C语言基本元素语言基本元素 c语言的基本字符集是编写源程序时准用字符的集合,c语言编译程序能够识别集合中的字符。c语言基本

20、字符包括:(1)大写字母A B C D Z,小写字母a b c dz。(2)数字0 1 2 3 4 5 6 7 8 9。(3)图形符号 !#%&?|*+-_/“(),.:;。(4)转义字符 n t a b f r v ”ddd xhh。1.C语言基本元素语言基本元素 基本字符集中的字符组合成一个个具有独立意义的最小语法单位,称之为单词。组成c语言的单词有六类:保留字(关键字)、标识符、常数、标点字符、运算符、分隔符。(1)保留字:又称关键字,是由编译程序预定义具 有固定含义的单词。保留字有特定的 含义和专门的用途,用户不能用保留 字作为常量、变量、类型或函数的名 字。1.C语言基本元素语言基本

21、元素(2)标识符:是程序员为程序中的一些要素所取 的名字,如变量名、函数名、宏等。c语言规定标识符号可以由字母、数字和下划线组成,并且规定首字符必须是字母或下划线。PRICE、sum、_567、Select_sort合法0_max、long、ABC.不合法1.C语言基本元素语言基本元素注意:1.对于标识符有效字符的个数,Turbo C允许 32个字符。2.c语言属字母大小写敏感语言,max与Max 是不同的标识符。3.选择含义明确的标识符,使它能明确地提示 标识符所代表的实体。4.不用大量相似的名字,如EM、EN等,要正 确区别0与o,1与l等。1.C语言基本元素()常数:各种类型的常数,如2

22、0,a和“EFG”等。()标点符号:c语言的标点符号共11个:#(),;“()运算符:如、=等。()分隔符(定界符):包括空格、回车键、ab键、。2.数据类型、常量和变量数据类型、常量和变量 数据是程序操作的对象,数据类型是指数据的内在表现形式。数据是程序操作的对象,数据类型是指数据的内在表现形式。数据类型指针类型空类型基本类型整型字符型实型(浮点型)枚举类型单精度型双精度型构造类型数组类型结构体类型共用体类型1.常量:在程序运行过程中,其值不能被改变的量。常量:在程序运行过程中,其值不能被改变的量。1).直接常量(字面常量):直接从字面形式判定常量类型。直接常量(字面常量):直接从字面形式判

23、定常量类型。v整型常量:整型常量:15、-20v实型常量:实型常量:-0.2、1.56、2E+3(2x103)v字符常量:字符常量:a、9、*、#v字符串常量:字符串常量:“I love china.”、“a”2).符号常量:用标识符代表常量。符号常量:用标识符代表常量。定义格式:定义格式:#define 符号常量符号常量(标识符名)(标识符名)常量常量(值)(值)例:例:#define PRICE 30 一般用大写字母一般用大写字母 是宏定义预处理命令,不是是宏定义预处理命令,不是C语句语句 符号常量只是符号,不能被赋值,不能指定类型符号常量只是符号,不能被赋值,不能指定类型(1)常量)常量

24、 2.变量变量 1)变量:在程序运行过程中,其值可以被改变的量称为变量。)变量:在程序运行过程中,其值可以被改变的量称为变量。2)变量的两个要素)变量的两个要素 变量名:每个变量都必须有一个名字变量名:每个变量都必须有一个名字变量名,变量命名遵循标识变量名,变量命名遵循标识 符命名规则。符命名规则。变量值:在程序运行过程中,变量值存储在内存中。在程序中,通过变量值:在程序运行过程中,变量值存储在内存中。在程序中,通过 变量名来引用变量的值。变量名来引用变量的值。3)变量的定义)变量的定义 在语言中,要求对所有用到的变量,必须在语言中,要求对所有用到的变量,必须先定义、后使用先定义、后使用;且称

25、在定义;且称在定义 变量的同时进行赋初值的操作为变量初始化。变量的同时进行赋初值的操作为变量初始化。变量定义的一般格式变量定义的一般格式 定义格式:数据类型定义格式:数据类型 变量名变量名1,变量名变量名2,;例:例:float radius,length,area;int i;(2)变量)变量整型数据的取值范围:类型类型 类型标识符类型标识符 取值范围取值范围 占用占用字节数字节数I/O格式符格式符基本型基本型 int-231(231-1)4%d短整型短整型 short short int-3276832767 即即-215(215-1)2%hd长整型长整型 longlong int-231

26、(231-1)4%ld无符号整型无符号整型 unsignedunsigned int 065535 即即0232-1 4%u无符号短整型无符号短整型 unsigned short 065535 即即0216-1 2%hu无符号长整型无符号长整型 unsigned long 0(232-1)4%lu对于无符号和有符号整数:表示字节数时相同 取值范围不相同(3)整型常量和变量)整型常量和变量main()short a,c;a=32767;c=a+1;printf(c=%d n,c);运行结果为:c=-32768整数溢出:当整数太大,超出了整数类型范围。当整数达到最大值时,将溢出到起始点。unsig

27、ned int 的起始点是0signed int 的起始点是-231注意:当溢出时,系统并没给出提示,编程时 要自己处理该问题。整型变量整型变量 实型常量即实数,又称浮点数,有两种表达形式:实型常量即实数,又称浮点数,有两种表达形式:十进制形式:由数字和小数点组成(十进制形式:由数字和小数点组成(必须有小数点必须有小数点)。)。如如0.345 .345 345.0 0.0 0.0 指数形式:字母指数形式:字母e(E)前后必须有数字,)前后必须有数字,e(E)后必须为整数。)后必须为整数。如如2.45e3 2.45E3 表示表示2.45103 3e5 -2.5e7 5e-3 .3e3 3.e3

28、(合法)(合法)3e e3 e0.3 (不合法)(不合法)指数输出形式(指数输出形式(%e):在):在e(E)前的小数部分中,小数点左边应有且只)前的小数部分中,小数点左边应有且只 能有一位非零数字,小数点右边应有六位数字。能有一位非零数字,小数点右边应有六位数字。指数部分指数部分3位数字。如:位数字。如:5.680000e+003 (4)实型常量和变量)实型常量和变量 实型变量分为两种:实型变量分为两种:(1)单精度型:后缀为)单精度型:后缀为 f 或或 F,关键字为,关键字为float,占,占4字节,字节,7位有效数字。位有效数字。(2)双精度型:关键字为)双精度型:关键字为double,

29、占,占8个字节,个字节,15-16位有效数字。位有效数字。(3)长双精度型:后缀为)长双精度型:后缀为 l 或或 L,关键字,关键字long double型:占型:占8个字节,个字节,18-19 位有效数字。位有效数字。取值范围与精度与取值范围与精度与CPU有关。有关。实型数据的舍入误差实型数据的舍入误差 在内存中实型数据以标准化指数形式在内存中实型数据以标准化指数形式 存放。若数据超过有效位,则被舍去,存放。若数据超过有效位,则被舍去,可能产生误差。可能产生误差。实型数据默认的显示(输出)格式实型数据默认的显示(输出)格式%f 是小数点后是小数点后6位位。#includemain()floa

30、t a;a=0.3;printf(%f,a);运行结果为:0.300000实型变量实型变量(5)实型数据输出格式)实型数据输出格式%f:输出十进制形式的:输出十进制形式的float和和double实数实数%e:输出指数形式的:输出指数形式的float和和double实数实数%lf:输出十进制形式的:输出十进制形式的long double实数实数%le:输出指数形式的:输出指数形式的long double实数实数 一般情况下,一般情况下,C编译系统将实型常量当作编译系统将实型常量当作double型。型。输出结果为:1)32000.000000 =3.200000e+0052)2140000000

31、.000000 =2.140000e+0093)0.000053 =5.320000e-005#includevoid main()float a=32000.0;double b=2.14e9;long double c=5.32e-5;printf(%f can be written%en,a,a);printf(%f can be written%en,b,b);printf(%f can be written%en,c,c);(6)字符型数据:字符常量)字符型数据:字符常量1.字符常量:用一对单引号括起来的单个字符。如:A、3、+、b、*单引号只是字符与其它部分的分隔符,不是字符的一部

32、分,输出该字符常 量时,不显示单引号。这是为了与变量区别。2.转义字符:特殊的字符常量,以反斜杠“”开头。(代表一个字符)转义字符转义字符意义意义转义字符转义字符意义意义a警报警报反斜杠(反斜杠()b退格退格单引号(单引号()f走纸走纸双引号(双引号(”)n换行换行?问号(问号(?)r回车回车ddd13位八进制数表示的字符位八进制数表示的字符t水平制表符水平制表符xhh12位十六进制数表示的字符位十六进制数表示的字符h表示一个十六进制数表示一个十六进制数v垂直制表符垂直制表符给一个字符变量赋值时,转义字符必须用单引号括起来。(6)字符型数据:字符变量)字符型数据:字符变量字符变量用来存储字符,

33、且只能存放一个字符。它实际上存储的是将该字符的ASCII码值(整数)而不是字符。一个字符占一个字节(8位)。1.字符变量的定义:例:char c1;/*定义一个字符变量c1*/c1=a;/*给字符变量赋值,c1变量中存放字符a*/unsigned char c2;/*定义一个无符号字符变量c2*/字符a的ASCII码为97,则在内存中的存储形式为01100001,如同存放 整数97。2.字符变量的赋值方法:c1=A;c2=101;c3=0 xff;c4=377;#includemain()char ch;ch=a;printf(“%d”,ch);(6)字符型数据:存储)字符型数据:存储字符在内

34、存中存储的是其ASCII码值,其形式与整数的存储形式一样。语言允许字符型数据与整型数据之间通用。1.一个字符型数据,既可以字符形式输出,也可以整数形式输出。#includemain()char ch1,ch2;ch1=a;ch2=b;printf(“ch1=%c,ch2=%cn”,ch1,ch2);printf(“ch1=%d,ch2=%dn”,ch1,ch2);ch1=97;ch2=98;printf(“ch1=%c,ch2=%cn”,ch1,ch2);程序运行结果:ch1=a,ch2=b ch1=97,ch2=98 ch1=a,ch2=b内存中,ch1和ch2的存放形式:ch1 97 01

35、100001 ch2 98 011000102.字符型数据和整型数据可以相互赋值#includemain()int i;char c;i=a;c=97;printf(“%c,%dn”,c,c);printf(“%c,%dn”,i,i);等同于:i=97;c=aVisual C+6.0将字符默认为signed char型#includemain()char c;c=376;printf(“%c,%dn”,c,c);运行结果:,-2八进制数376(十进制为254),对应的ASCII码为:11 11 11 10 对应的有符号整数为:-2unsigned char c;(6)字符型数据:存储)字符型数

36、据:存储3.允许对字符型数据进行算术运算,就是对它们的ASCII码值进行算术运算。#includemain()char ch1,ch2;ch1=a;ch2=B;printf(“ch1=%c,ch2=%cn”,ch1-32,ch2+32);printf(ch1+200=%dn,ch1+200);printf(ch1+200=%cn,ch1+200);printf(ch1+256=%dn,ch1+256);printf(ch1+256=%cn,ch1+256);程序运行结果:ch1=A,ch2=b ch1+200=297 ch1+200=a ch1+256=353 ch1+256=ach1+200

37、(int)ch1+200:先将ch1转换成整型,再同200进行相加。(6)字符型数据:存储)字符型数据:存储(6)字符型数据:字符串常量)字符型数据:字符串常量1.字符串常量:用一对双引号括起来的若干字符序列。字符串中字符的个数称为字符串长度。长度为0的字符串(即一个字符都没 有的字符串)称为空串,表示为“”。如“Hello”、“2008”、“a_b_c”2.字符串结束标记0 每个字符串常量结尾都有一个字符0(一般由系统自动加上)。如“China”在内存中为:占用6个字节 a与“a”不同:a为1个字符 “a”为2个字符China0aa0(1)定界符不同:字符常量使用单引号,而字符串常 量使用双

38、引号;(2)长度不同:字符常量的长度固定为1,而字符串常 量的长度,可以是0,也可以是某个整数;(3)存储要求不同:字符常量存储的是字符的ASCII码 值,而字符串常量,除了要存储有效字符的ASCII 码外,还要存储一个结束标志0。(7)变量赋初值)变量赋初值1.先定义后赋值 如:int a,b,c;a=b=5;c=6;2.在定义变量的同时设置初值,也称为初始化。如:int a=3;float b=2.56;char c=a;如果a、b、c初值相等,只能写成:int a=3,b=3,c=3;不能写成int a=b=c=3;不能在定义变量语句的同时使用连续的赋值运算。(8)不同类型数据间的混合运

39、算)不同类型数据间的混合运算 在C语言中,整型数据、实型数据(单、双精度)和字符型数据间可以混合运算。如:5+a+12.3-2.14*x是合法的。运算时,不同类型的数据要先转换成同一类型,然后进行运算(“先转换、后运算”的原则)。这些转换和运算是由系统自动进行的。float高低double longunsigned intchar,shortfloat型必须转换成double型,即使是两个float型数据相加,也先换成double型。char和short 型必须转换成 int 型不同类型进行混合运算时,按照类型级别由低到高的顺序转换。例:int型与double型数据进行混合运算,则先将int

40、型数据转换成double型,然后进行运算,结果 为double型。注意:箭头方向只表示数据类型由低向高转换,不 要理解为int型先转换成unsigned型,再转换 成long型,最后转换成double型。(8)强制类型转换)强制类型转换C语言中可利用强制类型转换运算符将一个表达式的值转换成所需类型。格式:(类型名)(表达式)如:(double)a (int)(x+y)与(int)x+y 不同 (float)(8%5)(float)5/2 /*将5转换成实型,再除以2*/(float)(5/2)/*将5整除2的结果转换成实型*/注意:强制转换类型得到的是一个所需类型的中间变量,并不改变原变量 类

41、型。例如(double)a 只是将变量a的值转换成一个double型的中间量,其数据类型并未转换成double型。运行结果:运行结果:106.997500如果改为如果改为%d运行结果为:运行结果为:28836(错误)(错误)#includemain()int i;float f;double d;long e;i=2;f=0.5;d=100.25;e=100;printf(%fn,10+a+i*f-d/e);3.常用运算符常用运算符在C语言中,除控制语句和输入输出函数外,其它所有基本操作都作为运算符处理。C语言的运算符有:1.算术运算符 2.关系运算符 3.逻辑运算符 4.位运算符 5.赋值运

42、算符 6.条件运算符 7.逗号运算符8.指针运算符9.求字节数运算符10.强制类型转换运算符11.分量运算符12.下标运算符13.其他(自增自减、函数调用等)(1)基本算术运算符)基本算术运算符1)+(加法运算符或正值运算符):3+5、+102)-(减法运算符或负值运算符):9-2、-53)*(乘法运算符):3*5、2*x4)/(除法运算符):5/3、(x+y)/(a+b)两个整数相除,其值为整数,小数部分被舍弃。如:5/2=2 除数、被除数有一个为负值时,结果“向零取整”。如:-5/3=-1 除数、被除数有一个为实数时,结果为double型。如:1.5/2=0.75 5)%(求余运算符或模运

43、算符):%两侧必须为整型数据,否则出错。如:7%4=3 -7%4、7%-4、-7%-4的值为多少?(-3、3、-3)符号由被除数决定。(3+a)/9%8的值为多少?的值为多少?(2)运算符的优先级与结合性)运算符的优先级与结合性(1)用运算符和括号将运算对象(常量、变量和函数等)连接起来的、符合 语言语法规则的式子,称为表达式。如:2.14*r*r x+sqrt(0.25*y)/(abs(a+b)-2.6)(2)运算符的优先级和结合性 优先级是指当表达式中包含有不同类型的运算符号时的运算顺序。按照优先级由高到低:先*、%,后、结合性是指当表达式中有若干个同一类型的运算符号时的运算顺序。算术运算

44、符的结合性:左结合性(自左至右)结合性是语言的独有概念。除单目运算符、赋值运算符和条件运算符 是右结合性外,其它运算符都是左结合性。#includemain()int a;float i;i=12.6;a=(int)i%5;printf(a=%d,i=%fn,a,i);运行结果:运行结果:a=3,i=12.600000#includemain()float x;int i;x=2.6;i=(int)x;printf(x=%f,i=%dn,x,i);运行结果:运行结果:x=2.600000,i=3(3)自增、自减运算符)自增、自减运算符(1)前置运算运算符放在变量之前:+i、i 先使变量的值加(

45、或减)1,然后再以变化后的值参与其它运算,即先加减、后使用。(2)后置运算运算符放在变量之后:i+、i 变量先参与其它运算,然后再使变量的值加(或减),即先使用、后加减。注意:(1)自增、自减运算符,不能用于常量和表达式。如5+、-(a+b)都是非法的 float型数据不能做自增或自减运算。(2)+和-的优先级高于算术运算符,结合方向是:“自右向左”。-i+相当于-(i+)(3)在表达式中,连续使同一变量进行自增或自减运算时,很容易出错,最好避免这种用法。在赋值语句中,自增、自减运算符若作为前缀形式,其运算优先级高于其它算术运算,即先进行自增、自减运算,再进行其它运算;若作为后缀形式,其运算优

46、先级低于其它算术运算,即先进行其它算术运算,再进行自增、自减运算。增增1和减和减1运算符运算符增增1和减和减1运算是在访问变量之前或之后运算是在访问变量之前或之后进行增进行增1或减或减1运算。运算。先增运算先增运算用用+V表示,先使表示,先使V值值增增1,然后再访问。,然后再访问。后增运算后增运算用用V+表示,先访问表示,先访问V,然后再使,然后再使V值增值增1。先减运算先减运算用用-V表示,先使表示,先使V值减值减1,然后再访问。,然后再访问。后减运算后减运算用用V-表示,先访问表示,先访问V,然后再使然后再使V值减值减1。增1和减1运算符是单目运算符,且操作对象只能是变量,不能是常量或表达

47、式。读读程序写结果程序写结果#includemain()inti,j;j=0;for(i=1;i5;+i)printf(%d,+j);1234#includemain()inti,j;j=0;for(i=1;i5;+i)printf(%d,j+);0123程序程序举例举例2 2#includemain()inta=5,b=4,x,y;x=a+*a+*a+;printf(“a=%d,x=%dn”,a,x);y=-b*-b*-b;printf(“b=%d,y=%dn”,b,y);a=8,x=125b=1,y=1?信不信信不信由你由你!_测测试!试!x=a*a*a;a=a+1;a=a+1;a=a+1

48、;b=b-1;b=b-1;b=b-1;y=b*b*b;注意:标准C!考试为目的!实际上与编译器有关!程序举例程序举例3 3main()inta,b,c;a=b=c=0;a=+b+(+c);printf(%d,%d,%dn,a,b,c);a=(b+)+c+;printf(%d,%d,%dn,a,b,c);a=(+b)+c+;printf(%d,%d,%dn,a,b,c);a=(b-)+(-c);printf(%d,%d,%dn,a,b,c);+c;a=2*(+c);printf(a=%dn,a);a=2;b=1;c=1a=2;b=2;c=2a=5;b=3;c=3a=5;b=2;c=2a=2;b=

49、2;c=3a=8;b=2;c=4(4)赋值运算符和赋值表达式)赋值运算符和赋值表达式1.赋值运算符(“=”)用法:变量=表达式作用:将表达式的值赋给变量。(常量、变量是表达式的特例)例:a=5;a=(a+b)/10;“=”不表示相等2.类型转换当赋值运算符两边的数据类型不一致时,系统会自动进行转换。1).整型实型:舍弃实数的小数部分 实型(单、双精度)整型:数值不变,以浮点数形式存到变量中。2).整型(字节数相同的)unsigned 整型:原样赋值,若超过整型表示范 围,结果可能会出错。unsigned(字节数相同的)整型:原样赋值,符号位也作为数值。(4)赋值运算符和赋值表达式)赋值运算符和

50、赋值表达式3.char、int、long等类型的转换 (1)“长”变量“短”数据 符号扩展:若最高位为1(负数),则变量高字节位补1。若最高位为0(正数),则变量高字节位补0。#include main()char c;int i;c=43;i=c;printf(“i=%dn,i);c=376;i=c;printf(“i=%dn,i);00 10 10 1100 00 00 0000 10 10 11ASCII码为43的字符为“+”i为int型,占16位11 11 11 1011 11 11 1111 11 11 10376的ASCII码为254,字符为“”i为int型,占16位运行结果为:i

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

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

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com