教案——C语言(大全5篇)

时间:2019-05-13 22:54:35下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《教案——C语言》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《教案——C语言》。

第一篇:教案——C语言

授课内容:C语言 授课班级: 授课教师: 授课日期:

教学目的:

1.了解C语言的产生过程和发展特点 2.初步认识C语言程序的结构 3.了解C语言的一些相关知识

教学重点:

1.C语言程序的结构 2.C语言程序的特点

教学难点

1.C语言程序的结构特点 2.C语言程序的书写格式

授课主要内容或板书设计:

第一章 C语言概述

1.1 C语言的产生过程及特点

一、C语言出现的历史背景

二、C语言的特点

1.2 C语言程序的结构及书写格式

一、简单的C程序介绍

二、C语言的一般形式

课堂教学安排

教学过程(主要教学内容及步骤)

(一)导入新课

C语言是国际上广泛流行的、很有发展前途的计算机高级语言。以前的操作系统软件主要是用汇编语言编写的,然而,汇编语言依赖于计算机硬件,程序的可读性和可执行性都比较差。为了解决这一问题,产生了C语言。本学期我们就将共同来学习C语言的一些相关知识,本堂课先来了解一下C语言程序的发展及其结构特点。

(二)新授

1.1C语言的产生过程及特点

一、C语言出现的历史背景

1.C语言是第三代语言即为面向过程的高级语言。

第一代:机器语言;第二代:汇编语言;

在C语言的基础上又发展出来了第四代语言:面向对象的程序设计语言,例如C++和VB等高级语言。

2.C语言是在B语言基础上发展起来的。

3.C语言适合作为系统描述语言,既用来写系统软件,也可用来写应用软件。例如可使用C语言编写UNIX系统。

4.C语言的可读性、可移植性强

二、C语言的特点

C语言的特点(使用角度看)

1.表达能力强且灵活。1)语法限制不严,程序设计自由度大。2)运算符丰富。

2.程序结构清晰,适合模块化设计。

3.编写简单、易学。

4.目标程序质量高。程序执行效率高。

5.可移植性高。基本上不作修改就能用于各种型号的计算机和操作系统。

6.C语言是一种结构化程序设计语言。

7.具有丰富的数据类型。

8.具备变量指针和函数指针。指针是指和机器内存地址相关的说明项。

1.2 C语言程序的结构及书写格式

一:简单的C程序介绍

例1: main(){printf(“This is a c program.n”);}

这是一个最简单的C语言程序,最后的运行结果是在屏幕上显示:This is a c program.(光标落在下一行)。

例2:

main()/*主函数*/ { int a, b, c;/*定义变量*/ scanf(“%d, %d”, &a , &b);/*输入变量a和b的值 */ c=max(a,b);/*调用max函数,将得到的值赋给c*/ printf(“max=%d”,c);/*输出c的值*/ } int max(x,y)/*定义max函数,函数值为整形,x,y为形式参数*/ int x,y;/*对形参x,y做类型定义*/ { int z;/*函数中用到的变量z,也要加以定义*/ if(x>y)z=x;else z=y;return(z);/*将z的值返回,通过max带回调用处*/} 本例题是一个比较典型的C语言程序,运行情况是:8,5↙(输入8和5给a和b)max=8(输入c的值)说明:

1.C程序是由函数构成的。

1)一个C程序至少包含一个函数(main函数)。2)函数定义是C程序的基本单位。

3)输入输出函数使用系统提供的库函数printf和scanf。2.一个函数由两部分组成。1)函数的说明部分。例:

int

max(x,y)

↓ 函数类型

函数名 函数参数

int

x,y;

↓ 形参类型

形参

★一个函数名后面必须跟一对圆括弧,函数参数可以没有如main()。2)函数体。{…},一个函数至少有一对大括号。3.一个程序总是从main函数开始执行的,位置随意。4.书写格式自由,但每个语句后必须有一个 “;”。

5.main、int为关键字,使用小写字母,C语言区分大小写。6.使用“/*”和“*/”对语句进行注释。二:C语言的一般形式变量定义 main(){ 变量定义 程序段} userf1(){ 变量定义 程序段}… userfn(){ 变量定义 程序段} 其中userf1()~userfn()是用户定义的函数。

(三)总结扩展:

本堂课主要学习了以下几方面内容:

1.C语言出现的历史背景;

2.C语言的特点;

3.C语言程序的结构及书写格式;

通过这些内容的学习,要求我们在深入学习之前对C语言有一个整体的认识。

(四)作业布置:

第二篇:c语言教案

第一章 绪论

一、教学目标:要求学生对C语言及C语言程序有一概括的的了解,并掌握C语言环境的功能及使用方法,为以后熟练地使用它进行上机练习做准备。

二、教学重点:掌握简单C语言程序的结构,及C语言的上机步骤。

三、教学难点:C语言编程环境的熟悉。

四、课程:讲授新课。

五、学时:两学时。

六、教学过程:

第一节 C语言概述

一、C语言简史

二、C语言的特点(优点、缺点)

(1)语言简洁紧凑,使用方便、灵活。(2)运算符丰富。(3)数据结构丰富。

(4)具有结构化的控制语句。

(5)语法限制不太严格,程序设计自由度大。

(6)C语言能进行位操作,可以直接对硬件进行操作。(7)生成目标代码质量高,程序执行效率高。

第二节 C语言程序

举例如下所示: main(){ int a,b,c;scanf(“%d,%dn”,&a,&b);c=max(a,b);printf(“max=%dn”,c);} int max(int x,int y){ int z;if(x>y)z=x;else z=y;return(z);}

一、源程序的书写格式

(1)C程序是由函数构成的。一个C源程序至少仅包含一个main函数,也可包含一个main函数和若干其他函数。

(2)函数名后必须有一对圆括号“(”和“)”,这是函数的标志。(3)函数必须由左大括号“{”和“}”结束。(4)程序中的每个语句必须有一个分号“;”。

(5)C程序书写格式自由,一行内可写多个语句,一个语句可以写在多行上。

(6)C语言本身没有输入输出语句。输入输出函数由库函数scanf和printf等函数来完成。

(7)可以用/*„*/对C程序中的任何部分作诠释。

举例:举出例子,由学生说出所举例子程序书写格式的错误。学时:两课时

二、函数的定义形式

C语言函数由两部分组成。

(1)函数的首部,即函数的第一行,包括函数名,函数类型,参数名,参数类型。(2)函数体:即大括号弧内{„}的部分。如果一函数有多个大括号弧,最外层的一对{ }号函数体的范围。

举出例子:int max(int x,int y)由学生说出函数的组成。{ }

第三节 上机操作

一、上机步骤安排如下:

1、打开Turboc2环境;

2、输入程序;

3、保存文件“Alt+F”选择,F2进行保存;

4、选择compile菜单下的“compile to OBJ”,然后再选择“compile/Link EXE file”,得到EXE文件。

5、执行程序,选择Run或“Alt+F9”按“Alt+F5”得到执行结果。

布置几个程序,由学生输入,运行,检查其结果。

七、小结:通过本章的学习,要求学生必掌握C语言的书写格式及其结构介绍,并能输入程序在Turboc环境下调试运行。

八、“教学后记:在本章的学习过程中,学生基本能熟练操作Turboc环境,并能输入程序进行调试,但由于对C语言程序结构未能完全理解,调试过程常遇到错误。

第三篇:C语言教案

C语言程序设计

教 案

课程名称:C语言程序设计 适用专业:环境、信息等 适用年级:二年级 学年学期:

任课教师:顾建新、邹家宁等 编写时间:2005年3月

《C语言程序设计》

第一章 C语言概述(2学时)

本章的教学目标:

①了解C语言的历史背景。②掌握C语言的特点。③了解C程序的组成。

本章基本要求:

①学会TC启动、退出,程序输入、编译和运行。

本章各节教学具体内容

1.1 C语言出现的历史背景 教学内容:

①C语言的功能 ②C语言的发展历史

1.2 C语言的特点

1.3 简单的C程序介绍

①通过例1.1, 1.2, 1.3了解c程序

1.4 C程序上机步骤

①程序输入、编译、运行

本章教学内容的重点

①C程序的组成和特点。

本章教学内容的深化和拓宽:TC环境下菜单项功能,程序调试和程序输入的快捷方式。

本章教学方式:多媒体授课 课时分配:2学时

本章教学过程中应注意的问题:培养学生随时保存文件 本章的主要参考书目:

①C语言实用教程 ②C程序设计

本章的思考题:

①C语言的特点是什么? ②C语言的用途和构成?

《C语言程序设计》

第四章 最简单的C程序设计(4学时)

本章的教学目标及基本要求

①掌握各种类型C语句 ②掌握赋值语句

③掌握putchar()getchar()函数 ④掌握printf()scanf()函数 ⑤掌握顺序结构的程序编写

本章各节教学内容

4.1 C语句概述 4.2 赋值语句

4.3 数据输入输出的概念及在C语言中的实现 4.4 字符数据的输入输出 4.5 顺序结构程序设计举例

本章教学内容的重点:

①字符数据输入输出、格式输入输出。

本章教学内容的深化和拓宽:

①正确使用格式符,防止不正确赋值和数据溢出。

本章教学方式:多媒体授课 课时分配:

①第1、2为1学时 ②第3、4、5为3学时

本章的主要参考书目:

①C语言实用教程

②C程序设计

本章思考题:

①在printf函数中格式符的作用是什么?

②在scanf函数中忘记了变量名前面取址符号的后果是什么?

《C语言程序设计》

第六章 循环控制(4学时)

本章的教学目标及基本要求

①掌握循环控制的作用。

②熟练掌握GOTO、while、do-while、for语句使用方法。

③使用循环语句解决实际问题。

本章各节教学内容

6.1 goto 语句

6.2 while语句 6.3 do while语句 6.4 for语句 6.5 循环的嵌套

6.6 break和continue语句

教学内容的重点:

①掌握每一个语句的使用方法。

②多重循环执行流程,如何防止死循环。

教学内容的深化:

①使用循环解决实际问题。

教学方式:多媒体授课 课时分配:

①第1、2、3节2学时 ②第4节1学时 ③第5、6节1学时

本章的主要参考书目:

①C语言实用教程

②C程序设计

本章思考题:

①当型和直到型循环有什么区别 ②break和continue语句有什么区别

《C语言程序设计》

第八章 函数(4学时)

本章的教学目标及基本要求

①掌握函数定义的一般形式。

②掌握函数参数和函数的值的概念。③掌握函数的调用方式。

④熟练函数的嵌套调用和递归调用方法。⑤掌握数组作为函数参数方法。⑥掌握变量的区域性和存储类别

本章各节教学内容及学时分配

8.1 函数概述

8.2 函数调用的一般形式 8.3 函数参数和函数的值 8.4 函数的调用 8.5 函数的嵌套调用 8.6 函数的递归调用 8.7 数组作为函数参数 8.8 局部变量和全局变量 8.9 变量的存储类别 时间分配:

①第1、2、3、4节1学时 ②第5、6节1学时 ③第7节1学时 ④第8、9节1学时

本章重点与难点

①函数的递归调用

②多维数组名做函数参数。③全局变量和局部变量

教学方法与教学手段:多媒体授课 本章的主要参考书目:

①C语言实用教程

②C程序设计

本章思考题:

①数组名和普通变量作为函数参数有什么不同 ②默认的变量作用域和存储类别是什么

《C语言程序设计》

第十章 指针(6学时)

本章的教学目标及基本要求

①掌握和理解指针的概念与用途。②掌握指向变量与一维数组的指针。

③掌握多维数组的指针、指向字符串指针和指针数组。④能使用指针的应用。

本章各节教学内容及学时分配

10.1 地址和指针的概念

10.2 指向变量的指针变量 10.3 数组指针 10.4 字符串指针 10.5 指向函数的指针 10.6 指针数组

学时分配

①第1、2节1学时 ②第3节2学时 ③第4节1学时 ④第5节1学时 ⑤第6节1学时

本章重点与难点

①二维数组的指针 ②字符串指针。③指针数组。

本章教学方法与教学手段:多媒体授课 本章的主要参考书目:

①C语言实用教程

②C程序设计

本章思考题:

①指针数组和指向数组的指针有什么区别

②多维数组的数组名的意义和维度的关系是什么

《C语言程序设计》

第十二章 位运算(1学时)

本章的教学目标及基本要求

①掌握按位与运算符&和按位或运算符|。

②掌握异或运算符^、取反运算符、左移、右移运算符。③掌握位运算赋值运算符。

本章各节教学内容及学时分配

12.1 位运算符和位运算

12.2 位运算符的应用 本章为1学时

本章重点与难点

①位运算法则

②算数与逻辑右移的区别

本章教学方法与教学手段:多媒体授课 本章的主要参考书目:

①C语言实用教程

②C程序设计

本章思考题:

①位运算符和逻辑运算符的区别 ②使用位运算的优点是什么

第四篇:c语言教学教案

第一讲 C语言概述

1.1 C语言发展概述

C语言是在1972年至1973年间由美国的贝尔实验室的M.D.Ritchie和K.Thompson以及英国剑桥大学的M.Richards等为描述和实现UNIX操作系统而设计的。

最初的C语言是附属于UNIX的操作系统环境,而它的产生却可以更好地描述UNIX操作系统。时至今日,C语言已独立于UNIX操作系统。它已成为微型、小型、中型、大型和超大型(巨型)计算机通用的一种程序设计语言。

随着C语言的不断发展、应用和普及,目前,C语言已经能够在多种操作系统下运行,实用的C语言编译系统种类繁多,如Microsoft C、Turbo C等。1.2 C语言的特点

C语言能够成为目前广泛的高级设计语言之一,完全是由其语言特点决定的。

(1)语言基本组成部分紧凑简洁。(2)C语言运算符丰富,表达能力强。(3)C语言数据结构丰富,结构化好。(4)具有结构化的控制语句。

(5)C语言提供了某些接近汇编语言的功能。(6)C语言程序所生成的目标代码质量高。(7)C语言程序可移植性好。C语言的弱点:

(1)运算符的优先级较复杂,不容易记忆

(2)C语言的语法限制不太严格,一定程度上降低了某些安全性。1.3 简单的C语言程序。1.3.1 C语言程序的构成 1.3.2 C语言程序的特点

(1)C程序是由函数构成的,其中至少包括一个函数main()。(2)函数体是由左右花括号{ }括起来的部分。(3)C语言中的每个基本语句都以“;”结束。

(4)C语言书写格式自由,一行内可以写一个语句,也可以写多个语句。

(5)#include语句是编译预处理语句,其作用是将由双引号或尖括号括起来的文件内容读入该语句位置处。对程序说明:

(1)可用/*„*/对C程序中的任何部分作注释。

(2)C语言中所有变量都必须先定义类型,然后再使用。(3)一个C语言程序通过函数之间的相互调用来实现相应的功能。即可以是系统提供的库函数,也可以是根据需要自己定义的函数。1.4 C语言上机步骤

运行环境:DOC操作系统下的Turbo C 1.4.1 C程序上机步骤

1.编辑:在TurboC环境下。将C语言源程序通过键盘输入到计算机中,并以文件形式存盘,源程序都是以.C为扩展名。

2.编译:通过编辑程序将源程序输入到计算机后,需要经过C语言编译器将其生成目标程序。得到的目标文件都是以.OBJ为文件扩展名。3.连接:经过编译后生成的目标文件需经过连接后才能生成可执行代码。其扩展名是.EXE。

所谓连接,是将目标文件和库函数或其他目标程序连接成可执行的目标程序。

4.执行:连接后源程序的目标程序就是可执行文件了。在DOS系统下,只要键入可执行文件名,按回车键就可以了。1.4.2 Turbo C系统菜单 1.Turbo C的主屏幕和主菜单功能 2.文件菜单及功能 1.4.3 程序调试方法

一个计算机程序必须对其进行测试来确定其可以正确地工作,这一过程称为调试。程序错误

语法错误:通过编译和连接就会找到 运行错误:通过调试自己找出问题所在 1.设置和使用观察变量 2.单步执行程序 3.设置和使用断点

2.1 常量和变量 2.2 整型数据 2.3 字符型数据 2.4 浮点型数据 2.5 变量的初始化

第二章 数据类型与表达式 2.1 常量和变量

2.1.1 常量:在程序运行过程中其值不能被改变的量。2.1.2 变量:在程序运行过程中其值可以被改变的量。

标识符:用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列。1.标识符的有关规定:

(1)由英文字母、数字、下划线组成,且第一个字符必须是字母或下划线,一般不超过8个字符;(2)大小写字母的含义不同。

(3)不能使用C语言中的关键字做标识符,(4)用户取名时,应当尽量遵循“简洁明了”和见名知意的原则。2.变量名的有关规定:

(1)使用变量名前,一定先定认,后使用,否则不能做为变量名。(2)每一个变量属于一种类型,便于在编译时据此检查该变量所进行的运算是否合法。(3)变量名的定义:存储属性、数据类型、变量名表 3.数据类型 2.2 整型数据 2.2.1整型常量

(1)十进制整数:数码直接开头的十进制数。如1234,-234。(2)八进制整数:以0开头的常量是八进制数。如011=(11)8(3)十六进制整数:以0x开头的数是十六进制。如0x123即(123)16 例2.1 三种进制表示方法的转换 源程序a1.c main(){ Int x=1246,y=01246,z=0x1246;Printf(“%d,%d,%dn”,x,y,z);Printf(“%o,%o,%on”,x,y,z);Printf(“%x,%x,%xn”,x,y,z);} C:>a1 1246,678,4678 2336,1246,11106 4de,2a6,1246 2.2.2整型变量 原则:使用变量前,先定义,后使用。(1)基本型:用int表示;

(2)短整型:用short int或short表示;(3)长整型:用long int或long表示;(4)无符号型:

无符号整型:用unsigned int或unsigned表示;

无符号短整型:用unsigned short int或unsigned short表示;无符号长整型:用unsigned long int或unsigned long表示;2.2.3 整型变量使用

不同的整型数据,应根据其特性和取值范围,将其定义成不同类型的整型变量。

例2.2不同类型的数据进行算术运算。源程序a2.c Main(){ Int a,b,s1,s2;Unsigned x;a=10;b=-30;x=20;S1=a+x;s2=b+x;Printf(“a+x=%d,b+x=%dn”,s1,s2);} C:>a2 运行结果为 a+x=30,b+x=-10 2.2.3 整型变量使用

不同的整型数据,应根据其特性和取值范围,将其定义成不同类型的整型变量。

例2.3 整型数据各类型所能表示的范围 源程序a3.c main(){int a,b;long c,d;unsigned e,f;a=32767;b=1;c=2147483647;d=1;e=65535;f=1;Printf(“int: %d,%d,n”,a,a+b);Printf(“long: %d,%ldn”,c,c+d);Printf(“unsigned: %u,%un”,e,e+f);} C:>a3 运行结果为 Int: 372767,-32768 Long: 2147483647,-2147483648 Unsigned:65535,0 2.3 字符型数据 2.3.1 字符型常量

字符常量是由一对单引号括起来的单个字符构成,例如:‘A’,‘b’,’2’,’%’’;’等。一个字符型常量是该字符集中对应的编码值:‘0’~‘9’的ASCⅡ编码值是48~57。显然‘0’与数字0是不同的。

2.3.2 字符型变量

字符型数据分为两类:一般字符类型(char)和无符号字符类型(unsigned char)。

例2.4 字符型数据与整型数据可以通用 源程序a3.c Main(){char c1,c2;Printf(“%c,%cn”,c1,c2);Printf(“%d,%dn”,c1,c2);} C:>a4 运行结果为 A,B 65,66

2.3.3 字符串常量

字符串常量是由一对双引号括起来的字符序列,例:“fsdf”,”A”等。字符串常量中不能直接包括单引号、双引号和反斜杠““。字符串常量与字符常量的区别:

(1)字符串常量是用双引号括起来的字符序列。(2)字符串常量有串尾标记””;(3)字符串常量允许扩展表示法;

(4)C语言中没有专门的字符串变量。字符串如果需要存放在变量中,需要用字符型数组来存放。

注意:不要将单个字符组成的字符串常量与字符常量混淆。‘a’为字符串常量,不能把一个字符串常量赋给一个字符变量。例如:下面的用法都是错误的: Char c1,c2;C1=“a” C2=“CHINA”;字符‘’由系统自动加入到每个字符串的结束处,不必由编程人员加入。

字符串“CHINA”在内存中的存放形式如下图,其长度是六个字节,而不是5个字节。字符‘’所对应的ASCⅡ值为0,即“空”字符。2.4 浮点型数据 2.4.1 浮点型常量

浮点型常量有两种表示形式。十进制数形式

它是由数字和小数组成,如:3.14159,-7.2,8.9 指数法形式

如:180000.0用指数法可表示为1.8e5,1.8称为尾数,5称为指数。

0.00123用指数法可表示为1.23e-3 注意:

(1)字母e 或E之前(即尾数部分)必须是有数字的。(2)e或E后面的指数部分必须是整数。如:e-3,9.8e3.1,e5都是不合法的。

2.4.2 浮点型变量(实型变量)

把带有小数点的数称为浮点数,或实型数。浮点型变量又称为实型变量,按能表示数的精度,分为:单精度浮点型变量和双精度浮点型变量,其定认方法如下:

float a,b;/*单精度变量的定义*/ double c,d;/*双精度变量的定义*/ 单精度:占4个字节,有效位为7位,数值范围为10-37~1038 双精度:占8个字节,有效位为15~16位,数值范围约为10-307~10308 浮点型常量不存在单精度型和双精度型之分。2.5 变量的初始化 变量的初始人化:在定义变量的同时给变量赋予初值。方法:

(1)先说明变量类型,然后再赋值。

(2)在对变量类型说明的同时,给变量赋初值。先定义后赋值 int a,b,c;char d;floatb f;a=2;b=5;c=10;d=‘a’;f=5.7;定义和赋值同时进行 int a=5;short b=10;char c=‘a’;float d=7.8;3.对几个变量同时赋一个初值 Int a1=10,a2=10,a3=10;

初始化不是在编译阶段完成的,而是在程序运行时执行本函数时赋以初值的。相当于一个赋值语句。例如: int a=10;相当于: int a;a=10;

又如: Int a;,b,c=20;相当于: Int a,b,c;C=20;第三讲 运算符以及数据类型 2.6 运算符及表达式 2.7 数据类型转换 2.8 类型定义 2.6 运算符及表达式

C语言运算符可以分为:算术运算符、逻辑运算符、关系运算符、位运算符、赋值运算符。2.6.1 算术运算符和算术表达式

1.算术运算符:加、减、乘、除及取模即:+,-,*,/,%来表示。C语言规定:

(1)模运算符%,仅用于整型变量或整型常量。

(2)优先级:一个表达式中如有多个运算符,则计算先后次序为相应运算符的优先级高的优先。乘、除、模优先级高于加、减的优先级。(3)结合方向:是一个运算对象两侧的运算符的优先级别相同时,应遵循的处理规则。

算术运算符的结合方向是从左至右; 赋值运算符的结合方向是从右至左。

算术表达式:由算术运算符、括号以及操作对象组成的符号C语言语法规则的表达式称为算术表达式。2.6.2 赋值语句 1.赋值运算符

语言的赋值运算符是“=”,它的作用是赋值运算符右边表达式的值赋给其左边的变量。

例如:a=10,x=a+5,前者是把常量10赋给变量a,后者是将表达式a+5的值赋给变量x.注意:如果“=”两侧的类型不一致,在赋值时要进行类型转换。例如a=b,执行该语句时,b的结果转换为a的类型后才能进行赋值运算。2.复合赋值运算符

C语言允许在赋值运算符“=“之前加上其它运算符,以构成其复合运算符。复合运算符多数为双目。复合运算符有:

+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|= 例:

a+=2

等价于 a=a+2 x*=y+5 等价于 x=x*(y+5)x%=8

等价于 x=x%8 赋值运算符都是自右向左执行。3.赋值语句与赋值表达式 赋值语句最简单的形式是: <变量>= <表达式>;

功能:是赋值运算符右边的“表达式”的值赋给左边的变量。

赋值表达式也可以包含复合的赋值运算符,例: 如果a=10,表达式a+=a-=a*a的值为-180。其步骤为:(1)先进行a-=a*a的计算,它相当于a=a-a*a=10-10*10=-90.(2)再进行a+=-90的计算,它相当于a=a+(-90)=-90-90=-180.4.自增自减运算符

i++(或i--)表示在使用该表达式值之后将i值加1(或减1)。++i(或--i)表示在使用该表达式值之前将i值加1(或减1)。

说明:

(1)++和--仅适用于变量,不能用于常量或表达式。(2)++和--运算符的结合方向是“至右向左”。Main(){int a=100;printf(“a++=%dn”,a++);printf(“++a=%dn”,++a);printf(“a--=%dn”,a--);printf(“--a=%dn”,--a);} 输出结果: a++=100 ++a=102 a--=102--a=100

2.6.3 关系运算符和关系表达式 1.关系运算符

关系运算符均为两目运算符。共有六种: >

大于

<

小于 >=

大于等于 <=

小于等于 ==

等于

!=

不等于

关系运算符要求两个操作数是同一种数据类型,其结果为一逻辑值,即关系成立时,其值为真(true),用非0值表示;关系不成立时,其值为假(false),用0表示。

关系运算符的优先级借低于算术运算符,关系运算符==和!=低于前四种运算符,并且结合方向均为自左至右。2.关系表达式

由关系运算符将两个表达式连接起来的有意义的式子称为关系表达式。如:a+b

关系表达式的值是一个逻辑值,即“真”或“假”。用1表示“真”,用0表示“假”。如:

a=4,b=1,C=a>b;c的值为1,若a=1,b=8,x=a>b;x的值为0。2.6.4 逻辑运算符和逻辑表达式 1.逻辑运算符

逻辑运算符有“&&“(逻辑与)、”||“(逻辑或)和”!“(逻辑非)三种。

逻辑运算符的操作对象为零或非零整数值,见表2.4.表2.4

逻辑运算规则 逻辑表达式

由逻辑运算符和其操作对象组成表达式称为逻辑表达式。2.6.5 位运算符

位(bit)运算是C语言的一大特色,可直接对构成内存的基本单位 “字节”(byte)进行按位操作。按位与(&)操作规则:参加运算的两个运算量,如果两个相应的位均为1,则该 位的结果为1,否则为0,见表2.5

表2.5

接位与 例如:(1)清零。

(2)取一个数中的某些位。高位清零:

00101101 10011100 & 00000000 11111111

00000000 10011100 低位清零:

00101101 10011100

& 11111111 00000000

00101101 00000000 按位或(|)

操作规则:参加运算的两个运算量,其相应的位中只有一个为1,则该位的结果为1,否则为0。

表2.6

按位或 例如:

(1)01000001

| 00101001

01101001(2)01000001

| 00000000

01000001(3)01000011

| 11111111

11111111(4)01000001

| 10111110

11111111 例如:将某一个数的某些位置为1。一个整数a,要将其低字节全置为1,即低字节为11111111,可将该数与255(十六进制为FF,二进制为11111111)按按位或即可。按位异或(^)

操作规则:参加运算的两个运算量,当相应位相同时,其结果在该位为0,相应位不同时,其结果在该位为1,即按位相加,但不进位。

表2.7

按位异或(1)使指定位翻转。即由1变为0,由0变为1。例:

01100110 ^ 00001111 01101001(2)不使用临时变量,交换两个值。方法为:若有两个数a和b,通过

下面的赋值语言可将 a和b的值互换: a=a^b;b=b^a;b=a^b;4.按位求反(~)

操作规则:运算符~是一个单目运算符,用来对一个数二进制表示按位求反,即瘵0变成1,将1变成0。

表2.8

按位求反 例: ~01101001

10010110 将一个数的某些位变为0。方法是:瘵该数a与~b按位求与,此处的b为这样的一个数,即要求a 中变为0的那些位均为1,其余位均为0。如要将a的最低位变为0,则可使用下述表达式实现。A=a&~1 5.左移(<<)

操作规则:将一个数的各二进制位全部左移若干位,左移后,右边的这些位用0填补,左边移出的位舍弃不用。例:a=a<<2;若a=15,即二进制00001111,左移两位后变为00111100。若再向左移4位,则变为11000000。

将一个数左移1位,相当于该数乘以2,左移2位相当于该数乘以4。如上例中a=15,则a=a<<2,此时a=15*4=60。但是这种情况仅指左移时没有1被移出去的情况,左移运算要比乘法运算快得多。

6.右移(>>)

操作规则:将一个数的各二进制位全部右移若干位,右移后,右边移出的位被舍弃,而左边的填补分两种情况:(1)该数为无符号数,则高位补0。例:a=a>>2;右a=15,二进制为00001111,右移两位后为00000011。

(2)该数为有符号数,若原来的符号位为0(最高位为0,即正数)则高位补0,若原来的符号位为1(即表示该数为负数),高位补0或1,取决于所使用的计算机系统。有的系统补0,称为逻辑右移,有的系统补1,称为算术右移。例:a:***1 a>>1:***1(逻辑右移)a>>1:***1(算术右移)2.6.6 其他运算符 逗号运算符

逗号运算符为“,“。逗号表达式是用逗号运算符把两个表达式组合成的一个表达式。其一般形式为 〈表达 式1〉,〈表达式2〉 说明:(1)逗号表达式的执行过程是:先求表达式1的值,再求表达式2的值,表达式2的值就是整个逗号表达式的值。

(2)一个逗号表达式可以与另一个表达式构成一个新逗号表达式。(3)逗号运算符是所有运算符中级别最低的。

(4)逗号表达式常用于for语句中,它可以表达多个初值或多个步长增量。

逗号表达式的一般形式可以扩展为

〈表达式1〉,〈表达式2〉,〈表达式3〉,„„〈表达式N〉 表达式n的值是整个表达式的值。

条件运算符

条件运算符是一个三目运算符,把三表达式组合成一个表达式。其一般形式为

〈表达式1〉?〈表达式2〉:〈表达式3〉;

功能:计算〈表达式1〉的值,如果该值为真(非0值),则计算〈表达式2〉的值,并且该值即为条件表达式值。若〈表达式1〉的值为假(0),则计算〈表达式3〉的值,并将该值作为条件表达式的值。说明:

(1)条件运算符优先级别高于赋值运算符,低于关系运算符和算术运算符。

(2)条件运算符结合方向是“自右至左”。

(3)〈表达式1〉与〈表达式2〉、〈表达式3〉类型可以不同。3.Sizeof运算符

sizeof运算符是测试变量、表达式或类型名所占用的字节 数。有两种用法。

sizeof〈表达式〉:测试表达式所占用的字节数。sizeof〈表达式〉:测试类型名所占用的字节数。例如: sizeof(float)其值为4。sizeof运算符可以出现的表达式中。main(){ int a=4;fload b=5.6;printf(“%d,%dn”, sizeof(a), sizeof(b));} 输出结果: 2,4 2.7 数据类型转换

在内存中,字符是以系统中所使用字符的编码值形式存储的,C语言允许字符型数据和整型数据之间通用一个字符型数据,即可以以字符形式输出,也可以以整型形式输出,同时,字符型数据可能赋给整型变量,整型数据也可以赋给字符型变量,只是当整型变量数据的大小超过字符型变量的表示范围时,需要截取相应的有效位。

除字符型数据和整型数据之间可以通用之外,不同类型的数据在进行混合运算时,往往需要进行强制类型转换。因此类型转换有两种方式:一种是自动类型转换;另一种是强制类型转换。2.7.1 自动类型转换

在进行计算时,首先将不同类型的数据转换成同一类型,然 后进行计算

不同类型数值转换规则: Double float

Long

Unsigned

Int

char ,short 2.7.2 强制类型转化

强制类型转化的一般形式如下所示:

(强制的类型名)〈变量〉

例如:(int)(a+b),将a+b的结果强制转换成int型;

(float)a/b,将a的结果强制转换成float型后,再进行计算。注意:经强制类型转换后,得到的是一个所需类型的中间变量,原来变量的类型并没有发生任何变化。2.8 类型定义

C语言允许使用typedef语句定义新类型名,以取代已有类型名,如: typedef int counter;作用是定义counter等价于基本数据类型名int,以后就可以利用counter来定义int型变量了。如: counter I,n;

等价于int I, n;类型定义的优点是:能够提高程序可读性。注意:

(1)typedef语句不能创造新的类型,只能为已有的类型增加一个类型名。(2)typedef语句只能用来定义类型名,而不能用来定义变量。例如:分析下例程序。# include “stdio.h” typeref int integer;typedef float real;Main(){ integer i=5;real f;f=real(i)/10;printf(%f”,f);} 第四讲 数据的输入输出 3.1 数据的输入 3.2 数据的输出 3.3 应用举例 3.1 数据的输入

3.1.1 字符输入函数getchar 格式: getchar()

功能:从键盘上接收输入的一个字符。例如:

char c;

┆ c= getchar()其中c是字符型或整型变量。

例1:从键盘输入一个字符,并将其存入字符型变量c 中。#include”stdio.h” Main(){char c;C= getchar();} 3.1.2 格式输入函数scanf 格式:scanf(格式控制,地址表);

功能:用来输入任何类型数据,可同时输入多个类型或不同类型数据。格式控制:是由双括号括起来字符串,主要是由“%”和格式符组成 2.地址表

Scanf函数中的“地址表”部分是由变量的地址组成的,如果有多个变量,则各变量之间用逗号隔开。地址运算符为“&“,如变量a的地址可以写为&a。

例3.2用scanf函数,从键盘 上输入一个整型数、一个浮 点数和一个字符,分别存入 变量i、f和c中。

#include”stdio.h” main(){ int i;float f;char c;scanf(“%d,%f,%c”,&I,&f,&c);printf(“i=%d,f=%f,c=%c”,i,f,c);} 说明:

(1)在scanf函数“格式控制”部分中的每个格式说明符都必须在“地址表列”中有一个变量与之对应格式说明符必须要与相应变量的类型一致。

(2)当格式说明符之间没有任何字符时,在输入数据时,两个数据之间要使用“空格”、“Tab”或“回车”键做间隔;如果格式说明符之间包含其它字符,则输入数据时,应输入与这些字符相同的字符做间隔,如:

Scanf(“%d,%f,%c”,&i,&f,&c);

在输入数据时,应采用如下形式:20,7.8,a(3)可以在格式说明符的前面指定输入数据所占的列数,系统将自动按此列数来截取所需的数据,如:

scanf(%2d%3d”,&x,&y);当用户输入78985时,系统将自动地将78赋给变量x,将985赋给变量y。这种方式也可用于字符型数据的输入。

(4)应该特别注意的是,scanf函数中的“地址表列”部分应当中变量的地址,而不是变量名。.2 数据的输出

3.2.1 字符输出函数putchar 数据的输出一般是以终端显示器(屏幕)为处理对象。格式:向终端输出一个字符。

说明:变量c可以是字符型,也可以是整型。例3.3 从键盘输入一个字符,在屏幕上显示出来。#include”stdio.h” main(){ char c;c=getchar();

/*从键盘输入一个字符*/ putchar(c);

/*在屏幕上显示一个字符*/ } putchar函数也可以输出一些特殊字符(控制字符),如:putchar(‘n’)作用是输出一个“换行”字符。3.2.2 格式控制函数printf 格式: printf(格式控制,输出表); 功能:输出任何类型的数据。1.格式控制

“格式控制”部分与scanf函数的相似,也是由双引号括起来的字符串,主要包括格式说明和需要原样输出的字符。

“格式说明”:由“%”和格式符组成,如%c和%f等,作用是将要输出的数据转换为指定格式后输出。printf函数中使用的格式字符见表3.2。

表3.2

printf函数格式字符 注意:格式字符必须小写 输出表

printf函数中的“输出表”部分由表达式组成,这些表达式应与“格式控制”字符串中的格式说明符的类型一一对应,若“输出表”中有多个表达式,则每个表达式之间应由逗号隔开。

例3.4 从键盘输入一个整数和一个浮点数,并在屏幕上显示出来。#include”stdio.h” main(){ int i;float f;scanf(“%d,%f”,&i,&f);printf(“i=%d,f=%f”,I,f);} 执行此程序,按格式输入数据: 50,8,9 i=50,f=8.900000 说明:

(1)printf函数中的“格式控制”字符串中的每一个格式说明符,都必须与“输出表”中的某一个变量相对应,如上述程序中的“%”与i对应;“%f”与f对应,而且格式说明符应当与其所对应变量的类型一致。

若要显示“%”字符,则应在“格式控制”字符串中连写两个“%”,如:

Printf(“x=%d%%”,100/4);将显示:x=25%。

(2)对格式说明符c、d、s和f等,可以指定输出字段的宽度。%md:m为指定的输出字段的宽度。如果数据的位数大于m,则按实际位数输出,否则输出时向右对齐,左端补以“空格”符。%mc:m为指定的输出字段的宽度。若m大于一个字符的宽度,则输出时向右对齐,左端补以“空格”符。

%mc:m为输出时字符串所占的列数。如果字符串的长度(字符个数)大于m,则按字符串的本身长度输出,否则,输出时字符串向右对齐,左端补以“空格”符。

%-ms:mr的意义同上。如果字符串的长度小于m,则输出时字符串向左对齐,右端补以“空格”符。

%m.nf:m为浮点数据所占的总列数(包括小数点),n为小数点后面的位数。如果数据的长度小于m,则输出时向右对齐,左端补以“空格”符。

%-m.nf:m、n的意义同上。如果数据的长度小于m,则输出向左对齐,右端补以“空格”符。

(3)除了格式说明符及其输出字段的宽度外,在“格式控制”字符中的其他字符,将按原样输出。

(4)在显示数据时,可以不指定输出字段的宽度,而直接利用系统隐含的输出宽度。3.3 应用举例

例3.5 分析下列程序,观察运行结果。main(){ char ch=‘a’;int a=98;unsigned b=1000;long c=123456789;float x=3.14;double y=1.2345678;pPrintf(“(1)a=%d,a=%c,ch=%d,ch=%cn”,a,a,ch,ch);printf(“(2)b=%un”,b);printf(“(3)c=%ldn”,c);printf(“(4)x=%f,y=%fn”,x,y);printf(“(5)x=%e,y=%en”,x,y);printf(“(6)y=%e10.2fn”,y);} 运行的结果为

(1)a=98,a=b,ch=97,ch=a b=1000 C=123456789 X=3.140000,y=1.234567 x=3.14000e+00,y=1.23456e+00 Y=1.23 例3.6 从键盘上输入一个大写字母,把它转换面小 写字母,然后显示出来。#include”stdio.h” main(){ char x1,x2;printf(“x1=?n”);scanf(“%c”,&x1);x2=x1+32;printf(“%c,%cn”,x1,x2);} 运行结果 x1=? A A,a 例3.7 分别输入一个浮点数,一个整数,一个字符型数。#include “stdio.h” main(){ float f;int I;char c;scanf(“%f%d%c”,&f,&I,&c);printf(“%f%d%c”,f,I,c);}

例3.8 从键盘输入一个字符并鸣笛输出。#include “stdio.h” Main(){ Char c;C=getchar();Putchar(‘07’);Putchar(c);} 第五讲 条件语句 4.1 语句和复合语句 4.2 if语句 4.3 switch语句 4.4 应用举例 第四章 条件语句

结构化程序的三种基本结构:顺序结构、选择分支结构和循环结构。顺序结构:是指每个程序都是按照语句的书写顺序依次执行的。选择分支结构:是指通过对特定条件的判断,来选择一个分支执行。循环结构:循环是指在给定条件下,重复执行某段程序,直到不满足条件为止。4.1 语句和复合语句

表达式语句:一个表达式的后面跟随一个分号构成的语句。如:x=x+a;说明:分号“;”是语句的终结符,而不是语句的分隔符即分号是语句的最末组成部分。

复合语句:由左右花括号括起来的语句;

形式:{说明部分;语句部分} 一个复合语句在语法上等同于一个语句,在程序中,凡是单个语句能够出现的地方,都可以出现复合语句。一个复合语句又可以出现在其他复合语句内部。

在复合语句的后面必须有一个分号,做为该语句的终结符。4.2 if语句

If语句是条件选择语句,它是通过对给定条件的判断,来决定所要执行的操作。

4.2.1 if语句的三种形式 If语句的第一种形式 格式:if(表达式)〈语句〉

功能:首先计算表达式的值,若表达式的值

为“真”(为非0),则执行语句,若表达

式的值为“假”(为0),不执行语句。例如:

If(x>y)printf(“%d”,x);2.If语句的第二种形式 格式:if(表达式)〈语句1〉

else

〈语句2〉 功能:首先计算表达式的值,若表达式的值为“真”(为非0)。则执行语句1,若表达式的值为 “假”(为0),则执行语句2。例如:

if(x>y)printf(“%d”,x);else printf(“%d”,y);3.If语句的第三种形式 格式:

if(表达式1)〈语句1〉 else if(表达式2)

〈语句2〉 else if(表达式3)

〈语句3〉

else if(表达式n)

〈语句n〉 else 〈语句n+1〉

功能:首先计算表达式的值,若第n个表达式的值为“真”(为非0),则执行语句n,若所有的表达式的值都为“假”(为0),则执行语句n+1。其流程图如下: 例如:

if(score>89)

grade=‘5’;else if(score>74)grade=‘4’;else if(score>59)grade=‘3’;else

grade=‘2’;说明:

(1)if语句中的表达式可以是C语言的合法表达式。

(2)第二种、第三种格式的if语句中,在每个else前面有一个分号,整个语句结束处也有一个分号。这是由于分号是C语句中不可缺少的部分,这个分号是if语句中的内嵌语句所要求的。

(3)在if和else后面可以只含有一个内嵌的操作语句,也可以含有多个操作语句,此时应用花括号“{ }“将几个语句括起来,构成一个复合语句。

例4.1 将两个数中较大者赋给 s。main(){ int a,b,s;a=10;b=20;if(a>b)s=a;else s=b;printf(“s=%dn”,s);} 执行结果: s=20 例4.2 比较两个数,按由大到小输出。main(){ int a,b,x,y;a = 10;b = 20;if(a>b){x=a;y=b;} else {x=b;y=a;} printf(“x=%d,y=%dn”,x,y);} 执行结果: x=20,y=10 4.2.2 if语句的嵌套

在if 语句中又包含一个或多个if语句,称为if语句的嵌套。一般形式如下: if()

if()

〈语句1〉

else

〈语句2〉 else

if()

〈语句3〉

else

〈语句4〉 if()

if()

〈语句1〉 else

if()〈语句2〉

else

〈语句3〉 说明:

(1)if与else的配对关系,从最内层开始,else总是与离它最近的未曾配对的if配对。

(2)if与else的个数最好相同,从内层到外层一一对应,以避免出错。

(3)如果if与else的个数不相同,可以用花括号来确定配对关系。例如: If()

{if()〈语句1〉} else

〈语句2〉

这时{ }限定了内嵌if 语句的范围,因此else与第一个if配对。例4.3 有一函数

编一程序,输入一个x值,输出y 值。main(){ int x,y;scanf(“%d”,&x);if(x<0)y=-1;else if(x==0)y=0;

else y=1;printf(“x=%d,y=%dn”,x,y);} 4.2.3 条件运算符

如果if语句的形式如下所示: if(表达式1)

x=〈表达式2〉; else

x=〈表达式2〉;

无论表达式1为“真”还是为“假”,都只执行一个赋值语句且给同一个变量赋值。

可以利用条件运算符,将这种语句简单地用如下语句来表示。

x=〈表达式1〉?〈表达式2〉:〈表达式3〉;

说明:即当表达式1的值为“真”时,将表达式2的值赋给变量x;当表达式1的值为“假”时,将表达式3的值赋给变量x。如:

a=5,b=10,c=20;x=a>b? c*b:c/b;因为a>b为假,则x=c/b=2。

例4.4 输入两个数,并将其中较大者显示出来。#include “stdio.h” main(){ int a,b,max;scanf(“%d%d”,&a,&b);max=(a>b)? a:b;printf(“max=%d”,max);} 条件运算符也可以嵌套使用,如:

Grade=(score>=90)?’A’:(score<=70)?’C’:’B’当score>=90时,将字符‘A’赋给变量grade;当score<=70时,将字符‘C’赋给变量grade;否则将字符‘B’赋给变量grade.4.3 switch语句

Switch语句是多分支选择语句,其一般形式如下:Switch(表达式)

{

case 〈常量表达式1〉:〈语句1〉

case 〈常量表达式2〉:〈语句2〉

case 〈常量表达式n〉:〈语句n〉

default:〈语句n+1〉

}

;可同时省略

switch语句的执行过程是:首先计算switch后面圆括号内表达式的值,若此值等于某个case后面的常量表达式的值,则转向该case后面的语句去执行;若表达式的值不等于任何case后面的常量表达式的值,则转向default后面的语句去执行,如果没有default部分,则将不执行switch语句中的任何语句,而直接转到switch语句后面的语句去执行。说明:

(1)switch后面圆括号内的表达式的值和case后面的常量表达式的值,都必须是整型的或字符型的,不允许是浮点型的。

(2)同一个switch语句中 的所有case后面的常量表达式的值都必须互不相同。

(3)switch语句中的case和default的出现次序是任意的,也就是说default也可以位于case的前面,且case的次序也不要求按常量表达式的大小顺序排列。

(4)由于switch语句中的“case常量表达式”部分只起标号的作用,而不进行条件判断,所以,在执行完某个case后的语句后,将自动转到该语句后面的语句去执行,直到遇到switch语句的右花括号或“break”语句为此,而不再进行条件判断。

所以在执行完一个case分支后,一般应跳出switch语句,转到下一条语句执行,这样可在一个case的结束后,下一个case开始前,插入一个break语句,一但执行到braek语句,将立即跳出switch语句,如: 如: Switch(n){

case 1:

x=1;

case 2:

x=2;} 当n=1时,将连续执行下面两个语句 : X=1;X=2;如: Switch(n){ case 1;

x=1;Braek;Case 2;X=2 Braek }(5)每个case的后面即可以是一个句号,也可以是多个语句,当是多个语句的时候,也不需要用花括号括起来。(6)多个case的后面可以共用一组执行语句,如: Switch(n);{

Case 1:

Case 2:

x=10;

braet

} 它表示当n=1或n=2时,都执行下列两个语句: X=10;Braek;

例4.5 从键盘输入一个月份(1~12),并显示该月份的英文名称

#include”stdio.h” Main(){ int month;scanf(“%d”,&month);switch(month){ case 1:printf(“January”);

braek;case 2:printf(“February”);

braek;case 3:printf(“March”);

braek;case 4:printf(“April”);

braek;case 5:printf(“May”);

braek;case 6:printf(“June”);

braek;case 7:printf(“July”);

braek;case 8:printf(“August”);

braek;case 9:printf(“September”);

braek;case 10:printf(“October”);

braek;case 11:printf(“November”);

braek;case 12:printf(“Decmeber”);

braek;Default:printf(“Data Error!”);Break;} }

4.4 应用举例

例4.6 输入一个数值,求出它的平方根,若为负数时,求出它的复数平方根。#include “stdio.h” #include “math.h” main(){ int n;float root;printf(“enter a number:t”);scanf(“%d”,&n);if(n>=0);{ root=sqrt(n);printf(“sqrt(%d)=%f”,n,root);} else { root=sqrt(abs(n));

printf(“sqrt(%d)=%fi”,n,root);} }

例4.7求两个数中最小值。#include “stdio.h” main(){int x,y,min;printf(“enter two integers:n”);acanf(“%d,%d,&x,&y);min=x

例4.8 从键盘输入一个操作符并进行相应和操作。#include “stdio.h” main(){ int x=10,y=5,z;char op;scanf(“%c”,&op);switch(op){

case ’+’:z=x+y;braek;

case ’-’:z=x-y;braek;

case ’*’:z=x*y;braek;

case ’/’:z=x/y;braek;

default :printf(“Operater Error!”);} printf(%d%c%d=%d”,x,op,y,z);} 例4.9 输入三个数,按由小到大的顺序输出。#include “stdio.h” main(){ int a,b,c,temp;printf(“enter three integers:t”);scanf(“%d,%d,%d”,&a,&b.&c);if(a>c){temp=a;a=b;b=temp;} If(a>c){temp=a;a=c;c=temp;} if(b>c){temp=b;b=c;c=temp;} printf(“%d<%d,%d”,a,b,c);}

第六讲 循环控制 5.1 goto语句 5.2 while循环语句 5.3 do-while循环语句 5.4 for循环语句 5.2 while循环语句

用while语句来实现“当型”循环结构。格式:while(表达式)

〈语句〉

/*循环体部分*/ 功能:当表达式的值为非0时,执行while语句中的循环体。结构流程图如图所示。说明:

(1)循环体如果包含一个以上语句,应该用花括弧括起来,以复合语句的形式出现,否则while语句范围只到while后面第一个分号处。(2)在循环体中应有使循环趋向于结束的语句,即设置修改循环条件的语句。

(3)while语句的特点是先判断表达式的值,然后执行循环体中的语句,如果表达式的值一开始为假(值为0),退出循环,并转入下一语句去执行。

例5.2 求s=1+2+3+„100的值。结构流程图如右图。main(){ int i,s=0;i=1;While(i<=100);{s=s+1;i++;} printf(“s=%d”,s);} 运行结果 s=5050 5.3 do-while循环语句

do-while循环语句,用来实现“直到型”循环结构。格式:do

<语句>

while(表达式)功能:先执行〈语句〉,后判断表达式的值。它的执行过程是:先执行一次指定的语句,然后判断表达式的值,当表达式的值为非零(”真“)时,返回重新执行该语句,如此反复,直到表达式的值等于0为此止,此时循环结束。0(假)说明:

(1)用while语句和用do-while语句处理同一问题时,若二者的循环体部分一样,其结果也一样。但在while后面的表达式一开始就为假(0值)时,两种循环的结果是不同的。

(2)如果do-while语句的循环体部分是多个语句组成的话,则必须用左右花括号括起来,使其形成复合语句。

main(){int i,s=0;scanf(“%d”,&i);do {s=s+i;i++;}while(i<=10);Printf(“s=%d”,s);} 运行情况如下: 1 S=55 Main(){int I,s=0;Scanf(“%d”,&i);While(i<=10);{s=s+I;i++;}

第五篇:C语言程序设计教案

C语言程序设计教案

C语言程序设计教案

C 语言程序设计教案 C 语言概述 【教学目的】 1)了解 C 的发展 教学目的】 2)熟悉 C 的特点 教学重点】 【教学重点】 C 语言的特点 难点)(难点)教学方法】 【教学方法】 例举法,推导法,归纳法 课时计划】 【课时计划】2 课时 【授课时间】2005-11-1 授课时间】 教学过程】 【教学过程】 导 言 程序的目的是处理数据,所以设计程序首先的知道这门语言可以处理什么样的数据 新课内容 一,C 语言的历史及其特征 二,简单 C 语言的程序实例 # include “stdio.h” main(){int a,b,sum;printf(“enter two numbers:”);scanf(“%d%d”,&a,&b);sum=a+b+6;printf(“%d”,sum);} 三,编辑,编译,连接,运行一个 C 语言程序 四,C 语言的特点 课堂练习】 【课堂练习】 1.C 语言规定,必须以()作为主函数名..A.stdio B.function C.include D.main 2.C 程序的基本构成单位是().A.子程序 B.函数 C.过程 D.函数和过程 函数和过程 【小 结】 总结:C 语言特点 课后作业】 【课后作业】7 页 2 【板书设计 板书设计】 板书设计 一,C 语言的历史及其特征 二,简单 C 语言的程序实例 # include “stdio.h” main()1 C 语言程序设计教案 {int a,b,sum;printf(“enter two numbers:”);scanf(“%d%d”,&a,&b);sum=a+b+6;printf(“%d”,sum);} 三,编辑,编译,连接,运行一个 C 语言程序 四,C 语言的特点 教学后记】 【教学后记】 学生听课认真,积极回答老师提出的问题.课堂教学效果很好,能够按时完成课堂练习题.对软件开发这个专业很有信心.2 C 语言程序设计教案 数 据 类 型 【教学目的】 1)常量.变量概念简要介绍 教学目的】 2)详细介绍,三种类型的常量.变量的使用规则,占内存大小及范围 教学重点】 【教学重点】 变量的使用 教学难点】 【教学难点】 变量占内存空间大小 授课时间】 【授课时间】2005-11-2 课时计划】 【课时计划】2 课时 【教学方法】举例法 教学方法】 方法 教学过程】 【教学过程】 导 言 程序 = 数据结构 + 算法 + 程设方法 + 语言工具 新课内容 一, 数据类型分类 1.基本类型 2.构选类型 3.指针类型 4.空类型 二, 常量,变量 1, 常量,符号常量(1)定义:其值不改变(2)分类 a.整型: 2,0,-1 b.实型: 2.2 ,-3.4 c.字符: 'a','c' 2,变量(1)定义:值可以改变(2)组成因素 int a=20;变量名:a 变量值:20(3)标识符 a.定义:标识符,变量名,函数名,数组名等;b.规则: 已字母下划线打头 c.长度:ANSIC 不限 TURBOC 限 32 个字符(4)使用:先定义后使用 三, 数据 1,整型数据 3 C 语言程序设计教案.整型常量表示方法 a.十进制 123 ,-123 b.八进制 o35,o27 c.十六进制 oxA3,ox12.整型变量 a.形式: 2 进制 a.分类: int 2b short int 2b long int 4b b.定义 int a, b unsigned int c,d;long e, f,.整型,常量类型 2, 实型数据.表示方法 123, 123.0 ,0.0.实型变量 float 4b double 8b long double 16b double 类型.类型 float a;double b;b=1234.789 a=123456.789 3,字符数据.字符常量.一般字符 例子:“b”,“c”,“1”,'!'.特殊字符常量 说明: 以 开头的 :.字符变量.定义 char c1, c2;c1='A';c2='b'.举例 输出: a,A 4 C 语言程序设计教案 97,65.字符串变量 1.定义:例 “123”“A” , 2.以字符'' 结束标志.变量赋值 1.定义变量 同时赋值 例: int a=978;float=b=98.67;char=c='c';2.定义变量 一部分赋值 例: int a,b,c=91;3.几个变量 同时赋值 例: int a=b=c=d=97;课堂练习】 【课堂练习】 1, main(){float a, b;a=123456.789e+6;b=a+30 printf(“%f”,b)} 2, main(){ char c1, c2;c1=97;c2=65;printf(“%c,%cn”,c1,c2);printf(“%d,%c/n”,c1,c2);【课后作业】 26 页 3,9,10 课后作业】 作业 , , 【小 结】 注意特殊字符常量,符号常量,变量在内存的存储形式 【板书设计】 板书设计】 一, 数据类型分类 二, 常量,变量 1, 常量,符号常量 2, 变量 三, 数据 1,整型数据 2, 实型数据 3,字符数据 5 C 语言程序设计教案.字符串变量.变量赋值 【教学后记】 教学后记】 后记 本次课内容充实,知识点多,所讲内容,学生都能听懂,但运用不够熟练,需要多做练习, 以巩固加深.6 C 语言程序设计教案 运 算 符 与 表 达 式 【教学目的】 1.了解理解运算符 教学目的】 2.运用算术运算符及使用 授课重点】 【授课重点】 表达式的使用 授课难点】 【授课难点】 I++与++I 的区别 教学方法】 【教学方法】 举例法,分析法 授课时间】 【授课时间】 2005-11-3 课时计划】 【课时计划】 2 课时 【教学过程】 教学过程】 导 言 运算量+ 运算量 1 + 2 新课内容 一 各数值数据的混合运算 1.总则: 自动转换同类型 2.规则:.(1)float->double char,shor->int(2)可直/间转换 int->ussigned->long->double 二 算术运算符,表达式 1.运算符(1)算术(2)位 &!~ ^(3)条件 ? :(4)指针 & * 2.算术运算符,表达式(1)基本算术运算符 + — * /(2)运算符优先级 a.* /-> + b.同级,运算符结合 c.强制类型转换 形式:(类型名)(表达式)例子: main(){ float x;int y;x=8.56;7 C 语言程序设计教案 y=(int)x;printf(“x=%f,y=%d”,x,y);d.自增,自减运算 I++=>1)I, 2)I=I+1;++I=>1)I=I+1, 2)I 三,数据输入和数据输出 a)数据输出: 命令格式:printf(控制字符串,参数 1,参数 2,……)例如:main(){float x=1234.565;int y=234;char c='a';printf(“%f,%d,%c”,x,y,c);} 数据输入: 命令个是:scanf(控制字符串,参数 1,参数 2,……)例如:main(){float x int y;char c;scanf(“%f,%d,%c”,x,y,c);} 课堂练习】 【课堂练习】 分析程序的输出结果: main(){ int i=2;i+=i-=i+i;printf(“%dn”,i);} 【小 结】 数据类型必须掌握整型,浮点型,字符型,还要掌握各种运算符之间的区别与联系.课后总结】 【课后总结】 提纲 一,各种数据数据类型自动转换规则 二,算术运算符及表达式 1,自增 i++与++i 区别 , 1, 运算符优先级结合性 b)8 C 语言程序设计教案 2, 强制类型转换运算符 课后作业】 【课后作业】26 页 3 教学后记】 【教学后记】 学生听课认真,没有人开小差.能跟上老师的思路,积极思考问题.所讲内容都能听懂, 但个别容易出错的地方还有待加强.9 C 语言程序设计教案 顺序结构(数据的输入和输出)顺序结构(数据的输入和输出)【教学目的】 使学生明白现实世界程序的顺序处理 教学目的】 教学重点】 【教学重点】 理解顺序结构 教学难点】 【教学难点】 变量占内存空间大小 教学方法】 【教学方法】 讲授课 教学日期】 【教学日期】 2005-11-7 课时计划】 【课时计划】 2 课时 【教学过程】 教学过程】 导 言: 举例引出程序思想 新课内容: 一, 基本结构 1.顺序结构 A->B 2.选择结构 A->B 或 A->C 之中选择 3.循环结构 WHILE()~~ DO ~~WHILE()二, 数据输入输出语句 1.输入输出:用函数实现 2.使用库函数 “I#INCLUDE” 3.常用函数(I/0)(1)字符数据的 I/0 A.putchar(c)字符输出 putchar('')putchar('r')B.getchra()字符输入(2)格式输入/输出 A.printf(格式控制,输出列表)(1)%d 十进制 例:int I=123;printf(“%d”,I)123 printf(“%2d,%4d”,I,I)(2)%0 八进制 例:int I=-2;printf(“%d,%0”,I,I);(3)%x 十六进制 ffff(4)%u 输出无符号整型 123, 123 I=-2 I=177776 10 C 语言程序设计教案 unsigned ing a=65535(5)%c 输出一个字符 printf(“%c”,c)printf(“%d”,c);(6)%s 输出字符串 printf(“%s”,“hello”);printf(“%s”,“you are goods”)(7)%f 输出实数 float I,j printf(“%f”,11111.1111+33333.3333)(8)%e 指数输出 int I I=123.456;Printf(“%e”,I)l.234560e+002 B scanf 输入函数(1)形式:scanf(格式控制,地址列表)(2)例子: int I scanf(“%d”,&I);请你输入整性数据 44444.4444 三,C 语句 1.控制语句(1)if()~~else 条件语句(2)for()~~~循环语句(3)while()~~循环语句(4)do~while()循环语句(5)cotinue 循环语句(6)break 终止语句(7)switch 分支语句(8)goto 转向语句(9)return 返回语句 2.函数调用 printf()scanf()3.表达式语句 4.空语句;5.复合语句 {} 课堂练习】 【课堂练习】 1.输入三角形边求三角形的面积 2.从键盘输入一小写字符转化成大写字符 11 C 语言程序设计教案 【小 3.求: ax+bx+c=0 的根 结】 一,各种数据数据类型自动转换规则 二,算术运算符及表达式 1,自增 i++与++i 区别 , 3, 运算符优先级结合性 4, 强制类型转换运算符 课后作业】 【课后作业】34 页 10,11,12 , , 【教学后记】 教学后记】 上课纪律很好,所有学生都能认真听课.所讲知识都能听懂,练习能按时完成且正确率高.对于自加,自减的综合运用,还有些学生容易出错.下次课再强调一下.12 C 语言程序设计教案 语句)分 支 结 构(if switch 语句)【教学目的】 1)使学生能熟练运用简单的语句进行顺序结构程序设计 教学目的】 2)运用单分支条件语句进行判定结构程序设计 3)运用双分支条件语句进行判定结构程序设计 4)运用多分支条件语句进行判定结构程序设计 教学重点】 【教学重点】 条件语句的应用 教学难点】 【教学难点】 条件语句的熟练使用 教学方法】 【教学方法】 讲授课 【教学日期】 2005-11-8 教学日期】 时计划】 【课时计划】 4 课时 教学过程】 【教学过程】 导 言: 我们利用简单语句可以进行程序设计, 但只是简单程序设计.在设计程序时经常会遇到根 据某些情况进行选择操作,这样就得用判断语句.新课内容: 一,语句的分类 1.表达式语句 2.空语句 3.复合语句 4.函数调用语句 5.控制语句 二,if 语句 1.If 语句的一般形式 命令格式:if(条件)语句 1 [else 语句 2] 例如:#include“stdio.h” main(){int a,b,s1,s2;printf(“请输入两个整数 a,b:”);scanf(“%d,%d”,&a,&b);s1=a+b;s2=a*b;if(s1>s2)printf(“a 与 b 的和大于 a 与 b 的积”);else printf(“a 与 b 的积大于等于 a 与 b 的和”);} 2.If 语句中的复合语句 13 C 语言程序设计教案 如果两个分支中需要执行的语句不止一条,必须用“{}”括起来.例如:#include“stdio.h” main(){float a,b,u,v,s,r;printf(“请输入两个整数 a,b:”);scanf(“%d,%d”,&a,&b);if(s1>s2){r=a*a-b*b;s=a/b;} else {r=b*b-a*a;s=a/b+4;} u=(r+s)*(r+s);v=u*(r+s);printf(“u=%f,v=%f”,u,v);} 3.较复杂的条件表达式 4.If 语句的嵌套 了解 if 语句的嵌套规则 例如:输入 a, b 两个数,比较并输出结果.Main(){int a,b;printf(“please input two integer”;)scanf(“%d,%d” ,&a, &b);if(a)b)printf(“a)b”;)else if(a=0;I--)printf(“%d”,a[I]);} 例 2:从键盘输入字符,记下“a”到“z”这些小写字母出现的次数,当输入!号 时结束输入.Main(){int I,a[26];char ch;for(I=0;I<26;I++)a[I]=0;while(ch!='!')22 C 语言程序设计教案 {scanf(“%c”,&ch);if(ch>='a'&&ch<='z')a[I]=a[ch-97]+1;} for(I=0;I<26;I++)printf(“%d,a[I])} 四,二维数组的定义 类型名 数组名[常量表达式 1] [常量表达式 2] 特点:可以定义多个分量,但这些分量只能存储同一个类型的数据.五,数组分量的引用 例如:int a[3] [4]-----定义一个有 12 个分量的数组 我们可以把他们看成三个一维数组,数组名分别为 a[0] a[1] a[2]分量的引用 a[0][0] a[0][1] a[0][2] a[0][3] a[1][0] a[1][1] a[1][2] a[1][3] a[2][0] a[2][0] a[2][0] a[2][0] 六,二维数组的应用 建立一个 3*4 的矩阵,初始值来源于键盘的输入,并且输出 课堂练习】 【课堂练习】输入一个有序序列,在输入一个新数,将此数插入在此序列中.【小 结】一维数组,二维数组的定义 一维数组的分量引用,二维数组的分量的引用 一维数组和二维数组的应用 课后作业】 【课后作业】84 页 1 教学后记】 【教学后记】 一维数组的应用学生能理解,且应用得较好.二维数一开始在理解上有些困难,通过在黑 板上演示程序的执行过程,学生掌握了二维数组的内容.涉及较复杂,抽象内容最好的方法是 以直观的方式给学生展示,这样便于学生理解和掌握.23 C 语言程序设计教案 字符数组与字符串 【教学目的】 1)理解字符数组的定义.教学目的】 2)掌握数组定义的格式及数组的应用方法 3)综合运用数组.教学重点】 【教学重点】综合运用字符数组.教学难点】 【教学难点】综合运用字符数组.教学日期】 【教学日期】2005-11-22 【课程类型】 讲授课 课程类型】 课时计划】 【课时计划】 4 课时 教学过程】 【教学过程】 导 言:我们应用每一个变量都的一一定义如果想一次定已多个变量这时就的使用数组.新课内容: 一,字符数组类型的定义 char 数组名[常量表达式] 特点:可以定义多个分量,但这些分量只能存储一个字符.二,字符数组的初始化: 1,static char c[10]={'I',' ' 'a',' 'm ','h' 'a ''p' 'p ''y' };把 10 个字符分别付给 c[0]到 c[9]的 10 个元素 三,字符数组的引用 例 1:输出一个字符串 例 2:输出水晶石 四,字符串 1, 字符串和字符串结束标志 2, 用字符串常量给字符串初始化 3, 通过赋初值隐含确定数组长度 4, 字符串的输入输出 5, 字符串处理函数 四,字符数组的应用: 某单位的工作证号码的最后一位是用来表示性别的, 如 f 表示男,m 表示女,今输 入 10 个人的工作证号码,请统计出其中的男女人数 课堂练习】 【课堂练习】84 页 6,7 , 【小 结】字符数组,字符串的定义及两者之间的关系 字符数组的应用 课后作业】 【课后作业】84 页 3,8 , 教学后记】 【教学后记】 字符数组的定义和应用学生能很快理解并掌握.24 C 语言程序设计教案 指 针 【教学目的】 1)掌握指针的定义 教学目的】 2)掌握指针的引用方式 3)掌握字符指针与字符串指针之间的关系 教学重点】 【教学重点】指针的概念,指针的正确引用 教学难点】 【教学难点】指针的正确引用 课程类型】 【课程类型】 讲授课 教学日期】 【教学日期】 2005-11-24 【课时计划】 2 课时 课时计划】 教学过程】 【教学过程】 导言:指针是 c 语言中重要的数据类型,是 c 语言的精华,灵活的运用指针可以处理 各种复杂的数据结构,可以使程序简洁,紧凑,高效.一,指针的定义与引用 1,指针的概念:就是专门又来存放某种变量的地址 2,指针变量的定义:格式:类型表示符 *标识符 int i, j;int *p1,*p2;p1=&i;p2=&j;1, 指针变量的引用: 例:输入两个整数,按先大后小的的顺序输出 main(){int *p1,*p2,*p,a,b;scanf(”%d,%d“,&a,&b);p1=&a;p2=&b;if(a

下载教案——C语言(大全5篇)word格式文档
下载教案——C语言(大全5篇).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    c语言电子教案

    第三章 第三章第三章 第三章 C CC C程序流程设计 程序流程设计程序流程设计 程序流程设计 教学目的 教学目的教学目的 教学目的: :: :C流程设计是编写程序的主要......

    《C语言程序设计》教案.

    《C语言程序设计》教案 使用教材:谭浩强,《C程序设计》,清华大学出版社,2005年7月第3版 任课教师:王琪 授课班级:信息科学与技术学院06(1) 授课时间:06年秋学期 课时安排:第一学......

    C语言教案(推荐5篇)

    第四章 最简单的C程序设计 1.若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2=’b’,想得到以下的输出格式和结果,请写出程序(包括定义变量类型和设计输出)......

    c语言

    学C语言有感 姓 名: 李文丽 学 号:034108048 班 级:083411 指导老师:张印 2009年12月 学C语言有感第1页 学C语言有感 摘要:C语言既有高级语言的特点,又具有汇编语言的特点;既能用......

    如何学C语言

    如何学C语言(一)“项目驱动”式教学目前最著名、最有影响、应用最广泛的windows、linux和UNIX三个操作系统都是用C语言编写的。0S是计算机系统(由软硬件两个子系统构成)的核心......

    C语言

    1. 算法(Algorithm)是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决 问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。 2. 算法具有......

    C语言

    整形 字符型 单精度型基本类型双精度型枚举类型数组类型构造类型结构体类型 数据类型 共同体类型指针类型(C语言的精华)空类型整形:int 字符型 char 单精度实型 float双精度实......

    C语言

    Home Exam List Notification Problem Ranklist Message User Information HJP-2013学期作业 程序设计题1. (10分) 一秒钟以后题目描述 输入某时刻的时、分......