C语言实验大纲(2010年修订)

更新时间:2024-01-13 11:53:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《C语言程序设计》实验教学大纲

一、适用范围

大纲适用于计算机科学与技术专业本科教学使用。 二、课程名称

《C语言程序设计》(实验) 三、学时数与学分

总学时:90,总学分:4;实验学时:30 四、教学目的和基本要求 (一)目的:通过C程序设计实验,培养学生对学习程序设计的兴趣,使学生全面了解 C 语言的特点,不仅要熟练掌握C语言的基础知识、基本算法,更重要的是让学生掌握程序设计的思想和方法,培养学生程序开发和设计的能力。

(二)基本要求:了解和熟悉C语言程序开发的环境;学会上机调试程序,善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行,达到实验知识和理论知识的融会贯通。上机实验前,学生必须事先根据题目的内容在实验报告纸上编好程序,然后在实验时输入程序、调试程序,直至运行结果正确为止,上机结束后,应整理出实验报告。 五、 实验教学实施方法

1 按照本学期新生教学时间15周计算,每周一次实习,共安排14次实习内容,1次考核。 2 学生应按专业实验室中的固定座位上机,应在D盘建立一个以“学号+姓名”的子目录,所有做完的程序放置于此目录中提供检查。学生实习的考核方式,每次实习结束时教师给出本次实验成绩,期末根据考核情况综合给出实验成绩。 3 每位教师负责一个教学班的实习指导,教师要检查每次学生的出勤和完成程序的情况,每次都要做好记录。教师可以根据学生的实际完成情况修改实习计划的执行进度。 4 每次试验内容分为三个部分,(1)复习课堂讲授内容的教材中的例题。(2)必做习题。(3)选做习题。能够完成选做习题的同学,可以不做教材中的例题。完成(1)为及格,(2)为良好,(3)为优秀。

六、实验项目与学时分配

序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 实验项目名称 C程序的运行环境和运行一个C程序的方法 编写简单程序 顺序结构程序设计实验 选择结构程序设计实验 循环结构程序设计实验1 循环结构程序设计实验2 数组实验1 数组实验2 函数实验1 函数实验2 指针实验1 指针实验2 用户自定义数据类型(结构体,共用体,枚举) *文件与数据存储 1

实验学时 2 2 2 2 2 2 2 2 2 2 2 2 2 2 实验类型 验证性实验 验证性实验 验证性实验 验证性实验 验证性实验 验证性实验 验证性实验 验证性实验 验证性实验 验证性实验 验证性实验 验证性实验 验证性实验 验证性实验 15 *验收 2 30 总计

七、实验成绩评定办法

考查:平时考核加期末机试。实验成绩占总成绩的10%。 平时考核:占实验成绩的60%,由以下两部分组成。 实验预习和实验结果、实验报告。 期末机试:占实验成绩的40%。

1、实验预习和实验结果:上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序,直至运行结果正确为止。在实验中,教师可根据学生编程操作能力、观察和分析及运用知识能力、程序编制正确性以及学生的课堂纪律、实验态度、保持实验室卫生等方面的表现进行综合考核。

2、实验报告:学生实验后应按时完成实验报告。实验报告应包括以下内容:实验题目、实验目的、程序清单、运行结果、实验小结。

3、期末机试:通过考试了解学生对基本理论掌握的程度和实际水平,教师出实验考试题目,让学生在规定的时间完成。 八、实验教学大纲说明

本大纲共安排30学时(每周2学时)的实验。安排14次实验和一次上机考试。在每次实验中都安排了一些上机题,其中带*的题目为选作题目。在完成这些题目后,可以做课本上的例题验证及习题。 九、实验项目

实验一 C程序的运行环境和运行一个C程序的方法 一、实验目的

1.了解VC++6.0编译系统的基本操作方法,学会独立使用该系统。 2.了解在该系统上如何编辑、编译、连接和运行一个C程序。

3.通过运行简单的C程序,初步了解C源程序的特点及C语言的程序结构。 二、实验内容

1.编写一程序,在屏幕上输出如下内容:

2.输出“Hello world!”语句

实验二 编写简单程序 一、实验目的

1.了解VC++6.0编译系统的基本操作方法,学会独立使用该系统。 2.了解在该系统上如何编辑、编译、连接和运行一个C程序。

3.通过运行简单的C程序,初步了解C源程序的特点及C语言的程序结构。 二、实验内容

1.编写一程序,接受用户输入的两个整数,并计算它们的和、差、积、商,程序运行结果应如下所示。注意,尖括号部分表示用户输入数据或要被替换的输出内容,尖括号本身

2

并不需要输入或输出。多使用几组整数尝试一下,你发现了什么?

The program gets two integers,and computes their sum,difference,product and quotient. The first number:<第一个整数在此输入> The second number:<第二个整数在此输入> Results as follows:

<第一个整数>+<第二个整数>=<和> <第一个整数>-<第二个整数>=<差> <第一个整数>*<第二个整数>=<积> <第一个整数>/<第二个整数>=<商>

2.输入半径r的值,求出圆周长,圆面积。

实验三 顺序结构程序设计 一、实验目的

1.熟悉C语言中的基本数据类型,掌握定义常量和变量以及对它们赋值的方法,了解数据输出时所用格式转换符。

2.掌握格式输入/输出函数的用法。 3.学会简单顺序程序的设计。

4.养成良好的程序设计习惯,程序书写风格。 二、实验内容

1.如何实现下述输出要求?

A.输出整数1234,输出共占8位,数据左对齐。 B.输出整数1234,输出共占10位,数据右对齐。

C.输出十六进制整数0xFFDE3C02,输出共占8位,数据左对齐。

D.输出十六进制整数0xFFDE3C,输出共占8位,数据右对齐,前补0。 E.输出浮点数10.36,输出共占6位,数据右对齐。

F.输出浮点数123.4567890,输出共占12位,精度6位,数据右对齐。 G.输出浮点数123.4567890,精度3位,数据左对齐。

2.编制程序,接受用户输入的数值,输出以该值为半径的圆面积,以该值为半径的球体表面积与体积,pi取值3.1415926536,结果保留10位有效数字。

*3.编制程序,输出下述数据。说明:(1)表中数据来自总参谋部测绘局编制的<世界地图集>,数据可能已不准确;(2)面积单位为万平方公里,人口单位为万人,GDP单位为十亿美元。(3)表中所有数据都必须以变量的形式保存;(4)如果不知道每字段宽度到底为多少,请仔细数数作为分隔标记的短横数目。

-------------------------------------------------------------------- COUNTRY AREA(10K km2) POP(10K) GDP(Billion$) -------------------------------------------------------------------- China 960.00 129500.00 1080.00 Iceland 10.30 27.57 8.20 India 297.47 97000.00 264.80 Madagascar 62.70 1635.00 3.60 Maldive 0.0298 27.80 0.23 --------------------------------------------------------------------

实验四 选择结构程序设计

3

一、实验目的

1.掌握关系操作符、逻辑操作符、递增递减操作符的使用方法。 2.熟练使用if、switch编写程序。 二、实验内容

1.给出一个百分制成绩,要求输出成绩等级‘A’,‘B’,‘C’,‘D’,‘E’。 90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以 下为‘E’。分别用if和switch语句实现。

实验五 循环结构程序设计实验1 一、实验目的

1.掌握关系操作符、逻辑操作符、递增递减操作符的使用方法。 2.熟练使用for、while编写程序。

3.掌握break和continue语句的使用方法。 二、实验内容

1.使用循环结构打印下述图形,打印行数n由用户输入。图中每行事实上包括两部分,中间间隔空格字符数m也由用户输入。

* ********* *** ******* ***** ***** ******* *** ********* *

2.编制程序,按照下述格式打印九九乘法表。

Nine – by – nine Multiplication Table

---------------------------------------------------------------------- 1 2 3 4 5 6 7 8 9 ---------------------------------------------------------------------- 1 1 2 2 4 3 3 6 9 4 4 8 12 16 5 5 10 15 20 25 6 6 12 18 24 30 36 7 7 14 21 28 35 42 49 8 8 16 24 32 40 48 56 64 9 9 18 27 36 45 54 63 72 81

----------------------------------------------------------------------

*3.存在自然数,其所有小于自身的因子之和等于该数,这样的数称为完数。设计算法,判断某个给定的自然数n是否为完数,要求具有容错处理功能。

实验六 循环结构程序设计实验2 一、实验目的

1.掌握关系操作符、逻辑操作符、递增递减操作符的使用方法。 2.熟练使用for、while编写程序。

3.掌握break和continue语句的使用方法。

4

二、实验内容

1.按照下述格式打印2009年5月日历: Calander 2009-5

------------------------------------------------------ Su Mo Tu We Th Fr Sa ------------------------------------------------------ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

------------------------------------------------------

2.打印所有100至999之间的水仙花数。所谓水仙花数是指满足其各位数字立方和为该数字本身的整数。

3.接受用户输入的正整数n,计算f(n)=1?111??...?的值。 1!2!n!*4.接受用户从键盘输入的年份值与月份值,打印2009年以后(含)任意月份的日

历,2009年前的拒绝打印。

实验七 数组实验1 一、实验目的

1. 掌握定义一维,二维数组的方法

2. 掌握一维,二维数组初始化和循环赋值的方法 3. 掌握数组和循环语句相结合的使用模式处理问题 二、实验内容

1.编程实现用数组打印Fibonacci数列的前20项。

2.编程实现从键盘输入的一组数中找出其中最大值和最小值。 3.编程实现用一、二维数组分别输出杨辉三角。

实验八 数组实验2 一、实验目的

1. 掌握定义一维,二维数组的方法

2. 掌握一维,二维数组初始化和循环赋值的方法 3. 掌握数组和循环语句相结合的使用模式处理问题 二、实验内容

1.编程实现将二维数组行列元素互换。

2.编程实现求二维数组中最大元素值及其行号、列号。

*3.假设有一对兔子,一个月后成长为大兔子,从第二个月开始,每对大兔子生一对小兔子。不考虑兔子的死亡,设计算法求第n个月的兔子总数。

实验九 函数实验1 一、实验目的

1.掌握定义函数的方法。

5

2.掌握函数实参与形参的对应关系,以及函数调用的值传递规则。 3.理解函数返回值的意义,掌握正确操作函数返回值的方法。 二、实验内容

1.编写一个函数max,用于比较两个整数的大小。

2.编写一函数IsPrime,判断某个大于2的正整数是否为素数。

实验十 函数实验2

1.掌握定义函数的方法。

2.掌握函数实参与形参的对应关系,以及函数调用的值传递规则。 3.理解函数返回值的意义,掌握正确操作函数返回值的方法。 二、实验内容

1.编写一函数gcd,求两个正整数的最大公约数。 2.使用递归的方法实现求n!的函数f(n)。

函数实验3

1.掌握定义函数的方法。

2.掌握函数实参与形参的对应关系,以及函数调用的值传递规则。 3.理解函数返回值的意义,掌握正确操作函数返回值的方法。 二、实验内容

1.编写通用的排序的函数,实现冒泡、选择排序方法。

*2.给定一个自然数n,求其各位数字之和,重复上一过程,一直得到1~9之间的数。例如数1234的各位数字之和为10,继续计算,得到10的各位数字之和为1。

*3.编写一掷骰子游戏,首先由计算机生成一个随机数,然后接受用户输入的字符串“g”命令后生成用户的随机数(模拟用户掷了一次骰子),比较它们的大小,如果用户得到的随机数小于计算机得到的,则输出用户输了,否则输出用户赢了。

*4.编写一函数,返回1-52之间的随机数,模拟发不含大小王牌的扑克牌,将生成的随机数映射为每张扑克牌。按照花色(梅花、方块、红桃、黑桃)和大小(2~10、J、Q、K、A)顺序进行映射。

*5.面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。要求(1)只出10道题,每题10分,程序结束时显示学生得分;(2)确保算式没有超出1~2年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出0~50的范围,负数更是不允许的;(3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;(4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;(5)当学生输入了正确得数后,随机显示评价结果,例如“Right!”、“Correct!”,“That’s the answer”等,若答案错误,则按照“No,the answer is …”输出答案。

实验十一 指针实验1 一、实验目的

1.掌握指针和数组作为函数参数时的使用方法。 2.能熟练使用指针操作各种数据对象。

3.掌握指针法和下标法对于数组元素的操作。 二、实验内容

1.编写函数,求包含n个元素的整数数组中元素的平均值。要求在函数内部使用指针

6

操纵数组元素。

2.独立实现标准字符串库的strcmp函数。

实验十二 指针实验2 一、实验目的

1.掌握指针和数组作为函数参数时的使用方法。 2.能熟练使用指针操作各种数据对象。

3.掌握指针法和下标法对于数组元素的操作。 二、实验内容

1.改写函数一章中函数参数使用指针代替数组,函数体中的下标法改用指针法处理。 *2.接受用户输入的整数n,随机生成n个0~100间的整数,使用动态数组存储所有元素,分别统计0~59,60~84,85~100之间的元素个数。

实验十三 用户自定义数据类型 一、实验目的

1.掌握字符串的操作方法;

2.掌握数组的定义和使用方法,熟练使用数组进程序设计。 3.掌握结构体的使用方法,熟练使用结构体进行程序设计。 4.掌握查找和排序的基本方法。 5.掌握静态链表的使用方法。 二、实验内容

1.给定字符串s,其内容为英语长句,其中包含英语单词、标点符号、空格等内容,每个英语单词使用标点符号、一个或多个空格分隔。将英语长句分隔成英语单词序列输出,并输出其单词数目。

2.有3个学生,每个学生的数据包括学号、三门课的成绩,要求用input函数实现从键盘输入学生数据,用average函数求每个人的平均分,用output函数打印学生数据及平均成绩。

3.静态链表的建立,有三个学生,包括学号(sno char(8)),姓名(sname char(20)),分数(grade float[]),定义结构体类型数组存学生信息,使用链表所有学生,实现链表的输入输出。

4、共用体,枚举例题验证。

*5.递归方法实现快速排序算法。快速排序的基本原理是:(1)选择一个充当划分较小和较大元素的界限的元素,称其为基准值。(2)将数组中的元素重新排列使得较大元素向数组尾端移动,较小元素向数组首端移动。如此在形式上将数组分成两部分,界限左边元素都小于基准值,而界限右边元素都大于基准值,此过程称为分解。在分解完成后,充当界限的数组首元素可能需要和中间某元素对调。(3)排序两个子数组中元素。因为基准值左边元素都小于基准值右边元素,所以将两个子数组分别排序后即使得整个数组有序。

实验十四 文件与数据存储 一、实验目的

1.掌握文件和文件指针的概念。

2.掌握文件打开、关闭和读写等操作。 二、实验内容

1.编写程序,从文本文件中读取全部内容,并复制到另一文件中。要求将文本文件中

7

的所有英文字母都转换成大写后输出。

2.编写程序,读取一个文本文件,统计其中的英文字母与数字字符的个数,全部字符个数与单词个数。

*3.统计英文文档中单词出现的频率。

综合实验--歌手大赛 一、实验目的

1.掌握C语言编程方法。

2.熟练使用C语言的控制语句。

3.掌握C语言基本数据类型、数组、结构体类型等的使用方法。 4.掌握C语言函数的定义、调用的方法。

5.掌握常见的一些算法,如排序、查找算法等。 6.掌握文件和文件指针的使用方法。 7.熟练使用VC环境。 二、实验内容

编写一个C程序,对一次歌手比赛的成绩进行管理,其中:每个选手的数据包括编号、姓名、十个评委的成绩、总成绩和平均成绩(去掉最高分,去掉最低分)。主菜单如下:1、输入选手数据 2、评委打分 3、成绩排序(按平均分)4、数据查询 *5、追加学生数据*6、写入数据文件7、退出系统。

8

本文来源:https://www.bwwdw.com/article/23eo.html

Top