C语言入门至精通学习-[全集].ppt_第1页
C语言入门至精通学习-[全集].ppt_第2页
C语言入门至精通学习-[全集].ppt_第3页
C语言入门至精通学习-[全集].ppt_第4页
C语言入门至精通学习-[全集].ppt_第5页
已阅读5页,还剩529页未读 继续免费阅读

下载本文档

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

文档简介

教材、参考书与课时安排,教材 C程序设计 (第二版) 谭浩强编著 清华大学出版社 参考书 C语言程序设计教程 谭浩强 高等教育出版社 C高级实用程序设计 王士元 清华大学出版社 C程序设计试题汇编 谭浩强 清华大学出版社 课时安排 64学时,熟记C语言的基本概念 熟悉Turbo C的上机操作环境 会读、会编、会调试C程序 学习要点 熟记C语言的语法 学会算法分析与算法设计,课程目的,课程要求,课前请做好预习 保持课堂安静,头脑清醒,思维活跃 认真、独立、按时完成并提交作业 重视上机实践,有效利用宝贵的上机时间,目 录,第1章 C语言概述,C语言程序设计 第一章 C语言概述,1.1 C语言发展历史 程序设计语言的发展,CPU指令系统,由0、1序列构成的指令码组成 如:10000000 加 10010000 减,用助记符号描述的指令系统,可进行地址、位操作 如 ADD A, B 编写系统软件,直接对硬件操作,可读性,移植性差,面向机器的语言,C语言程序设计 第一章 C语言概述,可读性,移植性好,编写应用程序 一般较难实现汇编语言的某些功能 如:地址和位的操作,C语言兼有高级和低级语言的功能 适合写系统软件和应用软件 又称中级语言,C语言发展过程 产生背景 ALGOL 60CPL语言BCPLB语言,写UNIX系统 产生过程 时间:19721973 地点:美国贝尔实验室 目的:UNIX操作系统 设计人: Ken.Thompson和Dennis.M.Ritchie C标准 标准C: 1978年 K&R合著The C Programming Language ANSI C: 1983年 87 ANSI C: 1987年 1990年国际标准的ANSI C ,1994年再次修订。 C版本 Microsoft C 或称 MS-C Turbo C 或称 TC,C语言程序设计 第一章 C语言概述,1.2 C语言的特点 语言简洁、紧凑、灵活 运算符丰富 数据结构、数据类型丰富 链表、树、栈 程序设计结构化、模块化 结构化控制语句:ifelse、while、switch、for 函数作为模块单位 语法不严格、程序设计自由度大 可以访问内存地址、进行位运算 生成目标代码质量高 可移植性好,C语言程序设计 第一章 C语言概述,32个关键字:(由系统定义,不能重作其它定义) auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef unsigned union void volatile while Turbo C扩充了11个关键字: asm _cs _ds _es _ss cdecl far huge interrupt near pascal 注意:在C语言中,关键字都是小写的。,C语言程序设计 第一章 C语言概述,C语言简洁、紧凑,使用方便、灵活。 ANSI C一共只有32个关键字,见365页 附录B,9种控制语句: if( )else for( ) while( ) dowhile( ) continue break switch goto return,C语言程序设计 第一章 C语言概述,C语言有 9 种控制语句,程序书写形式自由,主要用小写字母表示,压缩了一切不必要的成分。,C语言程序设计 第一章 C语言概述,表1.1 C语言与Pascal语言比较,通过表1.1 我们可以得出结论:C比 Pascal简练,因此源程序更短,编程效率高。,34种运算符: 算术运算符:+ - * / % + - 关系运算符: = != 逻辑运算符:! & | 位运算符 : | & 赋值运算符:= 及其扩展 条件运算符:?: 逗号运算符:, 指针运算符:* & 求字节数 :sizeof 强制类型转换:(类型) 分量运算符:. - 下标运算符: 其它 :( ) - 注意:各种运算符混合使用,其优先级与结 合方法是难点,可先预习。,C语言程序设计 第一章 C语言概述,C语言运算符丰富(附录C),C语言程序设计 第一章 C语言概述,C语言数据结构丰富,1.3 简单的C程序介绍,/* example1.1 The first C Program*/ #include void main() printf(“This is a c program.n”); ,C语言程序设计 第一章 C语言概述,输出: This is a c program.,例1.1 第一个程序This is a c program .,printf语句中的“n”是换行符,例1.2求俩个数的和,/* example1.1 calculate the sum of a and b*/ #include /* This is the main program */ void main() int a,b,sum; /*定义变量*/ a=10; b=24; sum=add(a,b); printf(”sum= %dn“,sum); /* This function calculates the sum of x and y */ int add(int x,int y) int z; z=x+y; return(z); ,运行结果: sum=34,C语言程序设计 第一章 C语言概述,printf语句中的“ %d ”是表示“十进制整数类型”,C语言程序设计 第一章 C语言概述,例1.3 从键盘输入两个整数,输出其中较大的数,#include void main() int max(int x,int y) int a,b,c; scanf(“%d,%d”, ,scanf语句中“&a”的含义是“取地址”,输入:10,20 输出:max = 20,声明部分,定义变量,调用max函数,返回值赋给c,定义max子函数,函数值、形参x、y为整型,通过max函数将z值带回调用处,C语言格式特点 习惯用小写字母,大小写敏感 不使用行号,无程序行概念 可使用空行和空格 常用锯齿形书写格式,C语言程序设计 第一章 C语言概述,main( ) . . . . ,main( ) int i , j , sum; sum=0; for(i=1; i10;i+) for(j=1;j10;j+) sum+=i*j ; printf(“%dn”,sum); ,优秀程序员的素质之一: 使用TAB缩进 对齐 有足够的注释 有合适的空行,C语言结构特点 函数与主函数 程序由一个或多个函数组成 必须有且只能有一个主函数main(),可以放在程序中任一位置 程序执行从main开始,在main中结束,其它函数通过嵌套调用得以执行。 程序语句 C程序由语句组成 用“;”作为语句终止符 注释 /* */为注释,不能嵌套 不产生编译代码,例: /*This is the main /* of example1.1*/ */,编译预处理命令,C语言程序设计 第一章 C语言概述,1.4 C程序的上机步骤 C程序开发步骤,file.exe,C语言程序设计 第一章 C语言概述,程序代码的录入, 生成源程序*.c,语法分析查错,翻译 生成目标程序*.obj,与其它目标程序或库 链接装配,生成可执行 程序*.exe,Turbo C集成开发环境 配置要求 UNIX,PC-DOS,MS-DOS,UCDOS操作系统 硬盘容量约2M,448K RAM运行空间 安装Turbo C 创建子目录 Install 若不是可安装盘,将文件拷贝到对应的目录下,C语言程序设计 第一章 C语言概述,进入Turbo C D:TCTC.exe 主控菜单 文件操作FILE :New Load Save Write to 编辑操作EDIT:插入/修改 块 查找/替换 编译链接COMPILE LINK MAKE 执行RUN 退出Turbo C Alt +x Alt+F ,Q 帮助Help F1 Ctrl+F1,C语言程序设计 第一章 C语言概述,基本操作: F10-调用主菜单 F2-存盘 F3-打开 F1-帮助信息 Alt+F9-Compile Ctrl+F9-Run Alt+F5-User Screen Alt+X -退出Tc,常用热键,文本编辑: -移动光标 PgUp,PgDn-上下翻页 Ctrl+PgUp,Ctrl+PgDn-文件首尾 Home行首 End行尾 Ddelete Insert Bkspace,块操作: Ctrl+KB-块开始标记 Ctrl+KK-块结束标记 Ctrl+KC-块拷贝 Ctrl+KV-块移动 Ctrl+KY-块删除 Ctrl+KH-块隐藏,程序调试: F8-Step over F7-Trace into F4-Goto Cursor Ctrl+F7-Add Watch Ctrl+F8-Toggle Breakpoint Ctrl+F2-Program Reset,窗口操作: F5-窗口缩放 F6-窗口切换,C语言程序设计 第一章 C语言概述,课后作业 预习“题解与上机指导”一书中 P181199页的14.314.10节 P236页实验1 教材P12: 1.5、 1.6、 1.7、 1.8题。 注意:有关设计程序的作业,必须经过上机调试!,C语言程序设计 第一章 C语言概述,算法的概念,简单算法举例,算法的特性,怎样表示一个算法,第2章 程序的灵魂算法,C语言程序设计 第二章 程序的灵魂算法,结构化程序设计方法,C语言程序设计 第二章 程序的灵魂算法,程序包括的内容: 数据结构:数据的类型和组织形式 算法:操作步骤的描述,Nikiklaus Wirth提出:,教材认为:,程序,=算法+数据结构+程序设计方法+语言工具和环境,灵魂,加工对象,工具,C语言程序设计 第二章 程序的灵魂算法,2.1 算法的概念 为解决一个问题而采取的方法和步骤,就成为算法。例如:歌曲的乐谱,建造房子等。 算法核心是解决“做什么”和“怎么做”的问题。 P15页的例2.1,求15之积。 可以有多种方法,一般采用简单和运算步骤少的。准确、高效 计算机算法类别 数值运算算法 非数值运算算法,C语言程序设计 第二章 程序的灵魂算法,2.2 简单算法举例 例2.1 方法1:累乘 方法2:用循环结构解决,灵活、通用。 例2.2 通过循环选择打印 例2.3 判断闰年 例2.4 累加求级数的和,循环改变正负号和分母加1。 例2.5 判断素数,课后认真思考,加深什么是算法的概念,C语言程序设计 第二章 程序的灵魂算法,2.3 算法的特性 有穷性在合理范围内可完成 确定性无歧义性 有零个或多个输入从外界得到信息 有一个或多个输出问题的答案 有效性每步有确定的结果,C语言程序设计 第二章 程序的灵魂算法,2.4 怎样表示一个算法 自然语言表示 2.2节例。易懂,文字冗长,易歧义性 流程图表示 用流程图符号构成,直观,易懂 N-S流程图表示 伪代码表示 计算机语言表示,顺序结构 选择结构 循环结构,C语言程序设计 第二章 程序的灵魂算法,传统流程图流向混乱、可读性差,所以应该采用结构化流程图。 结构化程序设计 基本思想:任何程序都可以用三种基本结构表示,限制使用无条件转移语句(goto) 结构化程序:由三种基本结构反复嵌套构成的程序 优点:结构清晰,易读,提高程序设计质量和效率,三种基本结构 顺序结构,C语言程序设计 第二章 程序的灵魂算法,选择结构,二分支选择结构,多分支选择结构,C语言程序设计 第二章 程序的灵魂算法,循环结构,当型循环结构,直到型循环结构,注:A,B,A1.An可以是一个简单语句,也可以是一个基本结构,C语言程序设计 第二章 程序的灵魂算法,三种基本结构的共同特点: 只有一个入口; 只有一个出口; 结构内的每一部分都有机会被执行到; 结构内不存在“死循环”。,C语言程序设计 第二章 程序的灵魂算法,2.5 结构化程序设计方法 结构化程序:用三种基本结构组成的程序 基本设计思路: 复杂问题分解成 几个最基本问题,再分别处理。 采用的方法: 自顶向下; 逐步细化; 模块化设计:复杂问题按功能分成多个子模块 结构化编码:正确采用三种基本结构实现,C语言程序设计 第二章 程序的灵魂算法,课后作业 P36页习题: 2.4、2.8(结合实验指导读懂答案) 用N-S图表示2.4题中 用传统流程图求解以下问题:将一个16进制数转化为10进制数 复习二进制的基本概念 “计算机文化基础”一书中P2733页,第3章 数据类型、运算符与表达式,C语言程序设计 第三章 程序的灵魂算法,C的数据类型,常量与变量,整型数据,实型数据,字符型数据,变量赋初值,各种数值型数据间的混合运算,算术运算符和算术表达式,赋值运算符和赋值表达式,逗号运算符和逗号表达式,C语言程序设计 第三章 程序的灵魂算法,3.1 C的数据类型,数据类型决定: 1. 数据占内存字节数 2. 数据取值范围 3. 可以进行的操作,C语言程序设计 第三章 程序的灵魂算法,常量和符号常量 定义:程序运行过程中,其值不能被改变的量(常数) 分类:直接常量、符号常量,3.2 常量与变量,C语言程序设计 第三章 程序的灵魂算法,符号常量:用标识符代表常量 一般用大写字母: PRICE 、 PI 定义格式: #define 符号常量 常量 其值在作用域内不能改变和再赋值。,例3.1 符号常量举例 #define PRICE 30 #include void main() int num,total; num=10; total=num*PRICE; printf(“total=%dn“,total); ,符号常量的优点是:见名知意、一改全改,C语言程序设计 第三章 程序的灵魂算法,变量 定义:其值可以改变的量。 定义格式:数据类型 变量名; 变量应该有名字,并在内存中占据一定的存储单元。 变量名和变量值有不同的含义 变量名实为一个符号地址,例 变量的使用 main() int a; a=3; printf(“a=%d“,a); ,C语言程序设计 第三章 程序的灵魂算法,标识符 定义:标识变量名、符号常量名、函数名、数组名、 文件名的字符串序列名字。 命名规则: 只能由字母、数字、下划线组成,且第一个字符必须是字母或下划线 大小写字母含义不同,一般用小写 不能使用关键字 TC允许最长32个字符,建议长度不超过8个字符 使用:先定义、后使用,标识符应该“见名知意”,如 total , max 标识符应该“不宜混淆”,如 l与1 , O与0,这些标识符合法吗? 1A、M.D.John、¥123、#33、 Tatol、int、max,C语言程序设计 第三章 程序的灵魂算法,3.3 整型数据 整型常量(整常数)的三种表示方法 十进制整数:由数字09和正负号表示. 如 123,-456,0 八进制整数:由数字0开头,后跟数字07表示. 如 0123,011 十六进制整数:由0x开头,后跟09,af,AF表示. 如 0x123,0xff,C语言程序设计 第三章 程序的灵魂算法,补充知识:,字节和位 内存以字节为单元组成 每个字节有一个地址 一个字节一般由8个二进制位组成 每个二进位的值是0或1,C语言程序设计 第三章 程序的灵魂算法,数值的表示方法原码、反码和补码 原码:最高位为符号位,其余各位为数值本身的绝对值 反码: 正数:反码与原码相同 负数:符号位为1,其余位对原码取反 补码: 正数:原码、反码、补码相同 负数:最高位为1,其余位为原码取反,再对整个数加1,9-5=4 9+7=16=(14)12,C语言程序设计 第三章 程序的灵魂算法,负数补码转换成十进制数:最高位不动,其余位取反加1,例 补码:11111001 取反:10000110 加1: 10000111=-7,C语言程序设计 第三章 程序的灵魂算法,整型变量 整型数据在内存中的存放形式 数据在内存中以二进制补码形式存放 每一个整型变量在内存中占2个字节 10的原码 反码 补码 -10的原码 取绝对值 反码 补码,整数的最左二进制位是符号位,0正、1负,C语言程序设计 第三章 程序的灵魂算法,整型变量的分类 三类整型变量,整数类型和取值范围,C语言程序设计 第三章 程序的灵魂算法,整型变量的定义 先定义后使用强制类型定义 int a,b; ( 指定变量a、b为整型 ) unsigned short c, d; (指定变量c、d为无符号短整型 ) long e,f; ( 指定变量e、f为长整型),例3.2 整型变量的定义与使用 #include void main() int a,b,c,d; unsigned u ; a=12;b=-24;u=10; c=a+u;d=b+u; printf(“a+u=%d,b+u=%dn“,c,d); ,指定abcd为整型变量,指定u为无符号整型变量,定义放在函数开头的声明部分,不同类型混合运算,类型自动转换,结果: a+u=22,b+u= -14,定义与赋值同时进行: int a=12;,C语言程序设计 第三章 程序的灵魂算法,整型数据的溢出 此情况称为“溢出”,运行时不报错,编程时要注意,整型变量最大值32767,加1后是 32768的补码形式,例3.3 整型数据的溢出 #include void main( ) int a , b; a= 32767; b= a+1; printf(“%d , %d n “,a,b); ,改为:long b; 结果是什么?,C语言程序设计 第三章 程序的灵魂算法,整型常量的类型 整型常量的值在-32768+32767范围内,编译器认为是int类型 整型常量的值超过上述范围,而在2147483648 +2147483647范围内,编译器认为是long类型 当系统定义short int与int占内存长度相同,则两种类型常量均可以赋给 int和short int型变量 在整型常量后面加大写L或小写l,则告诉编译器,把该整型常量作为long类型处理。例:123L、0L 在整型常量后面加u,则按无符号整型方式存放,负数转换成补码再按无符号整型方式存放。,C语言程序设计 第三章 程序的灵魂算法,3.4 浮点型数据 浮点型常量的表示方法 浮点数(float)又称为实数(real) 两种表示方法: 十进制小数形式:必须有小数点 如 0.123 、.123 、123.0 、0.0 、123. 指数形式:e或E之前后必须有数字;指数必须为整数 如 123.456e0、12.3456e1 、1.23456e2 、 0.123456e3 、0.0123456e4 等 规范化指数形式 只有一位非零整数的指数形式 是指数的输出形式,6.28e-2 表示 6.28 10 -2,-3.0824e4 表示 3.0824 10 4,C语言程序设计 第三章 程序的灵魂算法,浮点型变量 浮点型数据在内存中的存放形式 浮点型数据在内存中占4个字节(32位) 在内存中分成3部分,指数为2的幂次,+ .314159 1,数符,小数部分,指数,浮点型变量的分类,float x,y; (指定x、y为单精度浮点型变量) double z; (指定z为双精度浮点型变量) long double t; (指定t为长双精度浮点型变量),C语言程序设计 第三章 程序的灵魂算法,浮点型数据的舍入误差 数据超过有效位数,则产生误差 要避免一个很大的数与一个很小的数加减,例3.4 浮点型数据的舍入误差 #include void main( ) float a , b; a= 123456.789e5; b= a+20; printf(“%f n“,b); ,舍入误差使1.0/3*3 的结果并不等于1 !,浮点型常量的类型 浮点型常量一般按双精度64位处理,数后加F或f按单精度 浮点型常量不分float和double,C语言程序设计 第三章 程序的灵魂算法,3.5 字符型数据 字符常量 定义:用单引号括起来的单个字符或转义字符 字符常量的值:该字符的ASCII码值 定义格式:char 变量名 = 值 转义字符:反斜线后面跟一个字符或一个代码值表示,如 a A n t ,如 a97 ,A65 n10, t9,char ch=65 与 char ch=A 与char=101是等效的,C语言程序设计 第三章 程序的灵魂算法,例3.5 转义字符的使用 #include void main( ) printf(“ ab ct derftgn”); printf(“htibbj k”); ,C语言程序设计 第三章 程序的灵魂算法,字符变量 存放字符常量,占用一个字节,存放一个字符 定义形式: 赋值: char c1,c2; c1=a;c2=b;,字符数据在内存中的存储形式及其使用方法 以二进制存放字符的ASCII码值(0255整数) 与整数的存储形式类似 以字符或整数形式输出,例3.6 向字符变量赋整数 #include void main( ) char c1,c2 ; c1=97 ; c2=98 ; printf(“%c %c n“,c1,c2); printf(“%d %d n“,c1,c2); ,输出形式取决于printf函数中的格式符,格式符为“%c”时输出的变量值为字符 格式符为“%d“时输出的变量值为整数,C语言程序设计 第三章 程序的灵魂算法,对字符数据进行算术运算 实质是对其ASCII值进行算术运算,例3.7 大小写字母的转换 #include void main( ) char c1,c2 ; c1=a ; c2=b ; c1=c1-32; c2=c2-32; printf(“%c %c “,c1,c2); ,字符型与整型间互相赋值,例: 互相赋值 #include void main( ) int c1; char c2 ; c1=a ; c2=98 ; c1=c1-32; c2=c2-32; printf(“%c %c “,c1,c2); ,小写字母比大写字母的ASCII码大(32)10,C语言程序设计 第三章 程序的灵魂算法,字符串常量 定义:用双引号(“ ”)括起来的字符序列 “How do you do” , “CHINA” , “a” , “$123.45” 存储:每个字符串尾自动加一个 0 作为字符串结束标志,字符常量与字符串常量不同,例: char ch; ch=“A”;,没有字符串变量, 只能用字符数组存放,C语言程序设计 第三章 程序的灵魂算法,3.6 变量赋初值 变量的使用:先定义,后使用 变量定义位置:一般放在函数开头 变量初始化:可以在定义时赋初值,例: int a=1,b= -3,c; float data=3.67; char ch=A; int x=1,y=1,z=1; int x=y=1;( ),错!int a=b=c=3,C语言程序设计 第三章 程序的灵魂算法,3.7 各类数值型数据间的混合运算 整型、实型、字符型数据间可以混合运算,自动转换 什么情况下发生 运算转换-不同类型数据混合运算时 赋值转换-把一个值赋给与其类型不同的变量时 输出转换-输出时转换成指定的输出格式 函数调用转换-实参与形参类型不一致时转换 运算转换规则:不同类型数据运算时先自动转换成同一类型,C语言程序设计 第三章 程序的灵魂算法,C语言程序设计 第三章 程序的灵魂算法,强制转换(见P56强制类型转换运算符部分) 一般形式:(类型名)(表达式) 例:(int)(x+y) (int)x+y (double)(3/2) (int)3.6 说明:强制转换得到 所需类型的中间变量, 原变量类型不变,例3.8 #include main() float x; int i; x=3.6; i=(int)x; printf(“x=%f,i=%d”,x,i); 结果:x=3.600000,i=3,精度损失问题,强制类型转换运算符,表达式仅一个变量时,括号可以省略,C语言程序设计 第三章 程序的灵魂算法,3.8 算术运算符和算术表达式,学习运算符应注意: 运算符功能 与运算量关系 要求运算量个数 要求运算量类型 运算符优先级别 结合方向 结果的类型,C语言程序设计 第三章 程序的灵魂算法,算术运算符和算术表达式 基本算术运算符: + - * / % 结合方向:从左向右 优先级: - -* / % - + - (2) (3) (4) 说明: “-”可为单目运算符时,右结合性 两整数相除,结果为整数 %要求两侧均为整型数据 + - * / 运算的两个数中有一个数为实数,结果是double型,例 5/2 = -5/2.0 =,例 5%2 = -5%2 = 1%10 = 5%1 = 5.5%2,例 5/2 = 2 -5/2.0 = -2.5,例 5%2 = 1 -5%2 = -1 1%10 = 1 5%1 = 0 5.5%2 (),C语言程序设计 第三章 程序的灵魂算法,自增、自减运算符+ 作用:使变量值加1或减1 种类: 前置 +i, -i (先执行i+1或i-1,再使用i值) 后置 i+,i- (先使用i值,再执行i+1或i-1),例 j=3; k=+j; j=3; k=j+; j=3; printf(“%d”,+j); j=3; printf(“%d”,j+); a=3;b=5;c=(+a)*b; a=3;b=5;c=(a+)*b;,/k=4,j=4,/k=3,j=4,/4,j=4,/3,j=4,/c=20,a=4,/c=15,a=4,C语言程序设计 第三章 程序的灵魂算法,几点说明:,例 -i+ i=3; printf(“%d”,-i+);, -(i+),/-3,+ - 不能用于常量和表达式,如 5+,(a+b)+ + - 结合方向: 自右向左 优先级:- + - -* / % -+ - (2) (3) (4) 该运算符常用于循环语句中,使循环变量加减1,有关表达式使用中的问题说明 不同系统对运算符和表达式的处理次序不同,尽可能写通用性强的语句 不要写有歧义和不知系统如何执行的程序,C语言程序设计 第三章 程序的灵魂算法,3.9 赋值运算符和赋值表达式,简单赋值运算符 符号: = 格式: 变量标识符=表达式 作用:将一个数据(常量或表达式)赋给一个变量 左侧必须是变量,不能是常量或表达式,例 a=3; d=func(); c=d+2;,例 3=x-2*y; a+b=3; (),类型转换 赋值转换规则:使赋值号右边表达式值自动转换成其左边变量的类型,例 float f ; int i=10; f=i; 则 f=10.0,例 int i; i=2.56; /结果i=2;,复合赋值运算符 种类:+= -= *= /= %= = = &= = |= 含义: exp1 op= exp2 exp1 = exp1 op exp2,C语言程序设计 第三章 程序的灵魂算法,赋值表达式 形式: 赋值表达式的值与变量值相等,且可嵌套,例: a=b=c=5 a=(b=5) a=5+(c=6) a=(b=4)+(c=6) a=(b=10)/(c=2),/表达式值为5,a,b,c值为5,/ b=5;a=5,/表达式值11,c=6,a=11,/表达式值10,a=10,b=4,c=6,/表达式值5,a=5,b=10,c=2,C语言程序设计 第三章 程序的灵魂算法,3.10 逗号运算符和逗号表达式 形式:表达式1,表达式2,表达式n 结合性:从左向右 优先级: 15,级别最低 逗号表达式的值:等于表达式n的值 用途:常用于循环for语句中,例 a=3*5,a*4 a=3*5,a*4,a+5 例 x=(a=3,6*3) x=a=3,6*a 例 a=1;b=2;c=3; printf(“%d,%d,%d”,a,b,c); printf(“%d,%d,%d”,(a,b,c),b,c);,/a=15,表达式值60,/a=15,表达式值20,/赋值表达式,表达式值18,x=18,/逗号表达式,表达式值18,x=3,/1,2,3,/3,2,3,C语言程序设计 第三章 程序的灵魂算法,例: 逗号表达式使用 main() int x,y=7; float z=4; x=(y=y+6,y/z); printf(“x=%dn“,x); ,本章的内容散乱而复杂,但却是程序设计的基础,要认真看书,通过编程序才可以深入理解。,C语言程序设计 第三章 程序的灵魂算法,课后作业 P6668页习题: 3.2, 3.5(思考) 3.3, 3.4, 3.9, 3.12(写出答案) 3.6, 3.10(上机验证) 上机:实验教材:实验2(做好上机准备) 预习第四、第五章,第4章 最简单的C程序设计 顺序程序设计,C语言程序设计 第四章 顺序程序设计,C语言概述,赋值语句,数据输入输出的概念及在C语言中的实现,字符数据的输入输出,格式输入与输出,顺序结构程序设计举例,4.1 C语句概述 C程序结构: 一个C程序可以由多个源程序文件构成 一个源程序文件由若干函数、预编译命令及全局变量声明部分构成 函数包括数据定义部分和执行部分,执行部分是C语言语句,完成对数据的操作,C语言程序设计 第四章 顺序程序设计,C语句分为5类 控制语句:共9种 完成一定的控制功能,这些语句能够根据一定的测试条件决定某些语句是否被执行,如分支、循环、跳转等语句。,C语言程序设计 第四章 顺序程序设计,C语言程序设计 第四章 顺序程序设计,空语句:只有一个“ ; ”,什么也不做,表达式语句:由表达式加“ ; ”组成 典型的是赋值语句,由赋值表达式加分号构成,如:y=x+1是表达式,而y=x+1;则是赋值语句。实际上函数调用语句也属于表达式语句。,函数调用语句:由函数加“ ; ”组成,printf(“This is a C program”);,a=3 ; i+ ;,for(i=0;i100;i+) ; ,复合语句: 用 括起来的一组语句,也称作程序块。 一般形式:,C语言程序设计 第四章 顺序程序设计,int i=0,sum=0; while(i=100) sum=sum+i; i=i+1; ,说明 复合语句“ ”后不加分号 语法上和其它语句相同 复合语句可嵌套,4.2 赋值语句 基本格式: 赋值表达式 + ; 赋值表达式可以包含在其它表达式中,而赋值语句不可以。,C语言程序设计 第四章 顺序程序设计,例:if (a=b)0) t=a; 不可写为:if (a=b;)0) t=a;,C语言程序设计 第四章 顺序程序设计,表达式中允许出现运算符号、变量、数值、函数,序号,语句,含义,右侧表达式包括,另一种形式的赋值语句 = ;,C语言程序设计 第四章 顺序程序设计,我们可以理解为: =;,只适合于 整型变量,连续赋值语句,C语言程序设计 第四章 顺序程序设计,int a , b , c ; a=b=c=1 ;,int a=b=c=1 ;,4.3 数据输入输出的概念及在C语言中的实现,C语言程序设计 第四章 顺序程序设计,标准输入输出函数 putchar 输出字符, scanf 格式输入,puts 输出字符串 getchar 输入字符, printf 格式输出,gets 输入字符串,所谓数据的输入输出是从计算机角度出发的。 C语言本身没有I/O语句,所有I/O都由函数来实现。 C语言的标准库函数 由编译系统提供的一系列函数,以库形式存放在系统中,不是C语言文本的组成部分。 库函数已编译成目标文件(.obj),在连接阶段才与源程序编译成的目标文件相连接,生成可执行文件。 调用形式: 函数名(参数表) 注意在调用C语言库函数时,需要使用编译预处理命令#include ,使相应的头文件包含到用户源程序中。,#include 或 #include ”stdio.h”,Turbo C 2.0可以不加#include命令,常用头文件: stdio.h 定义输入输出函数 string.h 定义字符串操作函数 math.h 定义sin、cos等数学函数,4.4 字符数据的输入输出 putchar 函数(单字符输出函数),C语言程序设计 第四章 顺序程序设计,输出一个字符:,格式: putchar( 字符); 或 putchar( 字符变量); 强调:被输出的单个字符必须被 括起来,运行结果:BOY,/* 例 4.1 putchar(字符)*/ #include void main() putchar(B); putchar(O); putchar(Y); ,/* 例 4.1 putchar(字符变量) */ #include void main() char a,b,c; a=B; b=O; c=Y; putchar(a); putchar(b); putchar(c); ,结果当然还是一样的!,输出控制字符,C语言程序设计 第四章 顺序程序设计,/* 例 putchar(控制字符) */ #include void main() char a,b; a=O; b=k; putchar(a); putchar(n); putchar(b); ,运行结果:O k,输出转义字符,/*例 putchar( ) 含有转义符* / #include void main() char a; a=B; putchar(101); putchar(a); ,运行结果:AB,getchar 函数(单字符输入函数) 。,C语言程序设计 第四章 顺序程序设计,格式: getchar( ) ; 强调:输入单个字符后,必须按一次回车, 计算机才接受输入的字符。,# include 不能少!,/*例4.2 */ #include void main() char c; c=getchar( ); putchar(c); ,运行结果: a a,4.5 格式输入与输出 printf函数(格式输出函数) printf函数的一般格式,C语言程序设计 第四章 顺序程序设计,格式: printf( 格式控制,输出表列);,格式控制:用双引号括起来的字符串,包含两种信息 格式说明:%修饰符格式字符,指定输出格式 普通字符:原样输出 输出表列:要输出的数据,可以是变量或表达式,可以没有,多个时以“,”分隔),例: printf( “%d %d”,a,b); printf( “a=%d b= %dn”,a,b);,C语言程序设计 第四章 顺序程序设计,/*从最简单的学起 */ #include void main() printf(“Hello World !” ); ,运行结果: Hello World!,调用 printf( ) 时可以省略# include 命令!,格式字符 d格式符:输出十进制整数,有3种用法 %d格式:按数据实际长度输出,数据范围 -3276832767。,C语言程序设计 第四章 顺序程序设计,/* %d 格

温馨提示

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

评论

0/150

提交评论