1 / 27

复习要点

复习要点. 不考范围 类型、变量、常量 运算符、表达式 格式符、转义符 语句与库函数 算法与编程技巧 常用数组函数. 不考范围. 4.4.6 节 goto 语句 6.5 函数的递归 6.6 变量作用域和存储类别 7.4.4 函数指针 7.5.2 指向一维数组的指针 7.6.5 命令行参数 8.8 联合与枚举 8.9 typedef 9.5 其他文件函数 10.1 预处理. 类型、变量、常量. int, long, float, double, char 一维 / 二维数组、指针、结构体、链表、文件 常量定义与识别

tacy
Download Presentation

复习要点

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 复习要点 • 不考范围 • 类型、变量、常量 • 运算符、表达式 • 格式符、转义符 • 语句与库函数 • 算法与编程技巧 • 常用数组函数

  2. 不考范围 • 4.4.6节 goto语句 • 6.5 函数的递归 • 6.6 变量作用域和存储类别 • 7.4.4 函数指针 • 7.5.2 指向一维数组的指针 • 7.6.5 命令行参数 • 8.8 联合与枚举 • 8.9 typedef • 9.5 其他文件函数 • 10.1 预处理

  3. 类型、变量、常量 • int, long, float, double, char • 一维/二维数组、指针、结构体、链表、文件 • 常量定义与识别 • 0xAB, 123L, 1.2E-3, ‘A’, “Hello” • 018, 2e1.2, ‘AB’, “C:\” • 标识符定义与识别 • n, _0, a_, _, INT • if, 1a, a.b • 变量定义与初始化 • int a[10]={1,2,3,4}, *p=a+2; • int b[3][4]={{10,11,12},{20},{30,31}}; • struct student stu[3]={{…},{…},{…}}; • 识别4种特殊指针:int *p[5], **q, (*r)(), (*s)[5];

  4. 运算符 • 算术运算符 • +、-、×、/、%、++、--、- • 关系运算符(==、!=、>、>=、<、<=) • 逻辑运算符(&&、||、!) • 条件运算符(?:) • 赋值运算符 • =、+=、/=、%=、×=等 • 其它运算(指针、逗号、转换、位) • &、*、,、sizeof、(int)、(struct node *)、>>等

  5. 表达式 • 奇偶/判断整除 • n%2, n%2==1, !(n%2), n%i==0 • 四舍五入/裁去或保留小数 • (int)(x+0.5)、(int)(10*x+0.5)/10.0、 • (int)(x)、x-(int)x • 个十百位/16进制各位数 • n%10, n/10%10, n/100%10, n%16 • 数值大小:a<b&&b<c,避免a<b<c • 判断大小写、大小写转换 • x>=‘A’ && x<=‘Z’、x-‘A’+‘a’

  6. 基本输入/出语句 • 格式符 • %d, %05d, %-2d, %ld, %x • %f, %4.1f, %2.0f, %0.2f • %s, %c, %% • 转义符 • \n, \t, \0, \\, \x4f • scanf/gets 函数,避免 • int m,n; scanf(“%d,%d\n”,&m,&n); • char a[80]; scanf(“%s”,&a);或 gets(&a);

  7. 语句与库函数 • 语句 • if, switch, for, while, do-while, • break, return, continue • 函数 • scanf, printf, • getchar, putchar, gets, puts, • strlen, strcpy, strcat, strcmp, • malloc, free, • fopen, fclose, fscanf, fprintf, • fread, fwrite, fgets, fputs

  8. C专有章节的重点 • 位运算:掌握左移/右移运算,了解&|^~ • 文件: • 掌握 FILE, fopen, fclose, fprintf, fscanf,文本 • 了解 fgets, fputs, fread, fwrite,二进制文件 • 链表:掌握结点定义与结点各分量表示,链表的建立、插入、列表等操作 • 结构体:掌握结构体数组定义与各分量表示,输入、输出、排序、查找等数组操作 • 指针:结合一维数组/单字符串/函数,指针循环,识别特殊指针

  9. 算法与编程技巧 • 算法 • 累加和,平均值,接近平均值 • 最大值/最小值(及下标) • 查找,统计次数,排序,名次 • 判断对称,换位,筛选,输出图形 • 因式分解,输出公式 • 素数,完数,公约数,进制转换 • 技巧 • break法、计数法、标志法 • 语句嵌套、复合语句、多重循环

  10. 常用数组相关函数 • 输入数组void sca( int a[ ], int n ); • 输出数组 void prt( int a[ ], int n ); • 累加和 long sum( int a[ ], int n ); • 平均值 float average( int a[ ], int n ); • 最大值 int max( int a[ ], int n ); • 排序 void sort( int a[ ], int n ); • 查找 int find( int a[ ], int n ); • 统计 int count( int a[ ], int n, int x );

  11. void sca(int a[ ], int n) { int i; for ( i=0;i<n;i++ ) scanf(“%d”,&a[i]); } void prt(int a[ ], int n) { int i; for ( i=0;i<n;i++ ) printf(“%d ”, a[i]); printf( “\n” ); } sca: 输入数组prt: 输出数组

  12. long sum(int a[ ],int n) { long s = 0; int i; for ( i = 0; i < n; i++ ) s += a[i]; return s; } float average( int a[ ],int n ) { float ave = 0; int i; for ( i = 0; i < n; i++ ) ave += a[i]; return ave/n; } sum: 计算累加和average: 计算平均值

  13. int max(int a[ ],int n) { int i,x; x = a[0]; for ( i=1; i<n; i++ ) if ( x < a[i] ) x = a[i]; return x; } int max2(int a[ ],int n) { int i,k; k = 0; for ( i=1; i<n; i++ ) if ( a[k] < a[i] ) k = i; return k; } max:返回最大值本身max2:返回最大值所在下标

  14. 数组排序 • void sort( int a[ ], int n ) • { • int i, j, t; • for ( i = 0; i < n-1; i++ ) • for ( j = 0; j < n-1-i; j++ ) • if ( a[j]>a[j+1] ) • { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } • } • 注意排序从小到大还是从大到小

  15. 查找并返回下标 • int find( int a[ ], int n, int x ) • { • int i; • for ( i=0; i<n; i++ ) • if ( a[i] == x ) • return i; • return -1; • }

  16. 统计出现次数 • int count( int a[ ], int n, int x ) • { • int ct=0, i; • for ( i=0; i<n; i++ ) • if ( a[i] == x ) • ct++; • return ct; • }

  17. 其它常用算法 • 对称,判断一数组或字符串是否首尾对称 • 名次,计算各成绩对应的名次 • 换位,所有元素向后或向前移动几个位置 • 筛选,选择满足条件组成新数组或新串 • 公式,输出等式,如因式分解、累加和 • 图形,输出一定形状的符号或数字图形 • 素数,判断一数是否为素数 • 完数,因子之和等于本身的数

  18. 上机考注意事项 • 上机编程要求 • 上机编程常见错误 • 上机考试操作步骤 • 上机考登录验证/模拟题 • 上机卷式样与程序复制技巧

  19. 上机编程要求(1) • 知识点范围(最小集) • 类型:int,float,一维数组 • 运算:算术、关系、逻辑、赋值 • 语句:if,for,break • 函数:scanf,printf • %d, %4.1f, \n, \t

  20. 上机编程要求(2) • 常用算法 • 语句嵌套、复合语句、多重循环 • 素数、break法、计数法、累加和 • 输出图形 • 最大值/最小值(及其下标) • 平均值(接近)、排序、名次

  21. 程序保存错误 包含语句错误 变量定义错误 分号错误 复合语句错误 表达式错误 输入语句错误 格式符错误 算法错误 改错程序 编写程序 上机编程常见错误

  22. 编程常见错误(1) • 程序未保存或保存错误 • 编辑-保存-编译-运行-调试 • 注意保存目录位置与文件名正确 • 包含语句错误 • 使用 fabs 函数未包含 math.h • 变量定义错误 • 未定义,定义类型错,初始化错 • 定义语句置于执行语句之后 • 数组大小定义太小(如 char a[6];)

  23. 编程常见错误(2) • 分号错误 • 表达式语句或函数调用语句漏加 “;” • if 或 for 语句所在行多加 “;” • 复合语句错误 • 未注意 if 和 for 语句的作用范围,漏加 { } • 表达式错误 • if ( a[i]=x ),() 或 “” 或 ‘’ 不配对 • % 误为 /,实数除误为整除(求平均) • 循环边界条件错误,如 i<n 或 i<=n 辨析

  24. 编程常见错误(3) • 输入语句错误 • int n; scanf(“%d\n”,&n); • int a[10]; gets(a); 或 scanf(“%d”,&a[10]); • 格式符错误 • %d 误为 d% 或 %f • %f 误为 %d,%f 对应整数表达式 • 算法错误 • 注意语句位置:循环前、循环中、循环后 • 哪些全部循环,或之前或之后只执行一次

  25. 上机考试操作步骤 • 开考之前 • 考试系统 • 编写程序 • 考试提交

  26. 第1题/改错程序题 • 3个语法错误 • 语法性错误,需要修改3处 • 分布在3个代码行上,相应代码行后加 /***/ • 不是指编译时显示有3个语法错误

  27. 复制程序技巧 • 从操作题窗口中 • 复制原程序代码 • 打开记事本,并粘贴 • 文件~另存为 • E:\answer\1-A-1.C • 关闭记事本 • 打开 TC or VC • File~Load • E:\answer\1-A-1.C

More Related