您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 期末复习C语言知识点归纳
期末复习C语言知识点归纳一、概述1.一个C语言源程序可以由一个或多个函数组成,有且只有1个main()函数,可以放在程序中的任何位置.2.一个C程序不论有几个函数,都是从main()函数开始执行.3.标识符按照C语言所定义的规则来命名的符号。规则:由字母、数字、下划线组成,但第一个字符必须是字母或下划线。例如:area、a234、_1234为合法标识符456P、a-b、a+b为非法标识符注意:标识符区分大小写。例如:PAGE和page是两个不同的标识符。4.c语言有32个关键字,关键字不能用作用户标识符。5.C源程序文件的扩展名.c。6.VC++6.0下c语言程序的完整实现过程包括4个基本步骤:编辑源程序编译源程序构建(链接)形成可执行文件(.exe)运行可执行文件.二、数据类型、表达式1.c语言中,整型、字符型、实型是最基本的数据类型.2.常量指在程序运行中,其值不能被改变。分为整型常量、实型常量、字符常量、字符串常量。整型常量C语言中主要有十进制、八进制、十六进制等。十进制例如12、-3、32767等。八进制用数字0开头,由0-7这8个数字组成。例如010、016为合法八进制数127、018为非法八进制数十六进制用数字0和字母x或X开头,用0-9表示前10个数字,字母A-F(可小写)表示后6个数字。例如0xAF、0x10、0x34为合法十六进制数100、ABC、0xAFH为非法十六进制数注意:C语言中只有十进制数可以为负数。实型常量表示方式有两种:小数形式和指数形式。小数形式例如:0.123、.123、123.都是合法形式。指数形式例如:2.3026可用以下任何一种指数表示0.23026E1、2.3026e0、23.026E-1但下面的指数形式为非法E3、.5e3.6、2.3e-2(e和-2间有空格)符号常量用符号名来表示一个常量。格式:#define符号名常量值例:已知圆的半径为5.0,计算圆的面积(圆周率取3.14)。#includestdio.h#definePI3.14main(){doubler,s;r=5.0;s=PI*r*r;printf(“s=%f\n”,s);}C语言中整型常量的3种表示:8进制以0引导,16进制以0x或0X引导,十进制不能以0开头.实型(float或double型)常量在程序中只能用十进制数,不能用其他进制表示。2种表示形式,普通的和指数形式,如3e5或者3E5,三者不可省略任何一部分.一个字符常量占一个字节存储空间.用单引号限定,如:’A’’\0x41’(为转义字符,表示以十六进制数41为ASCII码值的字符,即’A’的转义字符形式).‘\0’(表示空字符,在字符串中用作字符串的结束标志)11.字符串常量用英文双引号括起来.如:”hello\n”字符串中的字符个数称为字符串的长度.空字符串长度为0.字符串存储中每个字符占一个字节,字符串结尾自动加一个结束标志符’\0’,所以字符串存储的时候,占用的空间长度要比串的实际长度多1.如:charch[]={“Hello”};实际串的长度为5,但数组空间长度为6。变量指在程序运行过程中其值可以改变的量。变量的命名必须符合标识符的命名规则,且不能和C语言中关键字同名。(例如:main是关键字)例如:a、b、ab为合法变量define、printf为非法变量注意:ab是一个整体,含义不同于a乘以b。有符号整型变量用英文singned表示,存储时最高一位是符号位,无符号整型变量用英文unsigned表示.字符型变量的数据类型标识符是符号char,每个字符型变量只能存储一个字符.例如:‘A’、’c’、’5‘都是合法的字符常量。”A”、’abc’都是非法的字符常量。常见的转义字符:\n回车换行\\反斜杠\’单引号\”双引号\ddd三位八进制\xhh二位十六进制\0空值例1:‘\n’表示回车换行‘\’’表示一个单引号例2:‘\101’表示字符’A’‘\x41’表示字符’A’字符变量用关键字char定义,可以同时赋初值。例1定义两个字符变量ch1和ch2。charch1,ch2;例2定义两个字符变量a和b,初值分别为’1’和’2’。chara=’1’,b=’2’;getchar函数和putchar函数分别用来输入字符和输出字符。字符的输入和输出使用scanf和printf时,格式符均为%c。例1从键盘上输入一个字符保存在ch中。charch;ch=getchar();例2charc1=’A’,c2;c2=c1+1;putchar(c2);输出结果是’B’。例3输出一个回车换行符。putchar(‘\n’);例:从键盘上输入一串字符,最后以’!’为结束标志。分别统计大写字母,小写字母、数字出现的次数。#includestdio.hmain(){charch;intn1=0,n2=0,n3=0;printf(“请输入一串字符以!结束:\n”);ch=getchar();while(ch!='!'){if(ch='A'&&ch='Z')n1++;if(ch='a'&&ch='z')n2++;if(ch='0'&&ch='9')n3++;ch=getchar();}printf(大写字母出现次数是%d\n,n1);printf(小写字母出现次数是%d\n,n2);printf(“数字出现次数是%d\n,n3);}VC++6.0下,int型数据占4个字节,float型数据占4个字节,double型数据占8个字节,.char型数据占1个字节.算术运算符+、-、*、/、%(求余数)例如:3+21.2*3.25%31/2求余运算符%只能用于整型数据的相除求余数,结果为整数.如:7%2.0为非法表达式,7/2结果为3,7%2结果为1运算规则1)如果运算数类型一致,则结果为运算数的类型。所有实数运算都是以双精度进行.2)如果运算数类型不一致,则系统自动转换,使运算符两边类型一致后再进行运算。char和short参与运算先转换成同int.赋值运算中,赋值号右侧量的类型将转换成左侧的类型.例11.0/2.0结果为0.5例21/2结果为0例315/3.0结果为5.0强制类型转换格式:(类型名)(表达式)例4(int)3.234结果为3例5(float)(10%3)结果为1.000000关系运算符,=,,=的优先级相同且高于==,!=的优先级.关系运算符的优先级低于算术运算符高于赋值运算符.关系运算符是左结合性.关系表达式的值为真则是1,假为0.逻辑运算符!高于&&,和||,高于算术运算符.&&和||是左结合的,!是右结合的.注意&&及||运算的短路现象。&&的短路运算:(表达式1)&&(表达式2),若(表达式1)的值为0,则表达式2将不被计算,整个&&的结果为0。||的短路运算:(表达式1)||(表达式2),若(表达式1)的值为1,则表达式2将不被计算,整个||的结果为1。数学关系式0x10在C语言中的表达:(0x)&&(x10)或0x&&x10赋值表达式格式:变量名=表达式例如:a=10a=a+1a=b=7+1为合法表达式a+b=8a=7+1=b为非法表达式整个表达式的值等于最左边变量的值。例如:a=b=c=8*8整个表达式最后的值为64复合赋值表达式复合运算符:+=、-=、*=、/=、%=例如:n=n+1表达式可写成n+=1n=n%3表达式可写成n%=3n*=m+3表达式可写成n=n*(m+3)例1假设变量a初值为9,计算下列表达式。a+=a-=a+a解答:1)计算a+a,结果为18,a值未变。2)计算a-=18,即a=a-18,结果为-9,a值变为-9。3)计算a+=-9,即a=a+(-9),结果为-18,a值变为-18。整个表达式最后结果为-18,a最后值为-18。注意:a=a+1为赋值表达式,而a=a+1;为赋值语句。自加和自减运算符自加和自减只适用于整型变量.例如:a++和++a等价于a=a+1b--和--b等价于b=b-1a++和++a的区别:假设a的初值为5表达式a++值为5,最后a值为6。表达式++a值为6,最后a值为6。逗号表达式格式:表达式1,表达式2,…..,表达式n从左至右依次计算每个表达式,最后一个表达式的值即为整个逗号表达式的值。例如:表达式i=3,++i,i+5最后结果为9,i最后值为4。条件运算由?和:构成,它是根据条件从两个表达式中选择一个进行计算取值的操作,优先级高于赋值运算符,低于算术运算和关系运算.三、输入输出函数数据输出printf格式:printf(格式符,输出项1,输出项2,….)格式符功能%c输出一个字符%d输出十进制整数%f输出小数形式浮点数%e输出指数形式浮点数%s输出一个字符串数据宽度说明:1)在%和格式字符之间插入一个整数来指定输出宽度。例如:%4d、%5c2)对于float和double类型的实数,可以用n1.n2形式n1指定输出数据的宽度(包括小数点),n2指定小数点后小数的位数。例如:%12.3f、%12.0f例1输出整型变量a和b的值,数据宽度均为4。printf(“%4d%4d”,a,b);例2输出单精度变量k的值,保留2位小数。printf(“%.2f”,k);数据输入scanf格式:scanf(格式符,输入项1,输入项2,…)格式符功能%c输入一个字符%d输入十进制整数%f输入单精度数%lf输入双精度数%s输入一个字符串例1从键盘上输入两个整数,保存在变量a和b中。scanf(“%d%d”,&a,&b);例2从键盘上输入一个双精度数,保存在变量data中。scanf(“%lf”,&data);此处两例中&是C语言运算符,表示取变量地址。复合语句格式:{语句1语句2….语句n}例1用复合语句将变量a,b,c依次赋值为最小素数。{a=2;b=3;c=5;}例2用复合语句实现变量a和b的值的交换。{k=a;a=b;b=k;}不带参数的宏#definePI3.14159意思是用符号常量PI(宏名)代替3.14159(宏体),注意:宏定义不是c语句,后面不加分号.带参数的宏.#definem(x)x*x*x*x意思是m(x)代替x的4次方,x不用定义,可以在使用中换成需要的字母.带参数的宏的展开,如:#definem(x)x*x*x*xprintf(%d,m(1+1));m(1+1)的宏展开式为:1+1*1+1*1+1*1+1计算结果为5再如:#definem(x)(x)*(x)*(x)*(x)printf(%d,m(1+1));m(1+1)的宏展开式为:(1+1)*(1+1)*(1+1)*(1+1)计算结果为16include命令是编译预处理的文件包含命令,形式为了#include文件名或者#include文件名,调用标准函数中的输入输出函数,#includestdio.h,如果调用数学函数(如sqrt函数、fabs函数等),则应加上#includemath.h或者#includemath.h四、分支结构关系运算符、、=、=、==、!=关系运算的结果只有两种:真或假C语言中用1表示真,用0表示假。例16=6‘a’’A’‘5’’‘结果均为真,值为1例26!=6‘D’==’d’‘9’’F’结果均为假,值为0逻辑运算符&&(与)||(或)!(非)优先级:非运算与运算或运算非运算规则操作数结果真假假真与运算规则操作数1操作数2结果真真真真假假假真假假假假或运算规则操作数1操作数2结果真真真真假真假真真假假假例1若变量a值为10,变量b值为16,计算表达式。ab||asqrt(b)&&b=16最后结果为真,表达式的值为1if语句的一般形式:单分支结构:if(表达式)语句若表达式为真,则执行语句;否则if语句结束。二选一结构:if(表达式){语句组1}else{语句组2}表达式的值非0才执行语句组1,否则执行语句组2.例1从键盘上输入两个整数,输出较大的数。#in
本文标题:期末复习C语言知识点归纳
链接地址:https://www.777doc.com/doc-2376780 .html