结合实例开展C语言程序设计教学

2021-12-31 13:16
科技视界 2021年35期
关键词:数据类型C语言实例

仲 冰

(盐城工学院信息工程学院,江苏 盐城 224051)

0 引言

C语言程序设计不仅是计算机大类中各专业的一门专业基础课程,而且是非计算机专业的学生需要学习的主要程序设计语言课程之一。这门课程不仅要求学生掌握传统意义上的程序编写,更要求学生转换求解问题时的思维方式,培养学生的计算思维。这门课程主要包括C语言的基础知识和程序设计的基本方法。

以实际问题的求解过程为引导,以实际应用为背景,在一个实际案例的不断深化中逐步引出相关知识点,努力贴近学生,使知识点更加通俗易懂,案例内容能够紧密结合实践,并引导学生举一反三、融会贯通。

在实际教学中,案例可以选择贴近学生日常生活的内容,例如,学生信息管理系统、学生食堂管理系统、学生成绩管理系统;或是社会的热点话题,如近期的东京奥运会、河南洪水赈灾、疫情防控等,这些实例都可以被分解成很多细小的程序设计问题,然后穿插在课程的各个知识点中,增强学生对于知识点的进一步理解。下面以东京奥运会这一内容为实例,浅谈如何结合实例开展C语言程序设计的教学。

1 教学设计

C语言程序设计按照章节安排,包括基础知识、数据类型、格式化输入输出、选择结构、循环结构、数组、函数等部分,下面将选取其中部分章节的知识点,分析如何结合奥运会比赛中的实例进行教学设计。

1.1 数据类型

在C语言中,数据有常量和变量两种形式,基本的数据类型包括整型、实型、字符型和字符串型。

在学习这个知识点时,可以结合奥运会中运动员各种不同数据类型的信息。例如,运动员的年龄信息保存为整型数据,性别信息保存为字符型数据(F为女性、M为男性),国籍信息保存为字符串型数据(如中国的国家代码为CHN),运动员的姓名信息保存为字符串型数据,运动员参赛项目信息保存为字符串信息,等等。另外,还可以向学生解释说明常量和变量的实际意义,如运动员姓名、年龄、国籍、参赛项目等一些不可以修改的数据为常量,运动员的最佳成绩、体重等可以修改的数据为变量。

1.2 格式化输入输出

键盘输入和屏幕输出是编写简单的顺序结构程序时最经常用到的操作。在学习了通过调用输入/输出函数实现键盘输入和屏幕输出后,深入学习数据的格式化输入输出。格式转换说明符包括带符号的十进制整数说明符%d、字符说明符%c、字符串说明符%s、十进制小数说明符%f等,格式修饰符包括long型数据修饰符l、显示精度的修饰符.n等。

在学习这个知识点时,可以结合奥运会的不同运动项目在屏幕上显示其比赛结果,例如,篮球比赛、排球比赛等球类比赛的结果是整数,在屏幕上显示结果时可以用%d;跑步比赛、游泳比赛等比赛的结果是精确到小数点后两位,在屏幕上输出结果时可以用%8.2f,这里的%8.2表示输出数据所占的域宽为10,显示的精度为2;在飞碟射击比赛中,需要用O和X表示击中和未击中,在屏幕上显示结果时可以用%c。

1.3 选择结构

选择结构也称为分支控制结构,包括单分支、双分支、多分支选择控制结构,所用到的语句包括if-else和switch。

在学习这个知识点时,可以结合奥运比赛中成绩的排序。对于2人(或两队)参加决赛的项目,如球类比赛,此时已知比赛得分,需要由此得出金银牌得主分别是哪一队,就可以用到if-else语句;对于4人(或4队)参加决赛的项目,如皮划艇的B组决赛,要想分出1~4名,可以用到if-else语句的嵌套使用;对于8人(或8队)参加决赛的项目,如跑步决赛、游泳决赛等,想要分出1~8名,既可以用if-else语句嵌套使用,也可以为后面章节的数组排序做铺垫。另外,在奥运会的游泳比赛中,很多项目的报名人数很多,如100米自由泳,进行预赛时会根据运动员的报名成绩分成快组和慢组,因为如果比赛者能力参差不齐,不利于成绩好的运动员的发挥,需要将水平相近的运动员放在同组,此时可以用到switch-case语句,将成绩区间相同的选手放在同一组。

1.4 循环结构

循环结构部分主要介绍计数控制的循环和如何寻找累加或累乘项(即通项)的构成规律。循环结构包括计数控制的循环、条件控制的循环和嵌套循环。

在学习这个知识点时,可以结合奥运会中的射击比赛,在计算最终成绩时,需要将每一轮的环数相加,射击的轮数会多达几十轮,若使用普通的顺序结构,程序会变得冗长,此时就需要用到循环结构,每一轮射击结束后计算当前总环数的方法都是本轮射击环数加上本轮之前的总环数,所以可以保证循环体内执行的操作完全一样。在使用这个实例时,可以分别用for循环、while循环和do-while循环结构进行编写,并且可以比较这三种结构下循环体有何异同。

1.5 数组

数组是一组具有相同类型的变量的集合,例如,可以将8个参加游泳决赛的运动员成绩存储在内存的一个连续区域中,使用一个统一的名字来标识这组相同类型的数据,这个名字称为数组名,如取名为result。在介绍选择结构时曾使用对奥运决赛成绩排序的实例,当数据数量较多时,使用if-else的嵌套就会使程序变得冗长,此时就需要引入数组,排序是数组的一个典型应用,可以以对奥运会决赛成绩进行排序为实例,分别使用选择排序、冒泡排序和插入排序编写对应程序。另外,在学习二维数组时,可以结合运动员编号和成绩这个实例,并且强调不能用姓名和成绩,因为数组里的每个元素都必须是同一类型,姓名是一个字符串类型,与成绩的数据类型一定不一样。

1.6 函数

在C语言中,函数是构成程序的基本模块。程序的执行从main()的入口开始,到main()的出口结束,中间循环、往复、迭代地调用一个又一个函数,每个函数分工明确、各司其职。

在学习这个知识点时,可以使用奥运比赛中输入成绩,排序后,再显示在屏幕上这个实例,以及前面章节的内容。例如,已知入围游泳决赛的8位运动员的半决赛成绩,需要为他们安排决赛的道次,此时就需要调用输入函数输入8位选手的半决赛成绩,再调用排序函数对成绩进行排序,最后调用输出函数将成绩及分配的对应道次显示在屏幕上。

1.7 自定义数据类型

对于数组而言,它只能存储同一类型的元素,那在程序中要如何表示一位运动员的姓名、性别、成绩等不同类型的信息呢?此时就要使用到自定义数据类型的结构体类型。在学习这个知识点时,可以结合奥运会中选手信息存储的实例,定义一个名为athlete的结构体类型,结构体的成员可以包括运动员编号long athleteID;运动员姓名char athleteName[10];运动员性别char athleteSex;运动员出生年份int yearOfBirth;运动员参加项目char athleteItem[10]等,结构体可以将不同类型的数据成员组织在一起,形成数据结构,可以将运动员的不同数据类型的信息保存在连续的存储空间中。

2 结语

通过日常的教学实践可以证明,采用一些社会热点话题作为教学实例进行C语言教学,可以将C语言中学生难以理解的概念性知识点、枯燥乏味的语法知识、复杂的程序结构和繁多的算法,通过具体直观的案例提高学生的学习兴趣。奥运会是近期的热点话题,用其中的实例辅助学生理解知识点,培养学生主动思考、主动学习的习惯,以提高C语言程序设计这门课程的教学效果,为后续其他的程序设计类课程打好基础。

猜你喜欢
数据类型C语言实例
详谈Java中的基本数据类型与引用数据类型
基于Visual Studio Code的C语言程序设计实践教学探索
如何理解数据结构中的抽象数据类型
基于C语言的计算机软件编程
高职高专院校C语言程序设计教学改革探索
论子函数在C语言数据格式输出中的应用
完形填空Ⅱ
完形填空Ⅰ
范畴数据类型上的子类型*