教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 专业资料 >

二级C语言考前复习资料(机试)

来源:网络收集 时间:2026-07-17
导读: 2012年上半年全国计算机等级考试 二级C语言考前复习资料(机试) 机试做题技巧概述 一、程序填空题 【解析】该类型主要考察学员对一个C程序的整体把握能力。首先须通读整个源程序,了解程序的功能后试着边填空边调试,分析输出结果,以找到正确答案。因此,

2012年上半年全国计算机等级考试 二级C语言考前复习资料(机试)

机试做题技巧概述 一、程序填空题

【解析】该类型主要考察学员对一个C程序的整体把握能力。首先须通读整个源程序,了解程序的功能后试着边填空边调试,分析输出结果,以找到正确答案。因此,不像程序修改题那么简单。 【程序填空题的特点和注意事项】

(1)程序填空的试题中通常包含三个空需要填写。

(2)试题中用"******found******/"编号,如___1___。

(3)程序填空考核对程序的整体把握,出题点可能是:for条件判断、函数返回值、if关函数的参数等。

(4不要改动程序行的顺序,更不要改动程序的结构。 【建议答题步骤】

(1)首先仔细审题,了解试题的要求,以便检验程序运行的结果是否正确。

(2)审视法,做到心里有数。

(3)当编译提示有语法错时,可参考编译提示来查找并改正错误。

(4 按照试题的示例给出的数据进行试算,

(5

【解析】C因此,误)分析输出结果,找出错误所在并

(或三个)错误需要修改。

("******found******/"来提示在下一行(或下面第二行)有错。 (3)也有些试题要求把语句添加在

4)特别注意:只能在出错的行上进行修改,不要改动程序行的顺序,更不要自己另编程序。 【建议答题步骤】

(1)首先仔细审题,了解试题的要求,看清楚试题给出的输入和输出例示,以便检验改错后程序运行的结果是否正确。

(2)审视"/******found******/"所在函数,根据题义理解程序所采用的基本算法,做到心里有数。

(3)先对测试程序进行检查是否有语法错误。当编译提示有语法错时,可参考编译提示来查找并改正错误。

(4)当不再出现语法错时,执行程序, 按照试题的示例给出的数据进行试算,

若试算的结果与给出的输出结果相同时,该题就做对了;若试算的结果与给出的输出结果不同,就应进一步检查程序中的逻辑错误。

(5)当程序存在逻辑错误时,首先应当理解题意、读懂程序的算法,必要时可按步检查数据的流程,以便确定错误所在。例如,题目要求数据按由小到大排序,而结果数据是按由大到小进行了排序,问题可能出现在条件判断上。又如,输出的字符串比预期的短,就有可能字符串的结束标志放错了位置。再如做循环的时候数组上限下限错误了,下标是从0开始 而不是1开始的。修改程序中的逻辑错时,要求考生认真读懂程序代码。

(6)修改完成,得到正确结果后,一定不要忘记把修改后的程序存盘。

(5(6)调试程序,(若要求输入的话),运行程

特别要注意:因此,要么是40分,要么是0

三、程序设计题

【解析】主要考察学员对C语言综合理解能力和上机实践能力,能够对所给问题,描述问题的逻辑思维能力。 【建议答题步骤】

(1)首先仔细审题,了解试题的要求,验在完成指定的函数后程序运行的结果是否正确。(2)调出源程序后,应对照函数首部的形参,

(3)理解试题的要求,(如把函数值赋给某个对象),并在函数中用return语句返回函数值;则需要通过形参间接地返回所得结果。

(4

上机改错题重点题型归类分析

分类一:简单语法错误

题型一:符号遗漏

1、下列程序的功能是:读入一个整数 k(2子(即所有为素数的因子)。例如,若输入整数:、5、7、11

注意:不要改动main #include “conio.h” #include “stdio.h”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 prime factor (s) of % d is ( are ):”, k ); for ( j = 2; j <= k; j++ )

if ( ( ! k%j ) ) && ( IsPrime ( j ) ) } printf ( 〃n % 4d〃, j ); printf (〃n〃);} 【参考答案】

(1) IsPrime(int n) (2) if(!(n%i)) 【解题技巧】常见的符号遗漏问题包括以下两种: (1)分号问题

遗漏分号:

k++——>k++; break——>break; return sum——>return sum; 分号多余:

if(k>1);{ }——>if(k>1){ }

while(k>1);{ }——>while(k>1){ } switch( );{ }——> switch( ){ } (2)遗漏括号

if k>1 ——> if(k>1) if !(n%i) ——while k>1 ——> while(k>1) 题型二:符号出错

2、给定程序MODI1.C中函数 fun π直到最后一项的绝对值小于指定的数(参数num π 1 1 1

┄┄≈1 - ┄┄ + ┄┄ - 例如, 程序运行后, 输入。 注意:不要改动 main #include <math.h>

#include <stdio.h> float fun ( float num ) { int s ; float n, t, pi ;

t = 1 ; pi = 0 ; n = 1 ; {

}

float n1, n2 ;

printf("Enter a float number: ") ;scanf("%f", &n1) ; n2 = fun(n1) ;

printf("%6.4f\n", n2) ; }

【参考答案】

(1)while((fabs(t))>=num) (2)t=s/n

3、下列给定程序中,函数fun的功能是:从低位开始取出长整型变量s中偶数位上的数,一次构成一个新数放在t中。例如,当s中的数为7654321时,t是的数为642。

请改正程序中的错误,使程序能得出正确的结果。

注意,不要改多main函数,不得增行或删行,也不得更改程序的结构! #include <conio.h> #include <stdio.h>

/************found************/ void fun (long s, long t) {long sl=10; s/=10; *t=s%10;

/************found************/ while (s<0) {s=s/100;

*t=s%10*sl+*t; sl=sl*10; } }

main() {long s,t; clrscr();

printf("nPlease enter s:");scanf("%ld",&s); fun(s,&t);

printf("The result is : %ldn",t); }

【参考答案】

(1)void fun (long s, long *t) (2)【解题技巧】符号出错会表现在以下七个方面: (1)“%”和除号“/”混淆,如int i=j/k;——将“%”改为“/”

(2)赋值号“=”和等号“= =如if(i=j)——>if(i==j) ——(3)复合赋值出错,如:i\=10

(4)强制转换出错,如 (5)大小写问题,如IF(){ }—>if(){ }或注:所有的关键字都是小写字母

(6

如if(fabs(n-m)<0.0001) —— if(*s<*p)——>if(*s>*p) for(;j<=n;)—— int *a[10] ——>int (*a)[10] (7 题型三:变量定义出错

42x3-4x的一个根,求要求绝对误差不超过0.001。 -100,给n90,则函数求得的一个根值为2.000。

x)

} m, double n) {

r; r=(m+n)/2;

/************found************/ while(fabs(n-m)<0.001)

{ if(funx(r)*funx(n)<0) m=r; else n=r; r=(m+n)/2; }

…… 此处隐藏:3462字,全部文档内容请下载后查看。喜欢就下载吧 ……
二级C语言考前复习资料(机试).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/268527.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)