1、模块一 顺序程序设计训练 职业本科规划教材 《C语言程序设计》 全书教学设计 课程名称: C语言程序设计 授课年级: 2022年级 授课学期: 2022学年第一学期 教师姓名: XXX 2021年10月22日 模块二 分支程序设计训练 课题 名称 模块一 顺序程序设计训练 计划 学时 8学时 内容 分析 在C语言程序设计中,程序的执行严格按代码的先后依次执
2、行。顺序结构是最简单的程序结构,也是最常用的程序结构,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。 教学目 标及基 本要求 (1) 了解结构化程序设计的基本结构; (2) 了解流程控制的基本语句; (3) 熟练掌握数据的输入/输出处理函数和表达式语句; (4) 掌握构建顺序结构程序的基本语句及程序基本构架; (5) 掌握顺序结构程序设计方法。 教学 重点 数据的输入/输出处理函数和表达式语句、顺序结构的基本语句、顺序结构的设计方法 教学 难点 顺序程序设计的基本构架、顺序程序设计的设计方法 教学 方式 教学采用教师课堂讲授与
3、学生操作练习共同进行的一体化教学方式
l 概念性知识点:提出为什么,将抽象具体化,配合教学PPT、案例辅助讲解。
l 操作性知识点:提需求,并上机演示如何操作,重点内容总结经验及注意事项。
l 学生操作练习:完成教材中的引例、做中学以及练中学案例,有能力的学生还可以完成教师额外布置的拓展练习题目。
教
学
过
程
第一学时
(知识准备)
一、引例任务,提出需求
(1)通过引力任务,引出本节所需知识内容。
【引例任务】判断从键盘输入的整数数据的奇偶性。
【程序代码】
#include
4、 printf("请输入一个自然数:"); //提示用户输入一个数值 scanf("%d",&num); //接受用户输入的数值 if (num%2==0) printf("您输入的是一个偶数\n"); else printf("您输入的是一个奇数\n"); }while(num!=0); } 【程序运行】 请输入一个自然数:25↙ 您输入的是一个奇数 请输入一个自然数:26↙ 您输入的是一个偶数 请输入一个自然数:0↙ 您输入的是一个偶数 (2)明确学习方向。 【知识点】 引
5、例中出现了输入、处理、输出等操作,这些操作具有特定的流程,流程常称为算法,引例的算法体现了结构化程序设计的基本思想。 【能力点】 l 认识判断语句 l 掌握scanf()函数 l 掌握printf()函数 二、 明确目标,完成任务 完成引例任务: 1.当num变量的值不为0时,循环。 2.if(num%2==0)是判断语句,当关系表达式num%2==0成立,表示num变量中的数据是偶数。 3.scanf()函数接收用户键盘输入的数据到指定变量。 4.printf()函数向计算机屏幕输出信息。 三、归纳总结,布置课后作业 (1)回顾上课前的学习目标,对本节课知识点
6、进行总结。 (2)扫描二维码查看相应资源,完成课后作业。 第二学时 (程序和算法) 一、引入学习任务 (1)回顾上节课的内容,结构化程序的基本结构,流程控制的基本语句。 (2)明确学习方向。 【知识点】 l 程序 l 算法 【能力点】 l 了解程序的定义 l 掌握程序设计 l 掌握算法的概念 l 熟练进行算法描述 二、明确目标,完成任务 1.程序 程序是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合。 一个程序应该包括以下两方面的内容。 (1) 对数据的描述。 (2) 对操作的描述。 程序=数据结构+算法 2.程序设计 程序设
7、计是给出解决特定问题程序的过程。 (1) 分析问题。 (2) 设计算法。 (3) 编写代码。 (4) 测试程序。 (5) 编写程序文档。 3.算法的定义 广义地讲,算法是指为解决某个具体问题而采取的方法和步骤。 计算机解题算法分为两大类:数值运算算法和非数值运算算法。 根据不同的算法控制结构,程序有3种结构:顺序结构、选择结构和循环结构。 (1) 顺序结构。 (2) 选择结构。 (3) 循环结构。 4.算法描述 (1) 算法的五个特征 l 有穷性 l 确切性 l 输入 l 输出 l 可行性 (2) 自然语言 (3) 伪代码 (4) 流程图 (
8、5) N-S图 三、归纳总结,布置课后作业 (1)回顾上课前的学习目标,对本节课知识点进行总结。 (2)扫描二维码查看相应资源,完成课后作业。 第三学时 (基本语句) 一、 引例任务,提出需求 (1)回顾上节课的内容,程序和算法。 (2)明确本节课学习方向。 【知识点】 l 控制语句 l 操作运算语句 【能力点】 l 掌握9种控制语句 l 掌握4种操作运算语句 二、明确目标,完成任务 C语言程序设计中的基本语句主要分为两大类:控制语句和操作运算语句(也称表达式语句)。 控制语句的作用是用于控制程序的执行顺序,使程序的执行流程发生改变。在
9、C语言中,有9种控制语句。
1)if-else
(条件语句)
2)switch
(多分支选择语句)
3)while
(循环语句)
4)do-while
(循环语句)
5)for
(循环语句)
6)break
(中止循环或switch结构语句)
7)continue
(结束本次循环语句)
8)goto
(转向语句)
9)return
(返回语句)
在C语言中操作运算语句有赋值语句、函数调用语句、空语句和复合语句。
1.赋值语句
2.函数调用语句
3.空语句
4.复合语句
【做中学1-1】输出余弦函数图形程序。
#include 10、h>
#include 11、源,完成课后作业。
第四学时
(字符输入、输出)
一、引例任务,提出需求
C语言中没有提供专门的输入输出语句,所有的输入输出都是调用标准库函数中的输入输出函数来实现的。字符数据的输入输出是最基本的数据输入输出,由C语言标准函数库提供的函数getchar( )和putchar( )实现。
【知识点】
l getchar( )函数
l putchar( )函数
【能力点】
l 掌握getchar( )函数的应用
l 掌握putchar( )函数的应用
二、明确目标,完成任务
1.getchar函数
【做中学1-2】利用getchar( )函数接收键盘输入。
【程序代码】 12、
#include 13、字符都会逐个显示在屏幕上。
2.putchar函数
【做中学1-3】利用putchar( )函数输出字符。
【程序代码】
#include 14、出字母B */
}
1) 语法格式为:
putchar(字符表达式);
2) 功能:向标准输出设备输出单个字符数据。
【练中学1-1】getchar、putchar函数应用。
【程序代码】
#include "stdio.h"
void main( ){
char ch;
printf("请输入两个字符:");
ch=getchar( );
putchar(ch);putchar('\n');
putchar(getchar( ));
putchar('\n');
}
三、归纳总结, 15、布置课后作业
(1)回顾上课前的学习目标,对本节课知识点进行总结。
(2)扫描二维码查看相应资源,完成课后作业。
第五、六、七学时
(格式输入、输出)
一、引入学习任务
(1)回顾上节课的内容,字符输入输出。
(2)明确学习方向。
【知识点】
l scanf( )函数
l printf( )函数
【能力点】
l 掌握scanf( )函数的应用
l 掌握printf( )函数的应用
二、明确目标,完成任务
1. scanf函数
scanf函数称为格式输入函数,按用户指定的格式从键盘上把数据输入到指定的变量之中,scanf函数也是一个标准库函数,其函数原型在 16、头文件“stdio.h”中。
【做中学1-4】使用scanf( )函数从键盘接收程序用户的输入。
【程序代码】
#include 17、键盘收到的数值存储到a,b,c三个变量对应的存储单元中,相当于对这3个变量进行了赋值。
(3) scanf函数的格式必须以%开始,后面跟一个格式符组成。
scanf函数常用的格式符
格式符
含义
d,i
用于输入有符号的十进制整数
u
用于输入无符号的十进制整数
o
用于输入无符号的八进制整数
X,x
用于输入无符号的十六进制整数
c
用于输入单个字符
s
用于输入字符串,将字符串送到一个字符数组中,输入时以非空白字符开始,以空白字符(可以为空格、制表符或换行符)结束,系统将自动在字符串末尾加上’\0’作为结束标志。
f
用于输入实数,可以以小数或指数形式输 18、入,但不能指定输入宽度。
E,e,G,g
同格式符f
scanf函数附加格式说明符
字符
说明
l
用于输入长整型数据(可用%ld,%lo,%lx)以及double型数据(用%lf或%le)
h
用于输入短整型数据(可用%hd,%ho,%hx)
域宽
指定输入数据所占宽度,为正整数。如“scanf("%4d%4d",&a,&b);”
*
带*的输入项在读入后将被跳过
【做中学1-5】非格式符的使用。
【程序代码】
#include 19、b,&c);
printf("a=%d,b=%d,c=%d",a,b,c);
}
【做中学1-6】实型数据的输入输出。
【程序代码】
#include 20、oid main( ){
char a='B';
int b=10;
printf("The name is %c,the value is %d\n",a,b);
}
printf函数为格式输出函数,它是一个标准库函数,其函数原型在头文件“stdio.h”中,它向终端输出若干个任意类型的数据。其语法格式为:
printf(格式控制,输出表列)
(1) 格式控制由输出格式说明和普通字符两种组成,必须用双引号括起来。
(2) 输出表列是需要输出的一组数据(可以为表达式和变量),各参数之间用“,”分开。要求格式说明和各输出项在数量和类型上要一一对应,否则将会出现意 21、想不到的错误。
对于不同类型的数据需要用不同的格式字符进行说明。常用格式字符有如下几种。
(1) d格式符
【做中学1-8】printf函数按%d格式输出数据。
#include 22、c20ld %20ld\n",'%',b);
}
(2) o格式符 以八进制形式输出整数。
【做中学1-9】 printf函数按%o格式输出数据。
#include 23、o\n",'%',b);
}
(3) x格式符 以十六进制形式输出整数,用法同o格式符。
(4) u格式符 用于输出unsigned型数据,以十进制形输出。
(5) c格式符 用来输出一个字符,可以指定宽度。
【做中学1-10】printf函数按%c格式输出数据。
#include 24、e ASCII is %d.\n",y,y);
}
(6) s格式符 用来输出一个字符串。
(7) f格式符 用小数形式来输出实数(包括单、双精度实数)。
(8) e格式符 以指数形式输出实数。
(9) g格式符 用于输出实数,根据数值的大小自动选择f格式或e格式中输出宽度较小的格式输出,不输出无意义的零,6位有效数字。
【练中学1-2】求一元二次方程的根。
【算法设计】
一元二次方程一般格式为:ax2+bx+c=0。当b2-4ac=0时,方程有只有一个根;当b2-4ac>0时,方程有两个根。
【程序代码】
#include 25、h.h"
void main( ){
float a,b,c,disc,x1,x2;
printf("输入a,b,c的值,必须保证b2-4ac>0,用“,”分隔输入的数据:");
scanf("%f,%f,%f",&a,&b,&c);
disc=b*b-4*a*c;
x1=(-b+(float)sqrt(disc))/(2*a);
x2=(-b-(float)sqrt(disc))/(2*a);
printf("x1=%6.2f\nx2=%6.2f",x1,x2);
}
【练中学1-3】printf函 26、数按%x,%u格式输出数据。
#include 27、 %u\n",'%',a);
printf(" %c10x %10x\n",'%',a);
printf(" %cLx %Lx\n",'%',b);
printf("%c20Ld %20Ld\n",'%',b);
}
【练中学1-4】*格式符的使用。
【程序代码】
#include 28、);
}
【练中学1-5】域宽格式符的使用。
【程序代码】
#include 29、");
scanf("%d%s",&a,st);
printf("你的输入是:%d%s\n",a,st);
}
【练中学1-7】分别输入一个八进制、一个十进制和一个十六进制数,将这3个数相加,以十进制的形式输出。
【程序代码】
#include 30、 /*3个数相加,存入d单元变量*/
printf("0%o + %d + 0x%x =%d \n",a,b,c,d); /*以十进制的形式输出结果*/
}
三、归纳总结,布置课后作业
(1)回顾上课前的学习目标,对本节课知识点进行总结。
(2)扫描二维码查看相应资源,完成课后作业。
第八学时
(Visual Studio 2019环境下的程序调试、Dev-C++环境下的程序调试)
一、引入学习任务
(1)回顾上节课的内容,格式输入和输出。
(2)明确学习方向。
【知识点】
l Visual Studio 31、2019环境下的程序调试
l Dev-C++环境下的程序调试
【能力点】
l 熟练掌握Visual Studio 2019环境下的程序调试
l 熟练掌握Dev-C++环境下的程序调试
二、明确目标,完成任务
1. Visual Studio 2019环境下的程序调试
调试方式有断点调试及单步调试两种。
(1)添加断点
(2)调试程序
(3)单步调试
2. Dev-C++环境下的程序调试
调试方式有断点调试及单步调试两种。
(1)打开调试工具
(2)通过鼠标查看变量
(3)设置断点
(4)调试程序
(5)单步调试
三、归纳总结,布置课后作业
(1 32、回顾上课前的学习目标,对本节课知识点进行总结。
(2)扫描二维码查看相应资源,完成上机作业。
教
学
后
记
职业本科规划教材
《C语言程序设计》
教学设计
课程名称: C语言程序设计
授课年级: 2022年级
授课学期: 2022学年第一学期
教师姓名: XXX
2021年10月22日
模块三 循环程序设计训练
课题
名称
模块二 分支程序设 33、计训练
计划
学时
8学时
内容
分析
根据某种条件的成立与否采用不同的程序段进行处理的程序结构称为选择结构。通常选择结构有两个分支,条件为“真”,执行甲程序段,否则执行乙程序段。有时,两个分支还是不能完全描述实际问题,这样的程序结构称为多分支选择结构。
教学目
标及基
本要求
(1) 掌握关系表达式和逻辑表达式的应用。
(2) 掌握利用if语句实现的单分支和双分支选择结构。
(3) 掌握利用switch语句实现多分支选择结构。
教学
重点
if语句、switch语句
教学
难点
多分支选择结构
教学
方式
教学采用教师课堂讲授与学生操作练习共同进 34、行的一体化教学方式
l 概念性知识点:提出为什么,将抽象具体化,配合教学PPT、案例辅助讲解。
l 操作性知识点:提需求,并上机演示如何操作,重点内容总结经验及注意事项。
l 学生操作练习:完成教材中的引例、做中学以及练中学案例,有能力的学生还可以完成教师额外布置的拓展练习题目。
教
学
过
程
第一、二学时
(if-else语句)
一、引例任务,提出需求
(1)通过引力任务,引出本节所需知识内容。
【引例任务】比较两个数的大小。
【程序代码】
#include 35、两个实数:\n");
scanf("%f,%f",&a,&b);
if (a>b)
printf("第一个数较大。\n");
else if (a==b)
printf("两个数相等。\n");
else
printf("第二个数较大。\n");
}
【程序运行】
请您输入两个实数:
4,8↙
第二个数较大。
(2)明确学习方向。
【知识点】
引例程序中3条输出语句用if-else语句连接,根据关系表达式的值执行其中一条输出语句,是一个典型的分支结构。
C语言有两种实现分支结构的语句:if-else和switch-ca 36、se语句。
本节课的主要内容是学习利用if语句实现分支结构。
【能力点】
l 掌握单分支if语句
l 掌握双分支if-else语句
三、 明确目标,完成任务
在C语言中,if语句是常用的条件判断语句,用来判定是否满足指定的条件(条件式),并根据条件式的运算结果来执行给定的操作。C语言提供了3种形式的if语句,在使用时可根据具体问题的复杂程度来选择合适的形式。
1. 单分支结构的if语句
【做中学2-1】两个数的升序排序。
【程序代码】
#include 37、入两个实数:");
scanf("%f,%f",&a,&b);
if (a>b) { /*判断a>b的值,如果为真,则执行下面的语句*/
t=a;
a=b;
b=t;
}
printf("%5.2f %5.2f\n",a,b);
}
1)语法格式:
if (条件表达式)
语句;
2)单分支结构执行过程:
首先对表达式求解,当结果为真(非0)时,则执行指定的语句;否则跳过指定语句,接着执行该语句下面的语句。
3)语法特征为:一个条件表达式,一个可选执行。
2. 双分支结构的if语句
【做中学2-2】求绝 38、对值。
【程序代码】
#include 39、 语句2;
2)双分支结构执行过程:
先对表达式求解,当结果为“真”(非0)时,执行语句1;当计算结果为假(0)时,执行语句2。然后执行if语句下面的语句。所以利用if-e1se形式的if语句可以实现双向分支选择。实际运用中,语句1、语句2常为复合语句。
3.语法特征为:一个条件表达式,两个可选执行。
三、归纳总结,布置课后作业
(1)回顾上课前的学习目标,对本节课知识点进行总结。
(2)扫描二维码查看相应资源,完成课后实训题。
第三学时
(switch-case语句)
一、引入学习任务
(1)回顾上节课的内容,if-else语句。
(2)明确学习方向 40、
【知识点】
l switch-case语法
l switch-case语句流程
【能力点】
l 熟练掌握switch-case语句
二、明确目标,完成任务
【做中学2-3】某运输公司对用户收取运费的规定如下(s表示里程数km):
S<250 0(没有折扣)
250≤s<500 2%
500≤s<1000 5%
1000≤s<2000 8%
2000≤s<3000 10%
3000≤s 15%
设基本运费为每公里每吨p元,货物重为w吨,折扣为d,总运费f的计算公式为
41、 f = p×w×s×(1-d)
距离s
折扣率d
距离s
折扣率d
s<250
0
1750≤s<2000
8%
250≤s<500
2%
2000≤s<2250
10%
500≤s<750
5%
2250≤s<2500
10%
750≤s<1000
5%
2500≤s<2750
10%
1000≤s<1250
8%
2750≤s<3000
10%
1250≤s<1500
8%
3000≤s
15%
1500≤s<1750
8%
通过分析,可以用多分支选择结构处理这种多种选择的情况。f是因变量,s、p、w的值从键盘输入。 42、
【程序代码】
#include 43、 4:
case 5:
case 6:
case 7:d=8;
break;
case 8:
case 9:
case 10:
case 11:d=10;
break;
case 12:d=15;
break;
default:printf("输入里程有错!\n");
}
f=p*w*s*(1-d/100.0f);
printf("应缴运费:%15.4f\n",f);
}
1.语法格式:
switch (表达式){
case常量1:语句1;
case 44、常量2:语句2;
┇
case常量n:语句n;
[default:语句n+1;]
}
2.switch-case 语句使用说明
(1) 表达式可以为任何整数类型(包括字符型,也包括无符号的整数类型)。
(2) 各个常量取不同的值。
(3) 当表达式的值与某个case后的常量的值相等时,就执行此常量后面的语句,如果表达式的值没有和任何常量相匹配,就执行default后面的语句,如果省略了default语句,那么将不作任何处理,接着执行switch结构后面的语句。
(4) 如果在相匹配case的语句块中没有break语句,那么程序将从此开始顺序执行,直到遇 45、到某个case子句中的break语句,才跳出switch结构。否则,一直执行到switch语句结束。因而多个case可以共用同一组执行语句。如:
case 8:
case 9:
case 10:
case 11:d=10;
break;
(5) case后面必须是常量表达式,表达式中不能包含变量。例如,不能写成 case b。
(6) default出现的位置不影响程序执行结果。所以可先出现default子句,再出现各case子句。
3.语法特征为:一个表达式的值,对应n个常量表达式的值。
三、归纳总结,布置课后作业
46、
(1)回顾上课前的学习目标,对本节课知识点进行总结。
(2)扫描二维码查看相应资源,完成课后作业。
第四、五学时
(多分支结构的if-else语句)
二、 引例任务,提出需求
(1)回顾上节课的内容,switch-case语句。
(2)明确本节课学习方向。
【知识点】
l 多分支结构的if-else语句
【能力点】
l 熟练掌握多分支结构的if-else语句
二、明确目标,完成任务
对于双分支结构的if语句,若它的子句(语句1或语句2)也是if语句,就出现了if语句的嵌套。
【做中学2-4】分段函数计算。
编程实现多值函数的功能。
【程序代码】
47、include 48、
}
else if(x>=20&&x<100) { /*如果满足条件20<=x<100 */
y=3*x;
printf("x∈[20,100),y=%d\n",y);
}
else {
y=0;
printf("x的值太大或太小!y=%d\n",y);
}
}
1.语法格式:
if (条件式1)
语句1;
else if(条件式2)
语句2;
else if条件式3)
语 49、句3
┇
else if(条件式n)
语句n;
else
语句n+1;
2.执行过程:
执行时,程序首先求解表达式l的值,当计算结果为“真”时,执行语句1;否则求解表达式2的值,当计算结果为“真”时,执行语句2;否则再继续求解表达式3,当计算结果为“真”时,执行语句3;否则接着进行判断,依此类推,直到找到结果为“真”的表达式,并执行与之相关的语句。如果经过求解,所有的表达式都为“假”,那么就执行最后一个else后面的语句。
三、归纳总结,布置课后作业
(1)回顾上课前的学习目标,对本节课知识点进行总结.
(2)扫描二 50、维码查看相应资源,完成课后作业。
第六、七、八学时
(边学边练、实训题)
一、上机练习
【能力点】
l 熟练掌握条件表达式和逻辑表达式的使用。
l 熟练掌握if语句的使用。
l 熟练掌握switch语句的使用。
【练中学2-1】实现英寸与厘米的换算。
【程序代码】
#include






