1C语言复习(4学时)

上传人:痛*** 文档编号:173105190 上传时间:2022-12-08 格式:PPT 页数:41 大小:257.52KB
收藏 版权申诉 举报 下载
1C语言复习(4学时)_第1页
第1页 / 共41页
1C语言复习(4学时)_第2页
第2页 / 共41页
1C语言复习(4学时)_第3页
第3页 / 共41页
资源描述:

《1C语言复习(4学时)》由会员分享,可在线阅读,更多相关《1C语言复习(4学时)(41页珍藏版)》请在装配图网上搜索。

1、C C 语语 言言 复复 习习主要内容主要内容n 各章复习纲要各章复习纲要n 应掌握的算法应掌握的算法n 常见错误分析常见错误分析第一章第一章 C程序的组成程序的组成C C程序程序源文件源文件2 2源文件源文件1 1源文件源文件3 3预处理命令预处理命令全局变量申明全局变量申明函数首部函数首部函数体函数体函数名函数名函数参数函数参数局部变量声明局部变量声明执行语句执行语句函函 数数#include main()/*主函数主函数*/int max(int x,int y);/对被调用函数对被调用函数max的声明的声明*/int a,b,c;/*定义变量定义变量a、b、c*/scanf(“%d,%

2、d”,&a,&b);/*输入变量输入变量a和和b的值的值*/c=max(a,b);/*调用调用max函数函数,将得到的值赋给将得到的值赋给c*/printf(“max=%dn”,c);/*输出输出c的值的值*/int max(int x,int y)int z;if (xy)z=x;else z=y;return(z);#includemain()int a,b,c;if(ab)c=a;else c=b;printf(“max=%d”,c);第二章第二章 算法算法1、掌握程序的三种结构、掌握程序的三种结构:顺序、选择、循环顺序、选择、循环2、了解算法的四种表示形式、了解算法的四种表示形式 3、

3、会用、会用NS流程图表示算法流程图表示算法 第三章第三章 (1)数据类型书数据类型书p371、常量和变量:、常量和变量:表示形式、命名规则和使用方法、区别表示形式、命名规则和使用方法、区别 2、整型数据、整型数据:表示形式、类型、范围:表示形式、类型、范围 3、实型数据:表示形式、有效数字、实型数据:表示形式、有效数字 4、字符型数据:、字符型数据:表示形式、特殊字符表示形式、特殊字符p48、和字符串的区别、和字符串的区别第三章第三章 (2)运算符和表达式运算符和表达式5、基本的运算符和表达式、基本的运算符和表达式 +、-、*、/、%、+、-、强制类型转换、复合运算、逗号运算强制类型转换、复合

4、运算、逗号运算(一)按功能划分:(一)按功能划分:1、算术运算符:、算术运算符:+、-、*、/、%2、关系运算符:、关系运算符:、=、=、!=3、逻辑运算符:、逻辑运算符:!、!、&、|4、位运算符:、位运算符:、|、&5、赋值运算符:、赋值运算符:=、+=、-=、*=、/=6、条件运算符:、条件运算符:?,:7、逗号运算符:、逗号运算符:,8、指针运算符:、指针运算符:*、&9、求字节数运算符:、求字节数运算符:sizeof 10、强制类型转换运算符:、强制类型转换运算符:(类型名类型名)11、分量运算符:、分量运算符:、-12、下标运算符:、下标运算符:13、其它:函数运算符、其它:函数运

5、算符例例 struct student int num;char name20;-stu,*p;p=&stu;stu.num=1001;strcpy(p-name,”ZhangSan”);1.在下面的选项中,赋值语句错误的是在下面的选项中,赋值语句错误的是(25 )。(。(29次等级考试次等级考试 一一.10题)题)A)i+;B)a=(b=(c=2,d=3);C)a=aa;D)a=a*b=2;2.下列程序运行的结果是下列程序运行的结果是()(22次等级考试一次等级考试一.1题)题)#include main()int a=010,b=1;a=b;b=a;a=b;printf(%d,%dn,a,

6、b);(A)10,1 (B)8,1 (C)1,8 (D)1,10else printf(“%d”,m-);(A)7 (B)6 (C)5 (D)43以下程序运行后,输出结果是(以下程序运行后,输出结果是()。()。(21次等级考试一次等级考试一.1题)题)main()int a=1,b=2,m=0,n=0,k;k=(n=ba)|(m=a5)printf(“%d”,m+);第三章第三章 (2)运算符和表达式运算符和表达式6、不同类型数据相互赋值时的转换规则、不同类型数据相互赋值时的转换规则 7、运算符的优先级和结合性、运算符的优先级和结合性doublefloatlongunsignedintcha

7、r,short低高第四章第四章 顺序程序设计顺序程序设计1、两个字符处理函数:、两个字符处理函数:getchar和和putchar 2、通用输入输出函数:、通用输入输出函数:scanf和和printf 参数、格式控制字符参数、格式控制字符 例例 int a,b;scanf(“%d,%d”,&a,&b);printf(“a=%d,b=%d”,a,b);输入:输入:11,7 则则 a=11,b=7例例 char c;c=getchar();putchar(c);printf(“%d”,c-a);输入:输入:b 输出:输出:b1第五章第五章 选择程序设计选择程序设计(1)1、关系运算符和关系表达式:

8、、关系运算符和关系表达式:=a)|(m=ab)?a:b 5、switch语句:语句:形式、形式、break语句的作用语句的作用switch(表达式表达式)case E1:语句组语句组 1;break;case E2:语句组语句组 2;break;.case En:语句组语句组 n;break;default:语句组语句组;break;if(expr1)if(expr2)statement1 else statement2else if(expr3)statement3 else statement4内嵌内嵌if内嵌内嵌if第六章第六章 循环控制循环控制1、循环的四种形式:、循环的四种形式:掌握

9、三种掌握三种 2、while 和和 dowhile语句语句:区别与联系区别与联系 3、for语句:语句:三个表达式的作用、三个表达式的作用、for语句的有效范围语句的有效范围 4、continue和和break语句:语句:区别、适用场合区别、适用场合 例:求例:求1到到100的累加和。的累加和。main()int i,sum=0;i=1;do sum=sum+i;i+;while(i=100);printf(“%d”,sum);第七章第七章 数数 组组1、一维数组:、一维数组:数组的定义和使用、有效元素、数组名和数组元素数组的定义和使用、有效元素、数组名和数组元素 2、二维数组:、二维数组:3

10、、字符串的处理:、字符串的处理:(字符数组字符数组)输入输出:输入输出:gets、puts(与与scanf、printf的区别的区别)其他:其他:strcpy、strcat、strcmp、strlen、strupr、strlwr 第八章第八章 函函 数数(1)1、函数的分类:、函数的分类:2、函数的定义和声明:、函数的定义和声明:定义时应注意的问题、声明的形式和必要性定义时应注意的问题、声明的形式和必要性 3、函数的参数:、函数的参数:形参和实参的作用范围、数值传递方式形参和实参的作用范围、数值传递方式函数类型函数类型 函数名函数名(形参类型说明表形参类型说明表)说明部分说明部分语句部分语句部

11、分现代风格现代风格:#include main()int x=7,y=11;void swap(int a,int b);printf(x=%d,ty=%dn,x,y);printf(swapped:n);swap(x,y);printf(x=%d,ty=%dn,x,y);swap(int a,int b)int temp;temp=a;a=b;b=temp;main()int a,b,c;int max(int x,int y);scanf(%d,%d,&a,&b);c=max(a,b);printf(Max is%d,c);int max(int x,int y)int z;z=xy?x:

12、y;return(z);第八章第八章 函函 数数(2)4、函数的调用:、函数的调用:调用方式、嵌套调用、递归调用调用方式、嵌套调用、递归调用 5、局部变量和全局变量:、局部变量和全局变量:区别、作用、注意问题区别、作用、注意问题 6、静态存储和动态存储:、静态存储和动态存储:区别、作用、注意问题区别、作用、注意问题#include int fac(int n)int f;if(n0)printf(n0,data error!);else if(n=0|n=1)f=1;else f=fac(n-1)*n;return(f);main()int n,y;printf(Input a integar

13、 number:);scanf(%d,&n);y=fac(n);printf(%d!=%15d,n,y);错误!错误!(n1)int a=3,b=5;max(int a,int b)int c;c=ab?a:b;return(c);main()int a=8;printf(max=%d,max(a,b);main()void increment(void);increment();increment();increment();void increment(void)static int x=0;x+;printf(“%dn”,x);第九章第九章 编译预处理编译预处理1、宏定义:、宏定义:#d

14、efine 宏名宏名 宏体宏体 不带参数的宏、带参数的宏不带参数的宏、带参数的宏 2、文件包含:、文件包含:#include “stdio.h”或或#include 例例#define WIDTH 80#define LENGTH WIDTH+40 var=LENGTH*2;宏展开:宏展开:var=80+40*2;例例#define S(a,b)a*b .area=S(3,2);宏展开宏展开:area=3*2;1、地址和指针的概念地址和指针的概念:int a=5;int *p;p=&a;5变量名:变量名:a 变量值:变量值:5变量的地址:变量的地址:&aa指针变量名:指针变量名:p指针变量值:

15、指针变量值:&a指针变量的地址:指针变量的地址:&p&ap这样,这样,a和地址变量和地址变量p就建立了联系。对于就建立了联系。对于a变量,变量,就可以通过指针就可以通过指针p去间接的访问。有如下关系:去间接的访问。有如下关系:a*p&apa=3;*p=3第十章第十章 指针指针第十章第十章 指针指针2、直接访问和间接访问、直接访问和间接访问 3、指针变量的定义和使用、指针变量的定义和使用 注意:指针变量作函参时与普通变量的区别注意:指针变量作函参时与普通变量的区别4、数组的指针和指向数组的指针变量、数组的指针和指向数组的指针变量 (1)一维数组与指针,如有一维数组与指针,如有int i,a10,

16、*p=a;引用数组元素的方法:引用数组元素的方法:ai=*(a+i)=pi=*(p+i)数组元素地址的表示:数组元素地址的表示:&ai=&pi=a+i=p+i p+表示指针指向下一个元素,表示指针指向下一个元素,a+无意义无意义#include main()int x=7,y=11;void swap(int*a,int*b);printf(x=%d,ty=%dn,x,y);printf(swapped:n);swap(x,y);printf(x=%d,ty=%dn,x,y);swap(int*a,int*b)int temp;temp=*a;*a=*b;*b=*temp;#include m

17、ain()int x=7,y=11;void swap(int a,int b);printf(x=%d,ty=%dn,x,y);printf(swapped:n);swap(x,y);printf(x=%d,ty=%dn,x,y);swap(int a,int b)int temp;temp=a;a=b;b=temp;形参与实参类型必须一致:形参与实参类型必须一致:形参形参实参实参地址地址-地址地址 变量变量-变量变量地址:数组名,指针变量、地址:数组名,指针变量、变量的地址变量的地址&b变量:数组元素、普通变量变量:数组元素、普通变量实参实参形参形参数组名数组名指针变量指针变量数组名数组名

18、指针变量指针变量数组名数组名数组名数组名指针变量指针变量指针变量指针变量第十章第十章 指针指针 (2)二维数组与指针二维数组与指针 行地址与列地址的表示行地址与列地址的表示 指向行的指针变量指向行的指针变量 (3)字符串和指针字符串和指针 利用指针引用字符数组及其元素利用指针引用字符数组及其元素 应注意应注意0的正确使用的正确使用表示形式表示形式含义含义地址地址a二维数组名,数组首地址二维数组名,数组首地址a0,*(a+0),*a第第0行第行第0列元素地址列元素地址a+1第第1行首地址行首地址a1,*(a+1)第第1行第行第0列元素地址列元素地址a1+2,*(a+1)+2,&a12第第1行第行

19、第2列元素地址列元素地址*(a1+2),*(*(a+1)+2),a12第第1行第行第2列元素值列元素值2000200020082008201213实参实参形参形参数组名数组名int x4指针变量指针变量int (*q)4数组名数组名int x4指针变量指针变量int(*q)4数组名数组名a数组名数组名a指针变量指针变量p1指针变量指针变量p1若若 int a34;int (*p1)4=a;int *p2=a0;指针变量指针变量p2指针变量指针变量int *q char *p;p=“I love China!”;printf(“%s”,p);printf(“%c”,*p);第十章第十章 指针指针

20、5、函数的指针和指向函数的指针变量、函数的指针和指向函数的指针变量6、返回指针值的函数、返回指针值的函数7、指针数组和指向指针的指针、指针数组和指向指针的指针 (1)指针数组:指针数组:int *p4;char *p5;(2)二级指针:二级指针:int *p;(3)指针数组作指针数组作main函数的形参:函数的形参:void main(int argc,char *argv)main()int max(int,int);int a,b,c;scanf(%d,%d,&a,&b);c=max(a,b);printf(a=%d,b=%d,max=%dn,a,b,c);int max(int x,in

21、t y)int z;if(xy)z=x;else z=y;return(z);main()int max(int,int);int (*p)();int a,b,c;p=max;scanf(%d,%d,&a,&b);c=(*p)(a,b);printf(a=%d,b=%d,max=%dn,a,b,c);int max(int x,int y)int z;if(xy)z=x;else z=y;return(z);例例 int *p1;int *p2;int i=3;p2=&i;p1=&p2;*p1=5;例例 输出命令行参数输出命令行参数main(int argc,char*argv)while(

22、argc1)argv+;printf(%sn,*argv);-argc;main(int argc,char *argv)while(argc-0)printf(%sn,*argv+);1.编译、链接编译、链接test.c,生成可执行文件,生成可执行文件test.exe2.在在DOS状态下运行状态下运行(test.exe所在路径下所在路径下)例如:例如:C:TC test hello world!运行结果:运行结果:hello world!运行结果:运行结果:test hello world!argv0argv1argv2char*argvworldtesthelloargvargc=3定义定

23、义含义含义int i;int *p;int an;int *pn;int (*p)n;int f();int*p();int(*p)();int*p;定义整型变量定义整型变量ip为指向整型数据的指针变量为指向整型数据的指针变量定义含定义含n个元素的整型数组个元素的整型数组an个指向整型数据的指针变量组成的指针数组个指向整型数据的指针变量组成的指针数组pp为指向含为指向含n个元素的一维整型数组的指针变量个元素的一维整型数组的指针变量f为返回整型数的函数为返回整型数的函数p为返回指针的函数,该指针指向一个整型数据为返回指针的函数,该指针指向一个整型数据p为指向函数的指针变量,该函数返回整型数为指向

24、函数的指针变量,该函数返回整型数p为指针变量,它指向一个指向整型数据的指针变量为指针变量,它指向一个指向整型数据的指针变量指针的数据类型小结指针的数据类型小结 前提:前提:#define n 10第十一章第十一章 结构体结构体1、结构体的概念、结构体的概念 2、结构体类型的声明、结构体类型的声明(关键字:关键字:struct)3、结构体变量的定义、结构体变量的定义(三种形式三种形式)4、结构体变量所占字节数、结构体变量所占字节数=各成员所占字节数之和各成员所占字节数之和 5、结构体变量的引用:、结构体变量的引用:结构体变量结构体变量.成员成员 例例 struct student int num

25、;char name20;char sex;int age;float score;char addr30;struct student stu1,stu2;例例 struct student int num;char name20;char sex;int age;float score;char addr30;stu1,stu2;例例 struct int num;char name20;char sex;int age;float score;char addr30;stu1,stu2;第十一章第十一章 结构体结构体6、结构体数组的定义和使用、结构体数组的定义和使用 7、指向结构体变量的

26、指针、指向结构体变量的指针 结构体变量结构体变量.成员成员 (*p).成员成员 p-成员成员8、指向结构体数组的指针、指向结构体数组的指针 例例 struct student int num;char name20;char sex;int age;float score;char addr30;stu10,*p;p=stu;p+;stu1.age=(*p).age=p-age 第十一章第十一章 结构体结构体9、指针处理链表、指针处理链表 链表结点结构链表结点结构 处理动态链表所需函数处理动态链表所需函数 链表的处理:建立、输出、插入、删除链表的处理:建立、输出、插入、删除10、共用体、枚举类

27、型、共用体、枚举类型、typedef例例 union data int i;char ch;float f;例:例:1)enum weekdaysun,mon,tue,wed,thu,fri,sat;2)enum colorred=2,yellow=4,blue=7;3)enum week1sun,mon,tue=5,wed,thu,fei,sat;4)enum em3 1,one=4,two,8;例例 声明结构类型声明结构类型typedef struct aa int month;int day;int year;DATE;DATE a;struct aa a;3.若有定义:若有定义:uni

28、on data int i;float j;char s5;k;则在则在Turbo C 2.0环境中环境中sizeof(k)的值是()。的值是()。第十二章第十二章 位运算位运算1.位运算符:位运算符:、&、|2.位运算的操作对象:位运算的操作对象:只能为整型或字符型只能为整型或字符型3.按位异或运算可以交换两个值,不用临时变按位异或运算可以交换两个值,不用临时变量:量:a=ab;b=ab;a=ab;第十三章第十三章 文件文件(1)1.文件的分类:文件的分类:文本文件和二进制文件文本文件和二进制文件2.文件类型指针:文件类型指针:FILE *fp;3.文件打开:文件打开:fp=fopen(“文

29、件名文件名”,”打开方式打开方式”);if(fp=NULL)printf(“Cannot open file!n”);exit(0);第十三章第十三章 文件文件(2)4.文件的打开方式:文件的打开方式:r/rb、w/wb、a/ab、r+/rb+、w+/wb+、a+/ab+5.文件关闭:文件关闭:fclose(文件指针文件指针);6.文件读写(文件读写(4组共组共8个函数)个函数):fgetc和和fputc、fread和和fwrite、fscanf和和fprintf、fgets和和fputs7.文件测试函数:文件测试函数:feof()8.文件定位:文件定位:fseek()、rewind()、ft

30、ell()(4)读写函数。读写函数。fputc(c,fp);c=fgetc(fp);fread(buffer,size,n,fp);fwrite(buffer,size,n,fp);fprintf(fp,”%d,%f”,i,f);fscanf(fp,”%d,%f”,&i,&f);fputs(str,fp);fgets(str,n,fp);(5)关闭文件:关闭文件:fclose(fp);(6)文件测试函数文件测试函数 While(!feof(fp)(7)文件指针定位函数文件指针定位函数 rewind(fp);fseek(fp,-100,2);n=ftell(fp);二、应掌握的算法(二、应掌握的

31、算法(1)1.比较两比较两/三个数的大小(三个数的大小(两数互换两数互换)一般方法(用中间变量和不用中间变量)和指针方法一般方法(用中间变量和不用中间变量)和指针方法 2.两两/n个字符串比较大小的问题(个字符串比较大小的问题(两字符串互换两字符串互换)3.求求n个数的最大数或最小数个数的最大数或最小数(求最值求最值)4.求分段函数的值求分段函数的值5.百分制成绩换算为等级制成绩百分制成绩换算为等级制成绩6.分解一个整数的各位数字分解一个整数的各位数字7.求累加和或阶乘(求累加和或阶乘(一般循环方法和递归法一般循环方法和递归法)二、应掌握的算法(二、应掌握的算法(2)8.判断一个判断一个/多个

32、数是否是素数(多个数是否是素数(穷举法和筛选法穷举法和筛选法)9.求两求两/n个正整数的最大公约数和最小公约数个正整数的最大公约数和最小公约数 10.求序列的累加和求序列的累加和11.统计一统计一/几串字符中字母、数字、空格和其他几串字符中字母、数字、空格和其他字符(字符(归类统计归类统计)12.猴子吃桃问题猴子吃桃问题/水仙花数水仙花数/同构数同构数 13.n个数排升序个数排升序/降序(冒泡法、选择法、插入法)降序(冒泡法、选择法、插入法)二、应掌握的算法(二、应掌握的算法(3)14.折半查找法折半查找法15.将数组元素逆序存放将数组元素逆序存放(序列逆置序列逆置)16.二维数组二维数组(N

33、*N)行列互(行列互(矩阵转置矩阵转置)17.统计一行字符的单词个数统计一行字符的单词个数18.n个人的报数问题个人的报数问题 19.进位计数制的转换问题进位计数制的转换问题(一般方法、指针方法、结构体方法以及自定义函数一般方法、指针方法、结构体方法以及自定义函数)折半查找法折半查找法(1)num=-3 -12 -3 0 1 7 9 22 -12 -3 0 1 7 9 22 L LR RmidmidL LR=mid-1R=mid-1折半查找法折半查找法(2)num=-3 -12 -3 0 1 7 9 22 -12 -3 0 1 7 9 22 L LR Rmidmid midmid折半查找法折半

34、查找法(3)num=22 -12 -3 0 1 7 9 22 -12 -3 0 1 7 9 22 L LR RmidmidL=mid+1L=mid+1R R折半查找法折半查找法(4)num=22 -12 -3 0 1 7 9 22 -12 -3 0 1 7 9 22 L LR Rmidmid L=mid+1L=mid+1midmid三、常见错误分析三、常见错误分析P349 常见错误常见错误(结构体除外结构体除外)作业常见错误汇编作业常见错误汇编(1)1 输入语句的格式:输入语句的格式:scanf(Please input n:d%,n);2 输出语句的格式:输出语句的格式:printf(Ple

35、ase input n:%d,&n);3 变量类型的前后不一致变量类型的前后不一致%d%f%c%f 4 字符串和字符常量的区别字符串和字符常量的区别 0和和0 5 结束符结束符0的使用的使用 6 数组的定义:数组的定义:char str;作业常见错误汇编作业常见错误汇编(2)7 字符数组的输入输出:字符数组的输入输出:char str10;scanf(%s,&str);printf(%s,&str);8 =与与=的区别的区别 if(i=1)printf(is a prime);else printf(is not a prime);9 使用库函数未使用使用库函数未使用include命令命令 1

36、0 自定义函数的类型自定义函数的类型 任何自定义函数均定义为任何自定义函数均定义为int型(或不定义型(或不定义)作业常见错误汇编作业常见错误汇编(3)12 分号和逗号的使用分号和逗号的使用 if(xy);z=x;for(i=1,ic2)t=c1;c1=c2;c2=t;作业常见错误汇编作业常见错误汇编(4)15 在主调函数中未申明被调函数在主调函数中未申明被调函数 16 变量初始化问题变量初始化问题 int i,j,sum;sum=i+j;17 关键字大小写、单引号关键字大小写、单引号/双引号的使用双引号的使用 18 字符常量的写法字符常量的写法 空格空格 空字符空字符 英文字母英文字母a 19 字符串的输入函数的使用字符串的输入函数的使用(scanf/gets/getchar)作业常见错误汇编作业常见错误汇编(5)20 求余、整除、实数相除的区别求余、整除、实数相除的区别%1/4 1.5/4 21 函数的形参和实参类型不一致函数的形参和实参类型不一致 22 结构体成员的引用结构体成员的引用.和和-的区别的区别 23 书写的程序要完整书写的程序要完整

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!