《复习-C语言课件.ppt》由会员分享,可在线阅读,更多相关《复习-C语言课件.ppt(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、安庆师范学院计算机与信息学院第1章 C语言概述(略)第2章 数据类型、运算符和表达式第3章 简单程序设计第4章 选择结构程序设计第5章 循环结构程序设计第6章 数组第7章 指针第8章 函数第9章 结构体、共用体与枚举第10章 文件总复习第1章 C语言概述(略)第2章 数据类型、运算符和表达式1、数据类型 2、标示符、常量与变量3、运算符与表达式 a、运算符的分类(p322):目数、优先级和结合性 b、算术运算符及表达式 c、赋值运算符及表达式 d、位运算(位逻辑运算、移位运算)符及表达式 e、逗号运算符及表达式4、数据类型转换 a、类型自动转换 b、赋值类型转换 c、强制类型转换:(类型)运算
2、符 第3章 顺序结构程序设计1、C语言的基本语句:表达式语句、控制语句、函数调用语句、复合语句、空语句2、C程序的基本结构 a、三种基本结构:顺序、选择、循环 b、顺序结构程序设计3、数据输入与输出 a、格式化输入输出函数 scanf、printf b、字符输入与输出函数getchar、putchar第5章 循环结构程序设计1、三种循环语句:while、do-while、for2、循环嵌套3、循环转向:break、continue语句4、可构成循环的goto语句 5、循环的主要算法:穷举法与迭代法(1)迭代法 a、数列问题:如fibonacci数列 b、求级数和问题:三种条件:给定项数、项的绝
3、对值、相邻项之差,如:n!、n2、an、j、(-1)n-1/n2等 s=a+aa+aaa+aaa(n个a)等 求 的近似值、sinx、cosx近似值等e、求一元方程的近似根由x1=x0-f(x0)/f(x0)f、计算定积分d、猴子吃桃问题c、求最大公约数和最小公倍数5、循环的主要算法:穷举法与迭代法(2)穷举法 a、求解不定方程:百鸡百钱、百马百担、搬砖、爱因斯坦阶梯、硬币组成元等 b、求某种数:求一定范围内的素数(和、个数等)、水仙花数、同构数、完数(等于因子之积的数)等c、将一个合数分解成因子的乘积第6章 数组1、数组的概念与定义2、一维数组的应用 a、排序:比较交换法、选择、冒泡法,插入
4、排序 b、查找:顺序查找、折半查找 c、逆序存放(交换前后的元素)d、循环移动数组e、筛法求素数(习题集P47.5)f、数制转换:十到二、八、十六,二、八、十六到十(P48,22-24,十六进制要用字符串表示)g、统计正、负、零元素个数(或求和)h、超长数的运算(习题集P47.7)3、二维数组的应用 a、矩阵的转置、求和、乘积 b、特殊矩阵打印:魔方阵、螺旋方阵、回形方阵等(习题集 P48,15-17)c、矩阵对角线求和 求各行之和和各列之和(习题集P48.13)行互换、列互换 d、矩阵查找:找最大最小值、鞍点(习题集 P48.14)e、打印杨晖三角形第7章 指针1、指针的概念、指针变量的定义
5、、指针的运 算及引用、多级指针的概念2、指针与数组(1)指针与一维数组(2)指针与二维数组(3)指针与字符串(4)指针数组5、函数与指针(1)指向函数的指针:类型(*指针变量)()(2)返回指针的函数:类型*函数名(形参表)(3)带参数的主函数:void main(int argc char*argv)6、变量的作用域和存储属性(P194表8-3)内部函数和外部函数的概念7、编译预处理(1)宏定义(2)文件包含(3)条件编译第9章 结构体、共用体与枚举1、结构体:(1)类型定义(2)变量定义、初始化、引用(3)结构体数组、指针、函数(4)动态内存分配与链表2、共用体类型定义,变量定义、引用、应
6、用3、枚举类型定义,变量定义、引用、应用4、用户定义类型的概念 例1 猴子吃桃。有桃子若干,第1天吃了一半还多吃1个,以后每天吃剩下的一半还多吃1个,第10天因只剩1个桃子而未吃,问共有几个桃子?【分析】由 x=x0/2-1 得x0=2*(x+1),程序如下:#include main()int x=1,x0,i;for(i=9;i=1;i-)x0=2*(x+1);x=x0;printf(“total=%dn”,x0);答案:total=1534例2 打印1000以内的所有完数#include main()int n,s,i;for(n=2;n1000;n+)s=0;for(i=1;in;i+
7、)if(n%i=0)s=s+i;if(s=n)printf(“%d全部因子是:“,n)for(i=1;in;i+)if(n%i=0)printf(“%d,”,i);printf(“b n”);例3 将整数12345倒序后输出【分析】算法:用一个变量不断乘以10且累加该数除以10的余数,而该数不断除以10。#include main()int n=12345,m=0;while(n!=0)m=10*m+n%10;n=n/10;printf(“m=%dn”,m);例4 球从100米高度自由落下,每次反弹回原高度的一半,问第10次反弹多高?共经过多少米?#include main()int s=100,h=50,i;for(i=2;i=10;i+)s=s+2*h;/*s为第i次落地时经过的米数*/h=h/2;/*h为第i次反弹的高度*/printf(“第10次反弹高度是%d米n”,h);printf(“共经过%d米n”,s);例5 将一个有10个元素的整型数组循环左移一个元素。【算法】先将最左的元素存储,其余元素左移后将其存到最右边。#include main()int a10=1,2,3,4,5,6,7,8,9,10,t,i;t=a0;for(i=0;i9;i+)ai=ai+1;a9=t;for(i=0;i10;i+)printf(“%4d”,ai);printf(“n”);结束结束
限制150内