




已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1讲 C语言基础知识,一、计算机系统与计算机知识体系 二、程序设计与程序设计语言 三、C程序的基本结构和运行过程 四、数据类型、常量、变量 五、赋值运算符和赋值表达式 六、基本的输入输出 七、算术运算符和算术表达式 八、数学标准函数 九、数据类型转换,一、计算机系统与计算机知识体系,操作系统,支撑软件,应用软件(各种语言开发的应用软件系统),计算机系统,典型的计算机硬件组成,内存,中央处理器,外围设备,外存,输入/输出,总线,软盘、硬盘、光盘、U盘、,键盘、显示器、鼠标、,计算机知识体系,计算机硬件组成原理,操作系统,编译程序,数据库管理系统,高级语言(C,C+,Java等) 数据结构 软件工程,人(用、编程序),软件,什么是ASCII码?,计算机中用得最广泛的字符集及其编码,是由美国国家标准局(ANSI)制定的ASCII码(American Standard Code for Information Interchange,美国标准信息交换码) 分析 1位二进制数可以表示2种状态 7位二进制数可以表示128种状态 (0127) 计算机中用8位(一个字节)存储ASCII码,其最高位(b7)用作奇偶校验位。 ASCII对应键盘值,数的进制,10进制 2进制 8进制 16进制,二、程序设计与程序设计语言,什么是程序? 可以连续执行的一条条指令的集合。 对计算任务的处理对象和处理过程的描述。 用什么写出程序? 很多种计算机语言,比较熟悉的高级语言,如:C、Basic、C+、Java等,还有汇编语言等。 高级语言接近自然语言的习惯,容易编写,容易理解和交流,是给人看的语言。 计算机只能接受和处理由0和1的代码构成的二进制指令或数据,称为“机器语言”。 高级语言程序一定要转换(如编译)成机器语言程序才能在计算机中被执行。,编译程序与开发环境,编译程序 你知道的开发环境?(环境包括编写、编译、连接、运行程序) Microsoft C Turbo C Borland C Quick C 通常C+编译系统兼容C, 我们用Visual C+ 6.0,C语言源程序.c,C语言编译程序,二进制机器指令.obj,连接程序,可执行程序.exe,C语言,C语言的产生 语言是贝尔实验室于70年代初研制出来的,用于编写UNIX。后来又被多次改进,并出现了多种版本。80年代初,美国国家标准化协会(ANSI),根据语言问世以来各种版本对语言的发展和扩充,制定了ANSI C标准(1989年再次做了修订)。 C语言的特点 中间语言的特点:C语言同时具有汇编语言和高级语言的优势。 面向过程,结构化程序设计语言 应用非常广泛,体现程序员的水平 语言简洁、紧凑,使用方便、灵活。运算符极其丰富,表达能力强。 可移植性好 区别C语言与C语言开发环境,程序设计,程序设计的发展 面向计算机的程序设计 二进制形式、汇编 面向过程的程序设计 按功能划分,自顶向下,逐步求精 面向对象的程序设计 按对象划分,研究对象之间的关系,三、C程序的基本结构和运行过程,一个简单的C程序,是由函数组成的。 仅且仅有一个主函数 main() ,程序总是从主函数开始运行。 还可以有多个其它函数 自己编的 别人编的 系统提供的库函数。,#include int main() printf(“Hello,World.n“); return 0; ,语句,函数体由语句组成。 语句: 常量、变量、运算符 一行可以写多个语句,一个语句也可以写在多行上。,写各种表达式:算术表达式、关系表达式、赋值表达式、,语句,加注释的方法: /* */ 或者 / 只有 ; 的语句叫“空语句”,什么都不执行。 main() ; /什么时候用? 复合语句:用 括起来的多个语句,什么时候用? main() /*复合语句。注意:右括号后不需要分号。*/ ,集成开发环境,很多产品可以用 上课暂用Microsoft Visual c+ 6.0 你当然可以用别的什么,比如Turbo C 2.0, Turbo C+ 3.0 等等 打开Microsoft Visual c+ 6.0 FilenewprojectsWin32 Console Application 选好工程名和位置,依向导指示做 试着进行调试(书附录C) 单步运行,设断点,运行中查看变量值等。,The Build Process,调试例子,int main() int x,y,sum; /* 定义变量 */ scanf(“%d%d“, ,关键字,数据类型关键字:char, double, enum, float, int, long, short, signed, struct, union, unsigned, void 控制语句关键字:break, case, continue, default, do, else, for, goto, if, return, switch, while 存储类型关键字:auto, extern, register, static 其它关键字:const, sizeof, typedef,四、数据类型、常量、变量,存什么样的数据 (基本数据类型) 整型 实型 字符型,数据的存储空间与取值范围 8位(1个字节) 16位(2个字节) 32位(4个字节) 64位(8个字节),数据是否带符号 有符号型 无符号型,数据值是否会改变 常量 变量(必须先定义再使用),不同的数据集合上定义了不同的运算 长度和精度的限制,基本数据类型,常量,在程序运行过程中其值始终保持不变的量。,字符串常量,用双引号括起来的字符串,如 “Whats your name?”, “ ” 字符串在内存中占的空间为:字符串长度+1,因为字符串后面默认有0,问题,为什么10和10.0不同? 123和123L有什么不同? 0634与634有什么不同? 0x10是多少? “A”和A的区别? “1234”和1234的区别?,符号常量,程序代码中多处用到某个数据,且程序逻辑中为常量 针对问题变化,可能维护和修改。 可以把这种数据定义为符号常量,即用一个标识符代表一个常量。 #define PRICE 100 /*define是一条预处理命令作用是把标识符定义为后面的常量*/ int main(int argc, char* argv) int a,b; a=100; b=a*PRICE; printf(“b=%dn“,b); return 0; ,可懂度更好。 维护和修改程序方便。,符号常量,符号常量不可以修改 #define PRICE 100 /*define是一条预处理命令作用是把标识符定义为后面的常量*/ int main() int a,b; a=100; PRICE=10; /错误语句 b=a*PRICE; printf(“b=%dn“,b); return 0; ,C预定义的转义字符序列(P13),变量,必须先定义,再使用 注意大小写敏感 定义的格式: , int num; char ch; float pay1, pay2;,定义变量就是在内存中申请空间存放变量值 定义之后立即初始化是好的编程风格。不然你引用它时,可能是随机值,没有错误提示。 例: int a; printf(“%dn“,a); /a值随机,int num; char ch;,num,5,一个整型数大小,ch,a,一个字符大小,变量命名: 字母,数字,下划线 第1个字符必须是字母或下划线 区分大小写 取个好的名字 变量赋初值 定义时赋初值 int data1=0; int data2(0); 赋值操作赋初值 f = 0.0 ; f = data1+1; 键盘输入赋初值,取个对名字,赋值号“=”是一个运算符,称为赋值运算符。 赋值表达式: 变量名=表达式 ;/右边的值赋给左边 说明: (1)赋值号左边必须是一个代表某一存储单元的变量名。 (2)赋值号右边必须是C语言中合法的表达式。 功能: 先求出右边表达式的值 然后把此值赋给赋值号左边的变量。 优先级与结合性 优先级:只高于逗号运算符,比任何其他运算符的优先级都低。 结合性:自右向左,五、赋值运算符和赋值表达式,例,x = 2+73; y=x; /将x变量当前值赋给y变量。 y=x+1 /y为x+1的值,x值不变。 x=x+1; /将x变量当前值加1再赋给x变量。 x=x; /*将x变量当前值赋给x变量。合法的表达式,但无意义。*/ a=b=7+1; /正确的表达式。7+1的值8先赋给b,再赋给a。 a+b=c; /*错误的表达式。左边只能是变量名。*/ x=1,y=2;,复合赋值运算符,+= 例:n += 1; 等价于:n=n+1; -= 例:n -= 1; 等价于:n=n-1; *= 例:n *= 1; 等价于:n=n*1; = 例:n /= 1; 等价于:n=n/1; %= 例:n%=1; 等价于:n=n%1; 注意:两个符号之间不可以有空格 优先级:与赋值运算符相同;结合性:自右至左 例:已有变量a,其值为9,计算表达式a+=a-=a+a; 的值。 结果:a为 -18,六、基本的输入输出,标准的输入设备-键盘 标准的输出设备-显示器 标准的输入输出函数实现数据流的输入输出 需要包含头文件:stdio.h #include /多用于系统头文件 #include “stdio.h” /另一写法,非格式化输入输出,getchar() char ch ; ch = getchar() ; putchar() putchar(ch) ;,char ch ; ch = getchar() ; putchar(ch) ; putchar(n);,格式化输入输出,scanf(,) int x,y ; float f1, f2 ; scanf(“%d%d%f%f“,部分格式说明符,输出格式控制,%m 场宽 输出数据在屏幕上占的列数 %m.n n为输出实型数时为小数点后位数,输出整型数时为最少显示的位数。 控制对其齐方式:%后加 - 为左对齐,缺省为右对齐 作业: 阅读P25,算术运算符:+ - * / % 23+90 8.8-7 a*2.7 4%4 不同的数据类型上定义了不同的操作 % 只用于整型数。 当数据类型不同时如何运算,结果如何保存? 二进制位数少的数据类型自动转换为二进制位数多的数据类型(即向精度到的数据类型转换),再进行运算。 作业:阅读P26,七、算术运算符和算术表达式,提问,int i=5;float f=1.0; double d=1.0;char c=A; i+10结果是什么? i+f结果是什么?i+d结果是什么? printf(“%cn“,c+25); 12/i结果是什么?12.0/i结果是什么? 自学P26,例1-8, P27,例1-9,上机调试这两个程序。,运算符学习总结,弄清的关键问题 运算符的意义 适用的数据集合 优先级 结合性,自加、自减运算符,运算符“+”和“-”是单目运算符 (1)后缀形式:i+。i先参与运算,再自加。 (2)前缀形式:+i。i先自加,再参与运算。 一种特殊的赋值运算,比赋值效率高。 i+,相当于i=i+1; i-,相当于i=i-1。 例1:int a=5; a = a*(a+); /结果:a 为26 例2:int a=5; a = a*(+a); /结果:a 为36 注意:运算对象可以是整型、实型、字符型变量,不可以是常量和其他的表达式。 例如,3+、(i+j)+都是错误的。,运算符的优先级和结合性,圆括号()的优先级最高。,+和-的优先级和结合性,优先级:高于其他算术运算符。(多用圆括号) 例3:int a=5; a = a*a+; /结果:a仍为26 结合性:自右至左 例4:int x=1,y=2; printf(“%dn“, x+y); /结果:3 例5:int x=1,y=2; printf(“%dn“, (x+)+y); /结果:3 例6:int x=1,y=2; printf(“%dn“, x+(+y); /结果:4,八、数学标准函数,系统有了的标准库函数 用于数学运算的部分 函数原型在math.h中,要包含它。 见书P30 作业:阅读P31,例1-10,上机调试。,九、数据类型转换,赋值运算中的数据类型转换 (1)“ = ”两边数据类型一致,赋值操作正确执行。 (2)“ = ”两边数据类型不一致,但系统可以将右侧的数据类型自动或强制地转换为左边的数据类型,赋值操作可以执行,并称此赋值为“赋值兼容”。 (3)“ = ”两边数据类型不一致,但系统也不能将右侧的数据类型转换为左边的数据类型,赋值操作不可以执行,并称此赋值为“
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 哈尔滨剑桥学院《中医养生与护理》2023-2024学年第一学期期末试卷
- 东北林业大学《蒙古文字学》2023-2024学年第一学期期末试卷
- 河北省永清县2025届物理八年级第一学期期末统考模拟试题含解析
- 苏教版七年级生物下册班级管理计划
- 部编版二年级语文下册教学计划方案
- 苏教版一年级美术创新教学计划
- 小学合唱兴趣小组现场演出计划
- 汽车4S店销售经理2025年目标制定与计划
- 青岛版五四制五年级数学心理辅导教学计划
- 2025年四年级科学教学评价优化计划
- 华为门禁出入管理办法
- 流行病学的试题及答案
- 2025年四川省高考生物试卷真题(含答案解析)
- 2024年辽宁省高校毕业生“三支一扶”计划考试真题
- 北京市大兴区2025年初中学业水平考试地理真题(含答案)
- 第三代社保卡培训
- 幼儿游泳活动方案
- 2025年浙江省中考数学试卷真题(含官方标准答案)
- 2025版国家开放大学法学本科《知识产权法》期末纸质考试总题库
- 施工现场安全管理处罚规定
- 湖南省宇杰乳胶制品有限公司乳胶手套生产线改扩建项目环境影响报告表
评论
0/150
提交评论