全国计算机等级考试二级C语言 题型解析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《全国计算机等级考试二级 C 语言》等级考试 题型解析
二级 C 考试分笔试和机试两部分,两部分总分均为 100 分,两部分考试均需 60 分以上 才能合格发放证书。若其中一科(笔试或机试)通过,另一科可在下一次考试中补考,若补 考合格发放证书。若二科均在 85 分以上,在合格证书上将加印“优秀”字样,若二科均在 70 分以上,在合格证书上将加印“良好”字样。
ss[i][m--]=ss[i][j]; for(j=0; j /**********found**********/ ___3___='*'; } } main() { char ss[M][N]={"shanghai","guangzhou","beijing","tianjing","cchongqing"}; int i; printf("\nThe original strings are :\n"); for(i=0; i printf("\n"); fun(ss); printf("\nThe result:\n"); for(i=0; i } 2、程序修改题 通常会给出一段源代码,设计 2-3 个错误需要你来修改。修改好一处错误得分 10 分(若 有 3 处错误)或 15 分(若有 2 处错误)。例如: #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 = %d\n",n); fib=fun(n); printf("fib = %d\n\n",fib); } 3、程序设计题 通常会给出一段源代码,要求你来设计其中的一个函数。完全编好,且运行正确得分 40 分,无中间过程得分。例如:
(5)修改完成,得到正确结果后,一定不要忘记把修改后的程序存盘。 2、程序修改题 程序修改题的特点和注意事项: (1)上机改错的试题中通常包含两个(或三个)错误需要修改。 (2)试题中用"******found******/"来提示在下一行(或下面第二行)有错。 (3)错误的性质基本分语法错和逻辑错两种,也有些试题要求把语句添加在下划线处。 (4)特别要注意的是:只能在出错的行上进行修改,不要改动程序行的顺序,更不要 自己另编程序。 解题方法:边调试边找错,分析输出,找出并改正错误。 上机改错测试时,建议按以下步骤进行: (1)首先仔细审题,了解试题的要求,看清楚试题给出的输入和输出例示,以便检验 改错后程序运行的结果是否正确。 (2)审视"/******found******/"所在函数,根据题义理解程序所采用的基本算法,做 到心里有数。 (3)先对测试程序进行检查是否有语法错误。当编译提示有语法错时,可参考编译提 示来查找并改正错误。 (4)当不再出现语法错时,执行程序, 按照试题的示例给出的数据进行试算,若试算 的结果与给出的输出结果相同时,该题就做对了;若试算的结果与给出的输出结果不同,就 应进一步检查程序中的逻辑错误。 (5)当程序存在逻辑错误时,首先应当理解题意、读懂程序的算法,必要时可按步检 查数据的流程,以便确定错误所在。例如,题目要求数据按由小到大排序,而结果数据是按 由大到小进行了排序,问题可能出现在条件判断上。又如,输出的字符串比预期的短,就有 可能字符串的结束标志放错了位置。再如做循环的时候数组上限下限错误了,基数是从 0 开始 而不是 1 开始的。修改程序中的逻辑错时,要求考生认真读懂程序代码。 (6)修改完成,得到正确结果后,一定不要忘记把修改后的程序存盘。 3、程序设计题 在二级 C 程序设计上机考试中,要求完成一个独立的函数的编程。目前教育部考试中心 已出版了上机考试习题集,这些有助于学习编程,但考生应当在学习过程中理解基本的算法, 通过实际上机操作积累经验,才能掌握基本的编程能力。 进行编程测试时,建议按以下步骤进行: (1)首先仔细审题,了解试题的要求,记下试题给出的输入和输出例示,以便检验在 完成指定的函数后程序运行的结果是否正确。 (2)调出源程序后,应对照函数首部的形参,审视主函数中调用函数时的实参内容, 以便明确在函数中需要处理的数据对象。 (3)理解试题的要求,审视主函数中调用函数的方式,若在表达式中调用函数(如把函 数值赋给某个对象),则要求有函数值返回,需注意函数的类型,并在函数中用 return 语句 返回函数值;若主函数中仅用语句形式调用函数,则需要通过形参间接地返回所得结果。 (4)选择适当的算法进行编程,输入程序语句。不要忘记及时存盘!
2010 全国计算机等级考试二级 C 语言》资格考试教材及出题比例 教材:《全国计算机等级考试》二级教程----C 语言程序设计(2010 年版),书中共分 16 章节 内容对理论考试内容进行了详细的介绍。第 17 章介绍机试操作内容。
通过对最近 3 次等级考试真题分析,各章内容及出题比例大约如下表所示。
章序号 特点及学习方法 第 1 章 程序设计基本概念 主要考核知识点:了解 C 程序、程序设计、算法、模块化和结构 化程序设计等概念 学习方法:理解+记忆 第 2 章 C 程序设计的初步知识 主要考核知识点:了解 C 程序格式、标识符、常量、变量以 及算术运算符及算术表达式、赋值运算符和赋值表达式、自加/减以及逗号运算符 学习方法:编写简单 C 程序加强理解和记忆 第 3 章 顺序结构 主要考核知识点:printf()、scanf()函数的应用,复合语句及空语句的应用, 顺序程序设计思想 学习方法:理解顺序程序设计思想,设计一些典型的顺序程序,如计算圆的面积、体积,三 角形面积等 第 4 章 选择结构 主要考核知识点:了解关系运算符和关系表达式;掌握 if 语句的几种格式, switch 语句、break 语句,掌握条件表达式(唯一的三目运算符)的应用 学习方法:理解选择结构程序设计思想,设计一些典型的选择结构程序,如比较 2、3、4 个数大小,按等级输出学生成绩,计算分段函数,解一元二次方程等 第 5 章 循环结构 主要考核知识点:熟练掌握 while、do while、for 循环语句的格式及应用, 学习方法:理解循环结构程序设计思想,设计一些典型的循环结构程序,如累加和,阶乘, 求π的近似值,Fibonacci 数列,求素数,求水仙花数等 第 6 章 字符型数据 主要考核知识点:使用 printf()、scanf()函数进行字符型数据的输入和 输出,putchar()、getchar()函数的应用 学习方法:设计字符处理的各类应用程序,如 ASCII 字符处理,统计各类字符数,密码译码 等 第 7 章 函数 主要考核知识点:熟练掌握函数的定义和返回值、函数调用、函数申明、函数 之间值传递等概念 学习方法:理解为什么要使用函数,将前面设计的一些程序打包成函数 第 8 章 地址和指针 主要考核知识点:理解指针、指针变量、指针变量的基类型等基本概 念 学习方法:理解指针的概念,设计一些简单的指针应用程序 第 9 章 数组 主要考核知识点:熟练掌握一维、二维数组的定义和引用;理解数组和指针结 合,数组名或数组元素作函数的参数的应用 学习方法:理解好一维、二维数组的概念及应用,数组指针和指针数组的应用,熟练冒泡排 序、选择排序程序 第 10 章 字符串 主要考核知识点:掌握字符串及运用指针和数组处理字符串,处理字符串 常用的函数,如 gets()、puts()、strcpy()、strcmp()、strlen()、strcat()等 学习方法:理解课本上给出的字符串处理的例题 第 11 章 对函数的进一步讨论 主要考核知识点:函数的递归调用 学习方法:理解课本上的计算 n!、求平方根的迭代公式求某数的平方根的递归算法 第 12 章 C 语言中用户标识符的作用域和存储类 主要考核知识点:理解全局变量、局部变 量,auto、register、static、extern 存储类别的应用 学习方法:理解+记忆 第 13 章 编译预处理和动态存储分配 主要考核知识点:主要理解宏替换,特别是带参的
到心里有数。 (3)填好空后对测试程序进行检查是否有语法错误。当编译提示有语法错时,可参考
编译提示来查找并改正错误。 (4)当不再出现语法错时,执行程序, 按照试题的示例给出的数据进行试算,若试算
的结果与给出的输出结果相同时,该题就做对了;若试算的结果与给出的输出结果不同,就 应进一步检查程序中的逻辑错误。
(一)笔试 笔试内容分两部分。公共基础知识考核内容:30 分;C 语言基础知识考核内容:70 分。 题型分析如下: 1、单向选择题 40 道题,共 70 分。 分值分布如下: 其中(1)-(10)、(21)-(40)小题,每題 2 分,(11)-(20)小题,每题 1 分。 考核内容分布如下: (1)-(10)小题为公共基础知识考核内容,共计 20 分; (11)-(40)小题为 C 语言知识考核内容,共计 50 分。 2、填空题 15 个空,每空 2 分,共 30 分。 考核内容分布如下: (1)-(5)空为公共基础知识考核内容,共计 10 分; (6)-(15)空为 C 语言知识考核内容,共计 20 分。 (二)机试 机试三道题:程序填空题,30 分;程序修改题,30 分;程序设计题,40 分。 1、程序填空题 通常会给出一段源代码,设计三个空需要你来填写。每空 10 分。 例如: #include #include #define M 5 #define N 20 void fun(char (*ss)[N]) { int i, j, k=0, n, m, len; for(i=0; i { len=strlen(ss[i]); if(i==0) n=len; if(len>n) { /**********found**********/ n=len; ___1___=i; } } for(i=0; i if (i!=k) { m=n; len=strlen(ss[i]); /**********found**********/ for(j=___2___; j>=0; j--)
2010 全国计算机等级考试二级 C 语言》资格考试答题策略及技巧 (一)笔试
可考虑以下做题顺序(仅供参考) 1、先做公共基础题,选择题(1)-(10),填空题(1)-(5)空。 2、接下来完成 C 语言的基础题,选择题(11)-(20),1 分题,考核一些基本概念, 如标识符是否合法、整型/实型常量、运算符与表达式、简单输入输出格式控制、if、switch 语句、for、while、do while 等的简单应用。 3、再接着完成选择题(21)-(40),这 20 个选择题尤其是后 10 个选择题,都有一 定难度,都会给定一段代码,根据代码做选择,因此,需要读懂 C 的简单代码然后做了选择。 4、最后完成填空题(6)-(15)空。也需读得懂 C 程序,还需判断出题意图,才能 填好空。难度较高。 (二)机试 题目顺序为:程序填空题,程序修改题,程序设计题。按顺序完成即可。 1、程序填空题 在源代码中会给出需填空的地方,如 s->data=___1___; 通常还是比较简单。 解题方法:先读懂源程序,了解程序的功能,然后试着边填空边调试,分析输出结果, 以找到正确的解。 程序填空题的特点和注意事项: (1)程序填空的试题中通常包含三个空需要填写。 (2)试题中用"******found******/"来提示且在下一行或下二行注明填空的位置及编 号,如___1___。 (3)程序填空考核对程序的整体把握,出题点可能是:for 循环语句的初始化或条件判 断、函数返回值、if 语句的条件判断、链表中指针如何移动、文件操作相关函数的参数等。 (4)特别要注意的是:只能在填空的位置填写语句或表达式,不要增行或删行,不要 改动程序行的顺序,更不要改动程序的结构。 程序填空时,建议按以下步骤进行: (1)首先仔细审题,了解试题的要求,看清楚试题给出的输入和输出例示,以便检验 程序运行的结果是否正确。 (2)审视"/******found******/"所在函数,根据题义理解程序所采用的基本算法,做
宏 学习方法:通过课后习题程序理解宏替换的作用 第 14 章 结构体、共用体和用户定义类型 主要考核知识点:主要掌握结构体类型的说明、 结构体类型的变量/数组/指针变量的定义、给结构体变量/数组赋值、引用结构体变量中的 数据等内容;链表的操作 学习方法:通过例题及习题中的代码来理解及记忆 第 15 章 位运算 主要考核知识点:理解 5 个位运算,按位取反、左移、右移、按位与、按 位或、按位异或 学习方法:理解+记忆 第 百度文库6 章 文件 主要考核知识点:主要掌握文件指针、文件的打开和关闭;文件输入输出 函数,如 getc(fgetc)、putc(fputc)、feof、fscanf、fprintf、fgets、fputs、fread、fwrite、fseek、 ftell、rewind 等 学习方法:理解+记忆
二级 C 考试分笔试和机试两部分,两部分总分均为 100 分,两部分考试均需 60 分以上 才能合格发放证书。若其中一科(笔试或机试)通过,另一科可在下一次考试中补考,若补 考合格发放证书。若二科均在 85 分以上,在合格证书上将加印“优秀”字样,若二科均在 70 分以上,在合格证书上将加印“良好”字样。
ss[i][m--]=ss[i][j]; for(j=0; j /**********found**********/ ___3___='*'; } } main() { char ss[M][N]={"shanghai","guangzhou","beijing","tianjing","cchongqing"}; int i; printf("\nThe original strings are :\n"); for(i=0; i printf("\n"); fun(ss); printf("\nThe result:\n"); for(i=0; i } 2、程序修改题 通常会给出一段源代码,设计 2-3 个错误需要你来修改。修改好一处错误得分 10 分(若 有 3 处错误)或 15 分(若有 2 处错误)。例如: #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 = %d\n",n); fib=fun(n); printf("fib = %d\n\n",fib); } 3、程序设计题 通常会给出一段源代码,要求你来设计其中的一个函数。完全编好,且运行正确得分 40 分,无中间过程得分。例如:
(5)修改完成,得到正确结果后,一定不要忘记把修改后的程序存盘。 2、程序修改题 程序修改题的特点和注意事项: (1)上机改错的试题中通常包含两个(或三个)错误需要修改。 (2)试题中用"******found******/"来提示在下一行(或下面第二行)有错。 (3)错误的性质基本分语法错和逻辑错两种,也有些试题要求把语句添加在下划线处。 (4)特别要注意的是:只能在出错的行上进行修改,不要改动程序行的顺序,更不要 自己另编程序。 解题方法:边调试边找错,分析输出,找出并改正错误。 上机改错测试时,建议按以下步骤进行: (1)首先仔细审题,了解试题的要求,看清楚试题给出的输入和输出例示,以便检验 改错后程序运行的结果是否正确。 (2)审视"/******found******/"所在函数,根据题义理解程序所采用的基本算法,做 到心里有数。 (3)先对测试程序进行检查是否有语法错误。当编译提示有语法错时,可参考编译提 示来查找并改正错误。 (4)当不再出现语法错时,执行程序, 按照试题的示例给出的数据进行试算,若试算 的结果与给出的输出结果相同时,该题就做对了;若试算的结果与给出的输出结果不同,就 应进一步检查程序中的逻辑错误。 (5)当程序存在逻辑错误时,首先应当理解题意、读懂程序的算法,必要时可按步检 查数据的流程,以便确定错误所在。例如,题目要求数据按由小到大排序,而结果数据是按 由大到小进行了排序,问题可能出现在条件判断上。又如,输出的字符串比预期的短,就有 可能字符串的结束标志放错了位置。再如做循环的时候数组上限下限错误了,基数是从 0 开始 而不是 1 开始的。修改程序中的逻辑错时,要求考生认真读懂程序代码。 (6)修改完成,得到正确结果后,一定不要忘记把修改后的程序存盘。 3、程序设计题 在二级 C 程序设计上机考试中,要求完成一个独立的函数的编程。目前教育部考试中心 已出版了上机考试习题集,这些有助于学习编程,但考生应当在学习过程中理解基本的算法, 通过实际上机操作积累经验,才能掌握基本的编程能力。 进行编程测试时,建议按以下步骤进行: (1)首先仔细审题,了解试题的要求,记下试题给出的输入和输出例示,以便检验在 完成指定的函数后程序运行的结果是否正确。 (2)调出源程序后,应对照函数首部的形参,审视主函数中调用函数时的实参内容, 以便明确在函数中需要处理的数据对象。 (3)理解试题的要求,审视主函数中调用函数的方式,若在表达式中调用函数(如把函 数值赋给某个对象),则要求有函数值返回,需注意函数的类型,并在函数中用 return 语句 返回函数值;若主函数中仅用语句形式调用函数,则需要通过形参间接地返回所得结果。 (4)选择适当的算法进行编程,输入程序语句。不要忘记及时存盘!
2010 全国计算机等级考试二级 C 语言》资格考试教材及出题比例 教材:《全国计算机等级考试》二级教程----C 语言程序设计(2010 年版),书中共分 16 章节 内容对理论考试内容进行了详细的介绍。第 17 章介绍机试操作内容。
通过对最近 3 次等级考试真题分析,各章内容及出题比例大约如下表所示。
章序号 特点及学习方法 第 1 章 程序设计基本概念 主要考核知识点:了解 C 程序、程序设计、算法、模块化和结构 化程序设计等概念 学习方法:理解+记忆 第 2 章 C 程序设计的初步知识 主要考核知识点:了解 C 程序格式、标识符、常量、变量以 及算术运算符及算术表达式、赋值运算符和赋值表达式、自加/减以及逗号运算符 学习方法:编写简单 C 程序加强理解和记忆 第 3 章 顺序结构 主要考核知识点:printf()、scanf()函数的应用,复合语句及空语句的应用, 顺序程序设计思想 学习方法:理解顺序程序设计思想,设计一些典型的顺序程序,如计算圆的面积、体积,三 角形面积等 第 4 章 选择结构 主要考核知识点:了解关系运算符和关系表达式;掌握 if 语句的几种格式, switch 语句、break 语句,掌握条件表达式(唯一的三目运算符)的应用 学习方法:理解选择结构程序设计思想,设计一些典型的选择结构程序,如比较 2、3、4 个数大小,按等级输出学生成绩,计算分段函数,解一元二次方程等 第 5 章 循环结构 主要考核知识点:熟练掌握 while、do while、for 循环语句的格式及应用, 学习方法:理解循环结构程序设计思想,设计一些典型的循环结构程序,如累加和,阶乘, 求π的近似值,Fibonacci 数列,求素数,求水仙花数等 第 6 章 字符型数据 主要考核知识点:使用 printf()、scanf()函数进行字符型数据的输入和 输出,putchar()、getchar()函数的应用 学习方法:设计字符处理的各类应用程序,如 ASCII 字符处理,统计各类字符数,密码译码 等 第 7 章 函数 主要考核知识点:熟练掌握函数的定义和返回值、函数调用、函数申明、函数 之间值传递等概念 学习方法:理解为什么要使用函数,将前面设计的一些程序打包成函数 第 8 章 地址和指针 主要考核知识点:理解指针、指针变量、指针变量的基类型等基本概 念 学习方法:理解指针的概念,设计一些简单的指针应用程序 第 9 章 数组 主要考核知识点:熟练掌握一维、二维数组的定义和引用;理解数组和指针结 合,数组名或数组元素作函数的参数的应用 学习方法:理解好一维、二维数组的概念及应用,数组指针和指针数组的应用,熟练冒泡排 序、选择排序程序 第 10 章 字符串 主要考核知识点:掌握字符串及运用指针和数组处理字符串,处理字符串 常用的函数,如 gets()、puts()、strcpy()、strcmp()、strlen()、strcat()等 学习方法:理解课本上给出的字符串处理的例题 第 11 章 对函数的进一步讨论 主要考核知识点:函数的递归调用 学习方法:理解课本上的计算 n!、求平方根的迭代公式求某数的平方根的递归算法 第 12 章 C 语言中用户标识符的作用域和存储类 主要考核知识点:理解全局变量、局部变 量,auto、register、static、extern 存储类别的应用 学习方法:理解+记忆 第 13 章 编译预处理和动态存储分配 主要考核知识点:主要理解宏替换,特别是带参的
到心里有数。 (3)填好空后对测试程序进行检查是否有语法错误。当编译提示有语法错时,可参考
编译提示来查找并改正错误。 (4)当不再出现语法错时,执行程序, 按照试题的示例给出的数据进行试算,若试算
的结果与给出的输出结果相同时,该题就做对了;若试算的结果与给出的输出结果不同,就 应进一步检查程序中的逻辑错误。
(一)笔试 笔试内容分两部分。公共基础知识考核内容:30 分;C 语言基础知识考核内容:70 分。 题型分析如下: 1、单向选择题 40 道题,共 70 分。 分值分布如下: 其中(1)-(10)、(21)-(40)小题,每題 2 分,(11)-(20)小题,每题 1 分。 考核内容分布如下: (1)-(10)小题为公共基础知识考核内容,共计 20 分; (11)-(40)小题为 C 语言知识考核内容,共计 50 分。 2、填空题 15 个空,每空 2 分,共 30 分。 考核内容分布如下: (1)-(5)空为公共基础知识考核内容,共计 10 分; (6)-(15)空为 C 语言知识考核内容,共计 20 分。 (二)机试 机试三道题:程序填空题,30 分;程序修改题,30 分;程序设计题,40 分。 1、程序填空题 通常会给出一段源代码,设计三个空需要你来填写。每空 10 分。 例如: #include #include #define M 5 #define N 20 void fun(char (*ss)[N]) { int i, j, k=0, n, m, len; for(i=0; i { len=strlen(ss[i]); if(i==0) n=len; if(len>n) { /**********found**********/ n=len; ___1___=i; } } for(i=0; i if (i!=k) { m=n; len=strlen(ss[i]); /**********found**********/ for(j=___2___; j>=0; j--)
2010 全国计算机等级考试二级 C 语言》资格考试答题策略及技巧 (一)笔试
可考虑以下做题顺序(仅供参考) 1、先做公共基础题,选择题(1)-(10),填空题(1)-(5)空。 2、接下来完成 C 语言的基础题,选择题(11)-(20),1 分题,考核一些基本概念, 如标识符是否合法、整型/实型常量、运算符与表达式、简单输入输出格式控制、if、switch 语句、for、while、do while 等的简单应用。 3、再接着完成选择题(21)-(40),这 20 个选择题尤其是后 10 个选择题,都有一 定难度,都会给定一段代码,根据代码做选择,因此,需要读懂 C 的简单代码然后做了选择。 4、最后完成填空题(6)-(15)空。也需读得懂 C 程序,还需判断出题意图,才能 填好空。难度较高。 (二)机试 题目顺序为:程序填空题,程序修改题,程序设计题。按顺序完成即可。 1、程序填空题 在源代码中会给出需填空的地方,如 s->data=___1___; 通常还是比较简单。 解题方法:先读懂源程序,了解程序的功能,然后试着边填空边调试,分析输出结果, 以找到正确的解。 程序填空题的特点和注意事项: (1)程序填空的试题中通常包含三个空需要填写。 (2)试题中用"******found******/"来提示且在下一行或下二行注明填空的位置及编 号,如___1___。 (3)程序填空考核对程序的整体把握,出题点可能是:for 循环语句的初始化或条件判 断、函数返回值、if 语句的条件判断、链表中指针如何移动、文件操作相关函数的参数等。 (4)特别要注意的是:只能在填空的位置填写语句或表达式,不要增行或删行,不要 改动程序行的顺序,更不要改动程序的结构。 程序填空时,建议按以下步骤进行: (1)首先仔细审题,了解试题的要求,看清楚试题给出的输入和输出例示,以便检验 程序运行的结果是否正确。 (2)审视"/******found******/"所在函数,根据题义理解程序所采用的基本算法,做
宏 学习方法:通过课后习题程序理解宏替换的作用 第 14 章 结构体、共用体和用户定义类型 主要考核知识点:主要掌握结构体类型的说明、 结构体类型的变量/数组/指针变量的定义、给结构体变量/数组赋值、引用结构体变量中的 数据等内容;链表的操作 学习方法:通过例题及习题中的代码来理解及记忆 第 15 章 位运算 主要考核知识点:理解 5 个位运算,按位取反、左移、右移、按位与、按 位或、按位异或 学习方法:理解+记忆 第 百度文库6 章 文件 主要考核知识点:主要掌握文件指针、文件的打开和关闭;文件输入输出 函数,如 getc(fgetc)、putc(fputc)、feof、fscanf、fprintf、fgets、fputs、fread、fwrite、fseek、 ftell、rewind 等 学习方法:理解+记忆