【顿开教育】第01课 C语言课程介绍
- 格式:doc
- 大小:1.84 MB
- 文档页数:68
C语言课程教案详解章节题目:第一章C语言概述教学时间:4学时教学目的:1、了解C语言的产生过程2、掌握C程序结构3、掌握C程序开发过程4、掌握用TURBO C运行一个C程序。
内容、重点、难点:内容:1.1C语言的历史和特色1.2C程序结构1.3C程序的开发过程重点:1、掌握C程序的基本结构构成2、学会用Turbo C运行一个C程序难点:掌握C程序的开发过程第1章C语言概述C语言是国际上广泛流行的一门高级程序设计语言,具有语言简洁、使用方便灵活、移植性好、能直接对系统硕件和外围接口进行控制等特点。
本章将简要地介绍它的产生过程和特点、C程序结构及C程序的上机步骤,以便对C语言有一个概括的认识。
1.1 c语言的历史和特色1历史1)1960 年出现了ALGOL 60。
2)1963年和1967年,在ALGOL 60的基础上推出了CPL和BCPL语言更接近于硬件。
3)1970年美国贝尔实验室对BCPL语言做了进一步简化,设计了B语言,并用B语言编写了第一个UNIX操作系统。
4)在1972年至1973年间,贝尔实验室的D.M.Ritchie在B语言的基础上设计出C语言。
2•特色1)简洁紧凑,使用方便灵活C语言一共只有32个关键字、9种控制语句,程序书写自由,压缩了一切不必要的成分,语言简练。
2)运算符丰富C语言有34种运算符和15个等级的运算优先顺序,使表达式类型多样化,对以实现在其它语言屮难以实现的运算。
3)数据类型丰富C语言的数据类型有整型、实型、字符型、数组类型、指针类型、结构体类型、联合体类型及枚举类型等,能用來实现各种复杂的数据结构的运算。
4)模块化结构C语言用函数作为程序的模块单位,便于实现程序的模块化,而且便于模块间相互调用及传递数据。
5)语法限制少和程序设计自由度大C语言允许程序编写者有较大的自由度,放宽了以往高级语言严格的语法检查,较好地处理了“限制”与“灵活”这一对矛盾。
6)比较接近硬件C语言允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。
C语言教程第一课C语言是一种广泛应用于计算机编程的高级编程语言。
它以其简单的语法、高效的执行速度和良好的可移植性而被广泛使用。
本教程将为你介绍C语言的基本概念、语法和编程技巧,帮助你快速入门C语言编程。
一、什么是C语言?C语言是由贝尔实验室的Dennis Ritchie在20世纪70年代初开发的一种基于UNIX操作系统的编程语言。
它是一种结构化的、面向过程的语言,逐渐成为软件开发人员必备的工具之一。
C语言的特点包括灵活性、高效性和可移植性。
它提供了丰富的库函数和强大的底层操作,使得程序员能够直接访问计算机硬件和操作系统资源,实现高效的程序设计。
二、C语言的基本语法1. 注释在C语言中,注释是用来解释代码的部分,不会被编译器执行。
有两种注释的方式:// 单行注释/*多行注释*/2. 主函数C语言的程序执行入口是主函数main,它的定义形式如下:int main(){// 你的代码return 0;}3. 变量和数据类型在C语言中,需要提前声明变量的类型,并为其分配内存空间。
常用的数据类型有:- 整型:int、short、long- 浮点型:float、double- 字符型:char4. 运算符C语言支持一系列的运算符,例如算术运算符、关系运算符和逻辑运算符,用于进行数值计算和比较判断。
5. 控制流程语句C语言提供了多种控制流程语句,用于根据条件执行不同的代码块或者循环执行一段代码。
- 条件语句:if、else if、else- 循环语句:for、while、do while三、编写你的第一个C程序下面是一个简单的C程序示例,用于输出"Hello, world!":#include <stdio.h>int main(){printf("Hello, world!\n");return 0;}在这个示例中,我们使用了stdio.h头文件中的printf函数,用于在控制台输出信息。
C语言第一章 c语言概述C语言基础教程1.1.c语言的由来与发展1.1.1. c语言的由来c语言诞生干19?2年,由美国电话电报公司(AT&T)贝尔实验室的D. M. Ritchie设计,并首先在一台使用UNIX操作系统的DEC PDP-11计算机上实现。
C语言是在一种称为B语言的基础上,克服了B语言依赖于机器又无数据类型等局限性开发的语言。
在1970年,美国贝尔实验室的IC. Thompson以BCPL语言为基础,设计出一种既简单又接近于硬件的B语言,并用它写成了第一个UNIX操作系统,在PDP-7计算机上实现的。
B语言是取了BCPL语言的第一个字母。
而BCPL语言(Basic Combined ProgrammingLanguage)是3.967年英国剑桥大学的M. Richard,基于一种CPL语言(combined Program-wing Language)提出的一种改进的语言。
而CPL语言又是于1963年英国剑桥大学根据AL-GOL 8。
推出的一种接近硬件的语言。
由此可见,G语言的根源可以追溯到ALGOL 60,它的演变过程如下所示:ALGOL6o(1960年)与CPL(1963年)一BCPL(1967年)iB<3970年)-->C(1972年1. 1. 2 C语言的发展C语言是在人们设想寻找一种既具有一般高级语言的特征,又具有低级语言特点的语言的情况下应运而生的,它具有人们的这种期望,集中了高级语言和低级语言的优点。
最初的C语言就是为了描述和实现UNIX操作系统而产生的一种工具语言。
1973年,贝尔实验室的KThampson和D. M. Ri}chie两人合作使用C语言修改了UNIX操作系统,即uNZx 第5版本。
原来的UNIX操作系统是用汇编语言写的,改写后UNIX操作系统中90%以上使用了C语言。
从此,C语言的命运与UNIX操作系统便有着密切的联系,随着UNIX操作系统的发展和推广,C语言也在被广泛的使用和发展。
第1章C语言基础C语言是一门优秀的程序设计语言,其本身是高级语言,却又同时具有低级语言的某些优点,既可以用于编写系统程序,也可以用于编写应用程序。
C语言是函数式语言,编制 C程序就是编写C函数。
早期的C 语言主要是用于UNIX系统,由于C语言的强大功能和各方面的优点逐渐为人们认识,到了八十年代,C语言开始进入其它操作系统,并很快在各类大、中、小和微型计算机上得到了广泛的使用,成为当代最流行的程序设计语言之一,随着计算机的普及和发展,C语言在各个领域的应用越来越广泛,几乎各类计算机都支持C语言的开发环境,这为C语言的普及和应用奠定了基础。
本章介绍C语言的特点、程序组成、书写规则、上机运行和调试应用程序的方法以及基本数据类型、运算符和表达式。
1.1 C语言的发展与特点1.1.1 C语言的发展程序设计语言也在不断升级换代,主要经历了面向机器(机器语言和汇编语言)、面向过程(高级语言)和面向对象(高级语言)几个阶段。
C语言的发展历程简述如下:1972~1973年间,美国贝尔实验室的D.M.Ritchie在B语言的基础上设计出C语言,当时的C语言只是为描述和实现UNIX操作系统的一种工作语言,且只在贝尔实验室内部使用。
1973年,K.Thompson和D.M.Ritchie两人合作,将UNIX 90%以上代码用C语言改写,即UNIX第5版。
1975年,UNIX第6版公布后,C语言突出的优点引起人们普遍注意。
1977年,出现了可移植的C语言。
1978年,UNIX第7版公布,K.Thompson和D.M.Ritchie以该版C编译程序为基础,合著《The C Programming Language》一书,该书所介绍的C语言,成为后来广泛使用C语言版本的基础,被称为标准C语言。
1983年,美国国家标准化协会(ANSI)根据C语言问世以来的各种版本,对C语言进行发展和扩充,并制定了新的标准,称为ANSI C。
1990年,国际标准化组织ISO制定了ISO C标准。
第1章 C语言概述1.1一个简单的C语言程序1.1.1 #include指令#include :文件包含命令<xxx> : xx文件“xx.h” : xx.h文件1.1.2 注释1.1.2.1 多行注释/*这是我的第一个程序作者:莫影版本:version 1.0*/1.1.2.2 单行注释// 打印函数1.1.3 main函数1.1.3.1 函数类型1.1.3.2 函数名1.1.3.3 函数返回值1.2 计算机组成原理1.2.1 计算机运行原理1.2.2 进制转换1.2.2.1 二进制①. 二进制数1010B = (1010)2②. 数据存储与二进制· 1位(b)等于1个二进制位· 1字节(bit)等于8个二进制位③. 存储单位与二进制· 1 KB = 1024 B = 210B· 1 MB = 1024 KB = 220B· 1 GB = 1024 MB = 230B· 1 TB = 1024 GB = 240B1.2.2.2 八进制①. 八进制数271Q = (271)8②. C语言中的八进制数0开头的数字1.2.2.3 十六进制①. 十六进制数1C2F H = (1C2F)16②. C语言中的十六进制数0x开头的数字1.2.2.4 进制间转换①. 八进制与二进制1位八进制位等于3位二进制位②. 十六进制与二进制1位十六进制位等于4位二进制位第2章编程启蒙思想2.1 算法概述2.1.1 什么是算法算法:解决问题的方法2.1.2 算法的优劣2.1.2.1 时间复杂度2.1.2.2 空间复杂度2.1.2.3 正确性2.1.2.4 容错性2.1.2.5 可读性2.2 算法描述2.2.1 自然语言用自然语言表示算法就是用日常生活中使用的语言来描述算法的步骤。
自然语言通俗易懂,但是在描述上容易出现歧义。
2.2.2 伪代码伪代码必须结构清晰、代码简单、可读性好,介于自然语言与编程语言之间。
2.2.3 流程图2.2.3.1 基本控件起止框处理框判断框输入输出框流程线2.2.3.2 基本结构①. 顺序结构--复制运算②. 选择结构--求x的绝对值. 循环结构--简单循环2.2.3.3 简单应用跑圈问题2.2.4 N-S流程图2.2.4.1 基本控件①. 顺序结构②. 选择结构③. 循环结构2.2.4.1 简单应用第3章数据类型+常用的输入和输出函数3.1 关键字C语言中,关键字是不允许作为标识符出现在程序中3.2 标识符3.2.1 什么是标识符在程序中为了使用一些东西(常量,变量,数组,函数等),就要为他们设定一个名字,而设定的名字就是标识符。
3.2.2 标识符命名规则3.2.2.1 开头必须是字母或者下划线3.2.2.2不能使用数字或者符号作为开头3.2.2.3 区分大小写3.2.2.4 关键字不能作为标识符3.2.2.5 看其名,知其意3.3 编程规范3.3.1 命名规范3.3.1.1驼峰命令法大驼峰:DisplayInfo();小驼峰:displayInfo();3.3.1.2匈牙利命名法m_lpszStr3.3.1.3帕斯卡(Pascal)命名法大驼峰:DisplayInfo();3.3.2 代码规范3.3.2.1程序块要采用缩进风格编写3.3.2.2 较长的语句(>80)要分成多行书写3.3.2.3 函数参数较长,适当的划分3.3.2.4 一行只写一条语句。
3.3.3 注释规范3.3.3.1 说明性注释(.h文件)3.3.3.2 源文件注释3.3.3.3 函数注释3.3.3.4 注释量一般情况下,源程序有效注释量必须在20%以上。
3.4 常量3.4.13.4.1.1 长整型/短整形长整型:后缀L3.4.1.2 符号整型/无符号整型无符号整型:后缀U3.4.1.3 八进制整数和十六进制整数八进制整型:前缀0十六进制整型:前缀0x3.4.2 实型常量3.4.2.1 科学计数方式SciNum=1.1221;3.4.2.2 指数方式单精度:F ----floatFloatNum=1.2e2F双精度:L ----long doubleDoubleNum=1.2e2L默认为double双进度类型3.4.3 字符常量3.4.3.1 字符常量'a' , 'b', 'c' 注:区分大小写3.4.3.2 字符串常量“a”,”Welcome”3.4.4 转义字符不能输出数据能出现一定的效果的\字符为转移字符;3.4.5 符号常量#define PI 3.143.5 变量3.5.1 整型变量3.5.1.1 有符号基本整型①. int iNumber=1;②. signed int iNumber=1;③. 内存占用4个字节3.5.1.2 无符号基本整型①. unsigned int iNumber=1;②. 内存占用4个字节3.5.1.3 有符号短整型①. short iNumber=1;②. signed short iNumber=1;③. 内存占用2个字节3.5.1.4 无符号短整型①. unsigned short iNumber=1;②. 内存占用2个字节3.5.1.5 有符号长整型①. long iNumber=1;②. signed long iNumber=1;③. 内存占用4个字节3.5.1.6 无符号长整型①. unsigned long iNumber=1;②. 内存占用4个字节3.5.2 实型变量3.5.2.1 单精度①. float fFloatNumber=1;②. 内存占用4个字节3.5.2.2 双精度①. double fDoubleNumber=1;②. 内存占用4个字节3.5.2.3 长双精度①. long double dDoubleNumber=1;②. 内存占用8个字节3.5.3 字符型变量①. char cCharNumber= 'a';②. 内存占用1个字节3.6 变量存储类别3.6.1 动态存储与静态存储动态存储:程序运行分配固定的内存的存储方式动态存储:程序运行动态分配存储空间的方式3.6.2 auto变量可省略3.6.3 static 变量静态变量:在程序未终止前保持上一次修改值3.6.4 extern 变量声明外部变量3.6.5 register变量寄存器变量:变量存储与寄存器,提高效率3.7 格式化输出/输入3.7.1 头文件使用前加上头文件:#include<stdio.h>3.7.2 格式化输出3.7.2.1 printf基本形式3.7.2.2 格式控制字符串3.7.2.3 printf使用. 原样输出单行输出:printf(“这是一个美好的世界\n”);多行输出:printf(“这是一个美好的世界\n”“对,没错,是这样的\n”“你要学会享受这个过程\n”);②. 变量输出int a=1;printf(“%d”,a);③. 转义字符输出printf(“%%”); 输出%printf(“\\”);输出\3.7.3 格式化输入3.7.3.1 scanf基本形式3.7.3.2 格式说明字符3.9 字符串输入/输出3.9.1 字符输入/输出3.9.1.1 格式化输入/输出char cNumber;scanf(“%c”,&cNumber);printf(“%c”,cNumber);注:一般字符输入时需清空缓冲区fflush(stdin)3.9.1.2 特殊函数char cNumber;cNumber=getchar();putchar(cNumber);3.9.2 字符串输入/输出3.9.2.1 格式化输入/输出char strNumber[20];scanf(“%s”,strNumber);printf(“%s”,strNumber);3.9.2.2 特殊函数char strNumber[20];gets(strNumber);puts(strNumber)第4章运算符与表达式4.1 表达式由操作符和操作数组合的算式称之为表达式4.2 赋值运算符与赋值表达式4.2.1 赋值运算符左值=右值注:左值必须是变量4.2.2 赋值表达式变量赋初值类型变量名=初值4.2.3 自动类型转换4.2.4 强制类型转换(强制转换类型)变量名int iNumber=1;double dNumber=1.11;iNumber=(int)dNumber;4.4 算术运算符与算术表达式4.4.1 算数运算符+ - *:乘 /:除%:取余4.4.2 算术表达式算术运算符和操作数组成的算式4.4.3 自增自减运算符++:自增,原基础+1--:自减,原基础-1先自增/减再运算:++iNumber/--iNumber先运算再自增/减:iNumber++/iNumber--注:只能是各种整型数据4.4.4 优先级与结合性优先级:先执行,先运算的先后关系(数学一样)结合行:同优先级的运算符,结合性是从左到右4.5 关系运算符与关系表达式4.5.1 关系运算符!= , ==, >=, <=,>,<4.5.2 关系表达式关系运算符和操作数组成的算式4.5.3 优先级与结合性优先级:!=高于 = (易错)注:不存在连续操作 (1<iNumber<5)4.6 逻辑运算符与逻辑表达式4.6.1 逻辑运算符&&:与 ||:或 !:非4.6.2 逻辑表达式逻辑运算符和操作数组成的算式4.6.3 优先级与结合性结合性:从左到右优先级:!>&&>||注意:&& 与||短路现象4.7 位逻辑运算符与位逻辑表达式4.7.1 位逻辑运算符|:或 &:与 ~:取反 ^:异或通常用于对整数的进行位设置,清零,取反。
4.7.2 位逻辑表达式位逻辑运算符和操作数组成的算式4.8 逗号运算符与逗号表达式4.8.1 逗号运算符逗号运算符又称之为顺序求值运算符:,4.8.2 逗号表达式Value=2+5,1+2,2+3;(Value=7)注:=优先级高于,4.9 复合赋值运算符4.9.1 复合赋值运算符+= -= *= /=简化复制运算符4.9.1 复合赋值表达式value+=20 等效于 value=value +20;第5章选择结构体程序设计5.1 选择结构一种描述判断后进行选择的过程的结构5.2 if语句5.2.1 if5.2.1.1 基本形式if(判断条件){语句块;}5.2.1.2 多条组合if(判断条件1){语句块1;}if(判断条件2){语句块2;}5.2.2 if-else5.2.2.1 基本形式if(判断条件1){语句块1}else //不满足判断条件1执行{ 语句块;}5.2.2.2 多条组合if(){}else{}if(){}else{}5.2.3 if-else if-else5.2.3.1 基本形式if(){}else if(){}else{}5.2.3.2 多条组合if(){}else if(){}else if(){}......else{}5.2.4 if嵌套if(){if(){}}5.3 swtich语句5.3.1 switch基本形式switch(表达式){case 常量1:语句块1case 常量2:语句块2......default : //其他情况}5.3.2多路开关模式switch(表达式){case 常量1:语句块1;break;case 常量2:语句块2;break;......default : //其他情况}5.4 选择结构体程序应用5.4.1 数学求值问题求x的绝对值5.4.2 菜单处理第6章循环结构体程序设计6.1 循环语句重复/反复执行一段命令称之为循环6.3 for循环6.3.1 基本形式for(表达式1;表达式2;表达式3){循环体;}表达式1:循环变量初始化表达式2:循环条件表达式3:循环变量变化6.3.2 特殊形式for(;;){循环体;}6.4 while循环6.4.1 基本形式while(表达式1){循环体;}6.4.2 特殊形式while(1){} //死循环6.5 do-while循环6.5.1 基本形式do{循环体;}while(表达式1);6.5.2 特殊形式do{循环体;}while(1);//死循环6.7 循环嵌套6.7 for循环嵌套倒直三角****************6.8 while循环嵌套倒直三角****************6.9 混合嵌套6.8 转移语句6.8.1 break语句6.8.1.1 常用与switch6.8.1.2 退出当前循环6.8.2 continue 语句6.8.2.1 提前结束本次循环6.8.3 goto 语句6.8.3.1 跳转到指定位置第7章数组7.1 一维数组7.1.1 一维数组的定义和引用7.1.1.1 定义类型说明符数组标识符[常量表达式]int iArray[4];注:常量表达式,表示数组长度7.1.1.1 引用数组标识符[下标]iArray[0]=1;注:下标是从0到(数组长度-1)7.1.2 一维数组的初始化7.1.2.1 定义数组进行初始化①. 全部进行初始化int iArray[]={1,2,3,4}②. 全部进行初始化,数组长度可以省略int iArray[]={1,2,3,4}③. 部分初始化,未赋值的为0int iArray[4]={1,2,3}; (iArray[3]为0)7.1.2.2 循环进行初始化7.1.3 一维数组的应用Fibonacci数列7.2 二维数组7.2.1 二维数组的定义和引用7.2.1.1 定义类型说明符数组标识符[表达式][表达式]int iArray[4][4];注:常量表达式,表示数组长行列长度7.2.1.2 引用数组标识符[下标][下标]iArray[0][0]=1;注:下标是从0到(长度-1)7.2.2 二维数组的初始化7.2.2.1 定义数组进行初始化①. 全部进行初始化int iArray[2][2]={1,2,3,4}②. 全部进行初始化,数组行可以省略int iArray[][2]={1,2,3,4}. 部分初始化,未赋值的为0int iArray[2][2]={1,2,3};(iArray[1][1]为0)7.2.3 二维数组的应用一个学习小组5个人,每个人有三门课的考试成绩。