资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,计算机科学与技术系,09,级学生工作委员会,学习部,*,C,语言的标识符,标识符的作用 表示在C语言中表示变量、常量、数据类型和函数。,标识符的命名规那么:,只能由AZ、az、09、_(下划线)组成;,第一个字符不能是数字;,C语言中的关键字不能作为用户标识符.,例:判断以下标识符的合法性,sum Sum day Date 3days,student_name#33 lotus_1_2_3,char ab _above$123,2024/11/15,1,计算机科学与技术系,09,级学生工作委员会,学习部,C,语言中的关键字,auto,break,case,char,const,continue,default,do,double,else,enum,extern,float,for,goto,if,int,long,register,return,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile,while,2024/11/15,2,计算机科学与技术系,09,级学生工作委员会,学习部,C,数,据,类,型,基本类型,构造类型,指针类型,空类型,void,定义类型,typedef,字符类型,char,枚举类型,enum,整 型,实型,单精度型,float,双精度型,double,数组,结构体,struct,共用体,union,短整型,short,长整型,long,整型,int,2024/11/15,3,计算机科学与技术系,09,级学生工作委员会,学习部,格式输出函数,-printf,格式:printf(“格式控制串,输出列表,输出列表:要输出的变量的列表,用逗号分隔各个变量,格式控制串中最重要的就是格式修饰符。对应不同的数据类型,应该采用不同的格式修饰符,见下表,数据类型,关键字,修饰符,输出示例,整型,int,%d,printf(,“,%d,”,a);printf(,“,%d%d%d,”,x,y,z);,双精度浮点型,double,%lf,printf(,“,%lf,”,m);printf(,“,%lf%lf,”,),cm,cn);,字符型,char,%c,printf(,“,%c,”,ch);printf(,“,%c%c%c%c,”,c1,c2,c3,c4);,长整型,long,%ld,printf(,“,%ld,”,b);printf(,“,%ld%ld,”,d1,k2);,单精度浮点型,float,%f,printf(,“,%f,”,f1);printf(,“,%f%f%f,”,f1,f2,f3);,不同数据类型变量的混合输出,printf(,“,%f%c%d%ld%lf,”,f3,ch,x,k2,m);,2024/11/15,4,计算机科学与技术系,09,级学生工作委员会,学习部,运算符和表达式,C,运,算,符,算术运算符:(,+-*/%+-,),关系运算符:(,=!=,),逻辑运算符:(!,&|,),位运算符 :(,|&,),赋值运算符:(,=,及其扩展),条件运算符:(,?:,),逗号运算符:(,),指针运算符:(*,&,),求字节数 :(,sizeof,),强制类型转换:(类型),分量运算符:(,.-,),下标运算符:(,),其它 :(,()-,),2024/11/15,5,计算机科学与技术系,09,级学生工作委员会,学习部,转换规那么,字符与整数间的转换:,字符整数:高位填充零或符号扩充,可能产生负数。,整数字符:取低八位,可能出错。,整数之间的转换:,较短整数较长整数:符号位扩充,转换平安。,较长整数较短整数:去掉高位,可能出错。,浮点数与整数之间的转换,浮点数整数:截去小数局部不四舍五入,转换成long型,再转换成需要的整型,可能出错。,整数浮点数:先将整数转换成long型,再转换成浮点型,转换平安。,2024/11/15,6,计算机科学与技术系,09,级学生工作委员会,学习部,if()else,switch,for(),while(),dowhile(),分支,循环,如 total=total+limit;,a=3;,func();,printf(“Hello,world!n);,2024/11/15,7,计算机科学与技术系,09,级学生工作委员会,学习部,if,语句,if-else,形式的,if,语句,if 表达式e,语句1;,else,语句2;,程序执行流程:,假设表达式e的值为真,,执行语句1,否那么,执行语句2,if,形式的,if,语句,if 表达式,语句1;,if 表达式,语句1;,else,;,程序执行流程:,假设表达式e的值为真,,执行语句1,2024/11/15,8,计算机科学与技术系,09,级学生工作委员会,学习部,if,语句嵌套,:,一般形式:,if(expr1),if(expr2)statement1,else statement2,else,if(expr3)statement3,else statement4,内嵌,if,内嵌,if,if(expr1),if(expr2),statement1,else,statement2,内嵌,if,if(expr1),if(expr2),statement1,else,statement3,内嵌,if,if(expr1),statement1,else,if(expr3),statement3,else,statement4,内嵌,if,if else 配对原那么:缺省 时,else总是和它上面离它最近的未配对的if配对,2024/11/15,9,计算机科学与技术系,09,级学生工作委员会,学习部,当有多个分支选择时,可采用,if-else-if,语句,其一般形式为,:,if-else if,语句的语法,if(,表达式,1),语句,1,;,else if(,表达式,2),语句,2,;,else if(,表达式,3),语句,3,;,else if(,表达式,m),语句,m,;,else,语句,n,2024/11/15,10,计算机科学与技术系,09,级学生工作委员会,学习部,switch,语句,2024/11/15,11,计算机科学与技术系,09,级学生工作委员会,学习部,switch语句开关分支语句),switch(,表达式,),case E1:,语句组,1;,break;,case E2:,语句组,2;,break;,.,case En:,语句组,n;,break;,default:,语句组,;,break;,switch,表达式,语句组,2,语句组,n,语句组,.,E 1,E 2,En,default,case,语句组,1,2024/11/15,12,计算机科学与技术系,09,级学生工作委员会,学习部,switch语句的执行,入口:,如果表达式的值与某一个case后边的常量表达式相等,就从这个case开始,依次执行其后边的每条语句,如果所有的case语句都不匹配时,就从default开始,依次执行default后边的每条语句,出口,如执行到break语句,跳出整个switch语句,如没有遇到break语句,那么整个switch的语句执行完毕后跳出switch语句,switch,语句,2024/11/15,13,计算机科学与技术系,09,级学生工作委员会,学习部,说明:,E1,E2,En,是,常量表达式,且值必须互不相同,语句标号作用,必须用,break,跳出,case,后可包含多个可执行语句,且不必加,switch,可嵌套,多个,case,可共用一组执行语句,如:,case A:,case B:,case C:,printf(“score60n);,break;,.,2024/11/15,14,计算机科学与技术系,09,级学生工作委员会,学习部,循环结构,while,语句,while(,表达式,e1),语句,s1;,循环结构的三个要素:,1,、,循环条件:,循环结构中的条件表达式,2,、,循环体,:在每个循环周期均要执行一次的语句序列。,3,、,循环控制变量:,能够决定控制条件是真是假的量,如上例中的变量,i,。,例题,:,求,s=1+2+3+10;,#include,void sumFromOneToTen(),int i,s;/定义循环变量i和累加变量s,i=1;/循环变量赋初始值,s=0;/累加变量根据实际赋初始值,while(i=10)/i从1变到10(即当i=1,0都需要循环),s+=i;/累加,i+;/循环变量改变值,printf(“s=%d,s);,2024/11/15,15,计算机科学与技术系,09,级学生工作委员会,学习部,for,语句,语法:for(起始量;终结量;变化量),语句s1;,语法上要求s1是一条语句,假设有多条语句,必须用 ,使之成为一条复合语句,从而满足语法要求。,for(i=1;i=100;i+),s+=i;/,循环体,switch,语句中的,break,例题,break,语句,功能:结束当前,switch,的执行,转到该,switch,语句的下一条语句执行,循环语句中的,break,功能:跳出该,break,所在的那层循环语句,提前终止当前循环。,continue,语句,求,s=1+2+3+10;,功能:终止本轮循环循环体语句的执行,,对于,while,语句,:,转去判断,while,循环条件,对于,for,语句,:,转去执行表达式,3,,再判断表达式,2,2024/11/15,16,计算机科学与技术系,09,级学生工作委员会,学习部,continue,与,break,#includestdio.h,main(),int i;,for(i=1;i=10;i+),printf(“i=%dn,i);,if(i=3),continue;,printf(“circle%d,i);,printf(over);,#includestdio.h,main(),int i;,for(i=1;i=10;i+),printf(“i=%dn,i);,if(i=3),break;,printf(over);,2024/11/15,17,计算机科学与技术系,09,级学生工作委员会,学习部,一维数组,定义数组的语法:,int a10;,数据类型说明符 数组名,数组长度,注意:数组的空间分配是静态分配。数组长度只能是常量,,长度不能在程序运行过程中发生变化,。,2024/11/15,18,计算机科学与技术系,09,级学生工作委员会,学习部,一维数组元素的,引用,1.,数组元素的表示:数组名,下标,int a2=1,2,;表示,a0=1,,,a1=2,int a3=1,2;,表示,a0=1,,,a1=2,,,a3=0,2.,下标是整型值,可以是整型常量、整型变量或整型表达式,如:,ai a3+1 a2*i-1,3.,注意:下标不能小于初值个数。当下标大于初值个数时,,int,用,0,补,,char,用,0,补,float,用,0.000000,补,.,2024/11/15,19,计算机科学与技术系,09,级学生工作委员会,学习部,字符数组的输入输出,字符串用%S 字符用%C,Scanf/printf与gets()/puts()用于字符输入/输出时的区别,前 遇到字符串的空格自动结束,常用字符串处理函数:,Strlen(字符数组),计算字符串长度,Strcpy(字符数组1,字符数组2)把2中的复制到1中去,Strcat(字符数组1,字符数组2)把2中的连接到1中去,Strcmp(字符数组1,字符数组2)按ASCALL顺序比较1.2中的字符串,字符数组的表示:,Char s4=u,s,e,r;/=“user;,函数的类型,类型,函数原型举例,(,1,)无返回值无参数函数,void f1();,(,2,)无返回值带参数函数,voi
展开阅读全文