学生们初识了C程序并依照例题编写小程序学生们初识了VisualC++_第1页
学生们初识了C程序并依照例题编写小程序学生们初识了VisualC++_第2页
学生们初识了C程序并依照例题编写小程序学生们初识了VisualC++_第3页
学生们初识了C程序并依照例题编写小程序学生们初识了VisualC++_第4页
学生们初识了C程序并依照例题编写小程序学生们初识了VisualC++_第5页
已阅读5页,还剩290页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

廊坊职业技术学院教案首页课程名称《C语言程序设计》班级网络技术G0501授课章节1.1,1.2,1.3课次/周1/1授课方法讲、练教具教室教学内容一、课程介绍二、第一章C语言绪论VisualC++6.0环境运行的C程序实例C程序的基本结构 1.3C语言的词法教学目的了解课程性质、学习要求学习VisualC++6.0环境运行的C程序上机步骤熟练掌握C程序的基本结构熟练掌握C语言的词法重点、难点C程序的讲解C程序的基本结构C语言的词法复习提问作业书后习题3课后小结学生们初识了C程序并依照例题编写小程序学生们初识了VisualC++6.0环境,掌握运行的C程序步骤熟练掌握C程序的基本结构熟练掌握C语言的词法教案内容附记第1章C语言绪论VC++6.0环境运行的C程序实例C程序实例【例1.1]输出ー行信息:ThiseisaCprogram.include"stdio.h" /・文件包含・/main() /・主函数・/{printf("ThisisaCprogram.\n"); /・输出信息・/【例1.2】输入两个整数,输出它们的和。程序名为U_2.cpp。#include"stdio.h" /*文件包含・/main() /・主函数・/{intab,c; /・声明定义变量a,b和c*/scanf("%d%d",&a,&b);/*输入变量a和b的值・/c=a+b; /・计算c等于a与b的和值・/printf("c=%d\n",c); /・输出变量c的值・/【例1.3】输入两个整数,通过调用函数计算它们的和,然后输出和值。程序名为ll_3.cpp。include"stdio.h" /・文件包含・/intsum(intx,inty) /・定义sum函数・/{intz /・声明定义变量z*/z=x+y; /・计算z等于x与y的和值・/return(z);/・将z的值返回,通过sum带回调用处・/订教案内容附记main() /・主函数・/{intab,c; /・声明定义变量a,b和c*/scanf("%d%d",&a,&b);/*输入变量a和b的值・/c=sum(a,b);/・调用sum函数,将得到的值赋给c*/printf("c=%d\n",c);/・输出变量c的值・/1.1.2 C程序的开发过程.编辑在VC6.0环境中的源程序文件,其扩展名为.cpp在TurboC2.0环境中的源程序文件的扩展名为.c.编译将源程序文件的源代码转换成目标代码的过程。主要进行词法分析和语法分析,在分析过程中如果发现错误,将错误信息显示在屏幕上通知用户经过编译后的目标文件的扩展名为.obj.连接将编译过程中生成的目标代码进行连接处理,生成可执行程序文件的过程。连接后生成的可执行文件的扩展名为.exe.运行可在C系统下执行“运行”命令也可以在操作系统下直接执行可执行文件订

教案内容附记1.1.3VisualC++6.0集成环境利用VisualC++6.0集成环境开发C程序的过程如下:.启动VisualC++6.0环境方法:"开始"f"程序"fMicrosoftVisualstudio6.0"-*"MicrosoftVisualC++6.0"启动.编辑源程序文件(1)建立新工程项目①“文件’‘~"新建''~弹出"新建”对话框。②“工程”选项卡ー单击“Win32ConsoleApplication”选项一“位置”框输入或选择新项目所在位置ー“工程”文件框中输入项目名,如“gel”一“确定”按钮f弹出“Win32ConsoleApplicationStep1of「'对话框。③“Anemptyproject”按钮f“完成”按钮一系统显示“新建工程信息”对话框ー単击“确定”按钮。(2)建立新项目中的文件①,,文件,,一,,新建”ー弹出“新建”对话框。②,,文件,,选项卡f“C++SourceFile”选项f在“文件”文件框中输入文件名f“确定”按钮。系统自动返回VC6主窗口。显示文件编辑区窗口,输入源程序文件。.编译和连接方法・:“编译”菜单项ー选择“构件”菜单命令方法.二:编译工具栏上的“Build”按钮(1)系统对程序文件进行编译和连接,生成以项目名称命名的可执行目标代码文件.exe。(2)编译连接过程中,系统如发现程序有语法错误,则在输出区窗口中显示错误信息,给出错误的性质、出现位置和错误的原因等。如果双击某条错误,编辑区窗口右侧出现ー个箭头,指示再现错误的程序行。用户据此对源程序进行相应的修改,并重新编译和连接,直到通过为止。教案内容附记4.执行方法一:单击“编译”菜单中“执行”命令。方法二:编译工具栏上的“BuildExecute”按钮运行成功,屏幕上输出执行结果,并提示信息:“Pressanykeytocontinue"〇此时按任意键系统都将返回主窗口。在执行程序过程中出现运行错误。用户要修改源程序文件并且重新编译、连接和执行1.2C程序的基本结构C程序的结构特点.C程序是由函数构成的。ー个C源程序由一个且只有一个main函数和若干个其他函数组成函数是C程序的基本单位,C语言是函数式的语言。被调用的函数可以是库函数,也可以是用户根据需要而编制的函数即用户函数。.函数由函数说明和函数体组成。任何函数(包括主函数main。)都是由函数说明和函数体两部分组成。其一般结构如下:[函数类型]函数名(函数参数表)/・函数说明部分・/(说明语句部分; /・函数体部分・/执行语句部分;①函数的说明(函数的首部)函数名后必须有一・对圆括号()没有参数的函数称无参函数有参数的函数称为有参函数,多个参数时,参数间用逗号隔开。订教案内容附记②函数体函数体一般包括声明部分和执行部分,由{}定界。声明部分功能:ー是定义函数中所用到的变量。二是对该函数所调用的函数进行声明。执行部分功能是由若干条语句组成。空函数:函数声明部分和执行部分均没有,它不完成任何功能,一般是程序员为以后程序的功能完善而预留的。.C程序总是从main函数开始执行。.C程序语句和数据定义必须以分号";’’结束。空语句:;.C语言严格区分大小写。.C语言数据输入和输出是由库函数实现的。.C语言用/・注释内容・/形式进行程序注释。1.2.2C程序的书写格式.C程序书写格式自由可多句一行,也可一句多行。提倡一行一句。分行时不能将一单词或双引号引起来的字符串分开。.C程序书写采用缩进格式。根据语句从属关系,采用缩进格式。程序层次结构清晰,提高可读性同一层次语句要左对齐,不同层次的语句要缩进若干个字符.程序中适当使用注释信息。可增加程序的可读性订教案内容附记1.3C语言的词法1.3.1 C语言的字符集C语言的字符集是由ASCII字符集组成26个小写字母:a—Zo26个大写字母:A—Z。10个数字:0—9〇(4)其他符号:1.3.2C语言的词法词法符号:C语言用一组字符来构造具有特殊意义的符号.关键字(保留字):系统预定义的词法符号,具有特定的含义,根据语言版本不同,关键字会有所不同。注意:程序员不能用这样关键字再定义其他含义。.标识符<1)定义:标识符是指用来标识程序中用到的变量名、函数名、类型名、数组名、文件名以及符号常量名的有效字符序列。〈2〉语法规定:标识符是以字母或下划线开始,由字母、数字和下划线组成的符号串。〈3〉命名应注意:(1)不能使用关健字作为用户标识符。C语言严格区分标识符的大小写字母。(3)标识符不宜定义太长。有的编译系统允许使用长达31个字符的变量名有的编译系统只取变量名的前8个字符作为有效字符(4)尽可能做到见文知义订

教案内容附记.分隔符是程序中的标点符号,用来分隔单词或程序正文。(1)空格:(2)逗号:(3)冒号:(4)大括号:.其他注释符、运算符、常量课程名称《C语言程序设计》班级网络技术G0501授课章节1.4,1.5课次Z周2/1授课方法讲、练教具多媒体教学内容C语言数据输入和输出程序设计语言发展教学目的掌握C语言数据输入和输出了解C语言的特点了解程序设计语言的发展及C语言的历史重点、难点printf()scanf()getchar()putchar()复习提问C程序的基本结构C语言的词法作业书后习题课后小结使用函数完成数据的输入与输出,仿照例题编写简单的程序

教案内容附记1.4 C数据输入和输出.4.1C语言格式输入/输出标准函数库中定义了一些输入输出函数,程序在调用这些库函数时,必须在源文件的开始处加上头文件的“包含命令”,格式如下:#include<库函数头文件名》或ttinclude”库函数头文件名”.格式输出函数printf()(1)作用:向计算机系统默认的输出设备(一般指终端或显示器)输出ー个或多个任意类型的数据。(2)格式:printf(“格式字符串”[,输出项表]);(3)说明:(1)”输出项列表’’是需要输出的ー些数据。数据可以有。项、1项或多个输出项,多个输出项之间用",''分隔,并且输出项应与格式控制相匹配。(2)“格式控制”是用双引号括起来的ー串字符,也称格式控制字符串,包括格式说明、普通字符和转义字符3种。格式控制字符串的功能是指定输出数据的格式和类型。下面分别对“格式控制”的3种形式进行说明①普通字符:按照原样向输出设备输出。②转义字符:以‘'’开头和其他特殊字符组合而成的具有一定含义的字符。③格式说明:以“%”开头,加上格式字符组成,表示对数据输出格式的控制,它与后面的数据输出项对应。格式说明与数据输出项的数据个数、数据类型及数据排放次序相匹配对应。

教案内容附记常用的格式字符情况如教材表1-I所示d(或i)、x(或X)、〇(或〇)、1!、c、s、e(或E)、g(或G)、%在格式说明中,在%和以上的格式字符之间还可以插入ー些附加格式说明符号,称为修饰符。1(或L) m(整数).n(.整数)一〇+2.格式输入函数scanf()作用:按指定的格式从标准输出设备(键盘)输入数据。格式:scanf(“格式控制”,地址列表);“地址列表’’是由接收数据变量的地址组成。求地址运算符为&,如&a,&b分别表示变量a和变量b的地址。若接收多个数据,则变量地址之间用“,”分隔,并且地址列表与格式控制中的格式说明相匹配。“格式控制”基本同于printf函数的格式控制。格式控制的功能是规定输入数据的格式。格式控制包括格式说明和普通字符,一般不包括转义字符。注意:格式字符和附加格式字符使用应与输出项相匹配。(1)格式说明之间有普通字符或转义字符时,则数据输入时,必须按它们的原样输入这些字符作为数据分隔符。如,scanf("%d,%d",&a,&b);输入数据时,数据之间必须用“,”作为分隔符。可输入:90,7<CR>o(2)连续输入多个数值型数据时,数据之间要用空格、Tab键或回车键作分隔符。如语句scanf("%d%d”,&a,&b);输入数据时,数据之间可用空格、Tab键或回车键分隔符。可输入:907<CR>。(3)连续输入多个字符数据时,各字符间不输入分隔符。如,scanf("%c%c",&a,&b);输入数据时,连续输入相应的字符。可输入:AB<CR>。则将。ル字符输给了变量a,将,B"字符输给了变量b。教案内容附记(4)数据型数据和字符型数据交叉输入时,若字符在前,则字符和数值型数据间可以加入分隔符(空格、Tab犍和回车键);若数值在前,则数值和字符间不可以加分隔符(空格、Tab键和回车键)。(5)输入数据时,可以指定数据所占列数,系统自动按它截取所需数据。如,scanf("%3d%3d",&a,&b);若输入:12345678<CR>系统自动将123赋给a,456赋给b。(6)输入数据时不能规定精度。如,scanf("%5.2F,&a);是不合法1.4.2C语言字符数据输入/输出.字符输出函数putcharO(1)格式: putchar(字符型或整形数据)(2)作用:在标准输出设备(显示器)上输出对应字符。(3)说明:可以是字符数据、整型数据及其表达式。.字符输入函数getchar()(1)格式: getchar()(2)作用:在标准输入设备(键盘)读入一个字符。(3)说明:常用c=getchar();1.5程序设计语言发展程序与程序设计语言.程序程序是控制计算机完成特定功能的ー组有序指令的集合。.程序设计语言编写程序所使用的语言称为程序设计语言,它是人与计算机之间进行信息交流的工具。C语言和VisualC++语言是两种程序设计语言,是程序员编程的工具。订

教案内容附记1.5.2高级语言与C语言1.程序设计语言的发展从低级到高级经历了机器语言、汇编语言、高级语言到面向对象语言四个阶段。(1)机器语言:计算机唯一能懂的语言。(2)汇编语言他们是低级语言,都是面向机器的语言。(3)高级语言高级语言是面向过程的语言。高级语言编写的程序称为“源程序”,不能被计算机直接识别,必须翻译成二进制代码才能在机器上运行。解释执行方式:通过语言解释程序将源程序解释翻译一句,执行一句。编译执行方式是通过编译程序将源程序编译成二进制目标代码程序后,最行执行目标代码程序。程序执行效率高,速度快,并且可脱离语言环境独立运行。4.面向对象语言面向对象语言比面向过程语言更接近于自然语言。面向对象语言一般是在面向过程的计算机语言上发展起来的。如,c++是由C语言发展而来的。2.C语言C语言仍然是当今世界上最为流行的面向过程的程序设计语言之一。(1)发展:(2)特点:课程名称《C语言程序设计》班级网络技术G0501授课章节实验ー课次/周3/1授课方法实践教具机房教学内容实验ー初识VisualC++6.0环境及运行C实例教学目的熟练掌握VisualC++6.0环境运行的C程序上机步骤重点、难点C程序开发的过程VisualC++6.0环境复习提问作业书写实验报告课后小结同学们已掌握,还需熟练

课程名称《C语言程序设计》班级网络技术G0501授课章节2.1,2.2课次/周1/2授课方法讲、练教具多媒体教学内容第二章数据类型及表达式关于数据类型及表达式的C程序实例C语言的数据类型教学目的掌握基本数据类型掌握常量与变量的使用重点、难点基本数据类型使用常量和变量的使用复习提问数据的输入与输出作业课后习题课后小结学生对数据类型、常量与变量有所了解,有关应用还需进ー步学习教案内容附记第2章数据类型及表达式引入2.1 C语育各种运算符和表达式的C程序实例【例2.1】关于常量、变量及数据类型说明的程序实例。【例2.2】关于运算符和表达式的程序实例。讲课2.2C语言的数据类裂(整理字符缰(基本类型〈/ゲ利布尔型枚举型数据类型Y 1指针圈【结构类襯〈结构体〔共用体2.2.I 基本数据类型1.整型数据一般整型(int)短整型(short)长整型(long)每ー种类型又分为带符号(signed)和无符号(unsigned)两种类型

教案内容附记2,实型数据单精度实型(float)双精度实型(double)长双精度实型(longdouble)3.字符型数据一般字符型(char)带符号字符型(signedchar)无符号字符型(unsignedchar)2.2.2常登1•整型常量(1)十进制整型常量:(2)ハ进制整型常量:0(3)十六进制整型常量:Ox长整型常量——加上后缀L或1无符号整型常量——加上后缀U或u2.实型常量(又称浮型常量)(1)小数表示法:(注意:必须有小数点)。(2)科学计数法:也称指数法。山数的符号、尾数(整数或小数)、阶码标示(E或e)、阶符和整数阶码组成尾数不可缺省,阶码必须为整数。单精度常量——后加上F或f双精度常量——没有任何说明长双精度常量——后加上L或1。3.字符型常量一个字符常量在计算机的存储中占据ー个字节。(1)一般字符常量:一般字符常量是用单引号括起来的一个普通字符,其值为该字符的ASCH代码值。

教案内容(2)转义字符:它是以反斜杠(\)开头的特定字符序列,表示ASCII字符集中控制字符、某些用于功能定义的字符和其他字符。4.字符串常量(字符串)由一对双引号括起来("“)的字符序列。字符序列中的字符个数称字符串长度没有字符的字符串称为空串字符串常量中的字符是连续存储的,并在最后自动加上字符’、0’(空字符,该字符在ASCH码值为〇,也称NULL字符)作为字符串结束志。字符串常量和字符常量的区别:(1)表示形式不同:单引号、双引号(2)存储所占的内存空间不同:1B、有效字符数+1B(3)允许的操作不同:如'a、32合法、“a”-32非法的(4)存放的变量不同:字符常量——字符变量或整型变量中,而字符串常量——字符数组。2.2.3 安置及类观定义1.变量定义(1)变量是指在程序执行过程中其值可以被改变的量。(2)三个要素:变量名、变量数据类型和变量的值。

教案内容附记(3)使用原则:“先定义,后使用”变量定义的实质:按照变量说明的数据类型为变量分配相应空间的存储单元,在该存储单元中存放变量的值。(4)变量定义一般格式: 数据类型变量名表:2.变量初始化及赋值变量的初始化:在定义变量的同时给变量赋了一个初始值变量值可以通过初始化取得,也可在定义后,给变量赋值课程名称《C语言程序设计》班级网络技术G0501授课章节2.3课次/周2/2授课方法讲、练教具多媒体教学内容2.3运算符及表达式教学目的掌握运算符的优先级、结合性和运算规则正确书写C的表达式重点、难点运算符的优先级、结合性和运算规则书写C的表达式复习提问基本数据类型表示变量命名原则作业课后习题课后小结优先级、结合性和运算规则需记忆,对于ー些语法细节还需加强练习教案内容附记2.3运算符及赛达式运算符和表达式.运算符C语言提供了13类,共计34种运算符。.表达式:(1)用运算符将操作对象连接起来符合C语法规则式子(2)表达式因运算符种类也可分为各种表达式,每ー个表达式也都具有一定的值。.运算符的优先级指不同的运算符在表达式中进行运算的先后次序.运算符的结合性当ー个运算对象的两侧的运算符的优先级相同时,运算的结合方向称为结合性。左结合:运算对象先与左面的运算符结合右结合:运算对象先与右面的运算符结合算术运算符及算术表达式.基本算术运算符・、/、%三种运算符优先级高于+、ー两种(2)左结合性。(3)说明:<1>若除法运算符的运算对象均为整型数据,则结果为其商的整数部分,舍去小数部分。1/2=0 1.0/2=0.5但多数机器采取“向零取整”方法,即13/7=1,-13/7=1,取整后向零靠拢。订教案内容附记<2>求余运算符的运算对象必须是整型数据,运算结果的符号与被除数的符号相同,如,-13%7运算结果为ー613%-7运算结果为6-13%-7运算结果为ー6.2.自增、自减运算符(1)単目运算符(2)功能:使运算对象(变量)的值增1或减1。前缀形式表示在用该表达式之前先使变量值增(减)1;后缀形式表示在用该表达式的值之后使n的值增(减)1。++j,-j 在使用j之前,先使j的值加(减)1。j++,j—在使用j之后,使j的值加(减)1。(3)注意:vl>运算符的操作对象,只能是变量,而不能作用于常量或表达式。<2>-i++,遵照右结合原则,它相当于ー(i++)2.3.3关系运算符及关系表达式.关系运算符:对两个操作对象进行大小比较的运算符,是逻辑运算的一种简单形式。(高)> V >= <=(低)!= ==.关系表达式:用关系运算符将两个表达式连接起来的符合C语法规则的式子.关系表达式的运算结果是ー个逻辑值,即“真"或“假’‘。在C语言中关系运算结果为真,以整数力’’表示,结果为假,以整数“0''表示。.关系运算符的优先级低于算术运算符的优先级,且等于(==)和不等于(!=)的优先级低于另外四种运算符的优先级。.左结合性。

教案内容附记2.3.4逻辑运算符及逻容表达式.参与逻辑运算的逻辑量“真”或“假”的判断原则是:以。代表"假’‘,以非〇代表“真"。逻辑运算的结果逻辑值只有两个,“真”和“假”,它们分别用“1”和“〇”表示。.C语言中提供的三种逻辑运算符及运算法.优先级:“&&”和“II”低于关系运算符,**!”高于算术运算符。.注意:(DC语言编译系统在给出逻辑运算结果时,以〇代表“假”,以1代表“真’’。但在判断ー个逻辑量“真假''时,以非0表示"真",以〇表示"假"。(2)在进行逻辑运算时,逻辑表达式运算到其值完全确定时为止。.3.5条件运算符及条件表达式Lc语言中唯一的三目运算符.用条件运算符将两个表达式连接起来的符合C语法规则的式子称为条件表达式。.一般形式:表达式1?表达式2:表达式3;.操作过程:先计算表达式1的值,若为“真”,则计算表达式2的值,整个条件表达式的值就是表达式2的值;若表达式1的值为“假”,则计算表达式3,整个条件表达式的值就是表达式3的值。.条件运算符优先级低于逻辑运算符,其结合性是右结合。.注意:(1)条件运算符优先级高于赋值运算符。如a=b>O?b:-b;(2)条件运算符结合性是右结合。如b>O?l:bく〇?-1:0;

教案内容附记2.3.6赋值运算符及赋值表达式由赋值运算符将操作对象连接起来符合c语法规则的式子称为赋值表达式。.单赋值运算符及其表达式(1)赋值运算符是“ゴ’,其作用是将赋值运算符右侧的表达式的值赋给其左侧的变量,并作为整个表达式的值。(2)赋值运算符的优先级低于条件运算符(3)结合性是右结合。如:a=b=c=a>b?a:b;(4)注意:赋值运算符运算对象中的左侧对象ー定是变量。.简单赋值运算符及其表达式C语言允许在赋值运算符“=”之前加上其他运算符,构成复合运算符。在“=”之前加上算术运算符,则构成算术复合赋值运算符;在“ゴ’之前加上位运算符,则构成位复合位运算符。a+=b-c等价于a=a+(b-c),a%=b-c等价于a=a%(b-c)。2.3.7逗号运算符及逗号表达式.逗号运算符是",",它的优先级低于赋值运算符,是左结合性。.用逗号运算符将若干个表达式连接成一个逗号表达式。.一般形式如下:表达式1,表达式2 表达式n.操作过程是:先计算表达式1,再计算表达式2 最后再计算机表达式n,而逗号表达式的值为最右边表达式n的值。.逗号运算符是C语言所有运算符中优先级最低。2.3.8求字节运算符LC求字节运算符是sizeof,它用于计算变量或某种类型的量在内存中所占的字节数。订

教案内容附记用法:sizeof表达式功能:计算出表达式计算结果所占用内存的字节数。sizeof(类型名)功能:计算出某种类型的量存储时占内存的字节数。2.3.9类型转换1,自动类型转换 double-afloatC编译系统自动完成,转换方向见右 lotg 图所示。2.强制类型转换 ,(1)功能:将操作数的值强制'"'"01 转换为所指定的类型。 int — char.short(2)强制类型转换的一般形式为:(数据类型)操作数或 数据类型(操作数)(3)注意:数据类型转换是对操作数的值进行转换,并不改变操作数中变量本身的数据类型。类型转换过程中,当数据类型由低向高转换时,数据精度不会受到损失;而数据类型由高到低的转换,此时,数据精度会受到损失。课程名称《C语言程序设计》班级网络技术G0501授课章节实验ニ课次/周3/2授课方法实践教具机房教学内容实验二C程序的调试及运算符教学目的数据类型、常量和变量的使用表达式及运算符的应用重点、难点复习提问优先级、结合性、运算规则作业书写实验报告课后小结通过上机加深了学生对数据类型、运算符和表达式的理解

课程名称《C语言程序设计》班级网络技术G0501授课章节2.3课次/周1/3授课方法讲、练教具多媒体教学内容2.3运算符及表达式教学目的掌握运算符的优先级、结合性和运算规则正确书写C的表达式掌握类型转换重点、难点C语言表达式数据类型之间的混合运算复习提问运算符的优先级、结合性和运算规则作业课后习题课后小结同学基本掌握,有一些如:关系运算符和关系表达式、逻辑运算符和逻辑表达式等在后面的学习中还需加深理解

课程名称《C语言程序设计》班级网络技术G0501授课章节3.1课次/周2/3授课方法讲、练教具多媒体教学内容第三章结构化程序设计3.1顺序结构程序设计教学目的掌握顺序结构程序设计算法掌握顺序结构语句重点、难点算法顺序结构语句复习提问运算符的优先级、结合性作业课后习题课后小结从本节开始加入算法的学习,培养学生看懂盒图、会画盒图教案内容附记第3章结构化程序设计顺序结构程序设计C程序实例补充:程序设计步骤:1.已知:2,求:.分析:.算法:(盒图).编程:.调试:顺序结构的程序是按照书写的顺序自上而ドー步步执行程序中的每一条语句都被执行一次,且仅能被执行ー次。【例3.1】编程实现:输入一个长方形的二边长,求长方形的面积并输出。已知:长方形的二边长求:面积定义abs输入abS=a*b输出s3.1.2顺序结构语句.表达式语句:表达式的后面加一个分号构成了一个语句(1)赋值语句(2)自动增1、减1运算符构成的表达式语句(3)逗号表达式语句.空语句:语句仅有一个分号";”,它表示什么也不做

教案内容附记3.复合语句:由"{"和"}"把ー些变量定义和执行语句组合在ー起,称之为复合语句,又称语句块。复合语句的语句形式如下:{语句1I语句2:…;语句n:)注意:复合语句不以分号作为结束符4.函数调用语句:由一个函数调用加上一分号组成一语句3.1.3程序实训【例3.2】由键盘输入两个整数给变量a和b,然后输出a和b,在交换a和b中的值后,再输出a和b,验证两个变量中的数值是否正确地进行了交换。「定义abt ]『輸入ab |[输出ab行|A=b JB=l[输出ab

教案内容要求改用相应的小写字母输出。【例3.3】输入ー个double类型的数,使该数保留小数点后两位,对第三以便验证处理是否正确。要求改用相应的小写字母输出。课程名称《C语言程序设计》班级网络技术G0501授课章节实验三课次/周3/3授课方法实践教具机房教学内容实验三顺序结构程序设计教学目的熟练表达式及运算符的应用掌握顺序结构程序设计重点、难点顺序结构程序设计复习提问顺序结构语句作业书写实验报告课后小结通过上机加深学生对顺序结构理解

课程名称《C语言程序设计》班级网络技术G0501授课章节3.2.1,3.2.2课次/周1/4授课方法讲、练教具多媒体教学内容3.2选择结构程序设计3.2.1选择结构的C程序实例3.2.2if语句教学目的掌握if语句的语法规则、功能、应用掌握if语句的嵌套重点、难点if语句的语法规则if语句的嵌套复习提问关系运算符和关系表达式逻辑运算符和逻辑表达式作业课后习题课后小结if语句的嵌套稍有难度,加强练习廊坊职业技术学院教案附页3.2 选择结构程序设计输入XY=2x+13.2.1选择结构的C程序实例(引入)【例35】请输入两个整数a,b,比较a+b和aXb哪个大,输出判断结果。输出y条件运算符:ifswitch条件运算符:【例3.6】求分段函数的值,如果x20,y=2x+l,否则,y=0〇F定义xy定义absis2鼎リ入ab |sl=a+b s2=a*b输出a+b>a*b输出a+b<=a*b廊坊职业技术学院教案附页3.2.2if语句1.if语句的一般形式语句2廊坊职业技术学院教案附页3.2.2if语句1.if语句的一般形式语句2(3)盒图语句2else不能作为语句单独使用果该表达式行〈语句体(“假”),则〈语句体2>,语句后的下(4)注意:①〈表达式〉一定要有括号;②if和else同属于ー个语句,〈语句体2>](2)执行过程:首先计算〈表达式〉的值,如的值为非零("真”),则执1>,如果该表达式的值为零跳过〈语句体1〉,直接执行两者执行其ー后再去执行ifー个语句。③只能执行与if有关的语句或者执行与else有关的语句④如果〈语句1〉和〈语句2〉是非复合语句,那么该语句一定要以分号结束,⑤if语句的表达式可以是任意类型的C语言的合法的表达式,但计算结果必须为整型、字符型或浮点型之一。(1)语法格式:if(く表达式〉)〈语句体!>[else教案内容附记列3.6】求分段函数的值,定义xy输入X如果x20,y=2x+l»否则,y=0〇Y=2x+1Y=0输出y列如:编程输出两个整数中的最大值。定义abmax输入ab,「Max=aMax=b输出max2.if-else中的复合语句如果两个分支中需要执行的语句不止一条,必须用“{ド括起来,作为一个复合语句使用。【例3.9]已知实数a,b,计算u=(r+s)2,v=(r+sア的值。这里:当avb时,r=a2-b2,s=a/b

教案内容附记【イ面ネ列3.7]输入三角形的三个边长a,b,c,求出三角形的面积。求三角形的只用海伦公式:area二sqrt(s*(s-a)*(s-b)*(s-c)),s是三角形的半周长。定义abcsarea输入abcS=(a+b+c)/2Area=sqrt(s*(s-a)*(s-b)*(s-c))输出area【例3.8]判断某一年是否为闰年。判断闺年的条件为下面二者之一:(1)能被4整除,但不能被100整除;(2)能被400整除。(year%4==0&&year%100!=0IIyear%400=0)3.ヨ定义year输入year"一'一'年务他 一输出“是闰年”E关系、非逻辑表达式构成的条件表达式列3.10】以“赋值表达式”为分支条件的实例。/・程序名为!3_10.cppo*/

教案内容附记#includeHstdio.hMmain(){intsif(s=2)printf("hello,');elseprintfC'error*');【例3.11】以“变量”为分支条件的实例。/・程序名为13」Lcpp°*/#include"stdio.h*'main(){intxy;scanf("%d”,&x);if(x)y=l;elsey=-l;printf(*'y=%d\nM,y);4.if语句的嵌套(1)嵌套:在ー个if语句中又包含另ー个if语句,从而构成了if语句的使用。内嵌的if语句既可以嵌套在if子句中,也可以嵌套在else子句中。

教案内容附记【例3.12]输入a,b两个整数的值,比较大小并输出结果。ttinclude"stdio.h"main(){inta,b;printf("请输入a,b:"); scanf("%d%d”,&a,&b);if(a>b)printf("a>b\n/z);elseif(a<b)printf("aくb\n");elseprintf("a=b\n");(2)if与else的配对规则C语言规定:else子句总是和前面最近的不带else子句的if语句配对,与书写格式无关。注意从书写格式要有层次感如果if与else的数目不一致,为实现编程者的意图,必耍的时候必须加"(ド,来强制确定配对关系。否则,就不能实现编程者的真正意图。【例3.13]写出下列程序的输出结果。(求三个数中最大的)#include"stdio.h"main(){int^4,y=5,z=2,max;max=x;if(z>y)if(z>x)max=z;elseif(y>x)订

教案内容max=y;printf(umax=%d”,max);修正:。【例3.14】编写程序,根据输入的学生成绩,给出相应的等级。90分以上的等级为A,60分以下的等级为E,其余每10分ー个等级。方法一:(嵌套)衣送式n方法二:(并列的if语句)衣送式n#include"stdio.h"main(){intg;scanf("%d",&g);if(g>=90)printf(Ha'*);if(g>=80&&g<90)printf("b");if(g>=70&&g<80)printf(',cn);

教案内容附记if(g>=60&&g<70)printf(ndn);if(g<60)printf(ゼ);课程名称《C语言程序设计》班级网络技术G0501授课章节3.2.3,3.2.4课次/周2/4授课方法讲、练教具多媒体教学内容3.2.3switch语句3.2.4 程序实例教学目的掌握switch语句的语法规则、功能、应用掌握switch语句的嵌套熟悉选择结构的应用重点、难点switch语句的语法规则switch语句的嵌套复习提问if语句的语法规则if语句的嵌套作业课后习题课后小结switch语句的嵌套稍有难度,加强练习教案内容附记3.2.3switch语句1.switch语句语法格式:switch(v表达式〉)(caseく常量表达式1>:〈语句序列1>caseく常量表达式2>:く语句序列2> caseく常量表达式n>:〈语句序列n>[default:〈语句序列n+l>]2执行过程(盒图)苜先计算〈表达式〉的值,然后在switch语句体内寻找与该吻合的case标号,如果有与该值相等的标号,则执行从该标号后开始的各语句,包括在其后的所有case和default语句,直到switch语句体结束。如果没有与该值相等的标号,并且存在default标号,则从default标号后的语句开始执行,直到switch语句体结束。如果没有与该值相等的标号,并且不存在default标号,则跳过switch语句体,什么也不执行。3说明①switch语句是关键字,其后面语句体必须写这ー对大括号。②switch后〈表达式〉的运算结果可以是整型、字符型或枚举型表达式等,〈表达式〉两边的括号不能省略。③case也是关键字,与其后面〈常量表达式〉合称为case语句标号。〈常量表达式〉的值在运行前必须是确定的,不能改变,因此不能是包含变量的表达式,而且数据类型必须与〈表达式〉一致。如:

教案内容附记intx=3,y=7,z;switch(z){caseh-2:/・是正确的・/casex+y:/・是错误的・/④case和常量之间要有空格,case后面的常量之后有":"。⑤default也是关键字,起标号的作用。代表所有case标号之外的那些标号。default可以出现在语句体中任何标号位置上。在switch语句体中也可以无default标号。⑥<语句序列1>、<语句序列2>等,可以是一条语句,也可以是若干语句。⑦必要时,case语句标号后的语句可以不写。⑧在switch语句中使用break语句break语句也称间断语句。可以在各个case之后的语句最后加上break语句,每当执行到break语句时,立即跳出switch语句体。switch语句通常总是和break语句联合使用,使得switch语句真正起到多个分支的作用。4.switch语句的实例【例3.15】【例3.16】【例3.17】模拟自动饮料机。按屏幕所示功能,输入所选择的合法数字,输出可获得的相应饮料名称。【例3.18】课程名称《C语言程序设计》班级网络技术G0501授课章节实验四课次/周3/4授课方法实践教具机房教学内容实验四选择结构教学目的掌握选择结构的算法IF语句的应用SWITCH语句的应用重点、难点算法嵌套复习提问语句规则作业课后习题书写实验报告课后小结通过上机加深学生对所学内容的理解

课程名称《C语言程序设计》班级网络技术G0501授课章节3.3.193.3.2,3.3.3课次/周1/5授课方法讲、练教具多媒体教学内容3.3循环结构程序设计循环结构的C程序实例WHILE语句3.3.3DO-WHILE语句教学目的掌握WHILE语句的语法规则、功能、应用掌握DO-WHILE语句的语法规则、功能、应用重点、难点WHILE语句的语法规则、功能、应用DO-WHILE语句的语法规则、功能、应用复习提问选择结构作业课后习题课后小结加强算法的学习

教案内容附记3.3 循环结枸程序设计C语言共有三种类型的循环语句,while、do-while和for语句。循环结构的C程序实例(引入)【例3.19】有一张厚度为0.1毫米的纸,假设它足够大,重复将其对折,问对折多少次之后,其厚度可以抵达(再对折一次就超过)珠穆朗玛峰的高度?程序如下:重复对折一张纸,实质就是厚度乘以2,次数加1。用顺序结构编程为:h=h*2;n=n+l;这样的语句一直重复写到h满足题目要求为止。实际中这类问题,就可用循环结构编程实现while语句.•般形式:while(く表达式〉)(循环体语句〉.执行过程(1)计算while后ー对括号中的〈表达式〉的值。当值为非零时,则执行步骤(2);当值为零时,则执行步骤(3)。(2)执行く循环体语句〉后,转去执行步骤(1).(3)退出while循环。3.盒图:教案内容附记.说明:while语句是C的关键字,其后面的ー对括号中的〈表达式》,可以是C语言的任意合法表达式,由它来控制循环体语句是否执行,括号不能省略。〈循环体语句〉可以是一条语句,也可以是多条语句,如果是多条语句,就一定要加“}“构成复合语句。其中的语句可以是空语句、表达式语句或作为循环体一部分的复合语句,如果循环体是•个空语句,表示不执行任何操作(・般用于延时)。.while语句实例【例3.21I用while循环语句实现从!加到100,并将结果打印出来。3.3.3do-while语句1•一般形式do〈循环体语句〉while(く表达式〉):.do-while语句的执行过程(1)执行d。后面的〈循环体语句〉。(2)计算while后一对括号中的〈表达式〉的值。当值为非零时,转去执行步骤(Do当值为零时,则执行步骤(3)。(3)退出while循环。.盒图:.说明:d。是C语言的关键字,必须和while联合使用。do-while循环由do开始,用while结束:注意,在while结朿后必须有分号,它表示该语句的结束。其它同while循环语句。.do-while语句实例【例3.23]用do-while语句实现求!+2+...+100的和。.while与do-while比较订课程名称《C语言程序设计》班级网络技术G0501授课章节3.3.4课次/周2/5授课方法讲、练教具多媒体教学内容3.3.4FOR语句教学目的掌握FOR语句的语法规则、功能、应用重点、难点FOR语句的语法规则、功能、应用复习提问WHILE语句DO-WHILE语句作业课后习题书写实验报告课后小结加强算法的学习订3.3.4for语句零,则转去执行执行⑤,结束for①首先计算〈表达式1>。订3.3.4for语句零,则转去执行执行⑤,结束for①首先计算〈表达式1>。②求〈表达式2>的值;若其值为非③若〈表达式2>的值为零,则转去语句。1.一般形式:for(く表达式1>;〈表达式2〉;〈表达式3>)〈循环体语句》2.for语句的执行过程语句求解衣达式3求解表达式I③执行ー次for循环体。④求解く表达式3>,转②执行。⑤结束循环,执行循环之后的语句。.盒图.说明:for是C语言的关键字,三个表达式之间的必须用分号";"隔开。三个表达式可以是任意形式的C表达式,通常主要用于for循环的控制。--般〈表达式1>用于计算循环变量初始值,(表达式2>为循环体是否执行的条件,(表达式3>为循环变量的调整。(循环体语句〉的使用同while>do-while循环语句。for循环语句的格式还可以表示为:for(く初始化表达式〉;〈条件表达式〉;〈修正表达式〉)〈循环体语句〉

教案内容附记5.,for语句实例【例3.25]用for语句实现求1-100之和。6.for语句的多样性(1)く表达式为空语句(2)v表达式1>和〈表达式3>是逗号表达方式(3)用空循环来延长时间(4)无限循环for(;)〈语句〉是ー个无限循环。将成为死循环。课程名称《C语言程序设计》班级网络技术G0501授课章节实验五课次/周3/5授课方法实践教具机房教学内容实验五循环结构教学目的加强算法的学习WHILE语句、DO-WHILE语句、FOR语句重点、难点算法循环语句使用复习提问循环语句的语法规则作业课后习题书写实验报告课后小结循环的学习有一定的难度,多加练习

课程名称《C语言程序设计》班级网络技术G0501授课章节3.3.5,3.3.6,3.3.7课次/周1/6授课方法讲、练教具多媒体教学内容3.3.5循环的嵌套3.3.6BREAK语句和CONTINUE语句3.3.7程序实训教学目的掌握循环的嵌套掌握BREAK语句ネロCONTINUE语句重点、难点循环的嵌套复习提问FOR的语法规则作业课后习题课后小结循环的嵌套是一大难点,借助盒图的利于理解

教案内容附记3.3.6break语句和continue语句break语句break语句的一般形式为:break;break语句使用说明:vl>只能在switch语句体和循环体内使用break语句。く2>当break语句出现在,其作用是跳出该switch语句体。当break语句出现在循环体中,但并不在switch语句体内时,则在执行break语句后,使流程跳出本层循环体。【例3.28]在循环体中break语句执行示例。#include"stdio.h"main。ノ・程序名为13_28.cpp。*/{inti,s=O;for(i=l;i<=10;i++)(s=s+i;if(s>5)break;printf(Ms=%d\n'\s);printf("使用break语句时,s的最终值为:%d\n",s);2.Continue语句(1)continue语句的一般形式为:continue;语句的功能:结束本次循环。【例3.30]将【例3.28]中的break语句改用continue语句,来比较两者的区别。#include"stdio.h"main。ノ・程序名为13_30.cpp。*/{inti,s=0;for(i=l;i<=10;i++)

教案内容附记{s=s+i;if(s>5)continue;printf("s=%d\n",s);printf("使用continue语句时,s的最终值为:%d\n",s);3.3.7编程实训【例3.32】编程输出如下图形:********【例3.33】求整数3.100中的素数。为了检査某数是否是素数,采用的方法是,从n=3起直到100止,逐个用i=2〜n/2去试除n,只要有一个能整除,说明该数不是素数。main。产程序名为13_27.cpp。♦/{inii,n,num;fbr(n=3,num=0;n<=100;n++){for(i=2;i<=n-l;i++)if(n%i=0) break;if(n=i) /・若n=i,则说明n不能被2~n-l整除,所以n为素数・/{printf("%4d';n);num++;)printf("\n素数个数是:%d\n",num);

课程名称《C语言程序设计》班级网络技术G0501授课章节3.4课次/周2/6授课方法讲、练教具多媒体教学内容3.4结构化程序设计方法和综合实训教学目的掌握结构化程序设计方法重点、难点经典算法复习提问各语句的语法规则、功能作业课后习题课后小结需多读程序、多看程序,体会算法

教案内容附记3.4结构化程序设计方法与综合实训结构化程序设计方法.思想:•个程序的任何逻辑问题均可用“顺序”、“选择”和“循环”这三种基本逻辑结构来描述。(2)通过三种基本控制结构,使结构化程序具有唯一入口和唯一出口,没有死循环。(3)程序组织结构化,即程序设计采用自顶向下,逐步细化,功能模块化的方法.C语言流程控制语句(1)顺序:空语句:表达式语句;函数调用语句:复合语句(2)选择:有if语句和switch语句。(3)循环:for,while和do-while语句以及一些辅助流程转向语句,如continue,break等3使用结构化程序设计的优点是:(1)结构化构造减少了程序的复杂性,提高了可靠性、可测试性和可维护性:(2)使用少数基本结构,使程序结构清晰,易读易懂;(3)容易验证程序的正确性。循环程序设计是有一定的编程规律和思路的,穷举与迭代是两类具有代表性应用的基本算法。本节主要内容是引导读者编程来实现这些基本算法

教案内容附记【例3.34]用泰勒级数求e的近似值。直到最后ー项小于le-6为止。e=l+l"!+l/2!+l/3!+…+l/n!+...程序如下:/・源程序名为13一34.cpp。泰勒级数e*/#include"stdio.h1'main(){floate=1.0,t=1.0; /・用e存放结果,用t存放n!,n的值每次加1*/intn=l;while(l/t>le-6){t=t*n; /*求n!*/e=e+l/t; /・实现求n!的倒数的和・/n++;printf(',e=%8.6f\n'\e);运行结果:€=2.718282通过本例可以体现这样ー个编程思路:凡是遇到求若干个有规律变化的项的乘积,就可在循环体中用求累乘枳的编程通式H・X来编程实现;求其和,用求累加和的编程通式s=s+x来编程实现,其中t、s分别为累积、累和,初值分别为t=l,s=0,x为变化的项的通式。【例3.35]百钱百鸡问题。公元前,我国古代数学家张丘建在《算经》一书中提出了“百鸡问题":鸡翁ー,值钱五,鸡母一,值钱三,鸡雏三值钱ー。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?分析:这是ー个有名的不定方程问题。设:cocks:鸡翁数、hens:鸡母数、chicks:鸡雏数,则有:cocks+hens+chicks=1005*cocks+3*hens+chicks/3=100据上述不定方程,很容易得到三个变量的取值条件:

教案内容附记cocks:0-19之间的整数。hens:0-33之间的整数。chicks:0.100之间的整数。解题思路:依次取cocks值域中的一个值,然后再在试取hens值域中的每ー个值,根据前两者取值,求出chicks后,看是否合乎题意,合乎者为解。编程如下:/・源程序名为13_35.cpp。百钱百鸡问题ッ#include"stdio.h"main(){int(ocks,hens,chicks;for(cocks=1;cocks<=19;cocks++)for(hens=l;hens<=33;hens++){ chicks=100-cocks-hens;if(5*cocks+3*hens+chicks/3.0==100)printf(ncocks=%d,hens=%d,chicks=%d\nu,cocks,hens,chicks'1);程序运行结果如下:cocks=4,hens=18,chicks=78cocks=8,hens=11,chicks=81cocks=12,hens=4,chicks=84本例采用的编程算法是穷举法。其居本思想是:对问题的所有可能状态ーー测试,直到找到解或全部可能状态都测试过为止。下面例题为另ー类型的穷举问题。【例3.36】爱因斯坦的阶梯问题。设有一阶梯,每步跨2阶,最后余1阶;每步跨3阶,最后余2阶;每步跨5阶,最后余4阶:每步跨6阶,最后余5阶;每步跨7阶时,正好到阶梯顶。问共有多少阶梯?问题分析:设阶梯数为:ladders,则题中条件可以改写为

教案内容附记ladders%2=1ladders%3=2ladders%5=4ladders%6=5ladders%7=0由条件(5)知,阶梯数一定为7的倍数。于是可以从7开始,分别对7、17、21、28、35…数列进行测试,看哪一个符合题意。由条件(1)又知,阶梯数一定是奇数,因此可把上述数列中的数去掉一半。算法:依次对7、7+14、7+14+14、…用条件(2)(3)(4)进行测试,找出符合题意者。程序如下:/・程序名为13_36.cpp。*/#include"stdio.h"main(){inthdders=7;while(ladders%3!=2llladders%5!=4llladders%6!=5)ladders+=14;printf(uladders=%d\nn,ladders);运行结果:ladders=l19

课程名称《C语言程序设计》班级网络技术G0501授课章节阶段性小测课次/周3/6授课方法实践教具机房教学内容阶段性小测教学目的前一段知识的综合考核重点、难点结构化程序设计复习提问作业课后习题书写实验报告课后小结课后讲评

课程名称《C语言程序设计》班级网络技术G0501授课章节4.1,4.2课次/周1/7授课方法讲、练教具多媒体教学内容第四章数组4.1数组应用的C程序实例4.2ー维数组的定义和引用教学目的掌握ー维数组的定义和引用重点、难点ー维数组的定义和引用复习提问基本数据类型作业课后习题课后小结同学较为容易掌握

教案内容附记第4章数组4.I数组应用的C程序实例数组是若干具有相同数据类型且按一定存储顺序排列的ー组变量。数组中的变量称数组元素。每ー个元素通过数组名和存储位置(下标)来确定。根据确定数组的一个元素所需要的下标数把数组分为ー维数组、二维数组、三维数组等,二维以上的数组也称为多维数组。【例4.1】应用ー维数组,实现从键盘输入10个整数,输出其中的最小数。程序名为!4.1.cpp»#includeustdio.hMmain(){int410],i,min;/・定义ー维整型数组a有10个元素・/for(i=0;i<10;i++) /・循环输入数组a的10个元素・/scanf(M%dM,&a[i]);min=a[0]; /*设a[〇]元素为最小值min的初值・/for(i=l;i<10;i++) /・逐个元素与min比较,找出最小值・/if(min>a[i])min=a[i];printf(,,MIN=%d\n,',min); /・输出找到的最小值min*/【例4.2]应用二维数组,实现从键盘为2x3数组输入值,并输出数组所有元素之和。程序名为14_2.cpp。#include"stdio.hMmain(){int42][3],i,j,sum=O;/*定义二维整型数组有2行3列6个元素・/for(i=0;iv2;i++)/・按行向数组a输入6个元素,并将元素值送入sum

教案内容附记进行累加求和・/for(j=0;j<3;j++){scanf("%d",&a[i][j]);sum+=a[ij[j];printf("Sum=%d\n",sum); /・输出和值sum*/4.2ー维数组的定义和引用4.2.1 ー维数组的定义ー、定义的格式:类型说明符数组名[常量表达式]:二、说明:.类型说明符可以是int、char和float等,指明该数组的类型,即数组中每个元素的类型.数组名的命名规则遵循标识符的命名规则,它代表数组存储时的首地址.常量表达式是指数组的长度,即数组元素的个数。三、含义及功能:ー维数组被定义后,编译系统将为该数组在内存中分配一片连续的存储空间,按一定的顺序连续存储数组的各个元素。四、注意:.常量表达式的值必须是一个正的整数值.数组定义后,数组的长度就不能再改变.定义时,可用ー个类型说明符来定义多个相同类型的数组和变量,相互之间用逗号分隔4.2.2 ー维数组元素的引用ー、ー维数组的数组元素表示形式为:教案内容附记数组名[下标]二、说明.遵从“先定义,后使用”的原则。.数组的引用是通过对数组元素的引用实现的,而不能直接引用整个数组。.下标是ー个整型常量或整型表达式。.在ー维数组引用过程中要防止下标越界问题,C语言编译系统不进行检测,即不进行错误报告,只是会造成程序运行结果的错误。ー维数组元素的下标从0开始,如果该数组长度为n,则元素的最大下标为n-lo4.2.3 ー维数组的初始化ー、ー维数组的初始化在定义数组时,同时给数组元素赋值,称为ー维数组的初始化。二、一般形式为:类型说明符数组名【常量表达式]={初始值表};三、说明:.初始值表中数据与数组元素依次对应,初始值表中的数据用,分隔。例如:inta[5]={12,-3,4,0,367);.当初始化,初始值表给出全部元素初值时,则数组长度可以缺省。例如:inta[5]={1,2,3,4,5):等价于inta[]={123,4,5};.给数组中的部分元素赋初始值。例如:inta[5]={1,2,3);按照下标递增的顺序依次赋值,后两个元素系统自动赋〇值。即a[〇]为1,a[l]为2,a⑵为3,而a[3]和a[4]均由系统自动赋值为0。.数组中的全部元素赋初值为〇。inta[5]={0};此时,数组中的全部元素均为0。订课程名称《C语言程序设计》班级网络技术G0501授课章节4.3课次Z周2/7授课方法讲、练教具多媒体教学内容4.3ニ维数组的定义和引用教学目的掌握二维数组的定义和引用重点、难点二维数组的定义和引用复习提问ー维数组的定义和引用作业课后习题课后小结用到循环的嵌套,有一定的难度教案内容附记4.3ー维数组的定义和引用二维数组的定义ー、二维数组定义的一般格式:类型说明符数组名[常量表达式1][常量表达式2]:二、说明:.常量表达式1表示行数,而常量表达式2表示列数。也就是他们分别指出数组的行长度和列长度。“inta[2][3];”表示数组名是a,数组元素是整型,数组有2行3列,共计有6(2x3)个元素。故定义了一个2行3列的整型数组a。.二维数组的行列下标均从〇开始。则数组a的6个元素是:a[O][O],a[O][l],a[0][2]a[l][O],a[l][l],a[l][2].定义后,编译系统将为该数组在内存中分配一片连续的存储空间,按行的顺序连续存储数组中的各个元素。即先顺序存储第一行元素,从a[〇][〇]到a⑼⑵,再存储第二行的元素,从a[l]⑼到叩][2]。数组名a仍然代表数组的起始地址。.二维数组可以看作是特殊的ー维数组。例如二维数组a[2][3]可看成是由两个元素a[O]和a[l]组成。而a[〇]和a[1]又分别是一个ー维数组,各有3个元素。a[0]的元素是a[〇][〇]、a[〇][1]、a[0][2]。a[l]的元素是a[l][0]、a[l][l]、a[l][2]»如图4-3所示。二维数组ー维数组 ー维数组元素.构a[0]一j7a[〇][〇] a[O][l] a[0][2]a[21[3]-a[l]_a[l][O] a[l][l] a[lR2]图4-3二维数组教案内容附记二维数组元素的引用ー、二维数组元素的引用形式为:数组名[行下标H列下标]二、说明:.行(列)下标表达式可以是整型常量、整型变量及表达式,表示二维数组的行(列)长度。.下标值仍然从。开始,到行(列)长度减1。“inta⑵[3];”,定义了一个2行3列的二维整型数组a,则在内存中依次连续存储的数组元素为a[〇][〇],a[〇][1],a[0][2],aロ][〇],a[l]ロ],a[l][2],通过循环嵌套语句:for(i=0;i<2;i++)/・按行向数组a输入6个元素,并将元素值送入sum进行累加求和・/for(j=0;j<3;j++){scanf("%d",&a[i][j]);sum+=a[i][j];完成给数组元素赋值,即输入231245-12-3435vCR>,并将输入的值依次送入sum变量进行累加求和。循环结束后,由输出语句primf("Sum=%d\n",sum);完成累加和sum的输出,结果为:Sum=69二维数组的初始化ー、二维数组初始化:定义二维数组时,给数组元素赋初值称为二维数组初始化。二、说明:订

教案内容附记1.注意二维数组的各元素所赋初始值的排列顺序。初始值的排列顺序必须与数组各元素在内存的存储顺序完全一致。具体的方法如下:(1)分行给ニ维数组赋初值。例如:inta[2][3]={{l,2,3},{4,5,6));此方法直观,明显第1行的元素的初值由第1个花括号数据提供,第2行的元素的初值山第2个花括号数据提供,按行赋初值。(2)按数组排列顺序对各元素赋初值。例如:inta[2][3]={1,2,3,4,5,6);此方法与前ー种方法效果相同,但数据所处的行列位置不直观,尤其是数据多时,数据存储所在的行列需要仔细定位,容易出现错误。(3)对部分元素赋初值。例如:inta[2][3]={{l},{0,4}};此法,是对数组中各行的部分元素赋初值,其余元素值自动为0。本例的作用是只对0行〇列元素赋初值1,对1行1列元素赋初值4,而其余元素值自动为〇。即赋值后数组a的各元素为:1 0 00 4 0(4)赋初值时,有些情况可缺省第一维长度,但第二维长度不能缺省。第一种情况:数组的全部元素都赋初值时,则定义数组时对第一维长度可以缺省。例如:inta[][3]={1,2,3,4,5,6);等价于inta[2][3]={1,23,4,5,6};此时,系统会根据元素总个数分配存储空间,ー共6个元素,每行3歹リ,自然确定为2行。第二种情况:在分行赋值时(含对部分元素赋初值情况),可以在定义时省略第一维的长度。例如:inta[][3]={{0},{0,3}};课程名称《C语言程序设计》班级网络技术G0501授课章节实验六课次/周3/7授课方法实践教具机房教学内容实验六数组教学目的掌握ー维、二维数组的使用重点、难点复习提问作业课后习题书写实验报告课后小结

课程名称《C语言程序设计》班级网络技术G0501授课章节4.4课次/周1/8授课方法讲、练教具多媒体教学内容4.4字符数组与字符串教学目的掌握字符数组的定义、引用、应用掌握字符串处理函数重点、难点字符数组的定义、引用、应用字符串处理函数复习提问ー维数组、ニ维数组作业课后习题书写实验报告课后小结有了一维数组、二维数组的学习,字符数组的学习显得容易教案内容附记4.4字符数组与字符串字符数组是用来存放字符数据的数组,即数组的数据类型是字符型(char)的数组称为字符数组。字符数组的每个元素存放ー个字符。字符数组的定义ー、字符数组的定义形式为:.ー维字符数组定义:Char数组名[常量表达式];.二维字符数组定义:char数组名[常量表达式1][常量表达式2];二、举例:charc[10]; /*定义了一个10个元素的ー维字符数组c*/char42][10]; /・定义了一个2行10列的二维字符数组c*/由于字符型与整型是互相通用的,因此上面的定义也可改为:intc[10];intc[2][10];但是,此种方法定义会浪费存储空间。字符数组的初始化ー、在定义字符数组时,可以对字符数组初始化。二、字符数组初始化有以下方法:(1)用字符常量初始化数组。①ー维字符数组初始化,例如:charc[10]={'a','b','c','d','e','f','g','h','i','j');②二维字符数组初始化,例如:charc[2][10]={{'a','b','c'},{']];③当初值个数与字符数组长度相同,在定义时可以省略数组长度,系统会自动根据初值个数确定数组长度。例如:charc[]={'H','o','w','','a','r','e',' };相当于:charc[ll]={'H','o','w','','y','o','u'};订教案内容附记④用整型常量初始化字符数组。例如:charcl5]={'H',111,119);(2)用字符串常量初始化数组。字符串是用双引号括起来的字符序列,是利用字符数组来存放和处理的。用字符串常量初始化一个字符数组,例如:charc[]={"Howareyou"};也可写成:charc[]="Howareyou";经过初始化后,数组c共有关12个元素,它们分别为:c[O]='H',c[l]=’〇',c[2]='w',c[3]=",c[4]='a',c[5]='r',c[6]='e',c[7]=",c[8]='y',c[9]='o',c[10]='u',c[ll]='\0'二维数组初始化时,也可以使用字符串进行初始化。例如:charc[][8J={"white","black"};此时,数组c分解成2个ー维数组c[0}和c[l},它们各自有!0个元素,每ー个以ー个字符串初始化,如图4-4所示:c(0]Wh1te\0\0\()c[l]B1aCk\0\0\04.4.3字符数组的引用字符数组的引用,也是通过对数组逐个元素引用实现的。引用数组的元素可以得到ー个字符。【例4.3】应用ー维字符数组,输入一个字符串。程序名为14_3.cppo#include"stdio.h"main(){charc[J=HHowareyou!n; /*定义ー维数组c有13元素・/inti;for(i=0;i<13;i++) /・通过循环控制输出数组每个元素・/printf("%cH,c[i]);printf(,'\nn);}教案内容附记运行结果:Howareyou!4.4.4字符数组的输入输出通过scanf()或getchar。对字符数组进行赋值,通过printf()或putchar()对字符数组进行输出,在利用scanf()和printf()完成输入输出时,%c格式是逐个字符元素进行输入输出,而%s格式是对整个字符串ー次完成输入和输出。用格式说明符%s进行整串输入和输出应注意以下问题:(1)在scanf中使用格式说明符%s实现整串的输入。例如:charc[20J;scanf("%s”,c);执行上面的语句,如果输入:abcd<CR>则这个字符串将从数组c的起始地址(&C⑼或数组名C)开始依次放入数组C中,数组剩余空间补‘、〇‘。(2)用%s格式符输入字符串时,空格、Tab符和回车符只能作为分隔符而不能输入到数组中。例如如果输入字符串为:Howareyou!则只有字符串“How”存入到数组中,其余被截掉。3)当输入项为数组元素的地址时,输入数据将从这ー元素开始存放。(4)输入字符串时,避免发生越界。在printf()中使用格式说明符%s可以实现整串的输出。其调用形式如下:printf("%s”,c);这里,c是存储单元的首地址。调用这个函数时,将从c地址开始输出存储单元中的字符,直到遇到第一个ヘ0,为止。输出结束后不自动换行

教案内容附记【例4.4】应用ー维字符数组,输入一个字符串。程序名为14_4.cppo#include"stdio.h"main(){char([6];inti;for(i=0;i<5;i++) /・利用getchar()给数组c输入字符・/c[i]=getchar();c[i]小(T;/*将字符串结束标志VT赋值给数组c的c[5]元素・/primf(”%s”,c); /・输出字符串・/4.4.5字符串处理函数c语言编译系统提供了大量处理字符串的库函数应用字符串输入函数gets()和输出函数puts()时,需要使用#include命令将“stdio.h”头文件包含到源文件中。其他的字符串处理函数在使用时,需要用#include命令将“string.h”头文件包含到源文件中。1. 字符串输入函数gets。形式:gets(字符数组);作用:从终端输入一个字符串(包括空格)赋给从字符数组起始的存储单元中,直到读入一个回车符为止。回车符读入后,不作为字符串的内容,系统将自动用‘、。’替换,作为字符串结束的标志。例如:charc[20];gets(c);

教案内容附记执行上面的语句,如果输入:Howareyou!<CR>则将读入的12个字符依次存入到c[0]开始的存储单元中,并在其后自动加入ー个字符串结束标志‘、〇‘。.字符串输出函数puts()形式:puts(字符数组);作用:将字符数组起始地址开始的ー个字符串(以''0'结束的字符序列)输出到终端,并将字符串结束标志''0'转化成''n',自动输出ー个换行符。例如:charc[]="How\nare'nyou!";puts(c);输出结果:Howareyou!.字符串长度函数strlen()形

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论