



版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
教案C语言程序设计2018〜2019C语言程序设计TOC\o"1-5"\h\z课 程 名 称课 程 代 码专 业 班 级系(教研室)教 师 姓 名周次第1周 时间 2019年02月28日第1-2节or第3-4节授课方式(请打い理论课凡讨论课ロ实验课ロ习题课口其他口 ¥暨 2女琲授课题目(教学章、节或主题):第一章C语言概述第一节C语言概况
第二节C语言的开发与运行第三节简单的C语言第四节算法教学目的、要求(分掌握、熟悉、了解三个层次):.了解C语言的发展的特点.掌握C程序的编辑、编译、连接和执行过程.熟悉VisualC++6.0开发环境.编译和调试C语言源程序时,能辨别常见的错误.了解算法的概念及流程图概念教学重点:C程序的编辑、编译、连接和执行过程教学难点:C程序的编辑、编译、连接和执行过程教学基本内容方法及手段ー、教学要点步骤ー引言语言:人ー人语言交流:聋哑人ー手势语:人机一计算机语言C语言是ー种流行的计算机高级语言,C语言适合于编写系统软件,也可以编写应用程序。步骤二讲授ー、程序设计初步C语言的产生C语言的特点二、算法及表示1、算法的特性2、算法的表示算法可以使用各种不同的方法来描述。(1)用自然语言表示算法(2)用传统流程图表示算法(3)用N-S流程图表示算法(4)用伪码表示算法三、程序设计及结构化程序设计方法1、程序设计程序设计是指借助计算机,使用计算机语言准确地描述问题的算法,并正确进行计算的过程。程序设计的核心是‘‘清晰”,程序的结构要清晰,算法的思路要清晰。2、结构化程序设计模块化设计方法、自顶向下设计方法和逐步求精设计方法是结构化程序设计方法最典型、最具有代表性的方法。讲授多媒体
四、c程序的构成1、C语言程序构成(采用程序实例加以说明,并提倡良好的程序设计书写风格)(1)C程序是由函数构成的,必须有且只能有一个main。函数;(2)每个函数由函数的首部和函数体组成。函数体一般由声明部分和执行部分组成:(3)每个C程序总是从main()函数开始执行,并在main()中结束;(4)每个语句和数据定义的最后必须有一个分号:C程序书写格式自由,一行内可以写几个语句,ー个语句可以分写在多行上。C程序无输入、输出语句,输入操作由scanf()函数完成;输出操作由printf()函数完成;(7)可加注释/*,,,,*/2、上机步骤(上机环境:VC6.0)(1)进入环境(2)编辑源程序(3)保存源程序(4)编译源程序(5)执行程序,查看结果(6)退出C环境五、程序的书写格式和程序的书写风格(1)程序所采用的算法要尽量的简单,符合人的一般思维习惯。(2)标识符的使用尽量采取“见名知义,常用从简”的原则。(3)为了清晰的表现出程序的结构,最好采用锯齿形的程序格式。(4)可以用/*,”,*/注释,以增加程序的可读性。(5)最好在输入语句之前加一个输出语句对输入数据加以提示。(6)函数首部的后面和编译预处理的后面不能加分号。(7)C程序的书写格式虽然自由,但为了清晰,一般在一行内写ー个语句。步骤三课堂提问讨论步骤四课堂小结.算法的概念.C程序基本结构、常见要素、编译调试技术步骤五布置作业进入C编辑环境,按良好的程序设计风格输入例题,按步骤编译、运行、查看结果。作业、讨论题、思考题:P19练习题二、填空题1)、2)、3)
课后小结:周次第1周 时间2019年03月01日第5-6节or"第7-8节授课方式(请打い理论课忖讨论课ロ实验课ロ习题课口其他ロ やや 2安排授课题目(教学章、节或主题):第二章数据类型、运算符和表达式
第一节数据类型、运算符和表达式.数据类型,包括常见的整型、浮点型和字符型.标识符、常量与变量.运算符和表达式教学目的、要求(分掌握、熟悉、了解三个层次):.了解常量和变量.熟悉几种基本的数据类型.掌握算术运算符、赋值运算符、自增自减运算符、逗号运算符等多种运算符教学重点:.变量定义原则.常用基本数据类型(整型、实型、字符型)数据的常量表示、机内存储、变量分类,正确选择数据类型教学难点:整型数据的机内表示,字符数据的机内表示教学基本内容方法及手段步骤ー引言程序=数据结构+算法(流程)。C数据具有类型ー数据类型,本章讨论常用基本数据类型。C数据分类图(取值范围、允许操作、出现的问题特点不同)步骤二讲授ー、常量与变量1、常量概念、常量类型,直接常量/符号常量。2、变量概念、变量名/变量在内存中占据的单元/变量值/变量地址。变量先定义后使用。二、整型数据(内存中补码存储)1、整型常数。10,8,16进制表示2、整型变量分类:基本整型int/长/短;有符号/无符号。观察数据表达范围+字节数3、整型变量定义、初始化。4、整型数据的溢出。三、实型数据1、实型常量表示。小数形式,指数形式e。2、实型变量分类。重要的两种float、double-观察数据表达范围+字节数+有效数字3、实型数据的舍入误差。四、字符型数据1、符常量表示。直接表示/转义表示(特殊的转义字符,一般字符也可以转义表示)。特殊转义字符对显示/打印的控制作用2,字符变量一1个字节,char关键词。讲授多媒体
3、字符数据的存储一ASCII码/二进制存储一C语言可以将字符看做很短的整数处理。4、字符串常量。"”括字符序列,尾部有’\0‘结束。五、数值型数据混合运算(转换为同类型运算)1、自动隐式转换。规则:(1)类型不同,转换为相同类型,然后运算(2)低类型向高类型转换(图)(3)赋值转换。“="右边类型=>左边类型,然后赋值例:表达式:10+'a'+1.5-8765.1234*'b';floata=3.14;inti=a;(4)强制类型转换。(类型)表达式。步骤三课堂提问讨论整型数据溢出例子,浮点数据舍入误差例子,给我们编程序的提示什么?步骤四课堂小结1、变量定义原则2、常用基本数据类型数据的常量表示、机内存储、变量分类,正确选择数据类型步骤五布置作业进入C编辑环境,按良好的程序设计风格输入例题,按步骤编译、运行、查看结果作业、讨论题、思考题:P19练习题ー、选择题二、填空题4)、5)、6)7)、P20三、改错题课后小结:
周次第2周时间2019年03月07日第1-2节or第3-4节授课方式(请打マ)理论课日讨论课ロ实验课ロ习题课口其他口课时安排2授课题目(教学章、节或主题):第二章数据类型、运算符和表达式第二节算术运算1、算术运算符2、运算法则教学目的、要求(分掌握、熟悉、了解三个层次):1、了解:C语言的丰富运算符,丰富的运算符可以构成灵活的表达式,了解C语言语句分类:控制语句,表达式语句,复合语句;2、掌握算术、赋值、逗号运算符及它们构成的表达式,握格式化输入/输出函数,常用其它输入/输岀函数的使用:3、熟悉运算符的优先级、结合性规律,表达式语句,复合语句的构成。教学重点:1、算术、赋值、自增/减运算符及它们构成的表达式2、运算符的优先级、结合性规律。3、表达式语句,复合语句的构成4、格式化输入/输出函数教学难点:1、运算符的优先级、结合性2、自增/减运算符的运算规律3、格式控制项的各种形式教学基本内容方法及手段第2章续ー、教学要点:复习上节课内容新课内容:步骤ー引言1、运算符:狭义的运算符一运算,广义的运算符一运算、操作。2、表达式:使用运算符将常量、变量、函数连接起来,构成表达式。3、C的运算符的分类。C语言运算符丰富,C语言丰富的运算符构成C语言丰富、灵活的表达式。本节主要介绍算术运算符(包括自增自减运算符)、赋值运算符、逗号运算符。步骤二讲授ー、算术运算符和算术表达式1、算术运算符(+、ー、・、/、%)(1)整除的结果为整数,结果向〇取整,实质就是舍去小数.讲授多媒体
(2)%,要求操作数均为整型。余数的符号与被除数符号相同。例如:-8%5=-3;8%-5=32、算术表达式注意:C语言算术表达式的书写形式ー数学表达式的书写形式区别。3、(算术)运算符的优先级与结合性(附录B)先按运算符的“优先级别”高低次序执行:优先级别相同,则按规定的“结合方向”处理。为了清晰起见可用圆括号“()”强制。例1:表达式a-b*c等价于a-(b*c)o例2:a-b+c,到底是(a-b)+c还是a-(b+c)?(b先与a运算还是先与c参与运算?)例3:分析x=y=z=3+5二、赋值运算符、赋值表达式1、赋值运算符、赋值表达式(1)赋值运算符(2)赋值表达式。一般形式:〈变量〉〈赋值符〉〈表达式〉(3)赋值表达式的求解过程:赋值+整个赋值表达式的值。例如:x=10+y;说明:(1)左变量(2)不具“等”含义(3)类型转换(4)赋值表达式值2、复合赋值运算符复合赋值表达式形式:变量〈双目运算符>=表达式等价:变量=变量<双目运算符》表达式例如:n+=l等价于n=n+l:x*=y+l等价于x=x*(y+l)3、赋值运算符、赋值表达式举例。(l)a=5(2)a=b=5(3)a=(b=4)+(c=3)(4)假如a=12,分析:a+=a-=a*a(答案:-264)三、自增、自减运算符单目运算符,使变量的值增1或减k如:++i,i++(等价i=i+l)-i,i•(等价<=>i=i-l)注意:(1)-(4);(前置运算):先自增、减,再参与运算:(后置运算):先参与运算,(整个表达式运算结束后)再自增、减。四、逗号运算符、逗号表达式逗号运算符(顺序求值运算符),逗号表达式的一般形式;表达式1,”表达式n步骤三课堂提问讨论a=3*5,a*4<=>?答:(a=3*5),(a*4)步骤四课堂小结1、算术、赋值、自增/减运算符及它们构成的表达式
2,运算符的优先级、结合性规律。步骤五布置作业仔细阅读附录B及其说明,掌握优先级规律。(经常查阅)作业、讨论题、思考题:P37ー、选择题课后小结:
周次第2周时间2019年03月8日第5-6节or第7-8节授课方式(请打い理论课ロ讨论课ロ实验课N习题课口其他口课时安排2授课题目(教当自章、节或主题):实验ー:熟悉C程序的运行环境通过运行简单的c程序,掌握VC环境的基本操作方法。教学目的、要求(分掌握、熟悉、了解三个层次):.掌握C语言的编译环境:.掌握在编译环境中新建、打开、编辑、保存、编译、连接和运行一个Cchengxu..掌握查看运行程序的基本操作。教学重点:C语言的编译环境教学难点:C语言的编译环境教学基本内容方法及手段ー、教学要点第一部分:练习:完成实训指导书上的实验・例1、例2、例3及思考题部分(注意成对输入,“”0{})第二部分:讲解针对学生练习中遇到的普遍问题进行讲解。第三部分:总结1、如果建立一个C源文件:有两种方法,ー是在编译器里创建,一是新建txt文档再修改后缀名。建议用第一种方法。2、在编译器环境下,C源文件一般会自动创建一个项目工程(工作空间),我们现在所做的程序都较小,ー个工程下包含一个源文件,在这个文件中包含main函数,而主函数的特点是有且仅有一个。所以当第一个程序在VC++6.0下编译、链接、执行后,需要创建第二个程序时,需要关闭工作空间,或关闭整个VC++6.0软件。这样确保每ー个程序里都只有一个main()入口函数。当然以后随着学习的加深,我们可以在ー个工程下创建多个文件,然后执行,只不过这多个文件里也只能有一个文件包含主函数3、C语言是ー门语言,它是我们用于和计算机交流的媒介。VC++6.0是工具,就类似于QQ,微信是聊天工具ー样。VC++6.0可以帮助我们用C语言和计算机进行交流。4、C语言大小写敏感。5、用户定义标识符:只能是数字、字母、下划线。而且不能以数字打头。我们在给变量起名字的时候一定要知名达意,这是ー个程序员的良好素养。6、Ascii码是美国标准字符交换集,这里面列出了常见字符与数字之间的对应关系,如A—65,a—97等。讲授多媒体
第四部分:练习实训指导书上的实验ー,作业、讨论题、思考题:实验指导书课后习题:编程题1课后小结:
周次田、国 メLI 2019年03月14日 第1-2节。r第3-4第3周 时间 せ节授课方式(请打わ理论课区讨论课ロ实验课ロ习题课口其他口课时安排2授课题目(教学章、节或主题):第三章简单程序设计第一节C语言语句第二节C语言程序结构简介第三节数据输入与输出.字符数据的输入输出.格式化输出函数printf用printf输出字符串用Printf输出字符串输出特殊字符教学目的、要求(分掌握、熟悉、了解三个层次):.掌握表达式语句的格式,理解表达式与表达式语句的区别。.熟练掌握字符的输入/出函数、格式输入/输出函数的使用方法。教学重点:表达式与表达式语句的区别教学难点:输入/出函数、格式输入/输出函数的使用方法教学基本内容法手方及段ー、教学要点复习上节课内容新课内容:步骤ー【导入案例】从键盘输入2个同学的姓名,性别,学号,英语、髙等数学、计算机的成绩信息,并计算出总分,并将其按照下图的格式输出到屏幕。3授Nane SexID English Hath ComputerSunkevin MLily F2010483 89.00 68.00 87.00 22010528 87.00 65.00 93.00 244.0145.0100【分析】c中没有专门的输入输出语句,输入输出操作通过调用系统提供的输入、输出函数实现,这样可以节省程序处理的时间。步骤二讲授ー、C语言语句C程序的基本组成单位是函数,而函数由语句构成。所以语句是C程序的基本组成成分。语句能完成特定操作,语句的有机组合能实现指定的计算处理功能。语句最后必须有一个分号,分号是C语句的组成部分。.变量声明语句如intx,y;.表达式语句如i++;如i=i+1;.空语句.复合语句如{t=x;x=y;y=t;}.控制语句二、C语言程序结构简介.对于ー个C语言的结构来讲:ー个程序由一个或多个源程序文件组成。2)函数是C程序的主要组成部分。3)ー个函数包括函数首部和函数体。4)程序总是从main函数开始执行的。5)程序应当包含注释。.变量的赋值(赋值表达式语句)赋值表达式;Total=m*pow(1+r,n);.数据的输入输出(函数调用语句)输入:从标准输入设备上输入数据到计算机内存输出:将计算机内存中的数据送到标准输出设备C语言中输入输出操作通过调用标准库函数来实现include"stdio.h"-ー在当前目录和TC指定的目录中找该文件include<stdio.h>-ー在由TC指定的文件目录中找该文件例题分析【例3-1】要求在屏幕上输出以下一行信息。ThisisaCprogram.分析:在主函数中,用printf函数原样输出以上的文字。编写程序:#include<stdio.h>〃这是编译预处理指令intmain() 〃定义主函数{ 〃函数开始的标志printf("ThisisaCprogramAn");〃输出所指定的一行信息return0; 〃函数执行完毕时返回函数值0)说明:C语言允许用两种注释方式:(1)以〃开始的单行注释。如上介绍的注释。(2)以/・开始,以・/结束的块式注释。【例3・2】求两个整数之和。编写程序:#include<stdio.h> 〃这是编译预处理指令intmain() 〃定义主函数( 〃函数开始inta,b,sum;〃本行是程序的声明部分,定义a,b,sum为整型变量a=123; 〃对变量a赋值b=456; 〃对变量b斌值sum=a+b; 〃进行a+b的运算,井把结果存放在变量sum中printf(Hsumis%d\n",sum);〃输出结果return0; 〃使函数返回值为〇)三、数据输入与输出.字符数据的输入与输出♦字符输出函数putchar(ch)输出ー个字符ch♦字符输入函数getchar()无参数函数值为从输入设备接收的字符#include<stdio.h>main()(charch;printf("PressakeyandthenpressEnter:n);ch=getchar();printf("YoupressedM);putchar(ch);putchar('\n');}2.格式化输出函数printf其中输出的格式包括:%d:按十进制整数形式输出变量的值%〇:按ハ进制整数形式输出变量的值%x:按十六进制整数形式输出变量的值%u 输出无符号整数变量%f:输出单精度(或双精度)浮点变量的值%e:按指数形式输出浮点变量的值
%g:输出f和e格式中宽度较小的格式,不输出无意义的。%c:输出字符变量%s:输出ー个字符串例题分析:如果:a=5,b=8,给出对应的输出结果printfC%d,%d\n”,a,b);printf(Ma=%d,b=%d\n,\a,b);printfC4%5d%5d\n,,,a,b);printfi^TurboC");3.格式化输入函数scanfscanf(格式控制字符串,地址表列);scanf(u%d,%ド,&a,&b);步骤三课堂提问讨论格式化输入和格式化输出函数的差别?作业、讨论题、思考题:P20、三、改错题课后小结:P38-39二、填空题周次第3周时间2019年03月15日第5-6节or第7-8节授课方式(请打い理论课ロ讨论课口实验课忖习题课ロ其他口时排课安2授课题目(教学章、节或主题):实验二:基本语法规则了解C程序中常见错误提示信息的意思,掌握调试c程序的基本方法,使用运算符和表达式。教学目的、要求(分掌握、熟悉、了解三个层次):先用10分钟左右导入需要复习的的内容第二次理论课知识点回顾:1、注释:所谓注释就是不参与编译的部分,写出来提示作用两种注释符号单行注释〃块注释(特点:不允许嵌套)2、所有的代码必须是英文状态下的输入中文,;空格英文,;空格出现错误信息:unknowncharacter80%就是输入状态出错3、写C程序的套路:四行代码4、成对出现的符号,成对写,不容易漏掉<>(){)5、学会调试程序出现error要修改出现warning先不理会,如果有error那么不会产生obj文件,查看错误信息,只看第一个6、编译:只查语法出错比如分号写掉了,或者输入法是中文状态的链接:将编译产生的obj文件和系统的库函数一起生成.exemain()程序的入口函数〃你好,这是我今天的第一个程序本次课主要内容:(全程用VC++6.0软件讲解课程,授课顺序不拘泥与教材知识点顺序,主要以案例为导向,但每章的小结部分师生会共同梳理教材知识点)第一部分:数据类型的概念及其定义方式1什么是数据类型?定义数据类型是为了去内存里面开辟存储空间最常用的存储单位是字节最小的是单位比特bit(1)整型:int(带符号的,正负数均可)4个字节(short短整型2个字节,long长整型4个字节)(2)实型:flaot单精度double双精度4个字节8个字节分析解读:虽然float和int都在内存里开辟4个字节,但是由于float是实型方式存储(尾数和阶码),int是二进制整型方式存储举例:在计算机的世界里,5绝对不等于5.0(3)字符型:char单个字符!个字节分析解读:字符简单来理解就是字母和符号特别提醒:C语言里面没有字符串这种数据类型.数据类型符号(记忆点)整型:int实型:float,double(常用)字符型:char.数据类型怎么用?分析解读:数据类型符,传递给计算机的概念是确定内存单元的范围。定义整型变量:inta定义实型变量:floatb或者doubled定义字符型变量:chare第二部分:变量和常量.变量起名字的语法规则:只能数字、字母、下划线三种符号组成,而且不能以数字开头非必要因素:名字要起的有意义举例:abc 正确abl23 正确_456abc 正确456_abc错误.常量整型常量:5 -10实型常量:1.2 -20.7字符型常量:提到ASCII码常见的几组对应关系:'a'-97...'A'-65...0-48....变量和常量的区别变量即在程序运行过程中,可能发生值变化的量。常量即在程序运行过程中,其值不发生变化的量。.字符常量,为了和数值区分,要加上单引号如:0+2=2'0'+2=50第三部分:应用举例和分析案例需求描述:有一个圆,圆的半径是2,请用C语言来描述周长和面积的公式。分析过程:变量有几个?半径起名字r周长起名字c面积起名字定义变量:intrdoublecdoublesC语言描述公式:c=2*3.1415926立s=3.1415926*r*r#include<stdio.h>voidmain(){〃函数体)补充知识:12默认是十进制常量012是八进制 〇是八进制的前导符0x12是十六进制Ox或在0X都是十六进制的前导符(十六进制0-9abcdef)字母是为了不引起歧义,所以0-9后面不再出现双位数而是用字母代替第四部分:学生实践实验指导书P5二)编程题2.编程实现,两个数的加减乘除四则运算。注意除运算的特点。作业、讨论题、思考题:回顾C语言的数据类型,运算符和表达式。课后小结:
周次第4周时间 2019年03月21日第1-2节or第5-6节授课方式(请打い理论课日讨论课ロ实验课ロ习题课口其他口课时安排2授课题目(教学章、节或主题):第三章简单程序设计第三节数据输入与输出.格式化输入函数scanf.程序举例教学目的、要求(分掌握、熟悉、了解三个层次):.掌握格式化输入函数scanf.进ー步通过案例熟悉格式化输入和输出函数教学重点:格式化输入函数scanf教学难点:格式化输入函数scanf教学基本内容方法及手段ー、教学要点步骤一【课前回顾】.上节课我们学习的格式输出函数scanf有哪些?.回顾一下我们上节课案例?步骤二讲授ー、格式输入函数scanfscanf(格式控制字符串,地址表列);scanf("%d,%f',&a,&b);说明:在函数中,可以指定每个数据的宽度;(此时小数点也占据ー个宽度;不能指定所输入数据的精度:%*md表示从输入的数据中跳过m个宽度的数据;注意;格式控制字符和后面输入数据ーー对应;对后面的变量一定取地址符;当其中没有分隔符时,一般以回车、空格或Tab键分隔;输入时,遇(回车、空格、宽度结束、非法输入)结束;格式控制符号之外的符号必须原样输入;使用提示;函数printf和scanf格式多变,请大家在实际写程序中,以最常用的,最规范的形式来书写,并尽量的要考虑好待处理数据的数据类型,做到格式控制和类型匹配。#include<stdio.h>讲授多媒体
main()(inta;floatb;scanf(n%d,%f;&a,&b);printf(na=%db=%f',a,b);}注意:常见错误>scanf("%d,%f\nM,&a,&b);>scanf("%d,%f”,a,b);>scanf("%7.2f',&a);输入数据时,遇以下情况时该数据认为结束>遇空格、回车、TAB键>遇宽度:%3d>遇非法输入二、输入数据的格式控制举例#include<stdio.h>main()(inta,b;printf("Pleaseinputaandb:");scanf("%d%d",&a,&b);printf("a=%d,b=%d,a+b=%d\n",a,b,a+b);)问题1:当要求程序输出结果为a=12,b=34时,用户应该如何输入数据?问题2:当限定用户输入数据以逗号为分隔符,即输入数据格式为:12,34/时,应修改程序中的哪条语句?怎样修改?问题3:语句scanf("%d%d",&a,&b);修改为scanf("a=%d,b=%d",&a,&b);时,用户应该如何输入数据?问题4:限定用户输入数据为以下格式:1234Z同时要求程序输出结果为:a=12,b=34问题5:限定用户输入数据为以下格式:12/34/同时要求程序输出结果为a="12",b="34”应如何修改scanf和printf?三、C格式符存在的问题及其解决#include<stdio.h>
main()(int data1,data2,sum;charop;printf(uPleaseentertheexpressiondatal+data2\nn);scanf(H%d%c%dn,&datal,&op,&data2);printf(u%d%c%d=%d\n",datal,op,data2,datal+data2);)四、顺序结构程序设计举例顺序结构程序设计,是C语言的基本结构,程序运行时按照语句编写的顺序依次执行,语句的执行次序和它们的语句顺序一致,在顺序结构中,每个语句都被执行ー次,而且只被执行一次。习题1:输入三角形的三边长,求三角形面积。分析:三边为a,b,c,面积area2=s(s-a)(s-b)(s-c),其中s=(a+b+c)/2程序:#include<math.h>main(){floata,b,c,s,area;sacnf(%f,%f,%f',&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf(lla=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n,,,a,b,c,s);printf("area=%7.2f\n”,area);)习题2:求ax2+bx+c=0方程的根。a,b,c由键盘输入,设b2-4ac>0。作业、讨论题、思考题:P39三编程题和改错题1)课后小结:
周次第4周时间2019年03月22日第5-6节or第7-8节授课方式(请打マ)理论课ロ讨论课ロ实验课日习题课口其他口时排课安2授课题目(教学章、节或主题):实验ニ:顺序结构程序设计掌握输入、输出语句的使用方法和常用格式控制符的特点教学目的、要求(分掌握、熟悉、了解三个层次):.初步培养解决问题的编程意识和独立调试程序的能力,理解数据测试的必要性.掌握C语言的数据类型.熟悉关系运算符和自增、自减运算符的含义和使用方式教学重点:自增、、自减运算符的含义和使用方式教学难点:自增、自减运算符的含义和使用方式教学基本内容方法及手段ー、实验目的.初步培养解决问题的编程意识和独立调试程序的能力,理解数据测试的必要性。.掌握C语言的数据类型,熟悉如何定义ー个数据类型,以及对它们赋值的方法,了解常见数据类型在输入输出时所使用的格式控制符。.学号使用C语言的有关算术运算符以及表达式,特别注意自增、自减运算符的含义和使用方式二、实验要求.提前复习相关内容。.实验数据要求从键盘输入。.在VC6.0++上完成程序的编辑、编译和运行,获得程序结果。结果如果有误,应该找出错误原因,清楚错误是语法还是逻辑错误,并改正。.掌握输入和输出函数的操作和格式符的使用。三、实验内容实验指导书P7-P9【例1】字符型数组的定义和输出。【例2】编写程序完整摄氏温度和华氏温度的转换。【例3】自增、自减运算符。讲授多媒体作业、讨论题、思考题:实验指导书P9(二)编程题1课后小结:
周次第5周时间2019年03月28日第1-2节or第3-4节授课方式(请打い理论课日讨论课ロ实验课ロ习题课口其他口课时安排2授课题目(教学章、节或主题):第四章选择结构程序设计第一节关系运算第二节逻辑运算第三节选择结构.选择结构的概念.选择结构的用法第四节if语句if结构if…else结构if嵌套语句教学目的、要求(分掌握、熟悉、了解三个层次):.了解关系运算和逻辑运算.掌握选择结构的概念.熟练掌握if-else结构和if嵌套结构教学重点:if-else结构和if嵌套结构教学难点:if-else结构和if嵌套结构教学基本内容方法及手段ー、教学要点步骤ー引言.选择结构(分支结构):根据条件,在几个可选择分支中进行选择。.选择结构最重要的是“选择结构的条件”。C语言中的条件是采用能产生逻辑值“真、假”的关系运算和逻辑运算来表示的。步骤二讲授ー、if语句用if语句可以构成分支结构。它根据给定的条件进行判断,以决定执行某个分支程序段。C语言提供了三种形式的if语句:if语句的简单形式,有时也称单分支结构,它的形式是:if(表达式)语句if语句用来判断给定的条件是否满足,根据结果(真或假)来选择执行相应的语句。它的执行过程是,如果表达式为真(非。),则执行其后所跟的语句,否则不执行该语句。if-else结构讲授多媒体
if-else型分支有时也称双分支结构,它的形式是:if(表达式)语句1else语句2它的执行过程是,如果表达式的值为真(非〇),就执行语句1,否则,执行语句2。3、if-else-if语句if-else-if形式是条件分支嵌套的ー种特殊形式,经常用于多分支处理。它的一般形式为:if(表达式1)语句1elseif(表达式2)语句2elseif(表达式3)语句3,,,,elseif(表达式n)语句nelse语句n+1它的执行过程是,如果表达式1为真,则执行语句1;否则,如果表达式2为真,则执行语句2,否则,如果表达式n为真,则执行语句n,如果n个表达式都不为真,则执行语句n+1。二、if语句的嵌套在if语句中又包含ー个或多个if语句称为if语句的嵌套。一般形式如下:其一般形式可表示如下:if(表达式)if语句或者为:if(表达式)if语句elseif语句在嵌套内的if语句可能又是if-else型的,这将会出现多个if和多个else重叠的情况,这时要特别注意if和else的配对问题。为了避免这种二义性,C语言规定,else总是与它前面最近的if配对。最好使内嵌if语句也包含else部分,这样if的数目和else的数目相同,从内层到外层ーー对应,不致出错。如果if与else的数目不一样,应尽量把嵌套的部分放在否定的部分,或为实现程序设计者的企图,可以加
花括弧来确定配对关系。步骤三课堂提问讨论步骤四课堂小结三种形式的选择结构的特点、基本形式,总结If语句学习中的难点。步骤五布置作业1、写程序,判断某一年是否是闰年。2、求一元二次方程ax2+bx+c=0的根。作业、讨论题、思考题:P56练习题ー、选择题课后小结:
周次第5周时间 2019年03月29日第5-6节or第7-8节授课方式(请打い理论课ロ讨论课ロ实验课尺习题课ロ其他口2时排课安授课题目(教学章、节或主题):实验三:选择结构程序设计(1)学会正确使用逻辑运算符和逻辑表达式,掌握if语句的使用方法。教学目的、要求(分掌握、熟悉、了解三个层次):掌握if语句的使用方法教学重点:掌握if语句的使用方法教学难点:掌握if语句的使用方法教学基本内容方法及手段第一部分:三大结构概述三大结构:顺序、选择(分支)、循环选择结构主要用于:处理软件开发中的业务逻辑第二部分:关系运算符回顾知识:算术运算符:+-*/%新知识:关系运算符:0<=(正确)=<(错误)>=(正确) =>(错误)==两个等号,注意和赋值=的区别!=不等于(1)关系运算符的作用主要用于处理该关系是否成立得到的是逻辑值(假false,真true)!补充课外知识:int、float>doubleヽchar1bool布尔类型,全称是boolean(2)举例1>2假1<2真1<=2真1==2假1!=2真(3)数值与逻辑值的转换关系数值ー逻辑值0 假非零 真逻辑值ー数值真 1假 〇第三部分:案例分析及解读讲授多媒体
需求描述:如果今天心情好,我就去上课,如果今天心情不好,我就去自习。第四部分:选择结构中的if语句(学习新知识)(1)选择结构的第一个流程控制语句if代表如果(2)基础语法:if(){1单独出现的情况(变量/常量/表达式/关系表达式/逻辑表达式)(a/10/l-l/l<2/&&)归根结底:(逻辑值,真假的判断分析:如果判断出小括号的逻辑值是“真”那么会执行{}部判断出是“假”不执行(}部分案例:#include<stdio.h>voidmain()(intx;printf("如果你心情好,你就按1:\n");printf("如果你心情较好,你就按2:\n");scanf("%d",&x);//1==!真执行{}部分if(x==1){printf("我就去上课\n");}〃程序继续执行,1!=1假if(x==2){printf("上自习\n");})(3)if...else结构最常见的用法if(){执行语句!!else{执行语句2}分析:如果〇判断出逻辑值是“真”那么执行语句1,else表示“否则”,即为“假”时执行语句2案例:#include<stdio.h>voidmain()(intx;printf("如果你心情好,你就按1:\n");scanf("%d",&x);//1==!真执行{}部分if(x==1){printf("我就去上课\n");}else{printf("我去上自牙,);}
〃程序继续执行,1!=1假)注意:if...else它一定是成对出现的if可以单独出现else不允许单独出现,前面必须匹配一个最近的没有配对的if第四部分:案例分析及解读需求:〃小胖机器人v1.0版本/Z你对它说1,今天是星期一/Z你对它说2,今天是星期二/Z你对它说3,今天是星期三〃你对它说除了123之外的数,它会〃回复你:当前指令无法执行#include<stdio.h>voidmain()(intx;printf("请输入1,2,3\nl代表星期ー,2代表星期二,3代表星期三\n");scanf("%d",&x);if(x==l||x==2||x==3)(if(x==2){printf("今天是周二");}if(x==l){printf("今天是周一”);)if(x==3){printf(吟天是周三");})else{printf("该指令无法识别\n");)}第六部分:实操实验指导书P10-15例1一例3作业、讨论题、思考题:无课后小结:
周次第6周时间2019年04月04日第1-2节or第3-4节授课方式(请打い理论课风讨论课ロ实验课ロ习题课口其他口时排课安2授课题目(教学章、节或主题):第四章选择结构程序设计第五节switch语句.switch结构.嵌套教学目的、要求(分掌握、熟悉、了解三个层次):.熟练掌握选择结构中的switch语句.掌握嵌套教学重点:选择结构中的switch语句教学难点:选择结构中的switch语句教学基本内容方法及手段ー、教学要点步骤ー引言.复习关系运算、逻辑运算、if语句.引入多分支结构以及switch开关语句步骤二讲授ー、switch-case语句(多分支选择语句/开关语句)switch语句的一般形式如下:switch(表达式)(case常量表达式1:语句1case常量表达式2:语句2,,,,case常量表达式n:语句ndefault:语句n+1}switch语句的执行过程是:根据switch后面的表达式的值,找到某个case后的常量表达式与之相等时,就以此作为ー个入口,执行此case后的语句,及以下各个case或default后的语句,直到switch的结束或遇到break语句为止。若所有的case中的常量表达式的值都不与switch后的表达式的值匹配,则执行default的语句。二、switch-case说明⑴switch后面括弧内的“表达式”,ANSIC标准允许它为任何类型。(2)当表达式的值与某ー个case后面的常量表达式的值相等时,就执行此讲授多媒体
case后面的语句,若所有的case中的常量表达式的值都没有与表达式的值匹配的,就执行default后面的语句。(3)每ー个case的常量表达式的值必须互不相同,否则就会出现互相矛盾的现象(对表达式的同一个值,有两种或多种执行方案)。(4)各个case和default的出现次序不影响执行结果。例如,可以先出现“default:,,",再出现"case' 然后是"case'A':,,"。(5)执行完一个case后面的语句后,流程控制转移到下一个case继续执行。"case常量表达式”只是起语句标号作用,并不是在该处进行条件判断。在执行switch语句时.根据switch后面表达式的值找到匹配的入口标号,就从此标号开始执行下去,不再进行判断。因此,应该在执行一个case分支后,使流程跳出switch结构,即终止switch语句的执行。可以用一个break语句来达到此目的,将上面的switch结构改写如下:(6)多个case可以共用ー个执行语句,如:输入年份和月份,给出这个月有几天。(7)在使用switch语句时注意case和后面的表达式之间要有空格,如果没有空格在编译时不会发现错误,但运行时结果不对。三、分支程序例子例4-5运输公司对用户计算运费。步骤三课堂提问讨论步骤四课堂小结switch-case喑句步骤五布置作业给出工资的提算公式,根据利润计算工资。作业、讨论题、思考题:P56-57二、思考题课后小结:
周次第6周时间2019年04月05日第5-6节or第7-8节授课方式(请打い理论课ロ讨论课ロ实验课尺习题课ロ其他口时排课安2授课题目(教学章、节或主题):实验三:选择结构程序设计(2)学会正确使用逻辑运算符和逻辑表达式,掌握switch语句的使用方法。教学目的、要求(分掌握、熟悉、了解三个层次):正确使用逻辑运算符和逻辑表达式,掌握switch语句的使用方法。教学重点:switch语句的使用方法教学难点:switch语句的使用方法教学基本内容方法及手段ー、实验目的.了解C语言的逻辑量的表达方法。.掌握多分支选择语句 switch语句。.正确实验break语句和default语句,.学习程序调试的方法。二、实验内容实验指导书例题5:输入某学生的成绩,经处理后,给出学生的等级,等级分类如下:90分及以上:A80-90分(含80):B70-80分(含70):C60-70分(含60):D60分以下:E先用if嵌套方式,而后改为switch跳转方式。讲授多媒体作业、讨论题、思考题:实验指导书P16编程题1ヽ2课后小结:
周次第7周时间 2019年04月11日第1-2节or第3-4节授课方式(请打4)理论课日讨论课ロ实验课ロ习题课口其他口课时安排2授课题目(教学章、节或主题):第五章循环结构程序设计第一节for结构的简单应用1、循环体的简单重复2、循环体中使用循环变量3、求出数列的和4、求出数列的乘积5、用循环输出字符序列第二节for循环结构的流程1、for循环结构的一般形式2、for循环结构的流程教学目的、要求(分掌握、熟悉、了解三个层次):.熟练掌握for结构.熟悉for循环结构的一般形式.熟悉for循环结构的流程教学重点:for循环结构的流程教学难点:for循环结构的流程教学基本内容方法及手段[教学内容1—.for语句的基本格式1、一般格式for(表达式1;表达式2;表达式3)(循环体语句;循环体语句;}说明:(1)表达式1为赋初值表达式,一般为赋值表达式,也可以是其他表达式,用来对循环控制变量赋初值:(2)表达式2为循环条件表达式,一般为关系表达式或逻辑表达式,是控制循环继续的条件:
(3)表达式3为增值表达式,一般为赋值表达式或逗号表达式,用来修改循环变量的值以使得循环趋于结束:(4)循环体语句可以是ー个语句或复合语句,也可以是空语句。.执行过程(1)计算表达式1的值;(2)计算表达式2的值,如果其值为“真”,则执行循环体,否则跳出循环:(3)计算表达式3的值,转回第(2)步重复执行。整个for循环过程中,表达式1只计算ー次,表达式2和表达式3则可能计算多次。循环体可能多次执行,也可能一次都不执行。.关于for循环的讨论for语句中表达式1、表达式2、表达式3都可以省略,甚至3个表达式可同时省略,但起分隔作用的“:”不能省略。(2)若省略表达式1,即在for语句里不对循环变量赋初值,则应该在for语句前给循环变量赋初值。例如:for(i=l;i<=100;i++)sum=sum+i;等价于:i=l;for(;i<=100;i++)sum=sum+i;(3)若省略表达式2,即不进行循环继续条件的判断,循环将无终止地执行下去,此时一定要在循环体语句中设定退出循环的条件。例如:for(i=l;;i++)sum=sum+i://死循环,无法结束循环可改为:for(i=l;:i++)if(i>100)break;//break语句为强制退出循环语句sum=sum+i;)(4)若省略表达式3,即不在此位置进行循环变量的修改,则一定要在循环体语句中加入改变循环变量值的语句,使循环趋向结束。例如:for(i=l;i<=100:){sum=sum+i:i++;)(5)若省略表达式1和表达式3,例如:for(;i<=100;)(sum=sum+i;i++;} 等价于:while(i<=100)(sum=sum+i;i++;)
(6)三个表达式都可以省略,但“;”不能省略。例如:for(;;)等价于:while(1)二、for语句的应用【例5-6]输出50〜100之间不能被3整除的数。将50〜100之间的数逐个判断(判断其能否被3整除,若不能,则输出;否则,不处理)。设变量i表示待处理的数,对i的判断采用选择结构实现,i不能被3整除的条件是“i%3!=0”。循环结构的组成为:表达式1(给循环变量赋初值):i==50S表达式2(循环继续条件):i<=100;表达式3(循环变量的增值):i++;循环体:判断i能否被3整除并进行相应的操作。作业、讨论题、思考题:P79练习题ー、选择题5),二、思考题4)、5)课后小结:
周次第7周时间2019年04月12日第5-6节or第7-8节授课方式(请打い理论课ロ讨论课ロ实验课区习题课ロ其他口时排课安2授课题目(教学章、节或主题):实验四:循环控制(1)对for循环语句的形式、功能进行分析应用。教学目的、要求(分掌握、熟悉、了解三个层次):对for循环语句的形式、功能进行分析应用教学重点:for循环语句的使用教学难点:for循环语句的使用教学基本内容方法及手段ー、实验目的.了解for循环的使用场景.掌握for循环的形式.掌握for循环的功能.能够将for循环和选择语句结合起来使用二、实验内容实验指导书P17的例1三、实验强化训练实验指导书P21(二)编程题1.2.3用for语句实现。讲授多媒体作业、讨论题、思考题:无课后小结:
周次第8周时间2019年04月18日第1-2节or第3-4节授课方式(请打い理论课风讨论课ロ实验课ロ习题课口其他口时排课安2授课题目(教学章、节或主题):第五章循环结构程序设计第三节while结构与dowhile结构1、格式2、应用举例教学目的、要求(分掌握、熟悉、了解三个层次):.熟练掌握while结构和dowhile结构.了解while结构和dowhile结构的差别教学重点:while结构和dowhile结构教学难点:while结构和dowhile结构教学基本内容方法及手段ー、教学要点【教学导入】回顾for循环结构知识点【教学内容】ー、循环嵌套.ー个循环体中又包含了另ー个完整的循环结构,则称为多重循环或循环的嵌套。在C语言中,while语句、do-while语句、for语句都可以相互嵌套,只要符合C语言的语法即可。.案例【例5-8]分析下列程序的运行结果及循环的执行过程。#include<stdio.h>voidmain()inti,j;floatsum=0;for(i=l;i<=5;i++){for(j=l;j<=i;j++)printf("*");printf("\n");})该程序为双层的循环嵌套语句,输出ー个由“”组成的直角三角形图形,外循环i的变化规律为1、2、3、4,用于控制输出图形的行数,内循环j的变化规律为1〜i,用于控制每行输出“*”的数量。i=l,j=l;i=2,j=l〜2;i=3J=l〜3;i=4,j=I〜4;i=5,j=l〜5。每行输出完后,加一个换行语句。二、break语句、continue语句1.break语句break语句通常用在循环语句和switch语句中,当break用于switch中时,可使程序跳出switch结构。当break语句用于while、do-while、for循环语讲授多媒体
句中时,可使程序终止循环而执行循环后面的语句。语法:break;说明:break语句可以改变程序的控制流。break语句通常在循环中与条件语句ー起使用。若条件值为真,将跳出循环,控制流转向循环后面的语句。(3)如果已执行break语句,就不会执行循环体中位于break语句后的语句。(4)在多层循环中,ー个break语句只向外跳ー层。【例5-10]统计从键盘输入的若干个字符中有效字符的个数,以换行符作为输入结束。有效字符是指第一个空格符前面的字符,若输入字符中没有空格符,则有效字符为除了换行符之外的所有字符。假设输入的字符为ch,有效字符个数为count,先判断ch是否为换行符,若不是,则判断该字符是否为空格符,若不是空格符则把有效字符数count加1.若是空格符则程序终止循环。2.continue语句continue语句的作用是跳过循环体中剩余的语句而强行执行下一次循环。continue语句只用在while、do-while、for等循环体中。這法:continue;说明:(1)continue语句只能用在for、while、do-while等循环体中,常与if条件语句ー起使用,用来终止本次循环,提前进入下一次循环,从而加速整个循环过程。(2)对于while和do-while循环,continue语句执行之后的动作是while中关于表达式的条件判断;对于for循环,随后的动作是for(语句1;语句2:语句3)中关于语句3的变量更新。continue语句和break语句不同,它不终止循环的运行,而是结束本次循环。break语句则是强制终止整个循环过程。【例5-11】求输入的10个整数中正数的个数及其平均值。假设从键盘输入的整数为num»正数的个数为count,正数的总和为sum。若numW0,则正数的个数n不增加且不计入总和,得重新输入数据;否则count的值加1,总和为:sum=sum+num。平均值为:sum/count>)(1)如果numWO,执行continue语句,结束本次循环,即跳过循环体中剩余的语句count++;sum+=num;〇只有不满足num<0时,オ执行count++;sum+=num;语句。(2)从逻辑上讲,改变if语句条件表达式所表示的条件,就可以不需要使用continue语句。可以考虑把上述程序段用if语句实现。【小结】循环结构通常是程序的一部分,与选择结构相比,多了“重复执行”的内容,故循环的结束条件、循环的次数是否正确很重要。循环结构的程序设计步骤1、分析出程序的循环控制因素以及多个循环控制因素之间的关系。2、分析出正确的循环次数和循环结束条件。3、确定开始循环前的状态(初始值)。
4、设计能满足所有条件的一次循环的算法。一般情况下,首先分析循环变化的内容,如果循环变化的内容是关联的,则用同一个循环来控制,如果循环变化的内容是不关联的,则这些变化的内容应由多个循环来控制。即嵌套的循环。作业、讨论题、思考题:教材P79ー、选择题1)、2)、31二、思考题2)课后小结:周次第8周时间2019年04月19日第5-6节or第7-8节授课方式(请打い理论课ロ 讨论课ロ实验课日习题课口其他口课时安排2授课题目(教学章、节或主题):实验四:循环控制(2)对while结构与dowhile结构循环语句的的形式、功能进行分析应用。对三种形式进行分析、比较,掌握它们的共同之处及其特点。教学目的、要求(分掌握、熟悉、了解三个层次):对while结构与dowhile结构循环语句的的形式、功能进行分析应用教学重点:while结构与dowhile结构循环语句的使用。教学难点:while结构与dowhile结构循环语句的使用。教学基本内容方法及手段ー、教学要点ー、实验目的.了解while结构与dowhile结构的使用场景.掌握while结构与dowhile结构的形式.掌握while结构与dowhile结构的差别和功能二、实验内容实验指导书P1?的例2、3,4三、实验强化训练实验指导书P21(二)编程题1.2.3用while结构与dowhile语句实现。讲授多媒体作业、讨论题、思考题:1课后小结:
周次第9周时间2019年04月25日第1-2节or第3-4节授课方式(请打い理论课风讨论课ロ实验课ロ习题课口其他口时排课安2授课题目(教学章、节或主题):第六章数组第一节ー维数组第二节二维数组教学目的、要求(分掌握、熟悉、了解三个层次):.ー维数组、二维数组的定义,元素引用及初始化方法.字符数组的定义与初始化.字符串输入、输出方法及常用的字符串处理函数的使用.简单的算法设计(排序,查找等算法)教学重点:ー维数组的使用教学难点:ー维数组、二维数组的使用教学基本内容方法及手段ー、教学要点【导入案例:大量数据的存储及处理】完成10个学生信息的输入(学号,性别,英语、高等数学、计算机考试成绩),求出每个同学的考试平均分,并将所有同学信息按照格式输出。分析:若使用一般变量对案例中的数据进行处理,将需要定义10个变量存储性别,10个变量存储学号,10个变量存储英语成绩,10个变量存储数学成绩,10个变量存储计算机成绩,10个变量存储总分,总共至少包含60个变量,很显然用常规的思路处理是不太合适的,该如何完成这些大量的有一定关联的数据存储呢?在前面的章节中,当处理的数据个数很少时,会想到定义几个变量来存储这些数据。但当需要处理的数据很多(几十、上百甚至上万个数据)时,不可能ーー去定义那么多变量来处理。例如,若需要将100个同学的计算机考试成绩保存下来,此时去定义100个变量来存储这些数据是不明智的。【解决方案】对于存储大量的、相同意义的数据使用数组(Array)最为合适。【教学内容】ー、一维数组1.一维数组的定义方法:数组类型数组名[数组长度]如:inta[5];floatscore[66];charstr[100];1).数组类型:可以是前面介绍的所有的数据类型,也可以是后面将介绍的讲授多媒体
组合类型;.数组名:命名规则同于前面介绍的变量的命名规则;.数组长度:表示数组内元素个数,必须是整形常量或表达式,不能是变量。.ー维数组元素的引用方法:数组名[元素下标]如:a[3],score[5],str[10];.ー维数组元素的初始化方法:数据类型数组名[常量表达式]={初始化数据)主要包含以下情形:1、定义数组时,对全部元素赋值:intal[5]={1,2,3,4,5);2、对部分元素赋值:inta2[5]={l,2};3、若所有元素赋值为。,可使用如下方法:inta3[5]={0,0,0,0,0};也可以使用:inta3[5]={0);4、若要对数组的全部元素初始化,则可省略数组说明中的大小。inta4[]=(1,2,3,4,5);例1:从键盘动态输入10个整数,然后将10个数据顺序输出;例2;从键盘动态输入10个整数,然后将10个数据前后交换存放;二、二维数组.二维数组的定义当存储全班5个同学的总分时,可以定义intsum[5]来存放,那么现在若需要存储5个同学4门考试的分数时,可以考虑使用二维数组intscores[5][4]来存放。该二维数组可以理解成由5个ー维数组构成,其中每个ー维数组包含有4个元素,在内存中,二维数组以行为顺序进行存放,即先存放第一行的第ー个元素,再一行的第二个元素,以此类推……方法:数组类型数组名[常量表达式ー]I常量表达式二I如;inta[5][3];floatscore[5][4];charstr[3](100];.二维数组的引用方法:数组名[行标][列标]如:a[3][0],score[2][3],str[2][10];.二维数组元素的初始化方法:分行进行初始化数据类型数组名[常量表达式ー][常量表达式二]={{},{},{}};主要包含以下情形:1)、定义数组时,对全部元素赋值分行赋值
inta[3][4]={{l,2,3,4},{5,6,7,8},{2,3,4,5});也可以:inta[3][4]={1,2,3,4,5,6,7,8,2,3,4,5);2)、对部分元素初始化:inta[3][4]={{l,4},{0,5}};3)、在不产生歧异的情况下,可以省略第一维长度的说明inta[][4]={{1,2,3,4},{5,6,7,8},{2,3,4,5));例3:定义ー个3行4列的整型数组,数据从键盘动态输入,最后按照行列的格式将该数组元素输出;【教学反思】字符数组和字符串和我们学习的数组有什么差别?作业、讨论题、思考题:P107练习题课后小结:
周次第9周时间2019年04月26日第5-6节or第7-8节授课方式(请打い理论课ロ讨论课ロ实验课区习题课ロ其他口时排课安2授课题目(教学章、节或主题):实验五:ー维数组(1)掌握ー维数组的定义、赋值和输入输出的方法。教学目的、要求(分掌握、熟悉、了解三个层次):掌握ー维数组的定义、赋值和输入输出方法。教学重点:ー维数组的定义和使用。教学难点:ー维数组的定义和使用。教学基本内容方法及手段ー、实验目的.掌握ー维数组的定义、赋值和输入输出的方法。.掌握ー维数组的使用。.掌握ー维数组相关的算法。二、实验内容实验指导书P22-24例1.计算长方形的体积。讲授例2.在键盘上输入N个数,试编制程序使该数组中的数按照从大到小的次序排列。例3.在键盘上输入一个五位数,对此证书中的五个数值进行从大到肖的排序,形成一个新的五位数,输出这个数。多媒体作业、讨论题、思考题:课后小结:
周次第10周时间2019年05月02日第1-2节or第3-4节授课方式(请打い理论课风讨论课ロ实验课ロ习题课口其他口时排课安2授课题目(教学章、节或主题):第六章数组第三节字符数组1、字符数组的定义与引用;2、字符数组的初始化;3、用字符数组来存放字符串;4、字符数组的输入和输出;5、用于字符串处理的函数;6、字符数组应用举例教学目的、要求(分掌握、熟悉、了解三个层次):.熟练掌握字符数组的定义及使用.掌握字符串数组的应用教学重点:字符数组和字符串数组的使用教学难点:字符数组和字符串数组的使用教学基本内容方法及手段ー、教学要点【教学内容】ー、字符数组.字符数组的定义方法:ー维;char数组名[数组长度]二维:char数组名[行数][列数].字符数组的初始化方法:char数组名[数组长度]={初始化的ー个ー个字符}如:charstr口0]={'b',’0’,'y'};.字符数组元素的引用方法:ー维:数组名[下标]二维:数组名[行数][列数]字符数组就是类型为char型的数组,之前介绍的ー维、二维数组的定义、初始化和元素引用都可以直接使用。二、字符串和字符数组1.字符串的存储字符串是由"”扩起来的以、0结束的零个或多个字符序列,如“welcome”在讲授多媒体内存的存放为:WeC□me\0C语言没有提供专门的字符串类型,对字符串采用的思想是将字符串作为字符数组来处理,因此可以用如下方式对字符数组初始化:charstr口O]='*welcome”;.字符数组的输入输出输入可以有以下方法:用循环结合%c使用;scanf函数结合%s使用:调用gets函数。输出可以有以下方法:用循环结合%c使用;printf函数结合%s使用:调用puts函数。.常用的字符串处理函数1)、strcat(strl,str2)〃字符串连接函数功能:把字符串str2接到字符串strl的后面,结果较长的新的串放在字符串1中。2)、strcpy(strl,str2)〃字符串复制函数功能:将字符串2拷贝到字符数组1中去。3)、strlen(str)//求字符串长度功能:求字符串str有效字符的个数。4)、strcmp(strl,str2)〃字符串大小比较函数功能:比较字符串1和字符串2的大小。例4:自己编写程序实现函数strcat的功能:例5:输入10个整数,求出最大值并将其输出;例6:从键盘输入10个整数,用冒泡法对其排序后按照从小到大输出输出:例7:从键盘输入10个整数,在其中查找某一指定的元素是否存在,若存在,输出其位置,若不存在,输出提示结果。(假设10个数据不重复)例8:有一个3X4的矩阵,编程求出每行中的最大元素及其所在的行号和列号。例9:找出3个字符串中最大的那个字符串。作业、讨论题、思考题:教材P108-pl10跟二位字符有关的习题。课后小结:
周次第10周时间2019年05月03日第5-6节or第7-8节授课方式(请打い理论课ロ讨论课ロ实验课リ]习题课ロ其他口时排课安2授课题目(教学章、节或主题):实验五:二维数组(2)掌握二维数组的定义、赋值和输入输出的方法。教学目的、要求(分掌握、熟悉、了解三个层次):掌握二维数组的定义、赋值和输入输出的方法。教学重点:二维数组的定义、赋值和输入输出的方法。教学难点:二维数组的定义、赋值和输入输出的方法。教学基本内容方法及手段ー、教学要点ー、实验目的.掌握二维数组的定义、赋值和输入输出的方法。.掌握二维数组的使用。.掌握二维数组相关的算法。二、实验内容实验指导书P26-27例4.将一个2*3的矩阵行列互换,计算并输出其转置矩阵。例5.有二维数组a[3][3]={{54,3.2,8},{6,4,3.3),{7,3,1.3)),将数组a的每ー行元素均除以该行上对角线的元素,按行输出新数组。例6.输入一串字符串,计算其中空格的个数。讲授多媒体作业、讨论题、思考题:实验指导书P29(二)编程题课后小结:
周次第11周 时间2019年05月09日第5-6节or第7-8节授课方式(请打い理论课N讨论课ロ实验课ロ习题课口其他口课时安排2授课题目(教学章、节或主题):第七章函数第一节库函数第二节函数的定义和返回值第三节函数的调用教学目的、要求(分掌握、熟悉、了解三个层次):.了解函数的定义.了解函数的调用、说明.掌握局部变量和全局变量.构建函数构建系统功能模块的思想教学重点:函数的调用、说明:局部变量和全局变量的差别教学难点:局部变量和全局变量的差别教学基本内容一法手方及段ー、教学要点【导入案例】.利用函数构建起系统功能模块的思想定义学生信息管理系统中的各个子模块的功能,并当用户输入需要进行的操作序号(1-5)后,程序执行相对应的功能,如录入学生信息,通过学号查找学生信息,统计三门课程平均分,统计总分最高分,退出等操作。.分析如果采用前面章节所讲的顺序、分支、循环结构的知识来逐个完成学生信息的录入,查找,统计等系统功能,合理吗?由于用户下一步进行什么操作是无法预知的,用三大结构写起来不仅冗余繁琐,而且逻辑结构非常混乱,那么程序如何实现对系统功能模块的结构设计呢?【解决方案】定义四个函数分别完成学生信息的录入,查找,统计退出,通过主函数的指引来调用以上函数。【教学内容】ー、函数概述函数是C语言源程序的基本模块,函数有三个作用:任务划分,代码重用,信息隐藏。C语言是非常灵活的语言,它提供了极为丰富的库函数和自定义函数,库函数如printf()函数、scanf()函数。自定义函数是用户将某个算法编成一个相对独立的函数模块,然后以调用的方式来使用。讲授多媒体C程序又被称为函数式语言。由于采用了函数模块式的结构,C语言易于实现结构化程序设计。使程序的层次结构清晰,便于程序的编写、阅读、调试。.库函数库函数由C语言提供。调用库函数之前必须使用“include”包含对应的"头文件",常见的头文件如下所示。输入输出函数: #include<stdio.h>数学函数: #include <math.h>字符函数: #include<ctype.h>字符串函数: #include <string.h>杂项函数及内存分配函数:#include<stdlib.h>.自定义函数自定义函数由用户编写,使用方法同库函数类似,区别在于使用前不需要使用*,includeM包含对应的“头文件”。但一般情况下需要对函数进行声明。二、函数的定义.函数的定义函数包括函数的首部和函数体两个部分,函数返回值类型、函数名、参数以及参数的类型构成了函数的首部,而函数体主要是由实现函数功能的语句构成。例:intmax(inta,intb) 〃函数的首部( 〃花括号括起的部分为函数体if(a>b)returna;elsereturnb;)另例(请对比)intmax(inta,intb)(if(a>b)printf("%d”,a);elseprintf(“%d”,b);}思考:自定义函数功能设计单一性有和好处?.函数的参数函数分为有参函数和无参函数两种类型。在实际编程时要根据程序的需求做出不同的设计,是否带参数并不是评判ー个函数优劣的依据,在定义某个函数时,参数的意义是主调函数通过参数将需要处理的数据传递给被调函数进行处理。无参函数一般不需要返回值,所以很多情况下把不需要返回值的函数定义为void类型。想ー想,遇到主函数被定义为int类型,函数体的末尾加上return。语句的原因是什么?无参函数的定义形式:函数返回值的类型函数名()(〃函数体}【例フ-1】在屏幕上输出如下图形分析:对于这道题仅仅采用前面学习的知识可以这么编写:#include<stdio.h>voidmain()(printR**********************\n")♦printf("*********************w”アprimf("HelloWorld\n");printf("*********************5”),prjntR"*********************\j!")♦}若采用函数的思想来编写则程序的可读性和扩展性更强。分析:编写ー个star()函数和一个str()函数分别完成星号和字符串的输出功能,然后在主函数中调用这些函数来完成题目需求。有参函数的定义形式:函数返回值的类型函数名(类型形参1,类型形参2,…(〃函数体)【例7-3]比较两个数的大小#include<stdio.h>intmax(inta,intb)]if(a>b)returna;elsereturnb;1voidmain().函数的返回值函数的返回值要根据函数完成的功能来设定,是否需要返回值并没有统一的要求。函数的返回值是指函数被调用以后,被调函数将所取得的并返回给主调函数的值。(1)函数的返回值只能通过return语句获取,并返回给主调函数。一般形式如下:return表达式;或return(表达式);该语句的功能是计算表达式的值,并返回给主调函数。在函数中允许有多个return语句,但每次调用只会有一个return语句被执行,因此函数只能返回一个函数值。(2)函数在首部定义中的返回值类型,应该和return后表达式或变量的类型保持ー致。如果两者不一致,则以函数首部中定义的类型为准,自动进行类型转换。如intfun(floata)(returna;)返回值为整型而不是浮点类型。(3)如函数返回值为整型,在函数定义时可以略去类型说明。如fun(floata)(returna;I返回值仍然是整型。(4)不需要有返回值的函数,可以明确定义为“空类型”,类型说明符为“void”。一旦函数被定义为void类型后,就不能在主调函数中使用被调函数的函数值。如,在定义s为空类型后,在主函数中写下述语句:sum=s(n);/Z错误三、函数调用的一般形式.函数调用的一般形式在C程序中是通过对函数的调用来执行各函数的函数体。函数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 银行招聘ai面试题目及答案
- 银行信贷考试题及答案
- 专业考试题及答案
- 舞蹈专业试题及答案
- 养猪专业试题及答案大全
- 口腔专业毕业试题及答案
- 水暖专业试题及答案
- 黑龙江省黑河市九校2025-2026学年高二上学期期初联考数学试题(含答案)
- 广东省汕头市潮阳区潮阳实验学校培优班2025-2026学年高二上学期9月月考语文试题B卷(含答案)
- 专业公文写作试题及答案
- 高速公路服务区安全管理与应急预案体系
- 金属学第三章
- 人工智能训练师(5级)培训考试复习题库-上(单选题汇总)
- 小学科学-哪杯水热教学课件设计
- 酒店明住宿清单(水单)
- 《中国儿童维生素A、维生素D临床应用专家共识》解读
- 应用技术推广中心 报告1212
- 教学第七章-无机材料的介电性能课件
- 应急值班值守管理制度
- 外国文学史-总课件
- 《中小企业划型标准规定》补充说明
评论
0/150
提交评论