ImageVerifierCode 换一换
格式:DOCX , 页数:57 ,大小:121.50KB ,
资源ID:3772146      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3772146.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(全国计算机等级考试二级C语言资料机试.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

全国计算机等级考试二级C语言资料机试.docx

1、全国计算机等级考试二级C语言资料机试全国计算机等级考试二级C语言考前复习资料(机试)机试做题技巧概述一、程序填空题【解析】该类型主要考察学员对一个C程序的整体把握能力。首先须通读整个源程序,了解程序的功能后试着边填空边调试,分析输出结果,以找到正确答案。因此,不像程序修改题那么简单。【程序填空题的特点和注意事项】(1)程序填空的试题中通常包含三个空需要填写。(2)试题中用*found*/来提示在下一行或下二行注明填空的位置及编号,如_1_。(3)程序填空考核对程序的整体把握,出题点可能是:for循环语句的初始化或条件判断、函数返回值、if语句的条件判断、链表中指针如何移动、文件操作相关函数的参

2、数等。(4)特别要注意的是:只能在填空的位置填写语句或表达式,不要增行或删行,不要改动程序行的顺序,更不要改动程序的结构。【建议答题步骤】(1)首先仔细审题,了解试题的要求,看清题目给出的输入和输出例示,以便检验程序运行的结果是否正确。(2)审视/*found*/所在函数,根据题义理解程序所采用的基本算法,做到心里有数。(3)填好空后对测试程序进行检查是否有语法错误。当编译提示有语法错时,可参考编译提示来查找并改正错误。(4)当不再出现语法错时,执行程序, 按照试题的示例给出的数据进行试算,若试算的结果与给出的输出结果相同时,该题就做对了;若试算的结果与给出的输出结果不同,就应进一步检查程序中

3、的逻辑错误。(5)修改完成,得到正确结果后,一定不要忘记把修改后的程序存盘。 二、程序修改题【解析】该类型主要考察学员对C程序部分结构或算法的分析和理解能力。因此,对学员的知识把握能力要求不高,通常可以借助计算机帮我们改错(仅限语法错误)。若非语法错误,则需对程序边调试边找错,分析输出结果,找出错误所在并改正。【程序填空题的特点和注意事项】(1)上机改错的试题中通常包含两个(或三个)错误需要修改。(2)试题中用*found*/来提示在下一行(或下面第二行)有错。(3)错误的性质基本分语法错误和逻辑错误两种,也有些试题要求把语句添加在下划线处。(4)特别注意:只能在出错的行上进行修改,不要改动程

4、序行的顺序,更不要自己另编程序。【建议答题步骤】(1)首先仔细审题,了解试题的要求,看清楚试题给出的输入和输出例示,以便检验改错后程序运行的结果是否正确。(2)审视/*found*/所在函数,根据题义理解程序所采用的基本算法,做到心里有数。(3)先对测试程序进行检查是否有语法错误。当编译提示有语法错时,可参考编译提示来查找并改正错误。(4)当不再出现语法错时,执行程序, 按照试题的示例给出的数据进行试算,若试算的结果与给出的输出结果相同时,该题就做对了;若试算的结果与给出的输出结果不同,就应进一步检查程序中的逻辑错误。(5)当程序存在逻辑错误时,首先应当理解题意、读懂程序的算法,必要时可按步检

5、查数据的流程,以便确定错误所在。例如,题目要求数据按由小到大排序,而结果数据是按由大到小进行了排序,问题可能出现在条件判断上。又如,输出的字符串比预期的短,就有可能字符串的结束标志放错了位置。再如做循环的时候数组上限下限错误了,下标是从0开始 而不是1开始的。修改程序中的逻辑错时,要求考生认真读懂程序代码。(6)修改完成,得到正确结果后,一定不要忘记把修改后的程序存盘。三、程序设计题【解析】主要考察学员对C语言综合理解能力和上机实践能力,能够对所给问题,运用所学知识,按照程序设计的步骤独立编写出一段程序,学会用计算机语言描述日常生活中所见到的现象和拟题,通过实际上机操作积累经验,锻炼用C语言描

6、述问题的逻辑思维能力。【建议答题步骤】(1)首先仔细审题,了解试题的要求,记下试题给出的输入和输出例示,以便检验在完成指定的函数后程序运行的结果是否正确。(2)调出源程序后,应对照函数首部的形参,审视主函数中调用函数时的实参内容,以便明确在函数中需要处理的数据对象。(3)理解试题的要求,审视主函数中调用函数的方式,若在表达式中调用函数(如把函数值赋给某个对象),则要求有函数值返回,需注意函数的类型,并在函数中用return语句返回函数值;若主函数中仅用语句形式调用函数,则需要通过形参间接地返回所得结果。(4)选择适当的算法进行编程,输入程序语句。不要忘记及时存盘!(5)编译程序,直到没有语法错

7、误。(6)调试程序,利用试题中给出的例示数据进行输入(若要求输入的话),运行程序,用示例的输出数据检验输出结果,直到结果相同。 特别要注意:程序设计题要求完全设计正确才会给分,因此,要么是40分,要么是0分,不会给中间分。那么想通过机试,程序填空题和程序修改题通常来说必须全部正确才能容易通过,否则不容易通过。上机改错题重点题型归类分析分类一:简单语法错误 题型一:符号遗漏1、下列程序的功能是:读入一个整数 k(2k10000),打印它的所有质因子(即所有为素数的因子)。例如,若输入整数:2310,则应输出:2、3、5、7、11。请改正程序中的语法错误,使程序能得出正确的结果。注意:不要改动ma

8、in函数,不得增行或删行,也不得更改程序的结构!#include “conio.h”#include “stdio.h”/*found*/IsPrime ( int n ); int i, m;m = 1;for ( i = 2; i n/ i+ )/*found*/ if !( n%i ) m=0; break ; return ( m );main () int j, k;clrscr ();printf (“nPease enter an integer number between 2 and 10000:”); scanf (“%d”,&k );printf ( “nn The pr

9、ime factor (s) of % d is ( are ):”, k );for ( j = 2; j k+; breakbreak; return sumreturn sum; 分号多余:if(k1); if(k1) while(k1); while(k1) switch( ); switch( ) (2)遗漏括号if k1 if(k1) if !(n%i) if (!(n%i) while k1 while(k1) 题型二:符号出错2、给定程序MODI1.C中函数 fun 的功能是:用下面的公式求的近似值,直到最后一项的绝对值小于指定的数(参数num )为止: 1 1 1 1 - +

10、 - + . 4 3 5 7 例如, 程序运行后, 输入0.0001, 则程序输出3.1414。 请改正程序中的错误,使它能输出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!#include #include float fun ( float num ) int s ; float n, t, pi ; t = 1 ; pi = 0 ; n = 1 ; s = 1 ;/*found*/ while(t = num) pi = pi + t ; n = n + 2 ; s = -s ;/*found*/ t = s % n ; pi = pi * 4 ;

11、return pi ;main( ) float n1, n2 ; printf(Enter a float number: ) ;scanf(%f, &n1) ; n2 = fun(n1) ; printf(%6.4fn, n2) ;【参考答案】(1)while(fabs(t)=num) (2)t=s/n3、下列给定程序中,函数fun的功能是:从低位开始取出长整型变量s中偶数位上的数,一次构成一个新数放在t中。例如,当s中的数为7654321时,t是的数为642。请改正程序中的错误,使程序能得出正确的结果。注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!#include #

12、include /*found*/void fun (long s, long t)long sl=10; s/=10; *t=s%10;/*found*/ while (s0)【解题技巧】符号出错会表现在以下七个方面:(1)“%”和除号“/”混淆,如int i=j/k;int i=j%k;有时候反过来考,将“%”改为“/”(2)赋值号“=”和等号“= =”混淆如if(i=j)if(i=j) while(i=j)while(i=j)(3)复合赋值出错,如:i=10i/=10,除号是左下的斜线(4)强制转换出错,如int i=int(f)int i=(int)f强制转化是在类型上加括号(5)大小

13、写问题,如IF() if() 或For( ) for() 注:所有的关键字都是小写字母(6)条件判断时的符号问题(要根据具体题意来修改)如if(fabs(n-m)if(fabs(n-m) 0.0001) if(*sif(*s*p)for(;jfor(;jint (*a)10(7)浮点数不能比较大小,只能用绝对值来比较 题型三:变量定义出错4、程序的功能更是求方程2x3-4x2+3x-6=0的一个根,求要求绝对误差不超过0.001。例如,若给m输入 -100,给n输入90,则函数求得的一个根值为2.000。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也

14、不得更改程序的结构。#include #include double funx(double x) return(2*x*x*x-4*x*x+3*x-6); double fun( double m, double n)/*found*/ int r; r=(m+n)/2;/*found*/ while(fabs(n-m)0.001) if(funx(r)*funx(n)0.001)【解题技巧】变量定义可能会出现以下三种错误:(1)变量定义时没有初始化,或者初始化的值不对,如int s=1int s=0,一般在累加求和时容易出现此类错误(2)变量定义出错,如int sum=0.0double

15、sum=0.0 或者是使用变量前并没有定义(3)变量定义的类型和程序中使用的类型不匹配,如int rdouble r; 题型四:赋值出错5、给定程序MODI1.C中函数fun的功能是:将长整型数中每一位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。 例如,当s中的数为:87653142时,t中的数为:7531。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include void fun (long s, long *t) int d; long sl=1;/*found*/ t = 0; while

16、 ( s 0) d = s%10;/*found*/ if (d%2 = 0) *t = d * sl + *t; sl *= 10; s /= 10; main() long s, t; printf(nPlease enter s:); scanf(%ld, &s); fun(s, &t); printf(The result is: %ldn, t);【参考答案】:(1)*t=0;(2)if(d%2!=0)6、下列给定程序中,函数fun的功能是:实现两个整数的交换。例如给a和b分别输入60和65,输出为:a=65 b=60请改正程序中的错误,使程序能得出正确的结果。注意,不要改多main

17、函数,不得增行或删行,也不得更改程序的结构!#include #include /*found*/void fun (int a,b) int t;/*found*/ t=b;b=a;a=t; main()int a,b; clrscr(); printf(Enter a,b:);scanf(%d%d,&a,&b); fun(&a,&b); printf(a=%d b=%dn,a,b);【参考答案】(1)void fun (int *a,int *b) (2)t=*b;*b=*a;*a=t;【解题技巧】在解题时,要注意以下几种常见的错误:(1)赋值时类型不匹配。如char *r,*p;if(r

18、= =p)if(*r= =*p),*r,*p才是内容char ch=0;char ch=0;字符是用单引号括起来char ch=0char ch=0;此时是将字符0赋给ch变量,而不是0 char ch=0;0的ASCII码就是0,可直接用0进行赋值(2)指针类赋值出错(左右两边类型不一致)如:int *a;int x=10,t=20;a=&x; a=t;a=&t;指针只能存放变量的地址a=t;*a=t;将变量赋给指针所指向的变量(3)实现交换时赋值出错如:if(aif(ab) t=a;a=b;b=t; 错误形式 正确形式 分类二:固定语法格式搭配错误 题型一:输入输出格式出错1、给定程序MO

19、DI1.C中,fun函数的功能是:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线元素之积。请改正程序中的错误,或在横线处填上适当的内容并把横线删除,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include int fun ()int a 3 3, sum, i, j;*_; for (i=0;i3;i+) for (j=0;j3;j+)* scanf (“%d”,a i j); for (i=0; i3; i+) sum=sum*ai i;printf (“Sum=%dn”, sum);main () fun (); 【参考答案】

20、(1)sum = 1; (2)scanf(%d, &aij);2、给定程序MODI1.C中函数fun的功能是:输出M行M列整数方阵,然后求两条对角线上元素之和,返回此和数。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include #define M 5/*found*/int fun(int n, int xx) int i, j, sum=0; printf( nThe %d x %d matrix:n, M, M ); for( i = 0; i M; i+ ) for( j = 0; j M; j+ )/*found

21、*/ printf( %f , xxij ); printf(n); for( i = 0 ; i scanf(“%d”,&aij) int i,*p=&i; scanf(“%d”,&p) scanf(“%d”,p);int i=10; printf(“%f”,i);printf(“%d”,i); printf(“%d”, “string”); printf(“%s”, “string”); 题型二:选择结构中的基本格式问题3、给定程序MODI1.C中函数fun的功能是:用递归算法计算斐波拉契数列中第n项的值。从第1项起,斐波拉契数列为:1、1、2、3、5、8、13、21、例如,若给n输入7,

22、该项的斐波拉契数值为:13。请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。#include long fun(int g)/*found*/ switch(g); case 0: return 0;/*found*/ case 1 ;case 2 : return 1 ; return( fun(g-1)+fun(g-2) );main() long fib; int n; printf(Input n: ); scanf(%d,&n); printf(n = %dn,n); fib=fun(n); printf(fib = %dn

23、n,fib);【参考答案】:(1)switch(g)(2)case 1: return 1; case 2:return 1;【解题技巧】注意选择结构的正确语法格式,关注容易出错的地方,如下图正确形式 错误形式 题型三:循环结构中的基本格式问题4、给定程序MODI1.C中函数fun的功能是:根据整型形参m的值,计算如下公式的值。 1 1 1 t = 1 - - - - - - - 2*2 3*3 m*m 例如,若 m 中的值为: 5,则应输出: 0.536389。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include d

24、ouble fun ( int m ) double y = 1.0 ;int i ;/*found*/ for(i = 2 ; i m ; i+)/*found*/ y -= 1 /(i * i) ; return( y ) ;main( ) int n = 5 ; printf( nThe result is %lfn, fun ( n ) ) ;【参考答案】:(1)for(i=2;i=m;i+)(2)y-=1.0/i/i;【解题技巧】注意选择结构的正确语法格式,关注容易出错的地方,如下图正确形式 错误形式分类三:函数类错误(考试重点、难点,出现的频率非常高) 题型一:函数定义时出错1、给定程序MODI1.C中函数fun的功能是:根据形参m的值(2m9,在m行m列的二维数组中

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1