您好,欢迎访问三七文档
当前位置:首页 > 财经/贸易 > 资产评估/会计 > 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”,&a1,&a2);scanf(“%c%c”,&c1,&c2);A)1020ABCRB)1020CRABCRC)1020ABCRD)1020ABCR一、C语言的特点1、语言简洁、紧凑,使用方便、灵活;一共有32个关键字,9种控制语句,主要用小写字母表示。autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedstaticsizeofstructswitchtypedefunionunsignedvoidvolatilewhile一、C语言的特点九种控制语句:if()~else~for()~while()~do~while()cotinuebreakswitchgotoreturn一、C语言的特点2、运算符丰富:共有34种运算符。算术运算符、关系运算符、逻辑运算符、位操作运算符、赋值运算符、条件运算符、逗号运算符、指针运算符、求字节数运算符、特殊运算符等。3、数据结构丰富:C的数据类型有:整型、实型、字符型、数组类型、结构体类型、共用体类型、指针类型、空类型等。一、C语言的特点4、具有结构化的控制语句;5、语法限制不太严格,程序设计自由度大;6、C语言能进行位操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作;7、生成目标代码质量高,程序执行效率高;8、用C语言编写的程序可移植性好。二、C语言的词汇在C语言中使用的词汇分为六类:•标识符:变量名、函数名、标号等统称为标识符标识符只能是字母、数字、下划线组成的字符串,并且第一个字符必须是字母或下划线,用户定义的标识符不应与关键字相同。•关键字:由C语言规定的具有特定意义的字符串•运算符:与变量、函数一起组成表达式,实现运算功能•分隔符:逗号和空格•常量:数字常量、字符常量、字符串常量、符号常量、转义字符•注释符:“/*”开头并以“*/”结尾的串三、数据类型数据类型基本类型构造类型指针类型空类型整型实型(浮点型)字符型枚举类型数组类型结构体类型共用体类型单精度实型双精度实型基本整型长整型短整型无符号整型(一)基本类型的分类及特点表2.2基本数据类型(IBM及其兼容机)类型符号关键字(小写)取值范围字节数int-32768~327672B*short[int]-32768~327672B带long[int]-21×109~21×1094Bunsigned[int]0~655352B*unsignedshort[int]0~655352B整型不带unsignedlong[int]0~42×1094B带char-128~1271B字符型不unsignedchar0~2551Bfloat(单精度)-10-38~10384B*实型带double(双精度)-10-308~103088B*【注】带*号表示的数据类型与机器硬件有关(二)变量在内存中的存放形式•1、整型数据在内存中以补码形式存放正数:原码即为补码(该数的二进制数)负数:(1)取绝对值(2)求绝对值的二进制形式(3)将二进制按位取反(4)再加上1,可得补码注意:若给出一个数在内存中的存放形式,先看最高位来判断是正负数。1111111111110110-10在机器内存中的存放形式(二)变量在内存中的存放形式•求-10的补码过程:10的原码:0000000000001010按位取反:1111111111110101再加1,得-10的补码:1111111111110110(二)变量在内存中的存放形式•有符号整型变量:最大表示32767•无符号整型变量:最大表示6553501111111111111111111111111111111(二)变量在内存中的存放形式•解决整型数据的溢出问题•如:inta=32767,b;b=a+1;printf(“%d”,b);01111111111111111000000000000000b=-32768(二)变量在内存中的存放形式2、实型数据在内存中的存放形式实型数据一般占4个字节(32位)内存空间。按指数形式存储。实数3.14159在内存中的存放形式如下:+.3141591类型说明符比特数(字节数)有效数字数的范围float32(4)6~710-38~1038double64(8)15~1610-308~10308longdouble128(16)18~1910-4932~104932三、数据类型——变量main(){floata;doubleb;a=33333.33333;b=33333.33333333333333;printf(%f\n%f\n,a,b);}•由于a是单精度浮点型,有效位数只有七位。而整数已占五位,故小数二位后之后均为无效数字。•b是双精度型,有效位为十六位。但TurboC规定小数后最多保留六位,其余部分四舍五入。•doubled=12.3456789;printf(“%lf”,d);三、数据类型——常量1、整数常量十进制整数:带符号,0~9组成,第一位数字为非零(除零外)-456八进制整数:0~7组成,最高位用0引导0123=(123)8=(83)10十六进制整数:0~9及a~f或A~F组成,最高位用0x或0X引导,0x123=(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三、数据类型——常量•字符常量就是一个普通整数,也可参与各种数学运算–每个字符具有一个0~255之间的数值,可从ASCII表查出–注意:’5’和整数5的区别–’5’的ASCII码值是53–思考:’6’—’2’的值是多少?例题:小写字母转换为大写字母#includestdio.hmain(){charch='b';printf(%c,%d\n,ch,ch);ch='b'-32;printf(%c,%d\n,ch,ch);}#includestdio.hmain(){charch='b';printf(%c,%d\n,ch,ch);ch='b'-('a'-'A');printf(%c,%d\n,ch,ch);}b,98B,66b,98B,66相当于97-65三、数据类型——常量4、字符串常量•用双引号括住的由0个或多个字符组成的字符序列–Iamastring–表示空字符串–除注释外,是唯一可以出现中文的地方•C语言内部用’\0’表示字符串的结束–x和’x’是不同的•string.h里定义了一系列专门的字符串处理函数•转义字符也可在字符串中使用实践挑战:1、设:char*s=“\ta\017\bc”;则strlen(s)的值为()。(04南师大)2、在一个32位系统中(如WindowsXP),若定义char*s=010\010\\010\n;则sizeof(s)的值为(),strlen(s)的值为()答案:1、52、29sizeof到底是什么?•C语言的关键字,并非函数–计算类型占用的字节数•两种语法形式sizeof(类型)–结果为类型占用的字节数sizeof(表达式)–结果为表达式值所属类型占用的字节数一般都使用sizeof(变量名)strlen()到底是什么?•strlen()是函数,返回字符串中所包含的字符个数。•注:统计时不包括’\0’•两种语法形式strlen(字符串)–如:strlen(“abcd”);strlen(字符指针变量);–char*s=“abc;stelen(s);三、数据类型——常量宏常量–也称符号常量–一般采用全大写字母表示•宏定义不是语句,而是一种编译预处理命令•格式如下:#define标识符字符串使用时,将标识符用字符串完全替换正确的实例:计算圆的周长和面积#includestdio.h#definePI3.14159#defineR5.3main(){printf(area=%f\n,PI*R*R);printf(circumference=%f\n,2*PI*R);}area=88.247263circumference=33.300854相当于执行#includestdio.hmain(){printf(area=%f\n,3.14159*5.3*5.3);printf(circumference=%f\n,2*3.14159*5.3);}宏替换错误实例:计算圆的周长和面积#includestdio.h#definePI3.14159;#defineR5.3;main(){printf(area=%f\n,PI*R*R);printf(circumference=%f\n,2*PI*R);}相当于执行#includestdio.hmain(){printf(area=%f\n,3.14159;*5.3;*5.3;);printf(circumference=%f\n,2*3.14159;*5.3;);}语法错误实践挑战:3、在C语言中,宏定义#definePI3.14159中,用宏名PI代替了一个()(南师大06)A.单精度数B.双精度数C.字符序列D.常量答案:C枚举(Enumeration)常量enumweeks{SUN,MON,TUE,WED,THU,FRI,SAT};/*声明了一个枚举类型*/enumweekstoday;/*用上面类型定义变量*/today=TUE;/*变量today只能在上面定义的范围内取值*/enumresponse{no,yes,none};enumresponseanswer;answer=yes;enumresponse{no=-1,yes=1,none=0};其值为2其值为1四、运算符•常见的运算符–算术运算符–赋值运算符–类型强转(强制类型转换)–关系运算符–逻辑运算符–增1和减1–位运算符四、运算符运算符有三个属性:运算元数:最少1个,最多3个-1;32?3:2优先级:结合性:即指运算符与运算元的结合方向,用于指导同级的运算表达式:运算元与运算符的组合式a*b/c-2.2+'A'简化后的优先级:1一级运算符2单变量运算符3算术运算符4位运算符5关系运算符6位逻辑运算符7逻辑运算符8条件运算符9赋值运算符10逗号运算符高低四、运算符—基本的算术运算符操作符作用举例-减、单目取负3-2,-4+加、单目取正3+2,+4*乘3*2/除3/2%求余或取模(两侧均应为整型数)6%4++加1++a,a++--减1--a,a--当两个整数相除时
本文标题:C语言基础知识-考研复习篇
链接地址:https://www.777doc.com/doc-2036170 .html