C语言基础知识 考研复习篇ppt课件.ppt_第1页
C语言基础知识 考研复习篇ppt课件.ppt_第2页
C语言基础知识 考研复习篇ppt课件.ppt_第3页
C语言基础知识 考研复习篇ppt课件.ppt_第4页
C语言基础知识 考研复习篇ppt课件.ppt_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C,基础知识,专题一:,热身练习:,1.已知各变量的类型说明如下,则以下不符合C语言语法的表达式是。intk,a,b;unsignedlongw=5;doublex=1.42;A)x%(-3)B)w+=-2C)k=(a=2,b=3,a+b)D)a+=a-=(b=4)*(a=3),热身练习:,2.设x、y、t均为int型变量,则执行语句:x=y=3;t=+x|+y;后,x的值为,y的值为。A)不定值B)4C)3D)8,热身练习:,3.有如下定义,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是。inta1,a2;charc1,c2;scanf(“%d%d”,A)1020ABB)1020ABC)1020ABD)1020AB,一、语言的特点,、语言简洁、紧凑,使用方便、灵活;一共有32个关键字,9种控制语句,主要用小写字母表示。,一、语言的特点,九种控制语句:,一、语言的特点,2、运算符丰富:共有34种运算符。算术运算符、关系运算符、逻辑运算符、位操作运算符、赋值运算符、条件运算符、逗号运算符、指针运算符、求字节数运算符、特殊运算符等。3、数据结构丰富:的数据类型有:整型、实型、字符型、数组类型、结构体类型、共用体类型、指针类型、空类型等。,一、语言的特点,4、具有结构化的控制语句;5、语法限制不太严格,程序设计自由度大;6、C语言能进行位操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作;7、生成目标代码质量高,程序执行效率高;8、用C语言编写的程序可移植性好。,二、语言的词汇,在语言中使用的词汇分为六类:标识符:变量名、函数名、标号等统称为标识符标识符只能是字母、数字、下划线组成的字符串,并且第一个字符必须是字母或下划线,用户定义的标识符不应与关键字相同。关键字:由语言规定的具有特定意义的字符串运算符:与变量、函数一起组成表达式,实现运算功能分隔符:逗号和空格常量:数字常量、字符常量、字符串常量、符号常量、转义字符注释符:“/*”开头并以“*/”结尾的串,三、数据类型,(一)基本类型的分类及特点,【注】带*号表示的数据类型与机器硬件有关,(二)变量在内存中的存放形式,1、整型数据在内存中以补码形式存放正数:原码即为补码(该数的二进制数)负数:(1)取绝对值(2)求绝对值的二进制形式(3)将二进制按位取反(4)再加上1,可得补码注意:若给出一个数在内存中的存放形式,先看最高位来判断是正负数。,-10在机器内存中的存放形式,(二)变量在内存中的存放形式,求-10的补码过程:10的原码:01010按位取反:1111111111110101再加1,得-10的补码:1111111111110110,(二)变量在内存中的存放形式,有符号整型变量:最大表示32767无符号整型变量:最大表示65535,(二)变量在内存中的存放形式,解决整型数据的溢出问题如:inta=32767,b;b=a+1;printf(“%d”,b);,b=-32768,(二)变量在内存中的存放形式,2、实型数据在内存中的存放形式实型数据一般占4个字节(32位)内存空间。按指数形式存储。实数3.14159在内存中的存放形式如下:,三、数据类型变量,main()floata;doubleb;a=33333.33333;b=33333.33333333333333;printf(%fn%fn,a,b);由于a是单精度浮点型,有效位数只有七位。而整数已占五位,故小数二位后之后均为无效数字。b是双精度型,有效位为十六位。但TurboC规定小数后最多保留六位,其余部分四舍五入。doubled=12.3456789;printf(“%lf”,d);,三、数据类型常量,1、整数常量十进制整数:带符号,09组成,第一位数字为非零(除零外)-456八进制整数:07组成,最高位用0引导0123=(123)8=(83)10十六进制整数:09及af或AF组成,最高位用0 x或0X引导,0 x123=(123)16=(291)10整数常量后加字母u或U表示该数为无符号型,加字母l或L表示该数为长整型12345u123L,三、数据类型常量,2、实型常量在C中有两种表示方法:十进制小数形式:0.0、25.0、300.、-267.8230等。注意,必须有小数点。指数形式:men(或mEn)表示m*10n(这里m为非0实数,n为整数)。如:12.3E-2表示12.3*10-2在C编译系统中,将浮点型常量作为双精度来处理,以下不是合法的实数,请说明理由:345E7-553.-E32.7E,三、数据类型常量,3、字符常量-转义字符,三、数据类型常量,3、字符常量-转义字符ddd输出一到三位八进制数所对应的字符xhh输出一到两位16进制数所对应的字符例如:chara=101,b=x41;putchar(a);putchar(b);,答案:AA,三、数据类型常量,字符常量就是一个普通整数,也可参与各种数学运算每个字符具有一个0255之间的数值,可从ASCII表查出注意:5和整数5的区别5的ASCII码值是53思考:62的值是多少?,例题:小写字母转换为大写字母,#includemain()charch=b;printf(%c,%dn,ch,ch);ch=b-32;printf(%c,%dn,ch,ch);,#includemain()charch=b;printf(%c,%dn,ch,ch);ch=b-(a-A);printf(%c,%dn,ch,ch);,b,98B,66,b,98B,66,相当于97-65,三、数据类型常量,4、字符串常量用双引号括住的由0个或多个字符组成的字符序列Iamastring表示空字符串除注释外,是唯一可以出现中文的地方C语言内部用0表示字符串的结束x和x是不同的里定义了一系列专门的字符串处理函数转义字符也可在字符串中使用,实践挑战:,1、设:char*s=“ta017bc”;则strlen(s)的值为()。(04南师大)2、在一个32位系统中(如WindowsXP),若定义char*s=010010010n;则sizeof(s)的值为(),strlen(s)的值为(),答案:1、52、29,sizeof到底是什么?,C语言的关键字,并非函数计算类型占用的字节数两种语法形式sizeof(类型)结果为类型占用的字节数sizeof(表达式)结果为表达式值所属类型占用的字节数一般都使用sizeof(变量名),strlen()到底是什么?,strlen()是函数,返回字符串中所包含的字符个数。注:统计时不包括0两种语法形式strlen(字符串)如:strlen(“abcd”);strlen(字符指针变量);char*s=“abc;stelen(s);,三、数据类型常量,宏常量也称符号常量一般采用全大写字母表示宏定义不是语句,而是一种编译预处理命令格式如下:#define标识符字符串使用时,将标识符用字符串完全替换,正确的实例:计算圆的周长和面积,#include#definePI3.14159#defineR5.3main()printf(area=%fn,PI*R*R);printf(circumference=%fn,2*PI*R);,area=88.247263circumference=33.300854,相当于执行#includemain()printf(area=%fn,3.14159*5.3*5.3);printf(circumference=%fn,2*3.14159*5.3);,宏替换,错误实例:计算圆的周长和面积,#include#definePI3.14159;#defineR5.3;main()printf(area=%fn,PI*R*R);printf(circumference=%fn,2*PI*R);,相当于执行#includemain()printf(area=%fn,3.14159;*5.3;*5.3;);printf(circumference=%fn,2*3.14159;*5.3;);,语法错误,实践挑战:,3、在C语言中,宏定义#definePI3.14159中,用宏名PI代替了一个()(南师大06)A.单精度数B.双精度数C.字符序列D.常量,答案:C,枚举(Enumeration)常量,enumweeksSUN,MON,TUE,WED,THU,FRI,SAT;/*声明了一个枚举类型*/enumweekstoday;/*用上面类型定义变量*/today=TUE;/*变量today只能在上面定义的范围内取值*/enumresponseno,yes,none;enumresponseanswer;answer=yes;enumresponseno=-1,yes=1,none=0;,其值为2,其值为1,四、运算符,常见的运算符算术运算符赋值运算符类型强转(强制类型转换)关系运算符逻辑运算符增和减位运算符,四、运算符,运算符有三个属性:运算元数:最少1个,最多3个-1;32?3:2优先级:结合性:即指运算符与运算元的结合方向,用于指导同级的运算表达式:运算元与运算符的组合式a*b/c-2.2+A,简化后的优先级:1一级运算符2单变量运算符3算术运算符4位运算符5关系运算符6位逻辑运算符7逻辑运算符8条件运算符9赋值运算符10逗号运算符,四、运算符基本的算术运算符,当两个整数相除时,其结果为整数,即舍去小数部分。如:10/3=3;,四、运算符,赋值运算符及赋值表达式简单的赋值运算符用“=”表示属于双目运算符优先级较低,仅高于逗号具有右结合性由“=”连接的式子称为赋值表达式功能是计算表达式的值再赋予左边的变量a=b=c=5可理解为a=(b=(c=5)赋值表达式的值就是“=”号右侧的值x=(a=5)+(b=8),四、运算符,复合的赋值运算符在赋值符“=”之前加上其它二目运算符可构成复合赋值符。如+=,-=,*=,=,%=,=,floatf=1.5;d=f;反之是不安全的若大类型的值在小类型能容纳的范围之内,则平安无事doubled=1.5;floatf;f=d;若浮点数转为整数,会丢失小数部分,非四舍五入inti;floatf=1.64;i=f;(i的值为1)反之,转换后的结果必然是错误的,具体结果与机器和实现方式有关doubled=123.456789e100;floatf;f=d;,Example:intx=10;floaty;y=(float)x;,(float)10,10.000000,消除从大到小的警告x=(int)y;通过下面方式把表达式的值转为任意类型(类型)表达式,不改变x,强制类型转换,Example:inttotal,number;floataverage;average=total/number;,15/2,7,两个整数运算的结果还是整数,不是浮点数,强制类型转换,Example:inttotal,number;floataverage;average=(float)total/number;,15.000000/2,7.500000,强制类型转换,增一和减一运算符,n+,n-,+n,-n+让参与运算的变量加1,-让参与运算的变量减1作为后缀(postfix)运算符时,先取n的值,然后加/减1,n+,n-,+n,-n+让参与运算的变量加1,-让参与运算的变量减1作为后缀(postfix)运算符时,先取n的值,然后加/减1作为前缀(prefix)运算符时,先加/减1,然后取n的值,增一和减一运算符,例如:j=+i-2,等价于:i=i+1;j=i2;,4,6,增一和减一运算符,例如:j=i+-2,等价于:j=i2;i=i+1;,3,6,增一和减一运算符,例:输出结果和变量a的值?inta=3;printf(%d,-a+);,等价于:printf(%d,-a);a=a+1;,4,增一和减一运算符,例题:,main()inti=5,j=5,p,q;p=(i+)+(i+)+(i+);q=(+j)+(+j)+(+j);printf(%d,%d,%d,%d,p,q,i,j);,解析:对p=(i+)+(i+)+(i+)应理解为三个i相加,故P值为15。然后i再自增1三次相当于加3故i的最后值为8。而对于q的值则不然,q=(+j)+(+j)+(+j)应理解为q先自增1,再参与运算,由于q自增1三次后值为8,三个8相加的和为24,j的最后值仍为8。,四、运算符,逗号运算符和逗号表达式功能是把两个表达式连接起来组成一个表达式,称为逗号表达式。其一般形式为:表达式1,表达式2分别求两个表达式的值,并以表达式2的值作为整个逗号表达式的值。如:inta=2,b=4,c=6,x,y;y=(x=a+b),(b+c);,四、运算符,关系运算符大于=大于或等于=等于!=不等于,双目运算符结合性均为左结合优先级低于算术运算符高于赋值运算符其中:,=的优先级相同,高于=和!=和!=的优先级相同,四、运算符,逻辑运算符&与运算|或运算!非运算,与运算符&和或运算符|为双目运算符具有左结合性非运算符!为单目运算符,具有右结合性。逻辑运算符的优先级为:!(非)&(与)|(或),四、运算符,位运算符,&按位与运算|按位或运算按位异或运算,按位右移运算按位求反,位运算,按位与运算通常用来对某些位清0或保留某些位和0“与”可清0,和1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论