收藏 分享(赏)

c程序的基本结构.ppt

上传人:HR专家 文档编号:6343685 上传时间:2019-04-08 格式:PPT 页数:73 大小:613KB
下载 相关 举报
c程序的基本结构.ppt_第1页
第1页 / 共73页
c程序的基本结构.ppt_第2页
第2页 / 共73页
c程序的基本结构.ppt_第3页
第3页 / 共73页
c程序的基本结构.ppt_第4页
第4页 / 共73页
c程序的基本结构.ppt_第5页
第5页 / 共73页
点击查看更多>>
资源描述

1、1,高级语言程序设计,主讲:李端强课程网址:http:/www.nclass.org,2,课程前言(4W),Why What How Then How,3,Why,程序设计思维训练 后续专业课程需要 就业素养需要 实习技能需要 毕业论文选题,4,What,算法表示的一般方法 C程序设计的基础知识 程序设计的常用技能、技巧 程序设计的基本训练 是报考全国计算机等级考试二级、三级的基础,5,How,课堂讲授 分组学习 案例研习 讲练结合 项目实训 提交程序,6,Then How,算法表示的一般方法 C程序设计的基础知识 程序设计的常用技能、技巧 能用编程解决一定难度的应用问题 获得全国计算机等级考

2、试二级C语言考证 考核要求:平时成绩30考试70,7,第一章 语言基础,8,C语言学习网站: http:/www.nclass.org,9,C程序的基本结构C程序的运行过程C语言基本语法成分 数据的输入与输出 算法 及其它,本章内容构成,10,.1 C程序的基本结构,程序是什么?程序是问题处理过程的步骤描述。 程序设计:用计算机语言来描述程序。,int a,b,c; scanf(“%d%d”,11,演示三个简单程序,观察C程序结构,【例1】向屏幕上输出一句话:Hello,everyone!,12,主函数,#include void main( ) printf(“Hello everyone!

3、n“); ,预处理命令,主函数,【例1】,函数体,13,#include void main( ) int a,b,c;scanf(“%d%d”, ,【例2】定义简单变量,求计算结果,14,int max(int x,int y) int z;if(xy) z=x;else z=y;return z; main() int a,b,c;scanf(“%d%d“, ,/* 用户自定义函数 */,【例3】定义用户函数,求两个数的最大值,/* 主函数 */,/* 调用用户自定义函数 */,15,C程序是由函数组成的。每个程序有且只有一个main()主函数。用户自定义的函数独立于主函数,位置位于主函数

4、前后都可以。C程序总是以main()函数作为入口开始执行,结束于main()的最后一条语句。每个函数都由函数首行信息和函数体构成。函数体首先书写变量定义语句,然后是其它程序语句。以# 开始的预处理命令写在整个程序开始之处。,C程序框架结构,【分析与总结】,16,注意: 一个源程序存盘就是一个扩展名为.C的文件(Turbo C 或 Borland C)。 当使用Visual C+等环境调试程序时,默认生成文件扩展名为.cpp,同时还自动生成一些其它的附带文件。本学期学习仅关注.cpp或.c文件即可。,17,.2 C程序的运行过程,18,程序演示,注意观察: (提问) 如何新建文件? 如何输入源程

5、序? 如何保存或命名? 如何编译源文件? 如何组建和运行源文件? 如何查看结果?,19,VC环境操作总结,文件新建C+source文件 输入源程序在右侧的主窗口? 保存:文件保存;或CtrlS 编译:组建编译,或CtrlF7信息提示窗口(下方) 组建:F7;运行:CtrlF5 查看结果:press any key to continue?,20,几个基本概念,源程序:用C语法描述的程序;存盘扩展名为.C 目标程序:经过编译得到的二进制代码。扩展名为.OBJ 可执行程序:目标程序与库函数连接后的完整、独立执行的程序。扩展名为.EXE,21,C程序上机,补充两点: 每个默认工作空间只能生成一个.e

6、xe文件,因此当再建一个新的C源程序时,需:“文件” “关闭工作空间”然后再“文件”“新建”C+source文件 2.建立个人文件夹,将你的程序放在其中,清晰易查找。,22,编程小练,现在我们能编写简单程序吗?,仿照例1编写程序:向屏幕上输出一句话“My name is .”。,仿照例2编写程序:求三个数的平均数。补充一个数据类型float,23,初识scanf函数,输入数据使用输入函数: scanf(“%d%d“,说明: 输入整型数(int)用d,输入实数类型(float)用f,输入几个变量值就用几个格式符;例如: scanf(“%f%f%f“, 第二部分参数是变量的名称前加运算符“&”,2

7、4,初识printf函数,简单输出数据:只输出简单信息:printf(“Hello students!n“);输出变量值:printf(“sum is %dn“, sum);,25,由若干程序语句按顺序书写,按顺序执行; 每条语句以分号“ ;”结束;一个复杂的语句也可以写成几行,用反斜杠 表示续行;几个简单语句也可写在一起,都必须用“;”作为每句结束标志。 通常变量定义放在开始部分; 语句后面可以有注释,注释内容放在 /* */内,程序体的基本语法要素,【总结1】,26,标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。 例如:sum,average,_total,C

8、lass,day,stu_name,p405不合法的标识符:M.D.John,$123,#33,3D64,ab区别大小写。 例如:sum不同Sum。BOOK不同book。 标识符长度有限制(TC 最多32个字符,有的系统最多8个)。 例如:student_name,student_number 如果取8个,这两个标识符是相同的。 标识符不能与“关键词”同名,见教材13页。 建议:标识符命名应当有一定的意义,做到见名知义。,C语言标识符定义规则,27,内容总结及回顾,C程序的基本结构:函数;main框架;预处理命令在前;有且只有一个main函数、函数组成(函数说明部分、函数体);函数体内顺序:先

9、变量定义,再其它语句。 简单变量定义:int、float 标识符的命名规则。C程序的VC上机过程。 简单使用scanf输入数据、printf输出数据,28,.3 编写简单的C语言程序,29,【回答】如果程序中处理的数据需要由用户在运行程序时确定,应该用scanf()函数输入;如果数据不需用户确定,而由程序自身确定,可直接赋值。,【思考】你知道以下两种方法为变量输入已知值的不同吗?,main() int a,b,c;a=4; b=5;c=a+b;printf(“sum is %dn”,c); ,main() int a,b,c;scanf(“%d%d”, ,30,基本编程经验,总结2: 程序由

10、“输入处理输出” 三个模块组成。 输入时通常先定义变量,然后用输入函数scanf()输入数据,或直接给变量赋值。 程序的关键算法语句。 使用输出函数,如printf()输出结果。,31,让我们一起分析、编写一个程序吧,【实例4】某铁桶厂应客户要求定做一批铁桶,客户给出了铁桶的规格,高30cm,半径10cm,共订做1500个铁桶。工厂接到订单后需马上计算出所需的原材料组织生产。,1-1.c,32,分析: 我们知道铁桶为圆柱形,其表面积的计算可以利用数学公式:S=2RH+R2 为了计算S的值,我们首先需要向计算机输入两个已知值R和H,计算机根据上面的公式进行运算,得到一只铁桶的铁皮用量,然后计算N

11、只铁桶的总铁皮用量,最后输出计算结果。 因此上面程序的工作步骤可以描述为: 1. 定义四个变量S,R,H,N。 2. 为R,H,N输入已知值。 3. 利用公式S=2RH+R2求表面积S。 4. 求总用量SSN。 5. 输出最后结果S 6. 结束。,33,#include main() float s,r,h; /* 定义变量s表示面积,r表示半径,h表示桶高 */ int n; /* 定义变量n表示桶的数量 */ printf(“input r,h,n:n”); /*友好的屏幕提示,让用户输入已知值*/ scanf(“%f%f%d”, /* 输出总铁皮用量 */ ,运行程序吧!,34,【实例5

12、】利用系统库函数实现数学运算,求xy。 #include /*系统标准输入、输出函数库*/ #include /*系统数学函数库*/ main() double x,y,Result; /*定义两个输入变量x,y及输出变量Result*/printf(“Please enter x,y for pow(x,y):“); /*提示输入x和y的值*/scanf(“%lf%lf“, /*输出结果值*/ ,double是双精度实数类型,35,.4 C语言基本语法成分,36,C语言字符集(略) 标识符:变量名、符号常量名、函数名、数组名、类型名等。 关键字(自学) C语言语句及表达式:变量定义语句、赋值

13、语句、函数调用语句、空语句、表达式 运算符:算术运算符(除法)、赋值运算符、sizeof运算符、关系运算符。优先级见附件,括号优先、括号一律用小括号、多层括号由内向外算; 分隔符:空格(源程序中起到分隔元素的作用)空格、回车、Tab(输入数据的分隔) 其它符号:略,37,.5 C语言数据类型,38,本小节目录,数据类型总体分类 整数类型 实数类型 字符型数据,39,类型,基本类型,构造类型,指针类型,空类型,整型,实型,枚举型 enum,字符型 char,数组类型,结构体类型,共用体类型,双精度 double,单精度 float,短整型 short int,整型 int,长整型 long in

14、t,40,变量与常量,每种数据类型都可定义变量,变量的定义格式如下例: int a,b; float x,y; char str; 变量的命名符合标识符的命名规则。 变量其值可变,多次赋值,只保留最后一次值,例如:a=0; a=4+5; a=a+1; /* 最后变量a的值为10 */ 常量:上例中的0、4、5、1等数值就是整型常量,每种数据类型都有相应的常量,值固定不变。,41,1 整数类型,short int、int、long int;分别用2字节、2字节、4字节存放,见P15页表1.2 同时又分signed 和unsigned两种 变量定义举例:short a,b,c; 或 short i

15、nt a,b,c;unsigned int a; 常量表示:有十进制、八进制和十六进制三种表示方式。 规定以0开头的数为八进制数,以0x开头的为十六进制数。如:235,0235,0x235。 如:a=0235; b=0x235; 在一个整数后加一个字母 l 或L表示长整型数。如:-135L。如:long x;x=23L; 注意:八进制和十六进制只能表示正数。,42,2 实数类型,分为float、double、long double;分别用4字节、8字节、10字节存放,见P15页表1.3 常量表示:十进制、指数二种表示方式。 十进制:如:0.12,.12,123.0,123.,0. ; 指数形式

16、:如1.2e3和0.12E4都表示1.2103。 注意e(或E)前面要有数字,且e(或E)后面的指数必须为整数。如2.3e3.5,e2是不合法的表示形式。 实型常数默认为double型。 要表示float型常数,则必须在实数后加上字母f或F。 表示long double型常数,必须在实数后加字母l或L。,43,3 字符型,字符变量:占一个字节存储空间。 常量表示:用单引号( )括起来的单个字符, 如:A、a、0、$、,等。 如:char ch; ch=A; 字符常量本身具有数值,就是它们的ASCII码值, 如:A的值是65, a的值是97,0的值是48 转义字符 :以“”开头的字符序列,将反斜

17、杠“”后面的字符转变成另外的意义 。见P16页表1.4 举例:101是转义字符,表示以八进制数表示的字符A,又如xE3是十六进制数表示的字符, 362是八进制数表示的字符,44,字符型数据与整型数据的相互运算:如:int i;char ch;i=A+2;ch=a-32;,则 i 值为67,ch值为A。,45,#include void main( ) char ch;int x;ch=A;x=ch+32;printf(“%c,%dn“, ch, ch);printf(“%c,%dn“, x, x); ,运行结果: A, 65 a, 97,46,4 字符串常量,是由一对双引号(“ ”)括起来的字

18、符序列。 如:“Hello“、“I love China!“、“How do you do? “ C语言会自动在字符串的末尾加一个转义字符0,作为字符串常量的结束标志。 例如:字符串“China“在内存中占有6个字节的连续内存单元,,C语言中无专门的字符串变量,而将字符串常量存放在字符型数组中。,47,在处理字符串常量时需要注意其中的转义字符,如: printf(“The name is c:toolsbook.txt“); printf(“abctdefnghiibt“hello!”“); “141141abct“,48,思考:如何实现两个变量值的互换? 常见算法有两种:算法1:定义第3个变

19、量作为中间变量,借以互换值。算法2:不需要任何中间变量,利用加减法实现值互换。a=a+b; b=a-b; a=a-b;,例题1_6:定义变量,为它们赋值,互换两个变量的值。,49,#include main() int a,b,c;a=30; b=40;c=a; a=b; b=c; printf(“a=%d,b=%d“,a,b);getch(); ,总结:通过本例理解变量是可变的量,可以不断的被赋以新值,只保留最新值。,1-6.c,50,#include main() char ch;printf(“input a char:“);scanf(“%c“, ,学生练习:从键盘上输入一个小写字母,

20、把它转变为大写字母再输出。 提示:大、小写字母的ASCII值相差32,1-5.c,51,提问,算术运算符、关系运算符及关系运算的结果。 C语言数据类型的分类 基本数据类型分类 整数类型的分类、关键字、类型长度 整型常量的表示方法 实数类型的分类、关键字、类型长度 实型常量的表示方法 字符常量的表示方法 字符串常量的表示方法,52,.6 数据的输入/输出,53,1 标准输入函数,格式: scanf(“格式控制符” ,地址列表);,观察: scanf(“%d %d %d”,&a,&b,&c);,格式符:包括基本格式符和附加格式符,见教材21页表1.8、表1.9,系统默认数据输入的分隔符:回车、空格

21、、Tab键,1-scanf.c 数据的分隔,54,基本格式符,1-scanf.c 格式符的选择,55,附加格式符,1-4.c,56,说明并深刻理解:格式控制符中可以有普通字符,但输入时需将普通字符也一同输入才有效。,1-7.c,57,说明:输入数据时,遇到以下情况之一认为一个数据输入结束:遇到空格、tab键、回车键满足设定域宽,如4d,输入123456系统截取到1234即结束。遇到非法字符,如scanf(“%d%c%f”,键盘输入:12P12o.35则:a=12, b=P, c=12.000000,58,说明: 不能企图用格式控制符来规定输入数据的精度 scanf(“%7.2f”,&a) 使用

22、C格式符时,空格字符和回车字符都作为有效字符输入。 scanf()格式符中不要使用转义字符n,59,printf(“ Input two integers ”); printf(“a=%d,b=%d,%d”,a,b,a+b);,格式: printf(“字符串” ,变量列表);,说明: 格式控制符以外的普通字符串原样输出。 第2部分参数可省,只用于输出提示信息 变量列表也可以是表达式或常量。 格式控制符和变量列表的变量个数应相等。,2 标准输出函数,60,格式符:包括基本格式符和附加格式符,见教材20页表1.6、表1.7, 基本格式符同scanf()函数。 当需要输出时,需用“”,61,在格式控

23、制符中,%和跟随的单个字符间又可插入以下几种附加符号,字符 说明字母l 用于长整型, 加在格式符d、o、x、u前面m(正整数) 数据输出宽度(域宽).n(正整数) 对实数,输出n位小数;对字符串,表示截取的字符个数 输出的数字或字符在域内向左靠齐,注:n之 前有一小数点,举例1-4.c,附加格式符,62,注意:当m小于实际长度时,m不起作用,按实际 长度输出 一个整数只要它的值在0255之间,它即可以整数形式输出,也可字符形式输出。同样一个字符数据也可用整数形式输出,1-2.c,63,其他输入输出函数:,getchar()、putchar() gets()、 puts(),例如:char c;

24、c=getchar();或scan(“%c”,使用这些函数,需包含头文件stdio.h,64,.7 算法,65,1、算法的概念及特性, 有穷性: 确定性: 有0个或多个输入: 有1个或多个输出: 有效性:,66,2、算法的表示方法,自然语言 传统的程序流程图 N-S流程图 伪代码或计算机语言描述,67,顺序结构 选择结构 循环结构,结构化程序设计的 三种基本结构,见24页图1.5,68,传统的程序流程图例图,结束,输入a,b,c,ab?,bc?,ac?,输出c,输出b,输出c,输出a,开始,t,f,f,t,f,t,69,N-S 图,即结构化程序设计流程图,提供了描述三种基本逻辑结构的图形工具,

25、与传统的程序流程图对照描述如下:,1、顺序结构,(a) (b),图 1.3 顺序结构,70,N-S 图,2、选择结构(分支结构),(a) 流程图表示 (b)N-S图表示,图 1.4 选择结构,成立,不成立,71,N-S 图,由分支结构派生出来的多分支结构,(a) 流程图表示 (b)N-S图表示,图 1.5 多分支结构,k1,k2,kn,72,N-S 图,3、循环结构,(a) 流程图表示 (b)N-S图表示,图 1.6 当型循环结构,a.当型循环结构:先判断循环条件是否满足,当条件满足,执行一遍循环体,再判断循环条件,仍满足再执行一遍循环体直到不满足条件,则退出循环,执行循环体后的下一语句。若第一次判断条件就不满足,则一次也不执行循环体。,73,N-S 图,(a) 流程图表示 (b)N-S图表示,图 1.7 直到型循环结构,b.直到型循环结构:先执行一遍循环体,再判断循环条件是否满足,如不满足再执行一遍循环体直到条件满足,则退出循环,执行循环体后的下一语句。这种循环结构至少要执行一遍循环体。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报