二级C语言强化班上机培训讲义.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《二级C语言强化班上机培训讲义.ppt》由会员分享,可在线阅读,更多相关《二级C语言强化班上机培训讲义.ppt(79页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、二级二级C语言强化班上机培训讲义语言强化班上机培训讲义现在学习的是第1页,共79页二级C应试辅导 2NCRENational Computer Rank Examination 现在学习的是第2页,共79页31、考生开考前30前钟进入候考室,交验准考证和身份证。2、开考之前,先运行一下VC和看一下输入法是否符合自己的习惯。3、记得保存一份试题目录中的所有文件,以免出错或去掉注释符后自己都不知道自己改了什么。4、调试程序的时候,可以在调试窗口设变量显示中间值看正不正确。5、如果调试运行时死循环,可以按CtrlBreak中断死循环,不需要重新启动机器。 6、出现异常应该举手报告监考老师,他们有各种
2、密码,包括抽题密码、重抽密码和延时密码。 上机考试注意事项现在学习的是第3页,共79页4考生文件夹是放置题目提供的源程序、考生存放答题结果的唯一位置。考生做完题目后必须将结果存放在考生文件夹中,否则结果必然是零分。考生文件夹的命名是系统默认的,一般为准考证号的前四位和后四位。单机版路径为“C:WEXAM准考证号前四位+后四位”;而网络版的路径为“K:用户目录文件夹准考证号前四位+后四位”。现在学习的是第4页,共79页5 最好控制在60分钟内完成18分18分24分填空题改错题编程题现在学习的是第5页,共79页6改错题目的错误之处的前一行都有*found*标志!其实,评分程序就是根据这个标志,从考
3、生的modi.*(扩展名随程序语言的不同而有所不同)文件中抽取它的下一行(或第二行)信息,和标准答案进行比较。通常,标准答案会有多种,只要考生的答案和其中一个对应上了即可得到相应的分数。结论:A、即使你的改错程序能够正确执行,也未必可以得分!B、改错程序修改完毕后,无所谓运行与否,这与得分无关!现在学习的是第6页,共79页7对于题空题,评分程序先是读取考生文件夹下的BLAN.C文件,再找到其中需要填空的代码所在的行数,然后将考生填写的答案和题库中的事先给出答案进行对比,正确就得分,不正确就不得分;但是存在这样一个问题,如果一个题有多个答案,题库中不可能把所有答案都列举得出来,所以考生最好用最常
4、见的一个,确保正确;需要提醒考生注意的是,填空题和改错题的要求中明确声明:不得删减或增加程序行,就是这个道理;现在学习的是第7页,共79页8对于编程题,评分程序先是读取考生文件夹下的扩展名为对于编程题,评分程序先是读取考生文件夹下的扩展名为.DAT.DAT的文件,再其中的的文件,再其中的数据与评分程序中的提供的数据进行对比,因此,考生在编程后,一定要运行程数据与评分程序中的提供的数据进行对比,因此,考生在编程后,一定要运行程序,以生成扩展名为序,以生成扩展名为.DAT.DAT的输出文件!的输出文件!评分程序是按照最终生成的文件给分的!评分程序是按照最终生成的文件给分的! 且:且:只要考生能生成
5、最终答案文件,均可得分!只要考生能生成最终答案文件,均可得分!很多最终答案文件只有少数若干行数据,分数由正确答案的行数决定!例如,真考题库中有这样很多最终答案文件只有少数若干行数据,分数由正确答案的行数决定!例如,真考题库中有这样一道题,要求计算一道题,要求计算cos(x)-x=0cos(x)-x=0的一个近似根,其答案是的一个近似根,其答案是0.7390850.739085,最终要求生成的文件,最终要求生成的文件OUT.DATOUT.DAT中中只有一行数据。有这个文件,并且该文件只有一行数据只有一行数据。有这个文件,并且该文件只有一行数据0.7390850.739085的话,就可以得到的话,
6、就可以得到100100分!分!当然,有多行答案的文件的格式是由程序中的输出部分决定的(而这个部分是不当然,有多行答案的文件的格式是由程序中的输出部分决定的(而这个部分是不允许考生修改的!),考生必须能够看懂输出程序段的输出格式,否则会适得其允许考生修改的!),考生必须能够看懂输出程序段的输出格式,否则会适得其反!反!现在学习的是第8页,共79页9改错题解题技巧改错题解题技巧常见错误分类常见错误分类典型改错题举例典型改错题举例现在学习的是第9页,共79页10做题方法:做题方法: (1 1)首先仔细审题,了解试题的要求,看清楚试题给出)首先仔细审题,了解试题的要求,看清楚试题给出的输入和输出例示,
7、以便检验改错后程序运行的结果是的输入和输出例示,以便检验改错后程序运行的结果是否正确。否正确。 (2 2)当在)当在VCVC环境下调出源程序后,审视环境下调出源程序后,审视/* * * * * * *found found * * * * * * */“/“所在函数,根据题义理解程序所采用的基本算所在函数,根据题义理解程序所采用的基本算法,做到心里有数。法,做到心里有数。 (3 3)对测试程序进行编译,看是否有语法错误。当编译)对测试程序进行编译,看是否有语法错误。当编译提示有语法错时,可参考编译提示来查找并改正错误。提示有语法错时,可参考编译提示来查找并改正错误。现在学习的是第10页,共79
8、页11 (4 4)当不再出现语法错时,使用执行程序,)当不再出现语法错时,使用执行程序, 按照试题按照试题的示例给出的数据进行试算,若试算的结果与给出的输的示例给出的数据进行试算,若试算的结果与给出的输出结果相同时,该题就做对了;若试算的结果与给出的出结果相同时,该题就做对了;若试算的结果与给出的输出结果不同,就应进一步检查程序中的逻辑错误。输出结果不同,就应进一步检查程序中的逻辑错误。 (5 5)当程序存在逻辑错误时,首先应当理解题意、读懂)当程序存在逻辑错误时,首先应当理解题意、读懂程序的算法,必要时可按步检查数据的流程,以便确定程序的算法,必要时可按步检查数据的流程,以便确定错误所在。错
9、误所在。 (6 6)修改完成,得到正确结果后,一定不要忘记把修改)修改完成,得到正确结果后,一定不要忘记把修改后的程序存盘。后的程序存盘。现在学习的是第11页,共79页12求分数和的时候请注意整除问题。如求分数和的时候请注意整除问题。如2-22-2循环的初值、条件、和终值问题。如循环的初值、条件、和终值问题。如3-23-2注意关键词:如注意关键词:如NULLNULL与与NullNull的区别,如的区别,如9-29-2;“00”与与00的区别的区别,如,如8-28-2。大小写问题:大小写问题:ForFor与与forfor, Int Int与与intint,如,如8-28-2、 14-2 14-2
10、。 形态相似字符:小写字符形态相似字符:小写字符l l与数字与数字1 1的区别如的区别如1-2 1-2 ,字符,字符o o与数字与数字0 0的的区别。区别。符号问题:符号问题: (1 1)“ ”与与“/ /”的区别,如的区别,如4-24-2,5-25-2;(;(2 2)“= =”与与“=”的区别,如的区别,如4-24-2。加漏符号(加漏符号(* *或;)问题:如或;)问题:如6-26-2,7-27-2,9-29-2,10-210-2,11-2,12-11-2,12-2,13-2,15-22,13-2,15-2,19-219-2现在学习的是第12页,共79页13注意比较值时,指针(位置)与指针值
11、(内容)的问题。注意比较值时,指针(位置)与指针值(内容)的问题。 如如1-21-2,19-219-2注意理解题意,如:注意理解题意,如:14-214-2参数或变量类型不一致的问题,参数及函数名前面的类型一般不可参数或变量类型不一致的问题,参数及函数名前面的类型一般不可以省。如指针与普通变量。如以省。如指针与普通变量。如2-22-2,6-26-2,9-29-2,10-210-2,19-219-2两个数相互交换应该借助临时变量来实现,而不能直接赋值。如两个数相互交换应该借助临时变量来实现,而不能直接赋值。如x x与与y y互换,借助互换,借助t t,则:,则:t=x; x=y; y=t;t=x;
12、 x=y; y=t;带参宏定义的时候展开的时候有括号就有括号,没括号不要画带参宏定义的时候展开的时候有括号就有括号,没括号不要画蛇添足。反过来,如果展开的时候必需要有括号,那个在定义蛇添足。反过来,如果展开的时候必需要有括号,那个在定义的时候请加上括号。的时候请加上括号。IFIF语句的条件加括号。如语句的条件加括号。如10-210-2现在学习的是第13页,共79页14变量有没有定义及赋初值。如变量有没有定义及赋初值。如5-25-2如如s s为指针变量,请注意为指针变量,请注意s s与与* *s s的区别及用法。的区别及用法。 如如10-2,15-210-2,15-2C C语言的结束标志为分号(
13、;),写在同一行上的一段代码,如果是尾于语言的结束标志为分号(;),写在同一行上的一段代码,如果是尾于不同的语句应用分号隔开。不同的语句应用分号隔开。 如如int a, b, float c; int a, b, float c; 应改为:应改为:int a, b; int a, b; float c; float c; 是否漏写了是否漏写了C C语言的结束标志为分号(;),如语言的结束标志为分号(;),如10-210-2是否多写是否多写C C语言的结束标志为分号(;),如语言的结束标志为分号(;),如12-212-2 如:如:switch (a);switch (a);,应改为,应改为swi
14、tch (a)switch (a) int f(int n); int f(int n);,应改为,应改为int f(int n)int f(int n) for (i = 1; i = 5; i+;) for (i = 1; i = 5; i+;),应改为,应改为 for (i = 1; i = 5; i+) for (i = 1; i y)if !(x y),应改为,应改为if (!(x y)if (!(x y) 变量变量1=1=变量变量2 2,如:,如:p = qp = q,应改为,应改为q = pq = p 交换两个变量的值,如:交换两个变量的值,如:t=x, y=x, y=tt=x,
15、 y=x, y=t,应改为,应改为t=x, t=x, x=y, y=t“x=y, y=t“ 变量初值或类型错误变量初值或类型错误 如:如:int x = 1int x = 1,应改为,应改为double x = 0double x = 0现在学习的是第15页,共79页16 函数类型或形参类型说明错误函数类型或形参类型说明错误 int f(int a) int f(int a),应改为,应改为double f(int a)double f(int a) 实参是地址实参是地址( (数组名数组名) ),形参应是指针或数组名,形参应是指针或数组名 int f(int p) int f(int p),应
16、改为,应改为int f(int int f(int * *p)p)或者改为或者改为int f(int p )int f(int p ); 其他错误其他错误 如:如:a = c - oa = c - o,应改为,应改为a = c - 0a = c - 0 scanf(%f,i) scanf(%f,i),应改为,应改为scanf(%d,&i)scanf(%d,&i) case 0; case 0;,应改为,应改为case 0:case 0:现在学习的是第16页,共79页17 例例1:给定程序:给定程序MODI1.C中函数中函数 fun 的功能是:用冒泡法对的功能是:用冒泡法对6个字符串按由小到大的
17、顺个字符串按由小到大的顺序进行排序。请改正程序中的错误,使它能得出正确的结果。注意:序进行排序。请改正程序中的错误,使它能得出正确的结果。注意: 不要改动不要改动 main 函数函数,不得增行或删行,也不得更改程序的结构!,不得增行或删行,也不得更改程序的结构!#include #include #define MAXLINE 20fun ( char *pstr6) int i, j ; char *p ; for (i = 0 ; i 5 ; i+ ) /*found*/ for (j = i + 1, j 0) p = *(pstr + i) ;/*found*/ *(pstr + i)
18、 = pstr + j ; *(pstr + j) = p ; main( ) int i ; char *pstr6, str6MAXLINE ; for(i = 0; i 6 ; i+) pstri = stri ; printf( nEnter 6 string(1 string at each line): n ) ; for(i = 0 ; i 6 ; i+) scanf(%s, pstri) ; fun(pstr) ; printf(The strings after sorting:n) ; for(i = 0 ; i 6 ; i+) printf(%sn, pstri) ;现在
19、学习的是第17页,共79页18例例2:给定程序:给定程序MODI1.C中函数中函数 fun 的功能是:求出数组中最大数和次最大数,并把最大的功能是:求出数组中最大数和次最大数,并把最大数和数和a0中的数对调、次最大数和中的数对调、次最大数和a1中的数对调。中的数对调。 请改正程序中的错误,使它能得出正确的结果。注意:不要改动请改正程序中的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,函数,不得增行或删行,也不得更改程序的结构!也不得更改程序的结构!#include #define N 20void fun ( int * a, int n ) int i, m,
20、t, k ; for(i=0;i2;i+) /*found*/ m=0; for(k=i+1;kam) k=m; t=ai;ai=am;am=t; main( ) int bN=11,5,12,0,3,6,9,7,10,8, n=10, i; for ( i=0; in; i+ ) printf(%d , bi); printf(n); fun ( b, n ); for ( i=0; i=”,但是在考试的时候,但是在考试的时候可能出现将它写为可能出现将它写为“=”,49 ,49 题第二空就是这样的错误题第二空就是这样的错误。 B B 当题目中需要比较某个字符是否是大写字母或是小写当题目中需要
21、比较某个字符是否是大写字母或是小写字母、数字时,必须将字母、数字时,必须将“与与”、“或或”、“非非”记住。记住。现在学习的是第32页,共79页33判断某个字符是否是大写字母:判断某个字符是否是大写字母:char char ch;if(ch=ch;if(ch=A A&ch=&ch=char ch;if(ch=a a&ch=&ch=char ch;if(ch=0 0&ch=&ch0 | b0) if(a0 | b0),应改为,应改为if(a0 & b0)if(a0 & b0) a 10 a 10,应改为,应改为a = 10a = 10现在学习的是第35页,共79页363.3.表达式的取值范围出错
22、:表达式的取值范围出错: 当遇到计算表达式的累加或是累减时,一定用到循环来当遇到计算表达式的累加或是累减时,一定用到循环来完成相应的操作。完成相应的操作。 例如:改错题第七题中要求计算例如:改错题第七题中要求计算t=1-1/2t=1-1/2* *2-1/32-1/3* *3-3-.-.-1/m1/m* *m m 这个表达式,在这个题目中第一空有这样的这个表达式,在这个题目中第一空有这样的forfor语语句句for(i=2;im;i+)y-=1/(ifor(i=2;im;i+)y-=1/(i* *i);i);从题目中不难发现从题目中不难发现i i 是是一个变量,它的取值范围从整数一个变量,它的取
23、值范围从整数2 2 开始到开始到m-1 m-1 结束,最结束,最终计算的结果为终计算的结果为y=1-1/2y=1-1/2* *2-1/32-1/3* *3-3-.-1/(m-1).-1/(m-1)* *(m-1)(m-1)和和题目要求的不符,因此将题目要求的不符,因此将imim改为改为i=mi=m。 做这样的题目看两点:一看题目中的表达式,二看做这样的题目看两点:一看题目中的表达式,二看forfor语语句中变量的取值范围。句中变量的取值范围。31 31 题第二空同样的考点。题第二空同样的考点。现在学习的是第36页,共79页374.C4.C语言中的除法运算:语言中的除法运算: 这个考点同样考查表
24、达式的相关知识。例如:改错题第这个考点同样考查表达式的相关知识。例如:改错题第七题中要求计算七题中要求计算t=1-1/2t=1-1/2* *2-1/32-1/3* *3-3-.-1/m.-1/m* *m m 这个表达这个表达式,在这个题目中第一空有这样的式,在这个题目中第一空有这样的for for 语句语句for(i=2;im; i+)y-=1/(ifor(i=2;i )、小)、小于(于( nextp=h-next;第二;第二个空改为:个空改为:p=p-next;.p=p-next;. 2 2、不带头结点的链表、不带头结点的链表 不带头结点的链表的第一个空的改为:不带头结点的链表的第一个空的改
25、为:p=hp=h;第二个空改;第二个空改为:为:p=p-next;.p=p-next;.现在学习的是第45页,共79页4610.10.其它其它 循环语句、循环语句、ifif语句、复合语句的花括号后多加了分语句、复合语句的花括号后多加了分号号赋值号与等号混淆赋值号与等号混淆引号或括号不对称(只有一边)引号或括号不对称(只有一边)复合语句少了复合语句少了“”变量的初值不正确或未赋初值变量的初值不正确或未赋初值 现在学习的是第46页,共79页47利用利用scanf()scanf()函数给变量赋值时忘记加地址运算符函数给变量赋值时忘记加地址运算符“&”“&”输入输出的数据类型与所用格式说明符不一致输入
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 语言 强化 上机 培训 讲义
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内