




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第2章 基本程序设计主 要 内 容 数据及其表示方法; 数据的基本运算; 基本输入输出。 程序是对数据按照算法处理,并输出结果的过程,因此,以上三个问题是程序设计的基本问题。2.1 数据类型1/2 ? 数据是对客观事物特征抽象的符号化表示,客观事物不同,表示的方法也不同(人数以整数表示,圆面积用小数表示,灯的状态用开关表示,信件要用文字表示),计算机的处理方法也不同,因此根据程序处理的数据对象,应规定数据的类型。 计算机由于工程的限制,只能在有限精度和有限范围内在工程上近似地描述操作的对象数据。 数据类型决定了数据的如下特征:数据的外部表示方式和内部存储方式不同;表示的范围和精度不同;对数据的
2、处理方式不同。C语言的数据类型C语言的数据类型基本类型字符型 char浮点型 float double构造类型数组、结构、联合、枚举型 enum指针类型空类型 void整 型 int2.2 常量(Constant)及其类型 常量的概念 在程序中不能改变的量称为常量。常量的类型由数据的外部表现形式确定。常量的外部形式及其确定的类型整型常量的表示 整型常量根据表示的范围可以有一般整型和长整型,还可以表示为十进制、八进制、十六进制形式。一般整型常量的表示进 制表示举例范 围 字节数十 进 制2304 -32768 2八 进 制 04400 0 0177777 2十六进制 0 xaa00 0 x000
3、0 0 xffff2长整型常量的表示进 制表示举例范 围 字节数十 进 制-21234l -231 +231-14八 进 制 04400l 0 4十六进制 0XAA00L 0 x0000-0 xffffffff 4浮点型常量的表示(只有十进制表示) 浮点型常量有两种表示方式:小数表示方法,指数表示方法。不区分单、双精度。小数表示方式规则:一个小数点、符号和至少一位数字。-2.0 1. 0.11113 -15.指数表示方式规则:规则:nem 表示 n10mn小数部分,整型常量或小数形式表示的实型常量。指数部分,两位整数。 n决定精度,一般精度为7位;m决定范围,范围10-38到10+38,当超过
4、范围时称为“溢出”,小于10-38称为下溢,当0处理,大于10+38,称为上溢,系统出错!123.456 表示为 0.123456E 表示为 -1e70.0000123 表示为 0.123e-4字符常量的表示 表示ASCII字符集中的一个字符。字符有一个整型值,即该字符的ASCII码值。表示方法:a 、 ! 。撇号定界的一个字符。值为:97字符串常量的表示 双引号“定界的字符序列。系统会在最后一个字符后加NULL(ASCII码值为0),标志字符串的结束。 如:”HEFEI ” ”Hello!” a 和 ”a”的区别?内部 a :97 ”a”: 97NULL72101108108111330He
5、llo!0”Hello!” 在内存中的存储结构:符号常量格式: # define 符号常量名 常量好处:(1)以简代繁; (2)一改全改。注意:常量符号名习惯用大写字母。例如: # define PI 3.14159说明:必须先说明,后使用。2.3 变量(Variable)及其类型 变量的概念 变量是在程序中可以改变的量,变量具有三个特征: 变量有名,用标识符命名; 变量有类型; 在程序中可以改变。 变量对应于内存中某一地址下的几个单元,变量名作为程序引用变量的标志。变量的类型确定了变量在内存中所占单元的数量及其表示的方式。变量的地址可以通过&运算获得。内存int a; a变量的引用标志&a对
6、应a的地址。 整型变量占两个内存单元。变量必须先说明后使用!说明的目的是确定变量的名字和类型。变量的说明形式: type 变量名表;/*以,分隔的标识符表*/ int a,b,c;type是类型说明词,对于整型和字符型可加修饰说明。基本类型说明符:int、char、float、double修饰说明和基本说明的对应关系修饰说明词可用于修饰的基本类型singed/unsignedint、charshort/longintlong int a,b,c; 整型变量说明说明词及性质如下:说明词含义范围Byteshort int有符号短整型-32768327672int有符号一般整型-2147483648
7、4long int有符号长整型21474836474unsigned short无符号短整型0655352unsigned无符号一般整型0 4unsigned long无符号长整型0 4short a,b,c;int e,f,g;long _qs,num;unsigned d,e,f;字符型变量的说明说明符 所占字节数 范围 char 1 -128 +127unsigned char 1 0 255浮点型变量的说明说明符 所占字节数 范围 精度float 4 10-38 10+38 7位double 8 10-308 10+308 16位浮点型变量包含精度和范围两个概念。 超过精度位数后的位数
8、值不确定。float a;a=1.1111111111;超过范围溢出(Overflow)。超出精度部分,不准确。float a,b,c;a=1.234e+20 ; b=2.345e+21;c=a*b ;超出1038,溢出。 当运算结果大于10+38称为上溢,系统出错。 当运算结果小于10-38称为下溢,当0处理。2.4 运算符与表达式 程序的核心是对数据按照算法进行处理(运算)。C 语言提供了强大的数据运算功能。数据通过运算符连接的式子称为表达式,表达式根据运算关系对数据运算,并得到一个值。变量赋值(Assignment)运算格式: V=expression;/* 将expression的值赋
9、给变量V*/int a=2; /*说明赋值,编译时赋值。*/int b;b=3+2; /*说明后赋值,执行时赋值。*/说明: =是赋值号(动词); 赋值运算的左值只能是变量。a=a+2;iCount=iCount+10;a+2=12; /*Error!*/ 赋值号两边类型应该一致,如不一致,以变量类型转换。 int a=2.5 ; /* 2a */算术运算(Arithmetic operators) 功能:完成各种类型数据的加、减、乘、除及求余数运算。双目算术运算(两个运算对象参加的运算)运算运算规则示例+加2+3-减a-b*乘2*(-a)/除12/3.0%求余数15%4 只能对整型或字符型数
10、据运算。余数符号与被除数相同。注意:乘号不能省略!-12%5-2-12%(-5)1%2自加、自减运算(单目运算)运算符前置后置运算关系+aa+a=a+1 -aa-a=a-1说明:运算对象只能是一个变量。前置是先运算,后引用,而后置则是先引用,后运算。2+; /* Error !*/int i, x;i=5;x=i+;/* x=i;i=i+1;*/i=5;x=+i;/* i=i+1;x=i;*/#include void main(void) int a=2,b=3,c; c=a+b; printf(“%d”,c);C语言尽可能多的从左向右结合符号形成运算符。想一想:int i=3;printf
11、(“%d,%d”,-i+,i); printf(“%dn”,i); 输出:printf(“%d,%d”,4-i+,i); printf(“%dn”,i); 输出: printf(“%d,%d”,-+i,i); printf(“%dn”,i); 输出:printf(“%d,%d”,4-+i,i); printf(“%dn”,i); 输出:-3,340,45-6,56-3,67算术运算赋值运算符表达式示例运算关系+=a+=3 a=a+3-=b -= c b=b-c* =a* =2 a=a*2 /=s/=t s=s/t%=a%=5 a=a%5 说明:运算对象的左值只能是一个变量。(a+2)+=5;
12、/*Error !*/%=运算的对象,必须是整型或字符型。例: a=12; a+=a-=a*a;/等价于a=a+(a=a-(a*a)a=-264例: int m=5,y=2; y+=y-=m*=y;/等价于y=y+(y=y-(m=m*y)y=-16赋值表达式的值与变量值相等,且可嵌套。 算术运算的说明运算中的类型问题运算对象的类型相同,运算结果取运算对象相同的类型。int a;float b;b=2/3; /* 0b 0.0*/a=5.0/2.0; /*2.5a 2 */ 运算对象的类型不同,先将低等类型转换为高等类型后再进行运算,运算结果取高等类型。等级原则如下:charintlongdou
13、blefloat2*16.0+15.0doubledoubledouble运算时可以实行类型的强制转换,格式如下:(type)expression 只对当前表达式起作用。(float)a/(int)c+(float)(a+10)2int(fSum)类型转换举例int a;float b;int c;c=a * 1.0 + b * 5 + (float) A;idfic d f ff d dc int注意:赋值运算右值表达式的类型转换以左值变量的类型为准。运算的优先级 表达式的运算是分步骤进行的。因此当一个表达式中出现多种运算时,存在优先级的问题。算术运算的优先级如下:+、- -、(type)
14、单目运算*、/、%+、-=、op=相同优先级,结合顺序从左到右!3*4+6/a- 6%3;相同优先级,结合顺序从右到左!可以用( )调整优先级。条件运算运算格式: e1 ? e2 : e3 e1、e2、e3为表达式,当e1非0时,运算结果取e2的值;当e1为0时,取e3的值。int a=2,b=3,c=-1,d;d=a?b:c; /*d为3*/a=0;d=a?b:c; /*d为-1*/逗号表达式格式: e1, e2, e3,en 用,分隔的表达式,计算顺序从左到右,表达式取值为en;sizeof 运算形式: sizeof 数据对象; sizeof (类型说明符);int a,b,c;b=siz
15、eof a; /*b的值为4 */c=sizeof(float); /* c的值为4*/x=(a=5,a+6)*10;例:a=3*5,a*4; a=3*5,a*4,a+5; /* a=15 */例:x=(a=3,6*3); /* x=18 */ 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); 例: #include main() int x,y=7; float z=4; x=(y=y+6,y/z); printf(x=%dn,x); C语言常用数学函数 为方便用户使用,C语言
16、系统定义了大量函数。数学函数主 要目的是求解常用数学函数,如sinX等。数学函数的原型定义在 系统的math.h头文件中。在使用此类函数时,应在程序的开始出 加如下语句: #include 使用方法:作为一个运算项参加表达式运算。 函数的参数(自变量)、函数的值都是double类型。y=sqrt(sin(x)*sin(x)+cos(x)*cos(x)log10 xlog10(x)lnxlog(x)sqrt(x)xypow(x,y)| x |fabs(x)tanX tan(x) cosXcos(x)sinXsin(x)数学含义函数2.5 数据的输入输出Input &Output C 语言没有输入
17、输出语句,输入输出是通过系统定义的标准函数来实现的。 I/O函数的原型定义在stdio.h头文件中,在引用I/O函数时,应应在程序开始处加预处理语句包含头文件。#include 输入输出的概念输入输出指的是内存变量或程序和外部设备间的数据交换。内存外设输入 输出输入输出函数要描述:输入输出的量;输入输出的格式;输入输出的设备。2. 字符输入输出函数(1)输入:getchar( ) 从标准输入设备(键盘)读入一个字符。 调用格式: c=getchar( ); c 为一字符型或整型变量。例: #include main( ) int a1,a2;char c1,c2; a1=97;a2=65;c1
18、=a;c2=A; putchar(a1);putchar(a2); putchar(c1);putchar(c2);putchar(n); a1=getchar( ); c1=getchar( ); putchar(a1);putchar(t);putchar(c1); (2)输出:putchar( ) 向标准输出设备(显示器)输出一个字符。 调用格式: putchar( c ); c 为一字符型或整型变量和常量。如:putchar(A); putchar(65); 均输出字母A 。 程序运行结果:aAaA 输入:97 9 7格式输入输出函数输出函数printf( )格式:printf(“输出
19、格式字符串”,输出项列表);格式描述。用,分隔的常量、变量、表达式表。输出格式字符串可包含以下内容:普通字符 ,如:a=转义字符,如:n 对于普通字符和转义字符在相应位置原样输出,其中%用%。 printf(“nabcd%”); 输出结果: abcd% 格式说明符组,说明输出项列表中的各项的输出格式。格式说名符组用%为开始标志。内容包含对一项输出对象的格式说明。%-7.5f格式说明类型表格式说明符说明量的类型%d、%o、%x、%u整型%c字符型%s字符串%f、%e浮点型 格式说明符应和输出的列表项对应,产生相应的输出。其中输出的表项应与格式说明符类型一致。printf(“a=%5dnb=%f”
20、, 2+3, 5.34);输出结果:a=5 b=5.340000格式说明串的一般形式和意义% - m.n l 格式类型字符(一个字母)格式说明标志对齐方式:缺省为右对齐,-为左对齐。 宽度.精度(位数),宽度:输出总列数,精度:小数位数(或字符位数)。整型长度,缺省短整型,l长整型。#include void main(void) float a; a=1.232326 ; printf(“a=%10.4f”,a);各种类型数据输出举例 字符型输出char ch=b;printf(“%5c, %-5c, %c” ,ch ,ch-32,s+1);输出结果:b,B,t字符串输出#include v
21、oid main(void) char chString =China; printf(%s,%6s,%-6sn,chString,chString,chString); printf(“%4s%6.2s%-6.2s,Hefei,Hefei,Hefei);China, China, China Hefei HeHe宽度不够,原样输出。m.n,m为总输出列数, n 截取输出字符数。整型输出#include void main(void) unsigned int a=65535; int b=-2; printf(a=%d,%o,%x,%u, a, a, a, a); printf(nb=%6d
22、%8o%5X%6u,b, b, b, b);a=-1,177777,ffff,65535b=-2177776FFFE65534浮点数输出include void main(void) float f=123.456; printf(%f,%10f,%10.2f,%-10.2fn,f ,-f ,f ,-f);123.456001,-123.45600,123.46,-123.46 小数保留两位,四舍五入截断。符号占一位!输入函数scanf()格式: scanf(“格式说明字符串”,输入变量地址列表); 说明: m域宽可自动截取,空格作为各数据项的分隔符。 void main(void) int
23、i,j; scanf(%3d%3d,&i,&j); printf(%dn%d,i,j);123456实型变量输入时不能规定精度;scanf(“%7.2f”,&a); ERROR! 数据输入用SPACE分隔,当格式字符用其他字符隔离,输入时也应在对应位置上输入相同的字符;void main(void) int i,j; scanf(i=%d,j=%d,&i,&j); printf(n%dn%d,i,j);输入项只能是变量,且必须用地址形式。程序设计举例 已知:有一圆柱体,底半径为r,圆柱高为h。 求: 底面积、表面积,底周长、体积。定义变量 fAread、 fAreas, fLen, fV 输出; r 、h输入。rh建立模型fLen=2rfAread=r2,fAreas=2r2+2rh=2fAread+fLenhfV=fAreadh程序如下:#include void main(void) float fAread,fAreas,fLen,fV,r,h; /*说明变量*/ scanf(“%f,%f”,&r,&h); /*输入原始数据*/ fLen=2.*3.1415926*r; fAread
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025租赁合同范本7
- 2025餐饮连锁加盟合同
- 2025跨国租赁合同样本
- 2025兼职劳动合同书模板
- 2025深入探讨新合同法对销售合同的调整
- 2025超市装修施工合同范例
- 2025地基工程承包合同
- 2025技术培训转让合同协议
- 2025国际航空货物运输的合同
- 2025机械设备购销结合合同示范文本
- 2025商业综合体委托经营管理合同书
- 2024-2025学年北师大版生物七年级下册期中模拟生物试卷(含答案)
- 林业理论考试试题及答案
- 超市店长价格管理制度
- 2025-2030中国脑芯片模型行业市场发展趋势与前景展望战略研究报告
- 2025年河南省洛阳市洛宁县中考一模道德与法治试题(含答案)
- GB/T 17622-2008带电作业用绝缘手套
- 篮球三步上篮公开课教案-白元增
- 设备日常维护保养检查评分表
- 压力性尿失禁讲稿
- 煤矿班组安全文化建设(课堂PPT)
评论
0/150
提交评论