实验教学大纲
广西中医药大学信息管理与信息系统专业教学大纲
《C语言程序设计》实验大纲教学大纲
课程基本信息
课程编号:BJ0901007
课程类别:专业基础课
课程性质:必修课
学时/学分:4学分,总学时68,理论32,实验32
实验目的与要求
1.通过C程序设计实验,培养学生对学习程序设计的兴趣,使学生全面了解 C 语言的特点,不仅要熟练掌握C语言的基础知识、基本算法,更重要的是让学生掌握程序设计的思想和方法,培养学生程序开发和设计的能力。
2.了解和熟悉C语言程序开发的环境;学会上机调试程序,善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行,达到实验知识和理论知识的融会贯通。
实验一 C程序的运行环境和运行一个C程序的方法
【实验目的】
1.了解VC++6.0编译系统的基本操作方法,学会独立使用该系统。
2.了解在该系统上如何编辑、编译、连接和运行一个C程序。
3.通过运行简单的C程序,初步了解C源程序的特点及C语言的程序结构。
【实验内容】
1.熟悉VC++6.0变成工具的操作界面,程序编写方法和执行步骤;
2.编写简单程序,输出“Hello world!”语句;
3.编写一程序,接受用户输入的两个整数,并计算它们的和、差、积、商。
实验二 数据类型、运算符和表达式
【实验目的】
1.掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法。
2.掌握不同数据类型之间赋值的规律。
3.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(――)运算符的使用。
4.进一步熟悉C程序的编辑、编译、连接和运行的过程。
【实验内容】
1.整型和字符型数据的区别,输入3.4分析运行结果
2.分析3.6中的程序的运行结果,然后输入该程序并运行,将运行结果与前面分析的结果对比。
3.按习题3.7的要求编程并上机运行:
要将“China”译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母。例如,字母“A”后面第4个字母是“E”,用“E”代替“A”,因此,“China”应译为“Glmre”。请编一程序,用赋初值的方法使c1、c2、c3、c4、c5这5个变量的值分别为’C’,'h', 'i','n', 'a',经过计算,使c1、c2、c3、c4、c5分别变为:'G','l','m',r','e',并输出.
实验三 顺序结构程序设计
【实验目的】
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
--------------------------------------------------------------------
实验四 选择结构程序设计1
【实验目的】
1.掌握关系操作符、逻辑操作符、递增递减操作符的使用方法。
2.熟练使用if、语句编写程序。
【实验内容】
1. 输入电量,如果电量未超过100度,电费0.5元,超过则0.7元,计算电费
2. 输入二个数,求最大的数
实验四 选择结构程序设计2
【实验目的】
1.掌握函数的嵌套,switch语句。
【实验内容】
1.给出一个百分制成绩,要求输出成绩等级‘A’,‘B’,‘C’,‘D’,‘E’。90分以上为‘A’
80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’。分别用if和switch语句实现。
2. 输入三个数,从大到小输出这三个数
实验五 循环结构程序设计实验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语句的使用方法。
【实验内容】
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)=
的值。
*4.接受用户从键盘输入的年份值与月份值,打印2009年以后(含)任意月份的日历,2009年前的拒绝打印。
实验六 数组实验1
【实验目的】
掌握定义一维,二维数组的方法
掌握一维,二维数组初始化和循环赋值的方法
掌握数组和循环语句相结合的使用模式处理问题
【实验内容】
1.编程实现用数组打印Fibonacci数列的前20项。
2.编程实现从键盘输入的一组数中找出其中最大值和最小值。
3.编程实现用一、二维数组分别输出杨辉三角。
实验六 数组实验2
【实验目的】
掌握定义一维,二维数组的方法
掌握一维,二维数组初始化和循环赋值的方法
掌握数组和循环语句相结合的使用模式处理问题
【实验内容】
1.编程实现将二维数组行列元素互换。
2.编程实现求二维数组中最大元素值及其行号、列号。
*3.假设有一对兔子,一个月后成长为大兔子,从第二个月开始,每对大兔子生一对小兔子。不考虑兔子的死亡,设计算法求第n个月的兔子总数。
实验七 函数实验1
【实验目的】
1.掌握定义函数的方法。
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 …”输出答案。