二级C语言强化班上机培训讲义.ppt

上传人:石*** 文档编号:37358453 上传时间:2022-08-31 格式:PPT 页数:79 大小:3.74MB
返回 下载 相关 举报
二级C语言强化班上机培训讲义.ppt_第1页
第1页 / 共79页
二级C语言强化班上机培训讲义.ppt_第2页
第2页 / 共79页
点击查看更多>>
资源描述

《二级C语言强化班上机培训讲义.ppt》由会员分享,可在线阅读,更多相关《二级C语言强化班上机培训讲义.ppt(79页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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()函数给变量赋值时忘记加地址运算符函数给变量赋值时忘记加地址运算符“&”“&”输入输出的数据类型与所用格式说明符不一致输入

26、输出的数据类型与所用格式说明符不一致输入数据时,企图规定精度,如:输入数据时,企图规定精度,如:scanf(%7.2f,&a); scanf(%7.2f,&a); switchswitch语句中漏写语句中漏写breakbreak语句语句在引用数组元素时,将定义数组时的下标值作为数组最在引用数组元素时,将定义数组时的下标值作为数组最后一个元素的下标后一个元素的下标使用使用scanf()scanf()函数时,输入数值型数据的方式与要求不函数时,输入数值型数据的方式与要求不符,或输入字符格式与要求不一致符,或输入字符格式与要求不一致(此类错误虽不方便(此类错误虽不方便出改错题,但对任何出改错题,但对

27、任何C C程序设计的学习者来说却是必须程序设计的学习者来说却是必须注意的地方)注意的地方)现在学习的是第47页,共79页48#includevoid fun( char *s) int i, j; for(i=j=0;si!=0;i+) if(si!=c)/*found*/ sj=si; /*found*/ si=0; main() char s80; printf(“enter a string:”); gets(s); printf(“The original string:”); put(s); fun(s); printf(“The string after deleted:”); p

28、uts(s); printf(“n”);sj+=sisj=0这是前移问题,请注意赋值号左右两端的数组下标(或指针)都得往后移,同时注意字符串的末尾手动加一个结束标志0。例3.在给定的程序中,函数fun的功能是:从s所指字符串中删除所有小写字母c。现在学习的是第48页,共79页49例4:下列给定程序的功能是:读入一个整数 k(2 = k =10000),打印它的所有质因子(即所有为素数的因子)。例如,若输入整数 2310,则应输出: 2、3、5、7、11。请改正程序中的错误,使程序能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#includeconio.h#

29、includestdioh/*found*/IsPrime( int n); int i,m; m 1; for( i2; i n;i+)/*found*/ if !( n% i) m0; break; return( m); (1) 去掉;(2)if后加括号main( )int j, k; clrscr( ); printf(“nPlease enter an integer number between 2 and 10000:”); scanf(“%d”,k); printf(“ nnThe prime factor(s) of %d is(are):”, k); for(j=2;j=

30、k;j+) if(!( k%j)&(IsPrime(j) printf(“n %4d”,j); printf(”n”);现在学习的是第49页,共79页50例6:下列给定程序中,函数fun的功能是:将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到c 所指数组中,过长的字符放在c的尾部,如:a=“abcdefg”,b=“1234”,则c=a1b2c3d4efg #include #include #include /*found*/fun( char a, char b, char c ) while ( *a & *b ) *c = *a; c+; a+; *c = *b;

31、c+; b+; if( *a = 0 )/*found*/ while( *b ) *c = *b; c+; b+; else/*found*/ while( *a ) *c = *a; c+; a+; *c = 0;main() char s1100, s2100, t200; clrscr(); printf(nEnter s1 string : ); scanf(%s,s1); printf(nEnter s2 string : ); scanf(%s,s2); fun( s1, s2, t ); printf(n result is : %sn, t );改正方法:void fun(

32、char *a, char *b, char *c )while( *b ) *c = *b; c+; b+; while( *a ) *c = *a; c+; a+; 现在学习的是第50页,共79页51例6:下列给定程序中,函数fun的功能是:根据形参m(9=m=2)的值,在m X m的二维数组中存放如下所示的数据,由main()函数输出 例如:若输入 2 若输入 4 则输出 1 2 则输出 1 2 3 4 2 4 2 4 6 8 3 6 9 12 4 8 12 16 请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 现在学习的是第

33、51页,共79页52#include #include #define M 10int aMM=0;/*found*/fun(int *a,int m) int j,k; for (j=0;jm;j+) for (k=0;km;k+)/*found*/ ajk=k*j;main() int i,j,n; clrscr(); printf(Enter n:);scanf(%d,&n); fun(a,n); for(i=0;in;i+) for(j=0;jn;j+) printf(%4d,aij); printf(n); void fun(int aMM, int m)ajk=(k+1)*(j+1

34、);现在学习的是第52页,共79页二级C应试辅导 53例7:下列给定程序中,函数fun的功能是:删除数列中值为x的元素,n中存放的是数列元素的个数。请改正程序中的错误,使它能得出正确的结果。#include #define N 20fun(int *a,int n,int x) int p=0,i; an=x; while(x!=ap) p=p+1;/*found*/ if(P=n) return -1; else for(i=p;in;i+)/*found*/ ai+1=ai; return n-1; 现在学习的是第53页,共79页54#include #define N 20fun(int

35、 *a,int n,int x) int p=0,i; an=x; while(x!=ap) p=p+1;/*found*/ if(P=n) return -1; else for(i=p;in;i+)/*found*/ ai+1=ai; return n-1; main() int wN=-3,0,1,5,7,99,10,15,30,90,x,n,i; n=10; printf(The original data :n); for(i=0;in;i+) printf(%5d,wi); printf(nInput x (to delete):);scanf(%d,&x); printf(Del

36、ete : %dn,x); n=fun(w,n,x); if (n=-1) printf(*Not be found!*nn); else printf(The data after deleted:n); for(i=0;in;i+) printf(%5d,wi);printf(nn); if(p=n) return -1;ai=ai+1;现在学习的是第54页,共79页55填空题是计算机等级考试中的难点,占有的分值为填空题是计算机等级考试中的难点,占有的分值为20 20 分。填空题答题技巧:分。填空题答题技巧: 若需要填的空出现在程序前面部分,多数是定义变量,若需要填的空出现在程序前面部分,

37、多数是定义变量,此时需要观察后续那个变量尚未定义;此时需要观察后续那个变量尚未定义; 若出现在中间部分,则赋值号左边填的内容和该语句之若出现在中间部分,则赋值号左边填的内容和该语句之后的语句相关;赋值号右边填的内容和该语句之前的语后的语句相关;赋值号右边填的内容和该语句之前的语句相关;句相关; 若出现在打印语句之前,则填空内容和打印项相关;若出现在打印语句之前,则填空内容和打印项相关; 若出现在打印语句中,则填空内容和该语句前面最后一若出现在打印语句中,则填空内容和该语句前面最后一条可执行语句中赋值号左边的变量相关。条可执行语句中赋值号左边的变量相关。现在学习的是第55页,共79页56填空题上

38、机填空题一般包含三个空。填空题上机填空题一般包含三个空。试题中用试题中用“/ /* * * * * * *foundfound* * * * * * */ /”来提示在下一行在有填空。来提示在下一行在有填空。要填空的位置用要填空的位置用 1 1 、 2 2 、 3 3 表示。表示。考生在考试时应删除标识考生在考试时应删除标识 1 1 、 2 2 、 3 3 及下划线并填入及下划线并填入相应的代码。相应的代码。特别要注意的是:只能在要填空的位置上进行修改,不要添行、删行特别要注意的是:只能在要填空的位置上进行修改,不要添行、删行、合并或分解行,不要改动程序的顺序,不要自己另编程序。、合并或分解行

39、,不要改动程序的顺序,不要自己另编程序。 现在学习的是第56页,共79页注意事项注意事项1.1.填写参数时注意主调函数与被调函数类型一致。数填写参数时注意主调函数与被调函数类型一致。数组名作形参可以不指定大小。组名作形参可以不指定大小。 如:如:1-1,2-1, 10-1 1-1,2-1, 10-1 2.2.根据题目意思,再从函数中找出对应的变量填写表根据题目意思,再从函数中找出对应的变量填写表达式。达式。 如:如:3-1,4-1,5-1,6-1,7-1,8-1,9-1, 11-1,12-3-1,4-1,5-1,6-1,7-1,8-1,9-1, 11-1,12-1,13-1,14-11,13-

40、1,14-13.3.可以根据上下文的函数形式找出相应填写内容。可以根据上下文的函数形式找出相应填写内容。 如:如:5-1,6-1,7-1,8-1,9-1 , 10-1,16-1 5-1,6-1,7-1,8-1,9-1 , 10-1,16-1 现在学习的是第57页,共79页58Step1Step1:仔细阅读题目要求和功能,尤其是题目给出的输入和输出示例,以便检验填空后程:仔细阅读题目要求和功能,尤其是题目给出的输入和输出示例,以便检验填空后程序运行结果是否正确。序运行结果是否正确。Step2Step2:在:在VC+ 6.0VC+ 6.0环境下调出源程序,读懂程序代码,根据环境下调出源程序,读懂程

41、序代码,根据“ (“ (数字数字) ”) ”出现的位出现的位置和题目要求填写空白内容。置和题目要求填写空白内容。Step3Step3:按:按F7F7键编译源程序,若发现有语法错误,重新检查或调整答题思路。键编译源程序,若发现有语法错误,重新检查或调整答题思路。Step4Step4:按:按Ctrl+F5Ctrl+F5执行程序,按照试题示例中给出的数据进行测试,如果结果与给出执行程序,按照试题示例中给出的数据进行测试,如果结果与给出的输出结果相同,该题就完成了;如果测试的结果与给出的结果不同,就需要进一步的输出结果相同,该题就完成了;如果测试的结果与给出的结果不同,就需要进一步检查程序的逻辑错误。

42、检查程序的逻辑错误。Step5Step5:最后得到正确结果后,一定保存程序,否则不得分。:最后得到正确结果后,一定保存程序,否则不得分。 现在学习的是第58页,共79页59(一)、数学题目(一)、数学题目 例如:例如:6 6、1313、2525、2929、3636、3737、3838、4444、4646 1.1.如果在函数中定义变量,但是没有定义成静态存储变如果在函数中定义变量,但是没有定义成静态存储变量,即变量前面没有量,即变量前面没有staticstatic,应给变量赋初值,如果以,应给变量赋初值,如果以后用到的是加减运算,则赋初值为后用到的是加减运算,则赋初值为0 0 或者是或者是0.0

43、0.0;如果以;如果以后用到的是乘除运算,则赋初值为后用到的是乘除运算,则赋初值为1 1 或者是或者是1.01.0; 2.2.循环条件的填空,分析表达式的规律,看表达式中的循环条件的填空,分析表达式的规律,看表达式中的最后一项的值是否到了第最后一项的值是否到了第m m 项或者是第项或者是第n n 项,如果到了项,如果到了第第m m 或者第或者第n n 项,则在循环中的第二个表达式中用到的项,则在循环中的第二个表达式中用到的是是i=m i=m 或者是或者是i=n;i ”运算符。如运算符。如16.216.2。得到结构体中学生分数,。得到结构体中学生分数,a ascoreiscorei。 4 4、如

44、果返回的是结构体的话,函数的返回类型必须是结、如果返回的是结构体的话,函数的返回类型必须是结构体类型。调用函数的格式中,调用的若是结构体数组构体类型。调用函数的格式中,调用的若是结构体数组,则只用写结构体数组名。,则只用写结构体数组名。23.323.3现在学习的是第63页,共79页64(四)函数题目(四)函数题目1 1、2727 1 1、看函数的返回类型,函数的返回类型必须和、看函数的返回类型,函数的返回类型必须和return return 语句返回的表语句返回的表达式的类型一致。达式的类型一致。 2 2、函数的调用的情况,函数调用时只用写函数的名称,以及函数的、函数的调用的情况,函数调用时只

45、用写函数的名称,以及函数的参数。如:第一题中的第二和第三空的内容就是调用函数,填写时只参数。如:第一题中的第二和第三空的内容就是调用函数,填写时只用填写函数的名称和参数,故填用填写函数的名称和参数,故填f1(x)f1(x)和和f2(x,y);f2(x,y); 3 3、函数指针的调用格式,类型名(、函数指针的调用格式,类型名(* *f f)();27 ();27 题中第一空。题中第一空。 4 4、函数参数的传递时的调用的格式,如果函数传递的是二维数组、函数参数的传递时的调用的格式,如果函数传递的是二维数组,则在函数的传递过程中形式参数必须使用的是由,则在函数的传递过程中形式参数必须使用的是由m

46、m 个元素组成个元素组成一行的指针变量。第一行的指针变量。第10 10 题中的第一个答案题中的第一个答案: :(ssss)MM。现在学习的是第64页,共79页65( (五五) ) 链表题目:链表题目:1515、4242、4343、5050 1 1、首先看清楚题目要求和意思。看清楚链表有没有带头、首先看清楚题目要求和意思。看清楚链表有没有带头结点,如果带有头结点,第一空填的内容是结点,如果带有头结点,第一空填的内容是p=hp=hnext;next;如果是不带有头结点,则第一个空填写的是如果是不带有头结点,则第一个空填写的是p=h;p=h; 2 2、如果第二个空是在循环语句、如果第二个空是在循环语

47、句while while 的括号中的时候里的括号中的时候里面的内容填写的是面的内容填写的是p p 或者是或者是q,q,以最近出现的为主以最近出现的为主; ;如果是如果是在循环语句的里面的时候,填写的是在循环语句的里面的时候,填写的是q=pq=pnext;next; 3 3、如果是排序的时候,从小到大的时候是大于号,从大、如果是排序的时候,从小到大的时候是大于号,从大到小的时候是小于号。如果出现了到小的时候是小于号。如果出现了r r,则在后面的空中填,则在后面的空中填的是的是r r。现在学习的是第65页,共79页66( (六六) )文件类型的填空文件类型的填空2828、3030、3232、474

48、7 1 1、文件类型的题目,看清楚题目意思,定义一个文件的、文件类型的题目,看清楚题目意思,定义一个文件的指针,第一个位置出现指针,第一个位置出现fp fp 的时候要的时候要 填填FILE FILE * *; ; 2 2、掌握文件中、掌握文件中fopenfopen、fprintffprintf、fscanffscanf、fputsfputs、fputcfputc、fgetsfgets、fgetcfgetc、fseekfseek、fwritefwrite、freadfread、rewindrewind函数函数的使用的格式。的使用的格式。 fopen(fopen(“文件名文件名”,“打开方式打开方

49、式”) ); fclosefclose(文件指针);(文件指针); fscanffscanf(文件指针,格式控制字符串,输入列表项)(文件指针,格式控制字符串,输入列表项) fprintffprintf(文件指针,格式控制字符串,输出列表项)(文件指针,格式控制字符串,输出列表项)现在学习的是第66页,共79页67 fwrite(fwrite(存入数据的指针,每一个数据占有的字节,输存入数据的指针,每一个数据占有的字节,输入数据的个数,文件指针入数据的个数,文件指针) ); fread(fread(读出数据的指针,每一个数据占有的字节,输读出数据的指针,每一个数据占有的字节,输出数据的个数,文

50、件指针出数据的个数,文件指针) ); 3 3、文件打开之后要注意关闭文件,关闭文件的函数、文件打开之后要注意关闭文件,关闭文件的函数fclose(fclose(文件指针文件指针) ); 4 4、在循环语句中如果使用到的是、在循环语句中如果使用到的是while(!feof( )while(!feof( )空格空格中填写的文件指针,表明判断的是文件指针是否已经指中填写的文件指针,表明判断的是文件指针是否已经指到了文件的末尾。备注:如果文件指针指到了文件的末到了文件的末尾。备注:如果文件指针指到了文件的末尾,则尾,则feof feof 返回的是非零值,如果没有指在文件的末尾返回的是非零值,如果没有指

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁