C语言程序设计实验(本科)教学大纲 实验课程名称:C语言程序设计 课程性质:基础必修 适用专业:理工科各专业 实验总学时:48 学分数:3 教材:《C语言程序设计方法》,邓文新张宏烈主编,哈尔滨工业大学出版社 参考书:《C程序设计》(第二版),谭浩强主编,清华大学出版社 、实验教学目标与要求: C语言程序设计实验是C语言程序设计教学课程的重要组成部分。 目标:通过本课程的学习使学生掌握C语言程序的编辑、编译、上机调试等基 本操作操作,能够运用C语言程序解决本专业某些实际问题,并养成严谨的科学态 度和科学的思维方法,从而提高分析和解决实际问题的能力。为后续课程的学习和 在毕业设计时使用计算机解决问题打下良好的基础。 要求:注意自始至终贯彻课程中所介绍的程序设计风格,养成良好的编程习惯 应独立完成所布置的上机作业,为保证尽量在统一安排的上机时间内编译运行通过 程序,应事先预习设计好程序。课后撰写实验报告 实验课程具体内容: 号实验项目名称|人数选开 教学目的及主要内容 实验类型 目的:1、熟悉C语言的集成环境,了解 菜单的使用方法。 2、掌握C语言程序上机的编辑、 编译、连接、运行的基本步骤。 C语言集成环 41必开 3、了解C语言程序的结构。 境及程序初步 基本操作 内容:1、熟悉File、Edit、Run、 Option 等菜单中常用菜单项及对应快捷键的使 用方法。 2、熟悉C语言程序上机的编辑
C 语言程序设计实验(本科)教学大纲 实验课程名称:C 语言程序设计 课程性质:基础必修 适用专业:理工科各专业 实验总学时: 48 学分数:3 教材:《C 语言程序设计方法》,邓文新 张宏烈主编,哈尔滨工业大学出版社 参考书:《C 程序设计》(第二版),谭浩强主编,清华大学出版社 一、实验教学目标与要求: C 语言程序设计实验是 C 语言程序设计教学课程的重要组成部分。 目标:通过本课程的学习使学生掌握 C 语言程序的编辑、编译、上机调试等基 本操作操作,能够运用 C 语言程序解决本专业某些实际问题,并养成严谨的科学态 度和科学的思维方法,从而提高分析和解决实际问题的能力。为后续课程的学习和 在毕业设计时使用计算机解决问题打下良好的基础。 要求:注意自始至终贯彻课程中所介绍的程序设计风格,养成良好的编程习惯。 应独立完成所布置的上机作业,为保证尽量在统一安排的上机时间内编译运行通过 程序,应事先预习设计好程序。 课后撰写实验报告。 二、实验课程具体内容: 序 号 实验项目名称 学 时 每组 人数 必开 选开 教学目的及主要内容 实验类型 1 C 语言集成环 境及程序初步 4 1 必开 目的:1、熟悉 C 语言的集成环境,了解 菜单的使用方法。 2、掌握 C 语言程序上机的编辑、 编译、连接、运行的基本步骤。 3、了解 C 语言程序的结构。 内容:1、熟悉 File、Edit、Run、Option 等菜单中常用菜单项及对应快捷键的使 用方法。 2、熟悉 C 语言程序上机的编辑、 基本操作
编译、连接、运行的基本步骤。 3、编程实现一个字符串的输出 4、编程输出两个数的最大值。 5、计算由键盘输入的任意两个整 数的积。 目的:1、了解数据类型及使用方法。 2、掌握常用算术运算符的使用方 法、优先级别及结合方向 3、掌握C语言表达式的运算规则 内容:1、验证C语言中各种数据类型的 数据类型、运算 4 必开取值范围及各种类型变量的定义和使用 符与表达式 验证 方法。 2、编程实现由键盘输入的任意两 个数的平均值,并对不同类型的数据进行 测试 3、验证各种运算符的使用。 目的:1、掌握整型、实型、字符型数据 的输入输出格式控制。 2、掌握 scanf、 printf函数语句的 输入与输出实 2|1必开使用方法。 现 基本操作 内容:1、编程实现各种数据格式的输入 输出。 2、编程实现将给定的数据按指定
编译、连接、运行的基本步骤。 3、编程实现一个字符串的输出。 4、编程输出两个数的最大值。 5、计算由键盘输入的任意两个整 数的积。 2 数据类型、运算 符与表达式 4 1 必开 目的:1、了解数据类型及使用方法。 2、掌握常用算术运算符的使用方 法、优先级别及结合方向。 3、掌握 C 语言表达式的运算规则。 内容:1、验证 C 语言中各种数据类型的 取值范围及各种类型变量的定义和使用 方法。 2、编程实现由键盘输入的任意两 个数的平均值,并对不同类型的数据进行 测试。 3、验证各种运算符的使用。 验证 3 输入与输出实 现 2 1 必开 目的:1、掌握整型、实型、字符型数据 的输入输出格式控制。 2、掌握 scanf、printf 函数语句的 使用方法。 内容:1、编程实现各种数据格式的输入 输出。 2、编程实现将给定的数据按指定 基本操作
的格式输出。 目的:1、掌握利用讦语句实现选择结构 程序设计的方法。 掌握逻辑运算符的使用方法。 3、掌握利用 switch语句实现选择 结构的程序设计方法 4、注意 break在 switch语句的作 用。 内容:1、验证逻辑运算表达式的结果。 选择结构41必开 2、编程实现任意三个数的升序排 设计 序 3、编程实现求分段函数的值。 4、编程实现用户键入任意两个操 作数和“+、-、*、/中一个运算符,由 计算机输出运行结果。 5、编程实现对给定的一个百分制 成绩,要求输出成绩等级“A"、"B"、"C E 目的:1、掌握利用whie或 do while 实现条件型循环结构程序设计的方法。 循环结构41必开 2、掌握利用for语句实现计数型 设计 循环结构程序设计的方法。 内容:1、编程实现1+2+-+n的和
的格式输出。 4 选择结构 4 1 必开 目的:1、掌握利用 if 语句实现选择结构 程序设计的方法。 2、掌握逻辑运算符的使用方法。 3、掌握利用 switch 语句实现选择 结构的程序设计方法 4、注意 break 在 switch 语句的作 用。 内容:1、验证逻辑运算表达式的结果。 2、编程实现任意三个数的升序排 序。 3、编程实现求分段函数的值。 4、编程实现用户键入任意两个操 作数和“+、-、*、/”中一个运算符,由 计算机输出运行结果。 5、编程实现对给定的一个百分制 成绩,要求输出成绩等级“A”、“B”、“C”、 “D”、“E”。 设计 5 循环结构 4 1 必开 目的:1、掌握利用 while 或 do while 实现条件型循环结构程序设计的方法。 2、掌握利用 for 语句实现计数型 循环结构程序设计的方法。 内容:1、编程实现 1+2+…+n 的和。 设计
2、编程实现1!+2!+…+n的和。 3、编程实现求两个自然数的最大 公约数和最小公倍数 4、编程实现水仙花数的打印。 5、编程实现打印 Fibonacci数列 的前20项 目的:掌握循环嵌套的程序设计方法,注 意内外层循环间的关系。 内容:1、编程实现由星号构成的等腰三 角形的打印 2、编程实现打印3~100之间的 循环嵌套21必开 所有素数。 综合 3、编程实现一个小球从100米高 度自由落下,每次落地后反弹回原来的高 度的一半,再落下。求它在第10次落地 时,共经过多少米?第10次反弹多高? 目的:1、掌握一、二维数组的定义规则 2、正确运用一、二维数组进行程 序设计 数组 41必开内容:1、编程实现用数组打印 Fibonacci 设计 数列的前20项。 2、编程实现从键盘输入的一组数 中找出其中最大值和最小值
2、编程实现 1!+2!+…+n!的和。 3、编程实现求两个自然数的最大 公约数和最小公倍数。 4、编程实现水仙花数的打印。 5、编程实现打印 Fibonacci 数列 的前 20 项。 6 循环嵌套 2 1 必开 目的:掌握循环嵌套的程序设计方法,注 意内外层循环间的关系。 内容:1、编程实现由星号构成的等腰三 角形的打印。 2、编程实现打印 3~100 之间的 所有素数。 3、编程实现一个小球从 100 米高 度自由落下,每次落地后反弹回原来的高 度的一半,再落下。求它在第 10 次落地 时,共经过多少米?第 10 次反弹多高? 综合 7 数组 4 1 必开 目的:1、掌握一、二维数组的定义规则。 2、正确运用一、二维数组进行程 序设计。 内容:1、编程实现用数组打印 Fibonacci 数列的前 20 项。 2、编程实现从键盘输入的一组数 中找出其中最大值和最小值。 设计
3、编程实现用一、二维数组分别 输出杨辉三角 4、编程实现将二维数组行列元素 互换。 5、编程实现求二维数组中最大元 素值及其行号、列号。 目的:1、掌握冒泡法排序。 2、掌握选择法排序。 内容:1编程实现用冒泡法对输入的一组 数由小到大排序 排序 必开 2、编程实现用选择法对输入的 综合 组数由小到大排序。 3、编程实现插入一个数到有序数 组中,使数组仍然有序 目的:1、掌握利用字符数组存放字符串 的方法。 2、掌握常用的字符串操作函数。 字符数组与字符 1必开内容:1、编程实现两个字符串的连接(不 串 设计 用 strcat函数 2、编程实现找出三个字符串中的 最大者
3、编程实现用一、二维数组分别 输出杨辉三角。 4、编程实现将二维数组行列元素 互换。 5、编程实现求二维数组中最大元 素值及其行号、列号。 8 排序 2 1 必开 目的:1、掌握冒泡法排序。 2、掌握选择法排序。 内容:1 编程实现用冒泡法对输入的一组 数由小到大排序。 2、编程实现用选择法对输入的一 组数由小到大排序。 3、编程实现插入一个数到有序数 组中,使数组仍然有序。 综合 9 字符数组与字符 串 2 1 必开 目的:1、掌握利用字符数组存放字符串 的方法。 2、掌握常用的字符串操作函数。 内容:1、编程实现两个字符串的连接(不 用 strcat 函数)。 2、编程实现找出三个字符串中的 最大者。 设计
目的:1、掌握C语言函数的定义及调用 规则。 2、掌握值传递、地址传递、函数 作参数、函数名作参数等知识。分析并理 解地址传递的概念以及形参数组的变化 为什么影响实参数组的工作原理 3、掌握递归的使用 4、区分动态变量和静态变量,外 函数的定义和调 部变量和局部变量。 用、变量的存储41必开 5、理解变量的各种存储属性|设计 属性 register、auto、 static和 extern 内容:1、用户输入任意两个操作数,实 现实参与形参间值传递和地址传递。 2、编写函数,实现十进制到二进 制的转换。 3、编程用递归实现n 4、测试变量的各种存储属性对变 量值的影响。 目的:1、掌握预处理命令的使用。 指针变量的定 2、掌握指针类型变量的定义和引 义及指针与数41必开用方法 设计 3、学会用指针对变量进行操作。 4、掌握指针与一维数组、二维数
10 函数的定义和调 用、变量的存储 属性 4 1 必开 目的:1、掌握 C 语言函数的定义及调用 规则。 2、掌握值传递、地址传递、函数 作参数、函数名作参数等知识。分析并理 解地址传递的概念以及形参数组的变化 为什么影响实参数组的工作原理。 3、掌握递归的使用。 4、区分动态变量和静态变量,外 部变量和局部变量。 5 、 理 解变 量 的各 种存 储 属 性 register、auto、static 和 extern。 内容:1、用户输入任意两个操作数,实 现实参与形参间值传递和地址传递。 2、编写函数,实现十进制到二进 制的转换。 3、编程用递归实现 n!。 4、测试变量的各种存储属性对变 量值的影响。 设计 11 指针变量的定 义及指针与数 组 4 1 必开 目的:1、掌握预处理命令的使用。 2、掌握指针类型变量的定义和引 用方法。 3、学会用指针对变量进行操作。 4、掌握指针与一维数组、二维数 设计
组的关系 5、掌握指针数组的使用方法。 内容:1、编程用预处理命令实现求两个 数的较大的数 2、编程用指针变量实现两个数的 由小到大排序(用多种方法实现 3、编写函数实现矩阵转置。 4、编程实现将数组a中的n个整 数按相反顺序存放。 5、编程实现3个学生每个学生有 4门课成绩,计算总平均分,并输出指定 学生的成绩 目的:1、掌握指针作函数的参数的程序 设计方法。 2、掌握指向函数的指针的程序设 计方法。 3、掌握返回指针值的函数的程序 12指针与函数21必开设计方法 综合 内容:1、编程实现用函数指针变量调用 函数,比较两个数的大小。 2、编程实现用函数指针变量作参 数,求最大值、最小值和两数之和。 3、编程用指针实现某学生成绩的
组的关系。 5、掌握指针数组的使用方法。 内容:1、编程用预处理命令实现求两个 数的较大的数。 2、编程用指针变量实现两个数的 由小到大排序(用多种方法实现)。 3、编写函数实现矩阵转置。 4、编程实现将数组 a 中的 n 个整 数按相反顺序存放。 5、编程实现 3 个学生每个学生有 4 门课成绩,计算总平均分,并输出指定 学生的成绩。 12 指针与函数 2 1 必开 目的:1、掌握指针作函数的参数的程序 设计方法。 2、掌握指向函数的指针的程序设 计方法。 3、掌握返回指针值的函数的程序 设计方法。 内容:1、编程实现用函数指针变量调用 函数,比较两个数的大小。 2、编程实现用函数指针变量作参 数,求最大值、最小值和两数之和。 3、编程用指针实现某学生成绩的 综合
查询。 4、编程用指针实现对字符串的选 择法排序。 目的:1、掌握结构体类型的定义和使用 方法 2、掌握共用体类型的定义和使用 结构体和共用 方法。 21必开 体 内容:1、编程实现输入5个学生的记录设计 输出学生信息表 2、编程实现将—个整数按字节输 出 目的:1、掌握动态数据结构和静态数据 结构的区别、作用 2、掌握链表的建立及访问方法。 3、理解位运算的概念。 4、掌握位运算符的使用方法。 内容:1、建立一个链表,每个结点包括 14链表和位运算4 必开 学号、姓名、性别、年龄,并实现输入5综合 个学生的记录 2、编程实现对链表的插入、删除 操作 3、编程实现取一整数从右端开始 的4~7位
查询。 4、编程用指针实现对字符串的选 择法排序。 13 结构体和共用 体 2 1 必开 目的:1、掌握结构体类型的定义和使用 方法。 2、掌握共用体类型的定义和使用 方法。 内容:1、编程实现输入 5 个学生的记录, 输出学生信息表。 2、编程实现将一个整数按字节输 出。 设计 14 链表和位运算 4 1 必开 目的:1、掌握动态数据结构和静态数据 结构的区别、作用。 2、掌握链表的建立及访问方法。 3、理解位运算的概念。 4、掌握位运算符的使用方法。 内容:1、建立一个链表,每个结点包括 学号、姓名、性别、年龄,并实现输入 5 个学生的记录。 2、编程实现对链表的插入、删除 操作。 3、编程实现取一整数从右端开始 的 4~7 位。 综合
4、编程实现求一个数的补码。 目的:1、掌握文件的定义、打开、关闭 方法 2、掌握文件的各种读写函数的使 用方法。 3、掌握文件的定位和随机访问方 内容:1、根据用户输入的任意10人的学 习成绩建立一个文本文件,以顺序访问方 式读取该文件 2、有5个学生,每个学生有3门 课成绩,从键盘输入学生数据(包括学号、 文件 41|必开 姓名、三门课成绩,计算出平均成绩,综合 将原有的数据和计算出的平均分存在磁 盘文件" stud. dat"中 3、编程实现从键盘输入以“『结 束的字符串,将小写字母转化为大写字母 存入文件,再从文件读回显示 4、建立一个二进制文件,用随机 访问的方法读取该文件 5、编程实现磁盘文件上有3个学 主数据,要求读取第1,3学生数据并显
4、编程实现求一个数的补码。 15 文件 4 1 必开 目的:1、掌握文件的定义、打开、关闭 方法。 2、掌握文件的各种读写函数的使 用方法。 3、掌握文件的定位和随机访问方 法。 内容:1、根据用户输入的任意 10 人的学 习成绩建立一个文本文件,以顺序访问方 式读取该文件。 2、有 5 个学生,每个学生有 3 门 课成绩,从键盘输入学生数据(包括学号、 姓名、三门课成绩),计算出平均成绩, 将原有的数据和计算出的平均分存在磁 盘文件“stud.dat”中。 3、编程实现从键盘输入以“!”结 束的字符串,将小写字母转化为大写字母 存入文件,再从文件读回显示。 4、建立一个二进制文件,用随机 访问的方法读取该文件。 5、编程实现磁盘文件上有 3 个学 生数据,要求读取第 1,3 学生数据并显 示。 综合
6、编程实现求文件的长度
6、编程实现求文件的长度