您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > C程序设计语言基础.
C程序设计语言清镇市第一中学汪思言2012年第一章类型、运算符与表达式类型与变量、常量•类型的作用:类型规定了信息在计算机中的存储空间和方式,以及这些信息所够进行的运算。•C语言的基本数据类型有:–整数:int,long;–实数:float,double;–字符:char–空:void•关键字:关键字是C语言组成的一部分,包括数据类型和流程控制以及变量修饰的单词,如int,if/else,while...等等。类型的存储空间和值范围类型名称存储占用空间值范围char字符1字节-128至127unsignedchar无符号字符同上0至255short(或shortint)短整型2字节-32768至32767unsignedshort(或unsignedshortint)无符号短整型2字节0至65535int整型2或4字节16位机:-32768至3276732位机:-2147483648至2147483647unsignedint无符号整型同上16位机:0至6553532位机:0至4294967295long(或longint)长整型同int同intusignedlong无符号长整型同无符号整型同无符号整型float单精度实数4字节1.17549x10-38至3.40282x1038,小数点后6位数字精度double双精度实数8字节2.22507x10-308至1.79769x10308,小数点后15位数字精度变量inta;内存中某处的一个位置,我们把这个位置称为a;变量:变量是内存地址的名称,用来方便我们在计算过程中存储相应的数据信息。变量在使用前必须先定义!变量的定义定义方式:•变量的定义位置在其他非定义语句之前。•定义的格式:(1)定义一个变量:类型名变量名;(2)一次定义多个变量:类型名变量名1,变量名2,...,变量名n;(3)带初始化的变量定义:类型名变量名1=初值,变量2=初值;注意:(1)变量名只能由大小写字母,数字和下划线“_”组成,且不能以数字开头。(2)定义完成后以分号结束。定义示范:1.定义一个整数变量a:inta;1.定义一个实数b,c,d:floatb,c,d;非法的变量名:3a:不能以数字开头a2:不能含有空格$a:只能由字母、数字或下划线组成int:名称和关键字(类型名)相同。合法的变量名:a1,a2,num_flag常量•概念:在运行过程中不会改变值的量。•分类:–字面常量:如1.5,3.14,'a',good~~~等;–符号常量:在变量的定义前使用const修饰符,可以将一个量声明为常量。如:constintpi=3.1415926;pi在整个过程中就成为一个常量,不能修改其值,比如“pi=6.28”的语句就是非法的,无效的。表达式•赋值变达式•运算表达式•关系表达式•逻辑表达式•注释赋表表达式格式:变量名=值或表达式;例:a=3.14;c=(a+b)*(a-b);d=sin(3.14);运算表达式•前面的例子“c=(a+b)*(a-b)”和“a=sin(3.14)”中等号“=”右边的部分就是一个运算表达式。•本质:运算表达式的本质是可以含有函数计算的四则混合运算表达式。•优先级:()*,/,%+,-关系表达式:•关系表达式的结果只有两种:1和0,分别代表“真”和“假”。•关系表达式就是指关系运算,有如下几种:等于==不等于!=小于大于小于或等于=大于或等于=设:a=1,b=2,则有:a==b0a!=b1ab1ab0a=b1a=b0逻辑表达式•逻辑表达式与我们日常生活中的“并且”,“或者”、“不是”等类似。生活用语逻辑用语运算符号并且与&&或者或||不是非!ab&&ac0ab||ac1!(ab)0!(ab)1ab&&ac||bc1ab||bc&&bc0设有a=1,b=2,c=3优先级:非与或特殊的分号“;”•西文分号在C语言中有特殊作用,它表示一个表达式的结束。在C语言中,不同语句之前是通过“;”来分隔的,比如定义几个变量:inta,b,c,d;上述语句的结束位置是变量d后面的“;”,这也意味着有些情况一下一行写不完某些语句的时候可以换到下一行去接着写。注释•注释的作用:注释是用来给程序员编写代码时便于理解代码而编写的内容,它本不是代码的组成部分,在编译过程中,编译器将完全忽略掉它的存在。•注释的格式:C语言支持两种格式的注释–单行注释://注释内容–多行注释:/*注释内容*/注释示例intflag;//查找标志time_tnow=time(0);/*获取当前时间*//**函数:add*功能:计算两个数的和*参数:a,b为整数*/intadd(inta,intb){...}注意:注释不能嵌套!类似/*/*...*/*/的注释是不允许的。第二章控制流控制流的作用•使得在条件满足的情况下做某些事情。•各控制语句的含义:语句含义格式if如果(条件成立)则……if(条件){...}else否则(须结合if使用)if(条件){...}else{...}while当条件成立时重复执行while(条件){...}do...while执行后检查条件,如果条件成立,则返回重复执行。do{...}while(条件);for如果条件成立,则重复执行for(变量=初值;条件;变量增减){...}1.分支结构if/else•格式:if(条件){...}else{...}•示例1:inta=1,b=2;if(ab){printf(a小于b);}else{printf(a大于b);}以上程序将输出结果:a小于b1.分支结构if/else•复合语句:inta=1,b=2;if(ab){printf(a是最大值);printf(a=%d,a);}else{printf(b是最大值);}左边程序将输出:b是最大值左边“{printf(a是最大值);printf(a=%d,a);}”称为复合语句,表示如果ab成立的情况下,这两条语句都会被执行。1.分支结构if/else•if/else的另一种形式:if(条件){...}elseif(条件2){...}else{...}•示例:inta=5,b=4,c=3;if(ab){printf(ab);}elseif(ac){printf(ac);}else{printf(a是最大值!);}上面的程序将输出:a是最大值2.循环结构•循环的意义:即重复执行•循环结构有三种:•for/while/do..while2.1.while循环while(条件){...}表示在条件成立的情况下,“{}”中的语句将被重复执行,每执行一次后又会检查一次条件,如果成立则反复执行,直到条件不成立为止。•示例:inti=0;while(i100){if(i%10==0)printf(%d,,i);i=i+1;}上述程序的输出结果如下:0,10,20,30,40,50,60,70,80,90,语句“i%10==0”的意思为如果i除以10的余数为0。2.2for循环•for循环可以看作一个简化了的while循环.•格式:for(初始化;条件;变量迭代){...}同样,for循环将先检测“条件”是否成立,然后执行重复执行,直到“条件”不成立为止。•示例:如前面的代码可以改写成:inti;for(i=0;i100;i++){if(i%10==0)printf(%d,,i);}上述代码的输出同前一页while循环的输出。2.3do...while循环•特点:先执行,后检查条件.•格式:do{...}while(条件);•示例:inti=10;do{printf(%d,,i);i=i-1;}while(i0);上述代码将输出:10,9,8,7,6,5,4,3,2,1,第三章函数函数的作用:1.概念:可以重复使用的一个功能代码块。2.作用1.可将较大的任务分解成较小的任务,便于问的解决,即1+12的原理。2.将常用的代码提取出来成为函数,可以提高编程的效率。示例:•还记得我们数里常说的函数吗,C语言中的函数很多时候和数学的函数一样,用来根据输入的参数返回计算的结果,比如大家常用的正余弦函数:sin/cos•C语言中也有sin和cos,它们的使用方式是这样的:doublex=3.14;doubley1=sin(x),y2=cos(3.14);其作用就如同数学公式y=sinx一样,分别把x的正余弦计算结果分别放到了y1和y2这两个变量里。函数的使用方法•第一步:定义函数——告诉编译器是如何具体实现其计算功能的。•第二步:调用函数——使用函数来解决我们的计算问题。函数的定义的方法:•无参数函数声明(函数不需要参数):返回值类型函数名(){...}如:intis_good(){...}•有参数函数声明:返回值类型函数名(参数列表);如(计算两个数相加):intadd(inta,intb){returna+b;}无计算结果的函数:•有时候,有些函数没有计算结果,比如打印内容的printf函数,这种函数的声明需要一种特别的类型void,以表明该函数没有计算结果。•如:voidclose(){...}函数的声明和定义的方法:•函数的定义:返回值类型函数名(参数列表){//处理代码...return返回值;}•例1:voidsay_hello(){printf(hello\n);}•例2:intadd(inta,intb){returna+b;}函数的返回值问题:•函数在计算过程中使用“return表达式;”来返回其计算结果。比如,对于一个求解两个整数的和的函数“add”,其实现如下:intadd(inta,intb){returna+b;}在main函数中使用如下代码:inty=add(5,10);则y的值为15。return语句除了返回一个值外,也意味着这个函数的执行的终结,函数里的其他代码将不会再被执行!函数的返回值问题:•在无返回值的函数里,使用“return;”语句将直接导致函数执行的终结。voidprint_weekday(intd){if(d==6||d==7){printf(休息日\n);return;}printf(星期%d,d);}当传入的参数等于6或者7时,函数将从“return;”处返回,“printf(星期%d,d);”这一条语句将不会被执行。函数的调用:•1、无参调用:•inta=rand();//产生一个随机数•2、有参调用:•例1:doubley=sin(3.14);•例2:printf(%d\t%d\t%d,10,20,30);形参与实参问题•在函数定义时,我们提供的参数名称为形式参数,简称形参。形参是一个抽象的概念,可以看作是一个值尚未确定的变量(因为在对函数调用之前,它的值是无法确定的),再对函数进行调用时,所使用的具体值或变量称为实际参数,简称实参。•例如函数:•intadd(inta,intb){returna+b;}•此时的a和b称为形式参数,其值现在是不能确定的,只有当我们使用“inty=add(x,10);”这样的语句的时候,a和b的实际值才能确定下来,这个时候的x和10是实际参数。变量的作用域问题•在同一函数内同级的代码块间是不能定义名字相同的变量的,因为这会因为歧义。如:inta=10,b=9;chara='X';printf(a=%d,a);•编译器将不知道该出的是10还是'X'。•不同的函数间可以定义相同名称的变量不会引起冲突,因为对于每个变量来说,其可见范围限定在了定义它的这个函数中。这就好比不同城市间可以有相同的电话号码,它们可以通过区号区分一样。示例:intadd(inta,intb){intc=a+b;returnc;}intsub(inta,intb){intc=a-b;returnc;}voidprint_num(){printf(%d,c);}左边的函数里共有两个a,b,c,它们属于不同的函数范围,因此不会发生冲突。▲而最下方的函数print_num是一个错误的函数,因为变量c在print
三七文档所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
本文标题:C程序设计语言基础.
链接地址:https://www.777doc.com/doc-2908638 .html