




已阅读5页,还剩59页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计,才轶 ,课程安排,总40学时: 讲授24,上机16 成绩组成: 平时成绩(10%):含上机、出勤、课堂、大作业 期中检测(20%):(两次编程10*2) 期末考试(70%): 教材后习题范例 附加分(5分) :结合专业应用实例 上课安排: 周日下午(6-8 节)(2-10周)北阶二 上机安排: 9-10节 化工1-3 北一 3-11周 9-10节 化工4-6 北二 3-11周,参考书籍,C程序设计教程与实训 (第二版) (自编教材) 清华大学出版社 机械工业出版社 顾治华 C语言程序设计 清华大学出版社 谭浩强 C+程序设计 课件Email: 密码: 123456,第一章 概述,一.C语言程序例 P1,例1 仅由main()函数构成的语言程序。 程序运行结果: This is a C program.,#include /*编译预处理命令*/ main() /*定义主函数mail()*/ printf(“This is a C program.n”); /*调用printf()函数*/,程序运行情况: 6,9 max=9,例2 由main()函数和1个其它函数max()构成的语言程序。,#include int max(int x, int y) return( xy ? x : y ); main() int a,b,c; scanf(“%d,%d”, ,(1)函数是语言程序的基本单位。 一个完整的语言程序,是由一个main()函数(又称主函数)和若干个(可以是0个)其它函数(自定义函数)构成的; (2)函数由函数头和函数体两部分构成; (3)程序的最小单位是语句,语句以分号“;”结束; (4)C语言程序总是从main()函数开始执行。当主函数执行完毕时,亦即程序执行完毕。,C程序的组成,C语言的词法符号,C语言的字符集:英文字母、数字、运算符及一些特殊符号 C语言的词法符号:关键字、标识符、运算符、分隔符、常量和注释符 1)关键字:在程序中表示固定的意义,不能被重新定义用作它用。C中关键字有32个。 2)标识符:由程序员定义的一些名字,通常是一些字符序列。 命名规则: (1)有效字符:只能由字母、数字和下划线组成,且以字母或下划线开头。 (2)有效长度:随系统而异,但至少前个字符有效。如果超长,则超长部分被舍弃。 (3)选择标识符时,应做到“见名知意”。C语言是大小写敏感的语言。(4)预定义标识符:预处理命令和库函数名字 其他都叫:用户定义标识符: C语言中的关键字或预定义标识符不能用作用户定义标识符。,二、C语言程序的开发过程(其它语言类似),集成开发环境,Turboc2.0(附录D), Turbo C 3.0 Borland C+ 3.1 Visual C+ 6.0 / Dev C+ 5.0,是集源程序编辑、编译、链接、运行与调试于一体、 用菜单驱动的集成软件开发环境。,启动、退出开发环境,创建新的源程序 编辑并保存一个语言源程序 编译、链接单个源程序文件 运行与查看结果 其它辅助功能(如调试等)(放到后面),第二章 用C语言编写简单程序,主要内容: 数据类型、运算 格式化输入输出 顺序结构程序设计,一个简单应用问题的计算机程序实现,编写程序完成如下功能: 输入一个华氏温度,要求输出摄氏温度。(公式为:c=5/9(F-32),#include main() ,float f,c ;,scanf(“F=%f”,c=5/9.0*(f-32);,printf(“c=%f”,c);,1,2,程序的构成,数据,字符型(字符串) 整型 实型(浮点型) 空类型,数组类型 结构体类型 联合体类型 枚举型 指针类型,基本类型,构造类型,1、数据类型,2、数据存在的两种形式,常量形式 变量形式,3、数据间的运算,2.1 变量和常量:,指程序运行中其值改变的量。 在c语言中变量必须“先定义,后使用”。,1.如何定义各种类型的变量: 格式: 数据类型 标识符; 如: int i; float j; char c, d;,书写习惯:变量名通常定义为小写字符。,2.常量及其在程序书写中的表示方法,常量:程序运行过程中,其值不能改变的量。,A.整型常量(整数):,十进制数; 八进制数(以0开头); 十六进制数(以0x开头),1,-2,3 三种表示方法:,B.实型常量(实数):1.5, -3.2 两种表示形式:,1)十进制小数形式;2)指数形式:如:234e2= 2.34e4=2.34104 注意: e之前必须有数字,e后的数据必须为整数;,C.字符常量(字符): 两种形式:,一般字符常量:用单引号括起来表示: a , 1 转义字符:以“”+ASCII码的8进制或16进制形式来表示,例如: a 也可用 141 、 x61表示 n,ASCII表见附录A,D.符号常量,符号常量:用一个标识符代表一个常量。 #define PI 3.1415926 main() printf(“%f”,PI); 书写习惯:符号常量名通常定义为大写字符。,前面的整型、实型、字符型常量均为字面常量(直接常量),3、变量的三个属性:,例: int a=10;,01244468H,01244472H,01244476H,a,01244468H,变量名: a; 变量的值: a=10; 变量在内存中的地址: 01244468H,1) 2) 3),01244468H,部分内存空间,4、变量在内存中占据一定的存储单元(容器);,不同类型的变量所占的存储单元大小不同 int 占4个字节,float 占4个字节,char占1个字节 决定了不同的数据类型可以描述不同范围内的数据。 整型有有符号和无符号之分(signed int / unsigned int) 溢出的问题!,溢出问题,1111111111111111,unsigned short int a=65535,a=a+1;,a=?,10000000000000000,1,+,X,X,5、对变量数据的两种操作,读取:对变量读取操作,就是到对应的存储单元中读取数据。取之不尽! 改写:就是给变量赋与新的值,原值被覆盖,01244468H,01244472H,01244476H,a,部分内存空间,6、字符数据在内存中的存储,字符常量赋给一个变量时,内存中并不存放字符本身,而是存放该字符对应的ASCII码(附录A)。,1.为字符型数据与整型数据之间的转换带来了方便。 2.便于字符数据进行算术运算:C语言允许字符数据与整数直接进行算术运算、相互赋值,且运算过程中使用ASCII码值。(例如:大小写转换) 3.但需注意,字符数据占一个字节,int型占4个字节,8.变量、常量、数据类型的应用举例:,例: #include main( ) float ave;/变量定义 int s1=60,s2=75,s3=97; /变量定义并初始化 ave=(s1+s2+s3)/3.0;/*算术表达式*/ printf(“average:%.2f”,ave); /*输出函数*/ 结果:average:77.33,一个简单应用问题的计算机程序实现,编写程序完成如下功能: 输入一个华氏温度,要求输出摄氏温度。(公式为:c=5/9(F-32),#include main() float f,c; f=78; c=5/9.0*(f-32);/运算,结果c=25.555556 ,2.3 运 算,1. 运算符,种 类 算术运算符、关系运算符、逻辑运算符、条件运算符等。 优先级 混合运算时,各种运算的优先次序。 结合性 混合运算时,优先级相同的情况下,各种运算是从运算符左边还是右边开始进行。左结合性、右结合性。,2、各种运算符和表达式,1)算术运算,名 称 运算符 运算规则 负 - 取负值 加 + 加法 + 减 - 减法 - 乘 * 乘法 * (乘号不可以省略) 除 / 除法 / (a.两个整数相除的结果取整数; b.一整数、一浮点数相除的结果为符点数; c.当有一个数为负数时,向零取整。) 模 % 整除取余 (两侧均为整数; 分子分母 ,结果=余数。 分子分母 ,结果=分子。 ),a. 基本算术运算符:,b. 自增、自减运算符,名称 运算符 说明 例 相当于 增 1 + 变量值加1 i+ (+i) i=i+1 减 1 - 变量值减1 i- (-i) i=i-1,注意: a.增自减运算仅限用于变量、不能用于常量或表达式。 b.当+,-用于复合运算时,使用前缀和后缀意义将不同! 前缀:表示先加(减)1,再使用; 后缀:表示先使用,再加(减)1; c.+,-,-(负号运算)的结合方向为:自右至左,1)算术运算,思考:,代码1: int j,i=3; j=+i;,代码2: int j,i=3; j=i+;,1.以下两段代码中,最终变量j的值分别为?为什么,2.下面的代码正确么: 代码1:int i; i+ 代码2:int i=3;i+; 代码3:int i=1; (i+1)+;,简单赋值运算: 名 称 运算符 赋 值 = 格式:变量=表达式 先计算等号右边的表达式,然后将其值赋给等号左边的变量。 注意:C语言“赋值运算符”与数学“等号”其含义有本质不同。 例:x = 10 ; y = x*x+x ; x=x+1,2) 赋值运算:优先级比较低,右结合,b.复合的赋值运算符,名 称 运算符 例 加赋值 += a + =b a=a + b 减赋值 - = a -=b a=a - b 乘赋值 *= a*=b a=a*b 除赋值 / = a / =b a=a / b 模赋值 % = a %=b a=a %b,减化程序,提高编译效率。,c. 赋值表达式,格式:变量 赋值运算符 表达式,例1: int x,y; x=5; y=10; y/=5; x=10*(y=5); 例2:char c1; c1=a;,注意:赋值表达式的值就是被赋值的变量的值。,结果:a=-2;i=3;,3) 各类数值型数据间的混合算术运算,整型和实型数据可以混合运算 不同类型的数据要先转换成同一类型,然后进行运算,1)隐式(自动)类型转换,b.赋值表达式中的类型转换(隐示转换),赋值运算符两侧类型不一致,但都是数值型或字符型时,在赋值时系统自动进行类型转换,即:将赋值号右边的类型转换为左边的类型。,B,B,赋值,两个大小不同的容器: A, B, A的容量大于B,A,B,A,A,B,若A容器空,B容器装满液体,若B容器空,A容器装满液体,在程序设计中,不同数据类型间的赋值也是类似的道理: 当将占内存空间少的数据类型的数据赋给占内存空间多的类型的数据时,可以将值正确传递.反之,则会造成数据的丢失.,将B容器中的液体倒入A中,将A容器中的液体倒入B中,转换过程(自学):,实数整数:舍弃小数部分,在内存中以整数存储 int i; i=2.36; 结果:i=2; 整数实数:数值不变,以浮点数存储,补足有效位数字 float i; i=3; 结果: i=3.000000; 实数实数: floatdouble 数值不变, 补足16位有效数字 double i; float j=23; i=j; 结果:i=23.00000000000000; doublefloat 截取前7位有效数字 float f; double d=123.456789e100; f=d;,整数整数,按存储单元中的存储形式直接传送。 短的赋值给长的:符号扩展 如:charint 有符号:符号扩展 无符号:正数,高位补零,仍是符号扩展 赋值双方字节相同:直接赋值。 如:由unsigned int int: 长的赋值给短的:低位截断(如:整型字符型) 如:由intchar:,2)显示(强制)类型转换:单目运算,优先级比较高,格式:(类型名)表达式; 功能:将表达式的使用类型转换成类型名所标明的数据类型。 例1:float x=3.6; int a; a=(int)x;,例2:#define PI 3.14159 int a; a=(int)PI; 结果:a等于3。 PI类型不变。,注意:在进行强制类型转换时,得到一个所需类型的中间变量,原来变量的类型不发生变化。上例中 x类型不变,4) 逗号运算符和逗号表达式:,格式: 表达式 1 ,表达式 2 , 表达式 n 逗号表达式求解过程: 先求表达式1,再求表达式2,再求,直到求表达式n ,整个表达式的值是最后一个表达式的值。,注意:不是任何地方出现的逗号都作为逗号运算符。如函数的参数列表只是参数的分隔符。printf(“”, , );,优先级最低,例1: 3+5, 6+8; 例2: a=3*5,a*4; 例3: x = (a = 3,6*3);,表达式值:14,表达式值:60,a=15,表达式值:18, x=18,5)长度测试运算符,sizeof ( 类型标识符) 用来计算某种类型的变量占用计算机内存空间的长度 int a; float b; a=sizeof(float); a=sizeof(b);,一个简单应用问题的计算机程序实现,编写程序完成如下功能: 输入一个华氏温度,要求输出摄氏温度。(公式为:c=5/9(F-32),#include main() float f,c; f=78; c=5/9.0*(f-32);/如何输入输出? ,2.4 数据的输入输出,2、字符输入输出函数(putchar(),getchar(),1、格式化输入输出函数(printf(),scanf(),#include (附录C) 预处理: 包含文件,1.格式输入和输出,printf (格式控制或普通字符,输出项表列);,printf ( “a=%d x=%f”, a, x);,(1) 格式化输出函数,格式化输入输出函数可以将各种类型的数据从计算机中输出到显示器上和从键盘上将数据输入到计算机中。,说明: 格式控制部分用于规定相应输出项的格式,由一系列格式转换说明符(格式符)组成。 输出项表列指要输出的数据(变量、常量或表达式)。 输出项有多个时,用逗号分隔. 输出项的个数要与格式符个数相同。,格式符:% - 0m .n 数据类型说明字母,% 是格式符的开始标识记号。,描述输出数据的数据类型和格式。即格式字符,printf ( “a=%d x=%f”, a, x);,printf (格式控制或普通字符,输出项表列);,数据类型说明字母(自学),%d , i 带符号的十进制整数 %o 无符号八进制 %u 无符号十进制整数 %x 无符号十六进制(小写) %X 无符号十六进制(大写) %c 字符 %s 字符串 %e 科学计数法(小写e) %E 科学计数法(大写E) %f 十进制浮点数 %g 按%e和%f较短的一个输出 %G 按%E和%f较短的一个输出 % 显示%号,%x(X) 以十六进制数无符号形式输出。 %o 以八进制无符号数形式输出。 %u 无符号十进制整数输出。 %d 将int,long int型的数据以带符号十进制整数输出 。 例:1 main ( ) int x=-1; printf(“n%x“,x); printf(“n%X“,x); printf(“n%o“,x); printf(“n%d“,x); printf(“n%u“,x); ,以整数形式输出:,程序结果: ffff FFFF 177777 -1 65535,例:4 main ( ) char c=a, ; int i=97; printf (“%c, %dn”,c,c); printf (“%c, %dn”,i,i ); a, 97 a, 97,%c 以单个字符输出。,以字符形式输出:,可见,字符(根据需要)可以以两种形式输出: 1)输出字符 2)输出整数,%s 以字符串输出。 例:5 main ( ) printf (“%sn”, “Beijing”); Beijing,例:2 main( ) float a=1.5; float b=2; printf (“%fn ”,a+b); 3.500000 %e(E) 以指数形式输出。 %g (G)以%e %f 格式中输出长度较短的一种格式输出,不输出无意义的0。,%f 将float 或double类型的数据以小数形式输出,系统自动保留6位小数。,以实数形式输出:,输出整数: m表示输出项输出数据(字符)的总长度。 例:6 int x=123; printf (“ %4d ”,x); 运行结果: 123 输出实数: m表示输出项输出字符的总长度(含小数点)。 n表示输出项输出数据的小数部分数据(字符)的长度。 例:7 float pi=3.1455; %7.2表示输出的数据共占7个字符位置 , printf (“%7.2f” , pi); 其中小数占2个字符位置。 运行结果: 3.15 输出字符数据: m表示输出项输出数据字符所占的总长度。 n表示输出项输出数据字符的实际个数。 例:8 printf(“%5.1s“, “china“); 运行结果: c, m . n 指定输出数据的长度,格式符:% - 0m .n 数据类型说明字母 (自学),格式符:% - 0m .n 数据类型说明字母 指定0,填0。不指定0,填空白(空格)。 例:9 int x=456; printf (“%05dn”, x ); printf (“%5dn” ,x ); 运行结果: 00456 456 - 指定输出项输出数据的输出位置。 缺省,输出项输出数据(字符)的输出位置右边靠齐。 指定“-”时,输出项输出数据(字符)的输出位置左边靠齐。 例:10 printf (“%5sn”, “ABCD”); printf (“%-5sn”,“ABCD”); 运行结果: ABCD ABCD, 0 对输出项数据空位置填数字0或空白(空格)。,在VC中,进行整数输出时,不再使用 l 参数 原来: long x=12345678; printf (“%ldn”,x); 运行结果:12345678 如果不指定 l ,则输出数据按整型字节数截取低位, 但由于在VC中,int和long int均为4个字节,因此 l指定与否不再影响。, l P23说明,地址运算符,名 称 运算符 地址运算符 & 格式:&变量名 取得变量在内存中的地址,如:int a=5; 地址表达式:&a,a=5,1234680H,内存,(2) 格式化输入函数,格式化输入函数基本格式:,scanf (输入格式,输入项表列);,说明: 输入项表列是由若干个变量的地址组成。 输入格式用于规定输入项输入数据的格式。用格式符说明。 格式符:%l m 数据类型说明字母 其中: 1.数据类型说明字符:d、o、x、c、s、e、f 与printf中用法相同。,变量地址,格式符, l 的使用:表示long型精度,仅在输入double型数据时要使用,如下:, m 指定输入项输入数据的长度。(很少用) 在输入时,不使用.n表示数据的精度。,2.附加的格式说明符:,double a; scanf(“%lf”,,当输入项有多个时:需注意各项间的分隔问题,三种方法: 1、用m指定各项的长度,不需要分隔。(不建议使用) 2、不使用m,各格式说明符间没有任何普通字符.输入时数据之间可用空格、回车或TAB键分隔。 (常用) scanf(“%d%d”,&a,&b) 3、若用户在各格式说明符之间指定了普通字符(如 ,:等)作为分隔符,则输入时必须原样使用所指定的普通字符。 scanf(“%d, %d”,&a,&b) scanf(“a=%d, b=%d”,&a,&b) (建议少用),输入例:,程序结果: 123456 1234,56 1 2 1,2 34,56 34,56 a=123,b=456 123,456,#include main() int a,b; scanf(“%4d%2d“, ,一个简单应用问题的计算机程序实现,编写程序完成如下功能: 输入一个华氏温度,要求输出摄氏温度。(公式为:c=5/9(F-32),#include main() float f,c; scanf(“F=%f“, ,F=78 c=25.555556press any key to continue,2.字符数据的输入输出,格式: putchar(c); 参数c是一个字符型或整型变量(常量)。 功能:向标准输出设备即显示终端输出一个字符。将变量c所赋的字符或字符ASCII值,输出到显示器上显示。显示的是字符。,A,(1)字符输出函数,例: int c; char c; c=97; c=a; putchar(c); putchar(c);,也可输出转义字符:putchar(101); putchar(n);,(2)字符输入函数,格式: getchar( ); 功能:从标准输入设备即键盘上输入(一个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高校退休管理岗招聘考试重点题
- 2025年机关财务招聘面试模拟试卷
- 2025年无机化工生产工考试重点题及答案集解析集集解析集
- 2025年社会福利会计能力题集
- 课件APP介绍教学课件
- 2025年宠物销售代表面试题及答案
- 2025年风险管理师职业素质评估试题及答案解析
- 2025年快递企业安全实务题及答案
- 2025年志愿服务基金会笔试模拟考试试卷
- 机电专业班长培训知识课件
- 第五讲中日关系课件
- 一年级上册语文全册课件
- 消防安全检查记录表(完整详细版)1
- (完整)动画运动规律动物ppt
- 光伏电站项目监理旁站方案
- 2022年家用空调安装合同范本
- 二手车鉴定评估的报告书
- 教学课件 金属学与热处理-崔忠圻
- 多智能体系统教材课件汇总完整版ppt全套课件最全教学教程整本书电子教案全书教案课件合集
- 艺术欣赏完整版课件全套ppt教程(最新)
- 北师大版五年级数学上册全册教案含反思
评论
0/150
提交评论