《C语言程序设计(本科)》考试大纲
《C语言程序设计》是计算机专业学生的专业基础课程之一,该课程是后续课程如操作系统、数据结构等课程的先修课程,也是处理数据的重要编程工具,在整个教学体系中占据非常重要的地位。结构化设计技术是建立高质量软件的技术,需要通过课程的学习和实践,不断加深对程序设计方法的理解和体会。介绍用面向过程方法进行数据设计和程序设计的基本思想,在必要的课程实践中逐步熟练掌握。教学考核的主要目的也在于此。
本考试大纲根据计算机学院本科学生《C语言程序设计(本科)》课程标准制定。现将有关考核的几个问题说明如下:
一、考核对象:计算机学院15-18级本科学生。
二、命题依据:本考核说明以计算机学院15-18级本科《C语言程序设计》教学大纲为依据编制。本考核说明是考试命题的依据。
三、考核要求:本课程是以实用为最终目的,因此,考核的重点是考察学生对各种数据类型和三种基本结构的理解程度和基于这些知识点的掌握,从而提高设计的能力。具体考核要求分为几个层次:
? 理解:要求学生理解各种程序结构基本思想、基本概念。
? 掌握:要求学生能较好地理解和运用所介绍的方法和解题思路解决问题和进行简单的算法设计,考察学生解决问题的基本能力。
? 综合应用:要求学生能综合运用多个知识点的内容进行比较复杂的应用程序开发,考察学生综合解决问题的能力。不同的综合层次将考察学生的综合能力的高低。 四、命题原则
? 在教学大纲和考核说明所规定的目的、要求和内容范围之内命题。在教学内容范围之内,按照理论联系实际原则,考察学生对所学知识应用能力的试题。
? 试题的考察要求覆盖面广,并适当突出重点。
? 试题兼顾各个能力层次,理解占30%,简单运用占40%,综合运用占30%。 ? 试题的难易程度和题量适当,按难易程度分为四个层次:容易占20%,较易占10%,较难占40%,难占30%。题量安排以平时基本能够独立完成作业者,他们能在规定的考试时间内作完并有一定时间检查为原则。 五、试题题型
有单项选择题、填空题、程序填空题、程序分析题、综合编程题等五种题型。 ? 单项选择题:给出一些有关数据结构性质、特点及一些简单算法性能的不完全叙述,要求学生从题后给出的供选择的答案中选择合适的答案,补足这些叙述。这类题目主要考察学生对各种数据结构和算法设计方法相关知识的掌握程度。
? 填空题:给出程序说明及一段部分语句缺失的程序,让学生补充成为完整的程序。这类题目主要考察学生阅读理解程序的能力。
? 程序填空题:给出一段不完整程序,要求根据题目要求补充完整程序。目的在于考核学生对与算法相关知识点的掌握程度。
? 程序分析题:给出一段程序,就程序回答一些问题,如给出程序运行结果等。目的在于考核学生对与算法相关知识点的掌握程度,如输出函数、选择结构和循环结构、一些常见算法等。
? 综合编程题:给出设计要求,编制出程序,用来考察若干个知识点。考察学生综合运用所学习知识解决问题的能力。 六、考核形式:
? 采用笔试,闭卷,答题时限90分钟。
七、考试教材:《C语言程序设计》(第四版)、 清华大学出版社、谭浩强主编,2010年6月出版
八、考试内容(考点,带 ★ 的为重点) 第一章 程序设计和C语言 (1)认识C语言的特点;
(2)掌握C程序的基本构成、主函数(main())的作用和结构★; (3)熟悉掌握编写、编译、连接运行C程序的步骤★。 第二章 算法——程序的灵魂 (1)了解算法的定义和特点;
(2)理解算法的几种表示方法,掌握流程图的几种符号; (3)掌握利用流程图描述算法★; (4)理解结构程序设计的方法。
第三章 最简单的C程序设计——顺序程序设计
(1)理解顺序程序设计;
(2)掌握C语言的数据类型划分;掌握常用数据类型(整型int、实型float double、字符型char)的表示形式★; (3)掌握标识符的命名规则★;
(4)掌握C语言运算符的种类及含义、运算优先级、结合的方向性★; (5)熟练掌握C语言表达式类型(赋值表达式、算术表达式)及其运算规则★。 (6)掌握表达式和语句区别;
(7)了解数据的输入/输出格式,知道一些常见的数据格式的设置,会使用输入/输出函数。例如一般的输入/输出函数scanf与printf、字符输入/输出函数getchar与putchar函数的一般形式,及输入数据的方式与输出的显示结果★。 (8)掌握实现2个数的交换算法★。 第四章 选择结构程序设计
(1)熟练掌握C语言表达式类型(关系表达式、逻辑表达式、条件表达式)及其运算规则★。 (2)熟练掌握if语句的语法结构并能灵活运用★。
(3)熟练掌握switch语句表示的多分支选择结构并能灵活运用★。 (4)掌握选择结构的嵌套★。 第五章 循环结构程序设计
(1)熟练掌握while和do…while和for循环语句的语法结构,并能灵活运用★。 (2)熟练掌握continue语句、break语句并能灵活运用★。 (3)掌握选择结构的嵌套,最多考核到3层嵌套即可★。 (4)熟练掌握迭代法、求素数法、斐布拉契数列的算法求解★。 第六章 利用数组处理批量数据
(1)理解并熟练掌握一维和二维数组的定义、数组元素的初始化和引用方式★。 (2)掌握利用数组求解斐布拉契数列、起泡排序算法、选择排序算法★。 (3)熟练掌握字符数组的定义、初始化和引用方式★; (4)掌握字符数组存储字符串表示形式★。
(5) 会使用字符串输入/输出函数,例如scanf与printf、gets与puts函数的一般形式、输入字符串的方式与输出的显示结果及其区别★。
(6) 知道常用的字符串操作函数strcat、strcpy、strcmp、strlen的调用方法。 难点:字符数组存储字符串的表示形式。