c语言教案市公开课一等奖省赛课微课金奖课件_第1页
c语言教案市公开课一等奖省赛课微课金奖课件_第2页
c语言教案市公开课一等奖省赛课微课金奖课件_第3页
c语言教案市公开课一等奖省赛课微课金奖课件_第4页
c语言教案市公开课一等奖省赛课微课金奖课件_第5页
已阅读5页,还剩94页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计.91/99

第一章C语言概述§1.1语言出现历史背景:ALGOL60CPL语言BCPL语言B语言C语言ANSIC

2/99§1.2

C语言特点:1.语言简练,紧凑,使用方便,灵活。

一共有32个关键字,9种控制语句。程序主要用小写字母书写。2.运算符丰富(共有34种)

位运算,逗号运算符,条件运算符,指针运算等等

C++++cmax=(a>b)?a:ba+=b

3.数据结构丰富(共有34种)整型,实型,字符型,数组,结构体,共用体,枚举,指针等等。

3/994.含有结构化控制语句。

次序,选择,循环,函数。5.语法限制不太严格,程序设计自由度大。变量使用灵活,整型、字符型,逻辑型能够相互通用。放宽了语法检验。6.中级语言特征

允许直接访问物理地址,能进行位操作,能实现汇编语言大部分功效,能够直接对硬件进行操作。且有高级语言功效,又含有低级语言功效。7.生成目标代码质量高,执行效率高。语法决定编译速度快,普通只比汇编语言低10%--20%。4/998.可移植性好。相对于汇编语言来说,普通不需要修改就能够移植到其它计算机,及其它操作系统上去。5/99

§1.3简单C程序介绍。

例1:

main(){printf(“Thisisacprogram.\n”);}

主函数在屏幕上显示字符“Thisisacprogram.”并将光标移到下一行显示6/99例2:

main(){inta,b,sum;a=123;b=246;sum=a+b;printf(“sumis%d\n”,sum);}功效是计算两个数之和,并在屏幕上显示出来定义变量为变量赋值Main()称为程序首部,两个花括号中内容为程序体.Printf()为屏幕输出函数.其中“\n”为转义字符(回车换行)7/99例3

intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}main()/*求两数之中大者*/{inta,b,c;scanf(“%d,%d”,&a,&b);c=max(a,b);printf(“max=%d”,c);}主函数返回两个数中大者函数8/99例4:

#include<math.h>main(){intadd(intx,inty);inta,b,c;scanf(“%d%d”,&a,&b);a=abs(a);b=abs(b);c=add(a,b);printf(“|a|+|b|=%d\n”,c);}intadd(intx,inty){intz;z=x+y;return(z);}主函数求两个数绝对值之和程序.包含文件

求两个数之和函数9/99总而言之:C程序是由函数组成(库函数及自定义函数),一个C源程序最少包含一个main()函数,也能够包含一个main()函数和若干个其它函数组成。2.C语言函数组成函数首部

int

max(intx,inty)

函数类型函数名形式参数名及类型说明函数体.(必须用一对花括号括起来.)申明部分(变量及函数申明,它们在使用前必须进行申明)执行部分(详细操作部分)10/99特殊情况:空函数

dump(){}C程序总是重main()函数开始执行。C程序书写格式自由。每个语句和数据定义最终必须有一个分号。C语言本身没有输入输出语句。/**/为注释符。11/99TurboC源程序普通形式为:

包含文件

子函数类型说明

全程变量定义

main()

{

局部变量定义

<程序体>

}

sub1()

{

局部变量定义

<程序体>

}

12/99

sub2()

{

局部变量定义

<程序体>

}

.

.

.

subN()

{

局部变量定义

<程序体>

}

13/99§1.4C语言上机步骤

1.C程序执行过程

总体上分为四个步:编辑—编译—连接---执行编辑输入源程序(代码)F.c磁盘文件编译F.obj二进制代码(每个模块单独编译)连接F.exe可执行文件连接即组装过程.执行结果14/99§1.2TURBOC集成环境介绍:系统安装(如安装在c:\tc下)执行turboc程序

c:\tc>tc(出现TurboC集成环境)3.参看集成开发环境真实演示15/99教学小结了解C语言特点.重点掌握C语言源程序总体结构.重点掌握C语言程序执行过程.重点掌握TURBOC集成环境介绍.16/99练习题:C语言以函数为程序基本单位,有什么好处.参考例题写一个程序,输出以下信息:**************************

VerygoodI**************************编写一程序,输入三个数,输出其中最大者.17/99Main(){printf(“*****************\n”);printf(“Verygood!\n”);printf(“*****************”);}18/99Main()/*求三个数中最大并输出*/{inta,b,c,max;scanf(“%d,%d,%d”,&a,&b,&c);max=a;If(a<b)max=b;If(max<c)max=c;Printf(“max=%d”,max);}19/99第2章程序灵魂-----算法1程序应包含两方面内容(1)对数据描述。在程序中要制订数据类型和数据组织形式,即数据结构(datastructure)。

(2)对操作描述。即操作步骤,也就是算法。20/992程序组成(2)算法+数据结构+程序设计方法+语言工具和环境=程序(1)数据结构+算法=程序21/992.1算法概念1什么是算法广义地说,为处理一个问题所采取方法和步骤,就称为算法。用计算机处理问题方法和步骤,就叫计算机算法。2计算机算法分类(1)数值运算算法(2)非数值运算算法22/992.2简单算法举例例2.1求1×2×3×4×5S1:使1

pS2:使2

iS3:使p*i

pS4:使i+1

iS5:若i<=5转到S3重新执行,不然结束。再如求1×3×5×7×9×11用一个语句来实现23/99例2.2有50个学生,要求将他们之中成绩在80分以上者打印出来。S1:1

iS2:假如gi>=80,则打印ni

和gi,不然不打印S3:i+1

iS4:假如i<=50,返回S2,继续执行,不然,算法结束。24/99例2.3判定—25中每一年是否闰年,将结果输出。闰年条件:能被4整除且不能被100整除年份是闰年,能被100整除又能被400整除年份是闰年。S1:yS2:若y不被4整除,输出y不是闰年。转到s6S3:若y能被4整除,且不能被100整除,输出y是闰年。转到s6S4:y既能被100整除又能被400整除,输出y是闰年,转到s6S5:输出y不是闰年。S6:y+1yS7:当y<=2500时,转s2,y>2500时算法结束。25/99例2.4求1-1/2+1/3-1/4+……1/99-1/100S1:1

signS2:1

sumS3:2

denoS4:(-1)*sign

signS5:sign*(1/deno)

termS6:sum+term

sumS7:deno+1

denoS8:若deno<=100返回S4;不然算法结束。26/99例2.5对一个大于或等于3正整数,判断它是不是一个素数S1:输入n值S2:2

iS3:n被i除,得余数rS4:若r=0,则打印n“不是素数”,算法结束。S5:i+1

iS6:若i<=n-1,返回S3;不然打印:“是素数”,结束。27/992.3算法特征1、有穷性2、确定性3、有零个或多个输入4、有一个或多个输出5、有效性28/99

2.4怎样表示一个算法2.4.1用自然语言表示算法2.4.2用流程图表示算法29/99例2流程图开始1=〉igi>=80i+1=>ii>50结束打印ni,giYNNY30/992.4.3三种基本结构和改进流程图1、传统流程图弊端流程线转向无规律,难以阅读,难以修改2、三种基本结构(1)次序结构(2)选择结构ABpABababpAab31/99(3)循环结构《1》当型循环结构(while)pA成立abAp不成立成立ab《2》直到型循环(until)32/99三种基本结构共同特点(1)只有一个入口(2)只有一个出口(3)结构内每一部分都有机会被执行到(4)结构内不存在死循环结构化算法:由三种基本结构所组成算法33/992.4.4用N-S流程图表示算法N-S流程图符号ABp成立不成立AB当p成立A直到p成立A34/991=>i2=>it×i=>ti+1=>i直到I>5打印t1=>igi>=80是否打印ni,jii+1=>i直到i>5035/992.4.5用伪代码表示算法伪代码是用介于自然语言和计算机语言之间文字和符号来描述算法。如打印x绝对值算法IfxispositivethenprintxElsepring-x36/992.4.6用计算机语言表示算法

main(){inti,t;i=1;i=2while(i<=5){t=t*i;i=i+1;}printf(“%d”,t)}37/992.5结构化程序设计方法结构化程序:就是用高级语言表示结构化算法。结构化程序设计方法基本思绪:把一个复杂问题求解过程分阶段进行,每个阶段处理问题都控制在人们轻易了解和处理范围内。

方法(1)自顶向下;(2)逐步求精;(3)模块设计;(4)结构化编码38/99小结:深刻了解和掌握算法概念会用自然语言和流程图表示普通算法重点掌握用n-s图表示算法了解伪代码表示算法(以后要重点掌握)深刻了解和掌握三种基本结构,结构化算法和结构化程序设计方法39/99第3章

数据描述与基本操作3.1C数据类型数据类型基本类型整型字符型实型单精度型双精度型枚举类型结构类型数组类型结构体类型共同体类型指针类型空类型40/99数据类型定义:一个值集合和定义在这个值集上一组操作。怎样掌握数据类型1、掌握它存放结构和值域2、掌握它操作集合

41/993.2常量与变量标识符:

所谓标识符是指用来标识符号常量名、变量名、函数名、数组名、类型名、文件名有效字符序列。简单地说,标识符就是一个名字。注意:大写字母和小写字母被认为是两个不一样字符。

C语言要求标识符只能由字母、数字和下划线三种字符组成,第一个字母必须是字母或下划线。42/99ANSIC标准没有要求标识符长度TurboC3.0标识符定义十分灵活。作为标识符必须满足以下规则:

1.全部标识符必须由一个字母(a~z,A~Z)或下划线(_)开头;

2.标识符其它部分能够用字母、下划线或数字(0~9)组成;

3.大小写字母表示不一样意义,即代表不一样标识符;

4.标识符普通不超出32个字符;

5.标识符不能使用TurboC关键字43/99下面举出几个正确和不正确标识符:

正确

不正确

smart

5smart

_decision

bomb?

key_board

key.board

FLOAT

float定义标识符时应注意:1、

标识符起名时尽可能“见名知义”,增加程序可读性。2、

变量名,函数名普通用小写,符号常量用大写。3、

尽可能少用一些轻易认错字符。如no,n0等等。4、

标识符普通不用下划线开始,预防与扩展关键字重名。44/993.2.1常量和符号常量程序运行中不变量叫常量。1、字面常量:3,-4,6.67,‘c’。2、符号常量:#definePRICE30Main(){intnum,total;num=10;total=num*PRICE;printf(“total=%d”,total);}45/99习惯上:符号常量名用大些,变量用小写。使用符号常量好处:1、含义清楚2、修改方便,“一改全改”46/993.2.2变量变量名内存地址Sum000001010000010110288947/99注意:C语言要求对变量“先定义,后使用”。先定义目标:(1)便于发觉错误,防止变量使用错误。(2)为定义变量分配存放单元(3)检验该变量所进行运算正当型如:a/b,a%b。48/993.3整型数据3.3.1整型常量表示方法1、十进制:253,562,02、八进制:以0开头是八进制。0123,0256。3、十六进制:以0x开头数是十六进制。0x234,0x456,0xAC5。49/993.3.2整型变量1、整型数据在内存中存放形式

inti,j;i=10;j=-10;0|0|0|0|0|0|0|00|0|0|0|1|0|1|0数值在内存中以补码形式形式存放:i50/99j0|0|0|0|0|0|0|00|0|0|0|1|0|1|0j绝对值原码1|1|1|1|1|1|1|11|1|1|1|0|1|0|11|1|1|1|1|1|1|11|1|1|1|0|1|1|0取反再加151/992、整型变量分类基本类型符:int三类基本整型类型(1)基本整型int(2)短整型shortint(3)长整型longint52/99加修饰符整型变量共六种unsignedint无符号整型数说明。

字长为2字节共16位二进制数,数范围是0~65535。

unsignedshortint

无符号短整型数说明。简写为unsignedint,

字长为2字节共16位二进制数,数范围是0~65535。

unsignedlongint

无符号长整型数说明。简写为unsignedlong,字长为4字节共32位二进制数,数范围是0~4294967295。53/99signedint有符号整型数字长为2字节共16位二进制数,数范围是-32768~32767。

signedshortint

有符号短整型数说明。简写为short,字长为2字节共16位二进制数,数范围是-32768~32767。

signedlongint

有符号长整型数说明。简写为long,字长为4字节共32位二进制数,数范围是-2147483648~2147483647。

54/99例3.2整型变量定义使用Main(){inta,b,c,d;unsignedu;a=12;b=-24;u=10;c=a+u;d=b+u;printf(“a+u=%d,b+u=%d\n”,c,d)}运行结果:a+u=22,b+u=-1455/994、整型数据溢出例3.3整型数据溢出Main(){inta,b;a=32767;b=a+1;printf(“%d,%d”,a,b);}56/993.3.3整型常量类型1、依据数值常量所在范围断定其类型:2536,43868,-56892、常量后加u或U,认为是unsignedint类型12354u,-12365u3、常数后加一个“l”或“L”,表示longint型常量:126l,0L,57/993.4实型数据3.4.1实型常量表示方法实数又称为浮点数1、十进制小数形式2.36,.256,0.0,12.。2、指数形式253e3或253E3

注意:E,e前必须有数字,且E,e后必须为整数。1.2563e12为规范化指数形式,以指数形式打印输出时,以规范化形式输出。58/993.4.2实型变量1、实型数据在内存中存放形式+|.314159|12、实型变量分类(1)float单精度(2)double双精度(3)longdouble长双精度59/993、实施数据舍入误差Main(){floata,b;a=123456.789e5;b=a+20;printf(“%f”,b);}60/993.4.3实型常量类型许多C编译系统将实型常量作为双精度来处理。f=2.45678*4523.65f=2.45678f*4523.65f

一个实型常量能够赋给float,double,longdouble型变量。依据变量类型截取对应有效位数。61/993.5字符型数据3.5.1字符常量1、键盘可输入字符常量‘a’,‘E’,‘4’,‘#’2、转义字符常量‘\n’,’\t’,’\b’,’\101’,‘\x20’,’\\’,’\’’,’\”’例3.5转义字符使用。Main(){printf(“abc\tde\rf\tg\n”);printf(“h\ti\b\bjk”);}62/993.5.2字符变量Charc1,c2;c1=‘a’;c2=‘g’;63/993.5.3字符数据在内存中存放形式及其使用方法在全部编译系统中都要求字符以一个字节来存放。1、字符以ASCII码形式存放0110000101100010‘a’97‘b’982、字符数据既含有字符型性质又含有整数性质64/99例3.6向字符变量赋以整数Main(){charcl,c2;intsum;c1=‘a’;c2=98;sum=c1;printf(“%c%c\n”,c1,c2);printf(“%d%d\n”,cl,c2);printf(“%c%d\n”,sum,sum);}65/99例3.7大小写字母转换Main(){charc1,c2;c1=‘a’;c2=‘b’c1=c1-32;c2=c2-32;printf(“%c%c\n”,c2,c2);}运行结果AB66/99字符型(char)在turboC中是带有符号

加上不一样修饰符,能够定义有符号和无符号两种类型字符型变量,比如:

chara:

/*a被定义为有符号字符变量*/

unsignedcharl;

/*l被定义为无符号字符变量*/

Charc=130Printf(“%d”,c)

得到-12667/993.5.4字符串常量“howdoyoudo.”,“CHINA”,“a”。叫字符串常量。Charc;C=‘a’;是正确。C=“a”;是错误。68/993.6变量赋初值inta=3;floatf=3.56;charc=‘a’;inta,b,c=5;inta=b=c=3;69/993.7各类数值型数据间混合运算转换标准:两个不一样类型数据运算,先转换为同一个高级类型数据类型后再进行运算。转换是由机器自动进行。

高低intcharshortunsignedlongdoublefloat10+‘a’+i*f-d/e70/993.8算术运算符和算术表示式3.8.1C运算符介绍1、算术运算符(+-*/%++--)2、关系运算符(<>==>=<=!=)3、逻辑运算符(!&&||)4、位运算(<<>>~|^&)5、赋值运算符(=)6、条件运算符(?:)71/997、逗号运算符(,)8、指针运算符(*&)9、求字节数运算符(sizeof)10、强制类型转换运算符(类型)11、分量运算符(.->)12、下标运算符([])13、其它运算符(如函数运算符);72/993.8.2算术运算符和算术表示式1、

基本算术运算符:(+-*/%)例:3+5X+yX*y5/3“/”两个整数相除结果为整数。自动舍去小数部分。如:5/3=1,-5/3=-1“%”为求余运算符,要求两边均为整型量。如:5%3=2,-5%3=-2,5%(-3)=2,(-5)%(-3)=-273/99

2、算术表示式和运算符优先级与结合性。用算术表示式和括号将运算对象连接起来,符合C语法规则式子称为算术表示式。如:a*b/c-1.5+’a’运算规则为:先算*,/,%后算+,-。同级自左至右结合运算。如:

a-b+c74/993、

强制类型转换运算符。能够利用强制类型转换将一个表示式结果转换为所需类型。格式为:(类型名)(表示式)如:(int)(x+y);(float)a

注意:强制类型转换时,得到一个所需用类型中间变量,原来变量类型未发生改变。

75/99如:main(){floatx;inti;x=3.6;i=(int)x;Printf(“x=%f,i=%d)”,x,i);}结果为:x=3.600000,i=376/994、

自增自减运算符。“++”“--”如:++i(先加)i++(后加)i--(后减)--i(先减)i=3j=++i则j=4j=i++则j=3j=i--则j=3j=--i则j=277/99注意:1、自增自减只适合用于变量,不适合用于常量和表示式。5++(x+y)++都是不正当.2++和—结合方向为自右向左。-i++等价于-(i++)78/995、相关表示式使用中问题说明(1)子表示式求值次序各系统不一致

a=f1()+f2();i=3(i++)+(i++)+(i++)要得到12i=3;a=i++;b=i++;c=i++;d=a+b+c;79/99(2)j+++i(j++)+i,j+(++i)(3)printf(“%d,%d”,i,i++)j=i++;printf(“%d,%d”,j,i)80/993.9赋值运算符和赋值表示式1、赋值运算符“=”

a=32、类型转换(1)实型赋给整型:舍弃小数部分。

j=3.45;结果是j=3;(2)整型赋给实型:值不变,以实型存放。(3)double型与float型间赋值(4)字符型赋给整型:与系统相关

81/99(5)int,short,long赋给char型:只取低8位(6)int型与long型间赋值(7)有符号与无符号间赋值

不一样类型间赋值标准是:按存放单元中存放形式直接传送。82/993.复合赋值运算符+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=赋值表示式:由赋值运算符将一个变量和一个表示式连接起来式子。a=(b=5),a=b=c=5,a=5+(c=6),a=(b=10)/(c=2)a+=a-=a*a(a初值为12)

printf(“%d”,a=b);83/993.10逗号运算符和逗号表示式表示式1,表示式2,。。。。,表示式nx=(a=3,6*3)x=a=3,6*3注意:函数参数中逗号不是逗号表示式84/99第4章最简单C程序设计

-----次序程序设计4.1C语句概述1、C程序结构

C程序能够由若干个源程序文件组成,一个源程序能够由若干个函数和预处理命令以及全局变量申明部分组成,一个函数由数据定义部分和执行语句组成。85/99C程序源程序文件1源程序文件2源程序文件n预处理命令全局变量申明函数1函数n函数首部函数体局部变量申明执行语句…..…86/992、5类C语句(1)控制语句

if()else~for()~while()~do~while()continuebreakswitchgotoreturn87/99(2)函数调用语句。

printf(“%d”,a);(3)表示式语句

a=2;j=j+1;j++;x+y;(4)空语句;(5)复合语句{}88/994.2赋值语句注意:“=”是运算符。赋值表示式概念是C语言独有特色。4.3数据输入输出概念及在C语言中实现*由计算机向外部输出设备输出数据叫“输出”。*从外部设备输入数据叫“输入”。*C语言没有输入输出语句。*使用C函数必须用预编译命令包含相关头文件。#include<stdio.h>或#include“stdio.h”89/994.4字符数据输入输出*Putchar()和getchar()函数Putchar(c)向终端输出一个字符(包含控制字符和转移字符)。Getchar()是从终端输入一个字符。无参数。每一次只接收一个字符。

90/99注意:1、在使用这两个函数时,应在程序开头加上包含命令:#include“stdio.h”.2、在执行getchar()函数时,即使是读入一个字符,但

温馨提示

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

评论

0/150

提交评论