




已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 复习: v算法 解题的方法和步骤。 理解算法在程序设计中的重要性。 v集成环境的使用(C语言源程序的调试步骤) 编辑、编译、连接、运行。 2 第2章 程序设计初步 3 1. 程序的基本结构 2. 数据类型 3.算术运算符和算术表达式 4. 赋值运算符和赋值表达式 5.数据类型的转换 6.数据的输出和输入 7.数学函数 8.简单程序设计 内容: 重点: 1. 了解C语言源程序基本结构; 2. 熟悉基本的数据类型,能进行 算术表达式和赋值表达式的计算 ; 3. 能进行顺序结构的编程(变量 的正确用法、输入输出函数的使 用等) 4 简单程序:将任意两个整数中,大的数输出。 /*功能:两个整数比较大小,将大的数输出*/ #include /*文件包含处理*/ int max(int x,int y) /*比较大小*/ int z; /*定义变量类型*/ if(xy) z=x; /*比较大小*/ else z=y; return(z); /*将大的值返回*/ int main(void)/*主函数首部*/ int a,b,c; scanf(“%d%d”, /*输入a,b*/ c=max(a,b); /*调用函数max */ printf(“Max = %dn”,c); /*输出*/ return 0; 5 C/C+结构化程序的基本结构 2.1 程序的基本结构 程序说明(注释)部分 以 /* 开始,以 */ 结尾 预编译命令 #include 主程序区 (主函数) int main(void) 函数定义区 int max(int x,int y) 注意: 1:程序的运行规则和书写程序的风格; 2:预编译命令的正确使用。 6 1 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 1 0 1 1 0 0 1 1 原 码 反 码 补码 带 符 号 的 机 器 数 -77 原码 反码 补码 数据在计算机中的表示方式 7 数值的表示方法原码 反码 补码 v正数的原码、反码和补码相同 1 的补码 0 000 0000 0000 0001 32767 的补码 0 111 1111 1111 1111 (215-1,2个字节的存储单元能表示的最大正数) v负数的原码、反码和补码不同 -1 原码 1 000 0000 0000 0001 反码 1 111 1111 1111 1110 原码取反 补码 1 111 1111 1111 1111 反码1 8 原码 反码 补码 32767 v补码 0 111 1111 1111 1111 -32767 v原码 1 111 1111 1111 1111 v反码 1 000 0000 0000 0000 原码取反 v补码 1 000 0000 0000 0001 反码1 -32768 = -32767-1 v补码 1 000 0000 0000 0000 (2个字节的存储单元能表示的最小负数) 9 -32768 -1 0 1 32767 32767 0111 1111 1111 1111 1 0000 0000 0000 0001 0 0000 0000 0000 0000 -1 1111 1111 1111 1111 -2 1111 1111 1111 1110 -32767 1000 0000 0000 0001 -32768 1000 0000 0000 0000 32767 + 1 = 32768 ? 1000 0000 0000 000 = -32768 -32768 - 1 = -32769 ? 0111 1111 1111 1111 = 32767 10 31 30 24 23 22 0 阶符 阶码 数符 尾数 阶码部分 尾数部分 0 0 0 0 0 1 1 0 0 0 0 1 1 0 1 1 1 00 浮 点 数 如:将十进制数“55”以浮点数格式存放 (55)10 = (110111)2 = 0.110111 * 26 数据在计算机中的表示方式 11 数据类型 2.2 数据类型 数据是程序操作的对象,数据的类型决定了这个数据 在内存的存储形式、取值范围和能够对它进行的操作。 示例1:编程输出5和6的和与平均值(保留两位小数)。 #include int main(void) int a,b,sum; /*定义变量a,b,sum为整型*/ float av; /*定义变量av为实型*/ a=5;b=6;sum=a+b; av=sum/2; /*计算和与平均值*/ printf(“sum=%d,av=%.2fn”,sum,av); /*输出*/ return 0; 结果: sum=11,av=5.00 选用合适的数据 类型及正确的 输出格式。 12 1.基本数据类型 int 整型 float 单精度浮点型 char 字符型 double 双精度浮点型 short int(或short) 短整型 long int(或long) 长整型 unsigned int 无符号整型 unsigned short 无符号短整型 unsigned long 无符号长整型 unsigned char 无符号字符型 2.2 数据类型 13 (1) 整型 2.2 数据类型 数据类型最小取值范围 数据类型所占位数最小取值范围 int 16-3276832767 short 16-3276832767 long 32-21亿亿21亿亿 unsigned int 16065535 unsigned short 16065535 unsigned long 32042亿亿 14 (2)浮点类型 vfloat型数据在内存中占用4个字节(32位), 提供7位有效数字,可能的取值范围在10-38 1038; vdouble型数据占8个字节,提供1516位有 效数据,可能的取值约10-30810308。 2.2 数据类型 15 (3)字符型 v字符型数据存储时占用8位,它实际存储的是字符 对应的ASCII码(美国标准信息交换码)。 如:一个char型数据A,其ASCII码为65,故实 际存储的内容是65。 vchar型数据取值范围为-128127,unsigued char型数据取值范围为0255。 v字符型数据与整型数据可以通用,字符型数据所有 的性质与一字节整型量相同。 2.2 数据类型 16 表 ASCII码字符表 17 /*程序名:2_5.cpp*/ /*功能:认识常量和变量、符号常量的使用,计算圆的周长和面积*/ #include #define PI 3.1415926 /*定义PI为符号常量*/ int main(void) float r, s, ar; /*定义变量的类型*/ scanf(“%f”, /*键盘输入r的值*/ s = 2 * PI * r; /*计算圆的周长和面积*/ ar = PI * r * r; printf(“s=%7.2f, ar=%7.2f“ , s , ar); 2.2 数据类型 2.常量 18 2.常量(续) 在程序运行过程中其值不能被改变的量常量 包括直接常量和符号常量。 用一个标识符代表一个常量符号常量。 符号常量的定义: #define 标识符 常量 2.2 数据类型 19 2.常量(续) 1)整型常量即整数。 整型常量可以使用三种形式表示:十进制数 、八进制数、十六进制数。 十进制数:如123、-60、0。 八进制数:以0(零)开始的数据是八进制数。如 0123代表八进制数123。 十六进制数:以0x开始的数是十六进制数。如- 0x60代表十六进制数-60,0x123代表十六进制数 123。 2.2 数据类型 20 2) 实型常量 实数有两种表示形式。即: 十进制形式:包括整数部分、小数点、小数部分,当整 数或小数部分为0时可以省略,但小数点不能省略。如128.0 、.128、128.5、128.、0.0等都是十进制数形式。 指数形式:包括尾数、字符e(或E)、指数。它适用于表示 较大或较小的数。e之前必须有数字,且e后面的指数必须为 整数。如1.28e4或1.28E4都代表12800。 2.2 数据类型 注意: 如果实型常量后缀是“f”或“F”,则被当成float型,否 则,C语言编译系统总是将实型常量处理成双精度的。 21 示例: (调试时将出现警告错) #include int main(void) float a,b,c,ave ; a=39.5 ; b=37.6 ; c=40.2 ; ave=(a+b+c)/3 ; printf ( “ 三个数的平均数是: %f “ , ave ) ; return 0; 22 3) 字符常量 字符常量是用单引号括起来的一个字符,如A、 a、?、0等。 字符常量的值的是机器字符集中字符的数字值, 如字符常量0,其ASCII为48,所以存储的实际 内容为48。 字符常量可以象数值一样参与运算。 如:a-32 转义字符:一组以“”开头的特殊字符序列。 如: n 2.2 数据类型 23 常用转义字符表 转义转义 字 符 功 能 a响铃,发出系统警告声音 n换行符,使屏幕光标移到屏幕下一行开头 r回车,使屏幕光标移到屏幕当前行开头,不换行 t制表符(横向跳格),使屏幕光标移到下一制表位 反斜杠字符 单引号字符 “双引号字符 24 4) 字符串常量 一对双引号括起来的字符序列。如: “How do you do. ”, “ABCD!” 等等 字符串在存储时末尾被自动加上字符0作为 串结束的标志。 注意区分字符常量与只包含一个字符的字符串 常量 2.2 数据类型 25 3.变量和内存的概念 v变量: 程序运行过程中其 值可以改变的量。 系统为程序中的每 一个变量开辟存储单元 。 v变量名: 字母开头,后跟字母 、数字和下划线组成 。 C语言中的关键字不 能作为变量名。 2.2 数据类型 #include #define PI 3.1415926 int main(void) float r, s, ar; scanf(“%f”, s = 2 * PI * r; ar = PI * r * r; printf(“s=%7.2f, “ , s ); printf(“ ar=%7.2f “ , ar ) ; 说明: 变量必须先定义后使 用; 变量中存储的只能是 一个数据,往变量中 存放数据的操作称为 赋值。 变量改变的是其值, 而不是变量名。 26 4.变量定义和赋初值 v变量定义 int a , b , c ; /*指定a,b,c为整型变量*/ float w ; /*指定w为单精度实型变量*/ double z; /*指定z为双精度实型变量*/ char c1 , c2; /*指定c1,c2为字符型变量*/ 2.2 数据类型 变量赋初值 int i = 0 ; /*指定i为整型变量,初值为0*/ int a = 5 , b = 5 , c = 5; /*指定a,b,c的初值为5*/ float ep = 0.001; /*指定ep的初值为0.001*/ char c = a ; /*指定c的初值为a*/ 类型标识符 变量名1=常量1, 变量名2=常量2, ; 27 2.2 数据类型 注意: 变量的“名”和变量的“值”不同,变量的“名”是 该变量所代表的存储单元的标志,而变量的“值”是指 存储单元中的内容。 如:int a; 执行a=5; 执行a=10; 定义a 第一次赋值 第二次赋值 a的值不定 510 28 算术运算符 2.3 算术运算符和算 术表达式 vC/C+语言提供了如下算术运算符: (加法运算符) (减法运算符) * (乘法运算符) (除法运算符):两个整数相除结果还是整数 % (求余运算符):求余要求%两侧都是整型数据 v优先级和结合性:算术运算符的优先级与代数中相 同,即先乘除和求余,后加减。结合性是从左到右。 29 2.3 算术运算符和算 术表达式 (1)求三个数的算术平均值 代数表达式:ave= 算术表达式:ave=(a + b + c)/3 (2)根据三角形三边计算三角形面积 代数表达式: 算术表达式:sqrt(s*(s-a)*(s-b)*(s-c) (3)根据半径计算圆的周长 代数表达式: s=2r 算术表达式:s=2*3.14159*r 算术表达式 30 赋值运算符及表达式 2.4 赋值运算符和赋 值表达式 v简单的赋值运算符:把一个表达式的值赋给一 个变量,表达式格式为: 变量名=表达式 如: i = 1 n = n+ 1 sum = i1 + i2 31 2.4 赋值运算符和赋 值表达式 v复合的赋值运算符:算术运算符与“=”结合在一 起而形成。 例如: 赋值运算符(续) i + = 2 等价于 i = i + 2 a * = b + 5 等价于 a = a * (b + 5) x% = 3 等价于 x = x%3 赋值运算符按照“自右向左”的结合顺序 例如:a=b=8 a=(b=8) 32 v下面程序段的输出结果是: int a=5,b=5; a%=b+=a+=(a+b); printf(“a=%d,b=%d”,a,b); 练习1: 结果:a=15,b=20 33 v下面程序段的输出结果是: int a=10,b=10; a+=b-=a*=b/=3; printf(“a=%d,b=%d”,a,b); 练习2: a=3,b=-27 34 2.5数据类型的转换 v运算符两侧的数据类型 不同时,它们会按照提 升规则自动进行类型转 换 。 v进行赋值运算时也发生 类型转换,右侧的值转 换为左侧的值。 v任何表达式中都可以强 制类型进行转换。其形 式为: (类型名)表达式 doublefloat long unsigned intchar,short 数据类型的转换 如:计算 a+3.2-15/2*12.7 X=11.3 例如:下列程序段执行后i,x的 值分别是多少? int i; double x=2.6; i=(int)x; 35 1.格式输出函数printf 2.6 数据的输出和输入 vprintf函数的一般调用格式: printf(格式控制,输出表列); v功能:printf函数可以将任意类型的多个数据输出 到标准输出设备上(一般为显示器)。 36 普通字符格式说明 转义字符 格式控制 由双引号括起 来的字符串 由“%”和格式字符组成, 它的作用是将输出的数 据按照指定的格式输出。 需要原样输 出的字符。 用于控制输出。 普通字符 输出表列 printf(“sum=%dn“,s um); 格式说明 格式符:见P100表6-5 37 2.常用格式符 2.6 数据的输出和输入 v示例1: #include int main(void) int a = -1 , b = 25 , c = 125 ; long x = 356142; printf(“%d,%5dn“ , a, b); printf(“%5d,%2dn“ , c , c); printf(“%ld,%dn“ , x , x); return 0; 输出结果为: 38 #include int main(void) int a,b; float x; char c; a=123; b=-1; x=3.14; c =A; printf(“%d,%4dn“,a,a); printf(“%d,%x,%o,%un“,b,b,b,b); printf(“%c,%dn“,c,c); printf(“%f,%6.1fn“,x,x); return 0; 写出程序运行结果 示例2: 39 -1在内存中的存放 运行结果 有一个空格 int a,b; float x; char c; a=123; b=-1; x=3.14; c =A; printf(“%d,%4dn“,a,a); printf(“%d,%x,%o,%un“,b,b,b,b); printf(“%c,%dn“,c,c); printf(“%f,%6.1fn“,x,x); 1111 1111 1111 1111 1111 1111 1111 1111 有3个空格 40 3.格式输入函数scanf 2.6 数据的输出和输入 vscanf函数的一般调用格式: scanf(格式控制,地址表列); vscanf函数的功能是按照指定的格式输入数据,可以输入任意 类型的多个数据。 v格式控制与printf函数含义相同,它由若干个格式说明构成, 其作用是控制转换输入数据的类型。 v地址表列由若干个地址构成,它们可以是变量的地址,也可以 是字符串的首地址(以后讲)。 v格式符:见P102表6-6 41 普通字符格式说明转义字符 格式控制 由双引号括起 来的字符串 由“%”和格式字符组成, 它的作用是将输入的数 据按照指定的格式送入 指定变量所占的存储单元。 需要原样输 入的字符。 用于控制输入。 42 4.如何分隔数据 2.6 数据的输出和输入 用隐含的分隔符。在输入数据中用空格或换行符分隔数 据。 scanf(“%d%d%d“, 输入数据 3 4 5 或输入 3 4 5 则a=3,b=4,c=5 使用显示分隔符。在格式说明符中还可以有其 它字符,在输入字符时应输入与这些字符相同的 字符。 scanf(“%d,%d,%d“, 输入数据 3,4,5 则 a=3,b=4,c=5 43 示例: C语言的表达式:sqrt(s*(s-a)*(s-b)*(s-c) 头文件:math.h 2.7 数学函数 数学函数: 44 常用数学函数 函 数 名功 能举 例 fabs(x)计算x的绝对值fabs(-3.5)等于3.5 sqrt(x)计算x的非负平方根sqrt(16.0)等于4.0 exp(x)计算指数函数exexp(1.0)等于2.71828 log(x)计算x的自然对数ln xlog(2.718282)等于1.0 log10(x)计算以10为底的对数函数 log10x Log10(10.0)等于1.0 pow(x,y) 计算xy pow(2.0,3.0)等于8.0 sin(x)正弦函数sin(0.0)等于0.0 cos(x)余弦函数cos(0.0)等于1.0 2.7 数学函数 45 v分析:程序需要三个整型变量分别存放三个整数,考虑到三 个整数的平均数不一定为整数,所以存放平均值的变量定义 为实型。 2.8 简单程序设计 /*程序名:2_6.cpp*/ /*功能:求三个整数的平均数*/ #include int main(void) int a, b, c; /*定义三个整型变量分别存放三个整数*/ float ave; /*定义一个实型变量分别平均值*/ scanf(“%d,%d,%d“, /*任意输入三个整数*/ ave = (a + b + c) / 3.0; /*计算平均值*/ printf(“ave=%7.2fn“ , ave); /*输出计算结果*/ return 0; 【例2-1】 求三个整数的平
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司电商活动策划方案
- 公司职员会议活动方案
- 可摘义齿固位技术-洞察及研究
- 2025年供热通风与空调工程师考试试题及答案
- 2025年法律与生物伦理的考试试题及答案
- 2025年中国类人胶原蛋白行业市场全景分析及前景机遇研判报告
- 2024年度浙江省护师类之主管护师典型题汇编及答案
- 公寓防火安全教育
- 员工入职三级安全培训
- DB43-T 2864-2023 土家族非遗乐器咚咚喹通.用技术要求
- 2023年黑龙江省文化和旅游系统事业单位人员招聘笔试模拟试题及答案解析
- 2023年江西新余市数字产业投资发展有限公司招聘笔试题库含答案解析
- LY/T 3323-2022草原生态修复技术规程
- 部编版六年级语文下册课件第1课《北京的春节》《腊八粥》
- 涂装工模拟练习题含答案
- 2023-2024学年河南省永城市小学数学二年级下册期末评估测试题
- 乳腺疾病的超声诊断 (超声科)
- 服务精神:马里奥特之路
- 《建筑施工安全检查标准》JGJ59-2011图解
- 华为大学人才培养与发展实践
- 医疗垃圾废物处理课件
评论
0/150
提交评论