C语言复习ppt课件.ppt_第1页
C语言复习ppt课件.ppt_第2页
C语言复习ppt课件.ppt_第3页
C语言复习ppt课件.ppt_第4页
C语言复习ppt课件.ppt_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

c语言复习,考试题型(闭卷、笔试、120分钟) 判断题10分(每题1分) 选择题40分(每题2分) 概念填空20分(每空1分) 程序填空15分(每题3分) 编程题15分(1题7分、1题8分),04:12:29,1,主要章节及知识点 类型与输入/输出 运算符与表达式 分支转移 循环 函数 数组 指针 常用系统函数 结构体 文件读写,04:12:29,2,基本类型,文字或字符型 char 整型 int 浮点型,单精度 float 双精度 double,c语言的基本数据类型,1 类型与输入输出,c语言有四种类型修饰符: 短 长 有符号 无符号,short long signed unsigned,04:12:29,3,c语言标识符: (1)由字母、数字或下划线组成; (2)第一个字符必须是字母或下划线; (3)字母区分大小写。 (4)命名时不能是c语言中的保留字或关键字 例如:double,char,int,float,void等关键字不可以定义成标识符。 思考:以下标识符是否正确? 7_11 5a _3$star p#d my-points _1 a* void double scanf,04:12:29,4,用程序输出文字(教材p37), 为转义符号,输出时,该符号和它后面的一个字母或数字一起被当成一个字母符号看待,例如常用的有: n表示换一行 t 表示横向移到下一个制表位 b表示回退一个字符 ,04:12:29,5,各种类型的常数值(教材p44),在程序中,如果要表示某种类型的一个常数值,分别用不同的表示法。 字符常数表示法 一般可打印字符: a、 a 控制字符: t 、 n 、 b 、 通用表示法: 码值 码值即ascii编码。为8进制或16进制(用x开头)。例: 101 和x41 同a (参考书面作业1练习题),04:12:29,6,int常数表示法 10进制:同书写习惯。如193 8进制:用0开头。如0124 16进制:用0x开头。如0x23fa 可以在整数值后面加上l、u(或l、u)等后缀表示长整数和无符号整数。如:193u 193l 0x23fau,各种类型的常数值(教材p44),04:12:29,7,从键盘输入数据,在使用scanf输入函数或printf输出函数时,要在源程序文件的开头写上预编译指令 #include ,04:12:29,8,scanf从键盘输入数据,输入整数型变量: scanf(“%d“, 其它类型还有:%c,%f,%lf,%ld等,04:12:29,9,printf输出数据,double型变量的显示: printf(“%f“, ); 例: double pi = 3.14159; printf(“%-4.3f“, ratio);,04:12:29,10,%-m.nf -表示左对齐,m表示总宽度,.n表示小数点位数。 例如:%-4.3f 其中-表示左对齐,.3保留小数点3位数。 注:总宽度只是在位数不够时补空格,如果超出则不受总宽度限制。,04:12:29,11,2.运算符与表达式,运算符 算术运算符:+ - * / % (5种) 关系运算符: = = = != (6种) 逻辑运算符: & (与and) | (或or) ! (非not),04:12:29,12,运算符,对一个数,如果做加1的运算,可以使用运算符 +;类似地,如果做减1的运算,使用 -。例如: a+ 相当于a = a + 1 先使用后加1 a- 相当于 a = a-1 先使用后减1 +a 先加1后使用 -a 先减1后使用 注:不可以对一个常数做+,-运算,例如:1+,1- 这种表示方法是错误的。,04:12:29,13,表达式,数据对象如果用运算符组合,则得到了表达式。 例如 1. age = a + 19 (此表达式表示将变量a的值加19后赋值给变量age) 2. x1 (此表达式表示变量x的值小于5且大于1) 3. x5|x1 (此表达式表示变量x的值大于5或小于1) 4. i+=2相当于i=i+2; 5. i-=2 相当于i=i-2;,04:12:29,14,练习: 1.写一个表达式,表示变量a的值大于5且小于10 a 5 & a 5 | a 1,表达式,04:12:29,15,表达式的值,c语言中关系表达式的值是1或者0 表示其结果要么是真,要么是假。真用1表示,假用0表示。 例:int a=5,b=2;则: a b 值:1 a b 值:0 a = b 值:0 a != b 值:1,04:12:29,16,表达式的值,算术及赋值运算表达式的值。 例: int a=5,b=2;则: a % b 的值为1 (%是取余运算符) b % a 的值为2 又如: int a,b=2;则: a=b+5的值为7 b/10+1.50的值为1.50,04:12:29,17,在表达式中,如果存在不同的数据类型,则语言会自动将精度低的类型向精度高的类型转换,使运算结果尽量合理。 2 + 3.1345 值:5.1345 1 / 2 值:0 1.0 / 2 值:0.5 1 / 2.0 值:0.5,表达式的值类型转换,04:12:29,18,表达式的值,逻辑表达式的值也是0或者。其取值规则如下:&表示两边都为真时则为真,|两边有一个为真时则为真。,04:12:29,19,表达式的值,例: int a=5,b=2;则: (ab)&(ab)|(ab) 结果:0 !(ab) 结果:1,04:12:29,20,ifelse语句语法可以写成: if (表达式) 表达式值不为0就执行的语句; else 表达式值为0就执行的语句; ,04:12:29,21,关系表达式 逻辑表达式 数值表达式,3.分支转移,if条件语句的简化,形如 if (表达式1) 表达式2; else 表达式3; 的条件语句可以改写成: 表达式1 ?表达式2 : 表达式3; ? : 为新的运算符。需要三个操作数,称为三元运算符。以上表达式称为条件表达式。 例如:ab?c=2:c=0,04:12:29,22,switch语句的作用是根据表达式的值,使流程跳转到不同的语句 switch语句的一般形式: switch() case 值1 :语句1; break; case 值2 :语句2;break; case 值n :语句n;break; default : 语句n+1; ,整数类型(包括字符型),值1值n不能相同,要点1:必须是整型或字符型,逻辑型的值为0或1,也属整型,switch语句,04:12:29,23,switch语句的作用是根据表达式的值,使流程跳转到不同的语句 switch语句的一般形式: switch() case 值1:语句1;break; case 值2 :语句2;break; case 值n:语句n;break; default : 语句n+1; ,当遇到break,结束当前case的执行,程序跳出switch语句,勿忘break,表达式值与任何一个case值都不同时,则执行语句n+1,04:12:29,24,4.循环(详细参考课件ppt),for(表达式1; 表达式2; 表达式3) 语句; 首先执行表达式1。如果表达式2的值为非0,就重复执行语句和表达式3,直到表达式2的值为0时止。,循环初始条件,检查循环条件,改变循环变量,04:12:29,25,1.for语句-语法1,此处是“;”,此处无“;”,练习:用for语句写一个程序,在屏幕上显示以下信息4次,#include int main() int count; for (count=0;count7;count+=2) printf(“*n“); return 0; ,1.for语句-练习,04:12:29,26,例2: (程序演示) #include int main() int count; for(count=0 ; count3;count+) printf(“*n“); return 0; ,04:12:29,27,1.for语句-应用举例,例3:使for语句中没有表达式1 (程序演示) #include int main() int count=0; /*表达式1被移到这里*/ for( ; count3;count+) /*缺少表达式1*/ printf(“*n“); return 0; ,04:12:29,28,1.for语句-应用举例,不能省略分号,例4:使for语句中没有表达式1和表达式3 (程序演示) #include int main() int count=0; /*表达式1被移到这里*/ for( ; count3;) /*缺少表达式1和表达式3,分号不能省*/ printf(“*n“); count+; /*表达式3被移到这里*/ return 0;,04:12:29,29,1.for语句-应用举例,while (表达式) 语句; 只要表达式的值为非0,就重复执行语句,直到表达式值为0时止,04:12:29,30,2.while语句,do 语句; while (表达式); 首先执行语句,然后判断表达式的值。如果表达式为0,继续向下执行,否则,再次执行语句,再次判断表达式的值 语句会被至少执行一次,04:12:29,31,3.do-while语句,循环的中断,break作用是中断当前循环,跳转到循环体外的下一条语句继续执行; continue语句是中断当前这一轮循环,开始下一轮循环(并未结束循环)。,04:12:29,32,无限循环的应用,三种循环语句实现无限循环(即循环条件永远满足)如何写?,do /循环体 while(1);,for(;) /循环体 ,while(1) /循环体 ,04:12:29,33,无限循环的应用,对于不确定次数的循环,可以在无限循环中根据条件决定是否中断,for(;) /循环体 if(中断条件) break; ,while(1) /循环体 if(中断条件) break; ,do /循环体 if(中断条件) break; while(1);,04:12:29,34,5.函数,函数用参数实现信息的输入,用返回值输出结果。 函数头的一般写法为: 返回值类型 函数名(参数1类型 参数1名,参数2类型 参数2名) 注意:参数可以有0个或者多个。没有参数时,括号不能省略。多个参数用逗号(,)分开。,04:12:29,35,例: #include float add(float x, float y); int main(void) printf(“%.2f”, add(1, 3);/调用add函数时将1传给 x,3传给y,输出结果:4.00 return 0; float add(float x, float y)/被调用时将1传给x,3传给y return x + y;/返回结果4 ,04:12:29,36,例: #include float add(float x, float y); int main(void) printf(“%.2f”, add ( add(1,3) , 3 );输出结果:7.00 return 0; float add(float x, float y)/第1次被调用时将1传给x,3传给y;第2次被调用时将4传给x,3传给y return x + y; ,04:12:29,37,6.数组,c语言定义一维数组方式为: 数据类型 数组名数组元素个数; 例如,存放30个同学分数的数组可申明为: int scores30; 这里int是数组类型,scores是数组名,30是数组元素个数。,04:12:29,38,一维数组定义,数组的定义与使用,可以在数组申明后分别给数组元素赋值: int numbers3; numbers0 = 34; numbers1 = 23; numbers2 = 84; 也可以在申明的同时赋初值: int numbers3 = 34, 23, 84; 注意:这里 中的值不能超过数组的元素个数。,04:12:29,39,一维数组初始化,数组的定义与使用,在申明的同时赋初值还可以写成: int numbers = 34, 23, 84; 注:全部数组元素赋初值,可不指定数组长度 若数组长度与提供初值个数不相同,则不可省数组长度,例如: int numbers5 = 34,23,84; /个数可以少于5,后2个元素为0 但不能写成: int numbers3 = 34,23,84,0,0; /不能超过3,04:12:29,40,数组的定义与使用,练习:设有数组定义如下 int score = 67,90,80,86,93; 问:score2 值为多少?score5呢? 该数组长度是多少?下标范围是? 1.元素score2值为80(因为数组下标是从0开始) 2.score5越界(因为数组元素下标最大值为4) 3.该数组长度是5(因为初始化只有5个数) 4.数组元素下标范围是: 04,04:12:29,41,二维数组,二维数组的定义: 数据类型 数组名元素行数元素列数; 例: int studentscores34; 注:不可写成 int studentscores3,4;,04:12:29,42,二维数组,二维数组也可以在申明的同时赋初值。有多种方法: 1全部数组元素都给定值,并定义各维的元素数 int studentscores35 = 89,98,78,85,65,66,69,90,89,70,80,76,68,73,80;,04:12:29,43,二维数组,2全部数组元素都给定值,并省略第一维的元素数 int studentscores 5 = 89,98,78,85,65,66,69,90,89,70,80,76,68,73,80; 可以看出此数组的行数是:3行,04:12:29,44,二维数组,3部分给定数组元素值 int studentscores35 = 89,98,78,66,69,90,89,70; int studentscores 5 = 89,98,66,69,90,89,80,76,68;,04:12:29,45,二维数组,4直接按顺序给定元素值 int studentscores35 = 89,98,78,85,65,66,69,90,89,70,80,76,68,73,80; 也可以不给定全部值: int studentscores35 = 89,98,78,85,65,66,69,90,89,70,80,76,68;,04:12:29,46,二维数组,还可以对前面的行不给定全部值: int studentscores35 = 89,98,78,66,69,90,89,70,80,76,68,73,80; 也可以: int studentscores 5 = 89,98,78,66,69,90,89,70,80,76,68,73,80;,04:12:29,47,字符数组与字符串数组,参考教材及相应ppt,04:12:30,48,7.指针,04:12:30,49,指针的基本用法,申明指针变量: 数据类型 *指针变量名; 例如:申明int型指针变量 int *ptrage; /ptrage为指针变量名 申明float型指针变量 float *ptrweight; 指针变量名通常用p或ptr做前缀。,04:12:30,50,注意:int * ptrage; float * ptrweight; int与float是为指针变量指定的“基类型” 基类型指定指针变量可指向的变量类型 例 如ptrage可以指向整型变量,但不能指向浮点型变量 又如ptrweight可以指向浮点型变量,但不能指向整型变量,指针的基本用法,04:12:30,51,指针的基本用法,另外:我们可同时申明变量和指针变量 int age,*ptrage; float weight = 50, *ptrweight; age为int型变量,weight为float型变量 ptrage为int型指针变量, ptrweight为float型指针变量,04:12:30,52,下面都是合法的定义和初始化: int age; float weight = 50; int * ptrage =,* ptrage = 错误,ptrweight = 错误,ptrage = 正确,ptrweight 2000; 错误,指针的基本用法,04:12:30,53,8常用系统函数,舍入:ceil, floor, round, trunc 字符串函数:strlen、strcpy、strcat、strcmp等 字符串转换函数:atoi, atof, atol,04:12:30,54,9.结构体,定义方式为: struct 结构体名 类型1 成员

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论