考试科目代码:[833]
考试科目名称:C程序设计
一、考试目标
通过对本课程的学习,使学生初步具备分析问题、解决问题的能力,养成良好的程序设计风格,积累和提高基本的程序设计能力及结构化程序设计基本思想。提高程序设计和调试的技能。为后续课程的学习打下良好的基础。
二、考试结构
(一)考试时间:180分钟,满分:150分
(二)题型结构
1. 选择(40分,20题,每题2 分),
2. 阅读程序、写出程序的运行结果(30分,5题,每题6分),
3. 阅读程序、请在画线处填上代码(30分,3题程序代码 )
4. 编程题(50分,4题,1~2题每题10分,3~4题每题15分)
三、答题方式
答题方式为闭卷笔试。
四、考试内容
(一)数据类型、运算符与表达式,10%(15分)
考试内容:数据的存储与基本数据类型;常量与变量;数据的输入与输出;类型转换;表达式。
考试要求:
(1) 掌握基本数据类型(整型、实型、字符型)的常量和变量的说明方式,定义于基本数据类型之上的各种运算。
(2) 掌握表达式(算术、赋值、关系、逻辑、条件、逗号、位运算)中各种运算的优先级及结合方向。
(3) 掌握数据的存储和类型转换。
(二)分支结构程序设计,10%(15分)
考试内容:字符类型;分支结构程序设计;switch语句;
考试要求:
(1)掌握逻辑表达式及应用
(2)掌握双路选择语句(if语句):if语句的形式,if语句的嵌套
(3)掌握 switch语句的正确使用以及case、break的结合应用
(4)编程基本要求:分段函数、四则运算、成绩转换、统计字符和数字个数。
(三)循环结构程序设计,10% (15分)
考试内容:for循环、while循环、do while循环、break与continue、嵌套结构的循环
考试要求:
(1) 主要考查考生循环语句的合理使用;多重循环程序设计;
(2) 掌握循环结束条件、循环控制变量的使用;指定循环的提前结束方法
(3)主要涉及的程序算法有:求阶层、求和、级数计算、判断素数、判断回文、猜数游戏、求多项式、找最大数和最小数、穷举算法(枚举法)、 完数、最大公约数和最小公倍数、兔子繁衍问题、求组合数列、打印各种图案等。
(四)数组程序设计,20%(30分)
考试内容:一维数组、二维数组、字符数组和字符串操作。
考试要求:
(1)一维数组的概念与应用;二维数组和字符数组的概念与应用;字符串的基本操作
(2)编程基本要求: 数值排序和字符串排序(选择、冒泡序);矩阵操作(加、减、乘);字符串操作(拷贝、追加、连接、求字符串的长度等); 查找(顺序查找、二分查找); 进制的转换等。
(五)函数程序设计,20%(30分)
考试内容:函数的定义和调用方法;常见变量与函数的关系及其作用范围和生命周期;递归函数;宏定义。
考试要求:
(1)掌握函数的定义与声明方法
(2)掌握函数的调用方法与参数传递方式
(3)掌握变量与函数的关系;几种常用变量(局部变量、全局变量以及静态局部变量)的作用范围和生命周期。
(4)掌握函数的嵌套调用和递归调用。
(5)编程基本要求: 能编写用户自定义函数;能用递归函数实现求阶层、求和、最大公约数、Fabonacci数列等。
(六)指针10%(15分)
考试内容:指针的基本概念;指针变量及基本运算指针作为函数参数; 指针与数组;指针与字符串;函数指针与指针函数、指针数组与数组指针。
考试要求:
(1)掌握指针的基本概念
(2)掌握指针变量的定义、初始化和使用
(3)掌握指针变量的基本运算
(4)掌握指针作为函数参数的作用和方法
(5)理解指针与数组地址的关系,掌握使用指针变量对数组元素进行操作的方法
(6)掌握数组名作为函数参数的方法以及冒泡排序法
(7) 掌握常用字符串函数以及使用指针操作字符串的方法
(七)、结构体、共用体和枚举类型,10%(15分)
考试内容:结构体和共用体的概念与定义;结构体变量的定义和使用;结构体数组和结构体指针。
考试要求:
(1)掌握结构类型的概念、定义及元素的引用
(2)掌握结构数组的应用
(3)掌握结构指针的基本概念与使用
(4)编程基本要求,能对n个学生的记录(例如:学号、姓名、成绩)进入录入、修改、插入、统计、排序。
(八)文件,10%(15分)
考试内容:C语言文件的概念;文件的打开与关闭;文件的读写操作
考试要求:
(1) 掌握文本文件与二进制文件的区别
(2) 掌握文本文件的打开与关闭方式(fopen()和fclose()函数)
(3)掌握文本文件的基本读/写操作(fputc函数和fgetc函数、fprintf函数和fscanf函数、fread函数和fwrite函数)
(4)编程基本要求:能实现文件的拷贝、追加。从文件中读取数据并显示。
五、 主要参考书目
何钦铭、颜晖,《C语言程序设计》(第二版),高等教育出版社。