您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业财务 > C语言基础知识点总结
重庆市二级C语言基础知识点总结第一部分C语言基础知识C程序的基本结构1.(1)一个C程序由一个或者多个函数构成,有且仅有一个主函数main()。(2)一个函数由函数的首部和函数体组成。(3)函数是从主函数(main())开始执行,回到主函数(main())结束;(与main()函数在程序中定义的位置无关)(4)一个程序的编译是从第一个函数(语句)开始,到最后一个函数(语句)结束;(5)算法的特性:有穷性,确定性,有一个或者0个输入,有一个或者多个输出;有效性(6)算法(程序)的几个结构:选择结构,顺序结构,循环结构2.用户标识符,由数字,字母,下划线构成,第一个不能是数字(一般会出选择题让你判断哪个标识符定义正确),字母要区分大小写。不能与32个关键字相同。例:P24第2题P122、2,模拟题第一题3.注释符://注释一行;/*和*/注释多行,注释不可以嵌套书写。注释没有任何语法功能。C语言的基本数据类型1.数据类型:分为:基本类型(整型,实型,字符型,枚举型),指针类型,构造类型(结构体类型,数组类型,共用体类型),空类型(空类型合法哦,不要忘记了这个特殊哦)。基本数据类型16位编译器32位编译器char:1个字节char:1个字节char*(即指针变量):2个字节char*(即指针变量):4个字节(32位的寻址空间是2^32,即32个bit,也就是4个字节。)shortint:2个字节shortint:2个字节int:2个字节int:4个字节unsignedint:2个字节unsignedint:4个字节float:4个字节float:4个字节double:8个字节double:8个字节long:4个字节long:4个字节longlong:8个字节longlong:8个字节unsignedlong:4个字节unsignedlong:4个字节一般只需要记int类型是2个字节,float是4个字节,double是8个字节注意int的最大表示范围是-32768――+32767,当超过这个范围的时候,即以%d输出+32768时结果为-32768长整型(long)表示方法是在数字后面加L,如果一个变量a=3,那么表示的是一个整型的3,如果是a=3L,那么就是长整型的3;当分别以%o,%ld,%x(8进制,长整型,16进制)输出的时候,结果没有前面的0,0X,和后面的L例:inta=075,b=ox14;longintc=5L;printf(“%o,%x,%ld”,abc);结果为(75,14,5)P22第5、11、9题等2.转义字符:\n\t\\\’\”\ddd(1-3位八进制所代表的字符)\xhh(1-2位十六进制所代表的字符)这个书上习题特别多,P25第19题,P120第3题,P138第16题P147第14题P152第2题等3.sizeof()和strlen():sizeof()测试字符串的存储长度;strlen()测试字符串长度,只计算遇到的第一个\0前面的字符个数。例:strlen(“abc\089”)=3strlen(“abc\012”)=4注意这个例题:chara[30]=“abc\0b”;sizeof(a)=30;sizeof(“abc\0b”)=6;strlen(a)=3strlen(“abc\0b”)=3;4.运算符和表达式:记忆书上附录里的运算符优先级(一定要记住常用的)(1)算术运算符和算术表达式:注意自增++,自减--,自反-,++,--,当++,--,在变量后面的时候表示在本次运算的时候不会改变,在下次引用或者参与运算的时候才会自变;当++,--,在变量的前面的时候则是在本次运算就会发生自变(顺便掌握++,--结合性是右结合,若i+++j等价于(i++)+j;(2)关系运算符:,,=,=,==,!=,==和!=优先级最低。注意=与==的区别:=是赋值的意思,表达式的值是对变量赋的值,==是关系运算符,关系运算表达式的值为0或者1(关系运算的结果本应是逻辑值,但C语言中没有逻辑数据类型,因此用整型数据来表示关系运算的结果)。(3)逻辑运算符:&&,||,!在这几个中优先级!大于&&大于||,优先级是体现在结合性上而不是运算的先后性上。例如a=b=c=1;d=++a||++b&&++c在这个里面&&最高那就是加粗部分先看成一个整体,运算顺序还是从++a开始,即做完这个运算后,可以依次判断出后边的运算式子没有必要计算了,所以d=1,a=2,b=1,c=1(4)赋值运算符:简单赋值运算符“=”其左边必须是变量。一般形式:变量名=表达式复合赋值运算符:+=、-=、*=、/=、%=、=、=、&=、^=、|=。注意当等号后面接的是表达式的时候要把表达式看成一个整体即x*=y+8等价于x=x*(y+8),y+8是一个整体(5)条件运算符:由两个符号“?”和“:”构成,一般形式:表达式1?表达式2:表达式3先计算表达式1的值,如果值为真(非0),则将表达式2的值作为条件表达式的值,否则将表达式3的值作为条件表达式的值。(6)逗号运算符和逗号表达式一般形式:表达式1,表达式2,……,表达式n求值时从左至右依次计算,最后计算表达式n的值,并将表达式n的值作为逗号表达式的值。例:#includestdio.hvoidmain(){inta;printf(“%d\n”,(a=3*8,a*4,a+5));}该程序的输出结果为29,变量a的值为24,注意此处考察了逗号表达式、逗号和赋值符号的优先级。=优先级高于,的优先级。(7)位运算符和位表达式(参考教材P17-18)位运算符有|(或)即只要有一个1就是1,&(与)要全部为1才为1^(异或)要不相同才为1;注意的是当向左移动n位就是乘以2的n次方;向右移动n位就是除以2的n次方。(8)强制类型转换运算符强制类型转换的一般形式:(类型名)表达式表达式(double)(x+y),是将x+y的值转换为double类型后得到的值,变量x,y和表达式x+y都保持原来的数据类型。C程序的输出printf()函数的一般形式为:printf(“格式控制字符串”,输出表列);格式控制包括两种信息:(1)格式说明:由%和格式字符组成。如%d、%f等。作用是将输出的数据转换为指定的格式输出。格式说明总是由%字符开始。(2)普通字符:即需要原样输出的字符。如逗号、空格和换行符。所以在写程序输出结果时,这种字符要原样写出来。putchar()函数的作用是向终端输出一个字符。一般形式:putchar(c),输出字符变量c的值,c可以是字符型变量或整型变量。%d,%md,%m.nd,%e,以及相应的几种格式是什么意思C程序的输入scanf()函数的一般形式为:scanf(“格式控制字符串”,变量地址表);这里的格式控制与printf()中的一样。变量地址表是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。getchar()函数的作用是从终端输入一个字符。gechar函数没有参数,一般形式:getchar()常用数学类标准库函数的简单应用:abs()、fabs()、fmod()、sin()、cos()、tan()、exp()、pow()、log()、log10()、sqrt()。参考教材第二部分C程序的基本控制结构分支结构1.if语句与程序的单分支结构形式:if(表达式)语句功能:若表达式的值为真,则执行语句。注意,当函数作为if里面的表达式的时候即if(printf(“*”))的时候,则是以函数的返回值判断if的真假,printf输出以1个字符则返回为1,所以这个if是真的;2.if……else语句与程序的双分支结构形式:if(表达式)语句1else语句2功能:若表达式的值为真,则执行语句1,否则执行语句23.复合语句及其在程序中的使用复合语句是用一对花括号“{}”将若干条C语句括起来形成的语句序列。复合语句的基本形式如下所示:{语句1;…语句i;…语句n;}注意:C语言的复合语句右括号“}”后不需要用分号“;”结尾,如果在程序中有如下形式的语句格式出现,则应认为是复合语句后面跟了一个空语句:{语句序列;};/*最后的分号是空语句*/4.if语句的嵌套与程序的多分支结构C语法规定else必须与最近的if相匹配。5.switch语句与程序的多分支结构形式:switch(表达式){case常量表达式1:语句组1;case常量表达式2:语句组2;………case常量表达式n:语句组n;default:语句组n+1;}a)常量表达式必须为整型、字符型或者枚举型,且值必须互不相同b)case后可包含多个可执行语句,且不必加{}c)多个case可共用一组执行语句d)当表达式的值和某个case后面的语句相匹配时,则执行相应case后面的语句,并继续执行之后的语句。若不希望继续执行之后的语句,则使用break语句跳出switch语句。参考P40,11题循环结构(执行过程参考课件)1.while型循环形式:while(表达式)语句注意在while()后面没有;号,当函数或者赋值表达式放在while的()中时与if的判断方法一样,判断函数的返回值或表达式值的逻辑值;若表达式的值为真(非0),则执行语句(循环体),否则结束循环;2.do….while型循环形式:do语句while(表达式)先执行语句(循环体)一次,再判断表达式的值是否为真(非0),若为真,则继续循环否则终止循环。同while()型循环相比,while()是先判断条件后执行语句,而do…while则是先执行语句后判断条件,无论如何都会先执行一次。3.for型循环形式:for(表达式1;表达式2;表达式3)例:for(i=1;i100;i++)s=s+i;(注意for括号的后面没有;号)当有两个for语句即嵌套的for循环的时候例:for(i=1;i4;i++)for(j=0;j5;j++)s=s+i;这个时候是先做i=1;然后判断i;然后做加粗的部分,即是把加粗部分看成一个整体做完之后才会回到i++;所以s=s+i;这个语句做了20次。不论是笔试的编程还是上机题,都会考到循环。所以一定要认真复习控制结构这一部分内容。如下面的一段程序,输出结果是什么?我们学习一定要把每一个知识点牢固掌握。书上的练习特别多,大家要学会举一反三。#includestdio.hvoidmain(){inta[5]={1,2,3,4,5};inti,j;for(i=0;i5;i++){for(j=i;j5;j++)printf(%d,a[j]);if(j==5)for(j=0;ji;j++)printf(%d,a[j]);printf(\n);}}4.空语句及其在程序中的使用所谓的空语句就是说没有执行代码,只有一个语句结束的标志:分号例如模拟题选择第15题5.循环的嵌套(只要求到3层)这类题,书上有很多的习题,主要是掌握程序的执行过程。参考课件,书上的习题多做练习6.总结if,for,whlie,后面如果没有{}的时候,即是只有一个简单的语句的时候,if,for,whlie的作用效力范围是到与之最近的分号结束;当有{}的时候即是把{}看成一个整体,控制范围是整个{}里面的所有语句。其他简单控制结构(重点)1.break(参考课件)功能:在循环语句和switch语句中,终止并跳出循环体或开关体break只能终止并跳出最近一层的结构break不能用于循环语句和switch语句之外的任何其它语句之中2.continue(参考课件)功能:结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判断仅用于循环语句中控制结构应用举例(重点)1.累加、累乘、最大公约数、最小公倍数、阶乘、素数等简单问题求解方法参考书上P36-382.穷举思想及程序实现3.迭代思想及程序实现(其中包括:一元高阶方程求根的二分迭代解法)。第三部分函数与程序结构函数的定义与调用1.(1)定义:(看课件、C语言教材)无参函数的定义:[类型标识符或void]函数名
本文标题:C语言基础知识点总结
链接地址:https://www.777doc.com/doc-4707531 .html