版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章最简单的C程序设计3.1C的数据类型3.2常量与变量3.3整型数据3.4浮点型数据3.5字符型数据3.6各类数值型数据间的混合运算3.7运算符和表达式3.8数据输入输出的概念及在C语言中的实现
本章要点数据的描述规则数据的操作规则学习目标掌握C的数据类型掌握常量、变量的概念及应用和运算符的应用掌握各种表达式的应用重点难点重点:C的数据类型、常量、变量、算术运算与算术表达式、赋值运算符与赋值表达式。难点:变量的含义和使用。C语言提供了以下一些数据类型。
数据类型构造类型指针类型空类型(无值类型)void枚举类型enum数组类型结构类型struct联合类型union基本类型整型int字符型char实型(浮点型)单精度实型float双精度实型double3.1C的数据类型有符号基本整型有符号短整型有符号长整型无符号基本整型无符号短整型无符号长整型(signed)int(signed)short(int)(signed)long(int)unsignedintunsignedshort(int)unsignedlong(int)整型100,125,-100,0实型3.14,0.125,-3.789字符型’
a’,’b’,’2’字符串”
a”,”
ab”,”1232”3.2常量与变量常量和符号常量在程序运行过程中,其值不能被改变的量称为常量常量区分为不同的类型:例3.1符号常量的使用
#definePRICE30
#include<stdio.h>
voidmain()
{
intnum,total;
num=10;
total=num*PRICE;
printf(″total=%d\n″,total);
}#define语句定义一个符号常量PRICE,其值等于30。该值在程序运行过程中不能被改变。符号常量通常用大写字母表示。编译程序在翻译本源程序文件时,符号常量PRICE用其值30替换。程序运行结果是:
total=300思考:为什么要定义符号常量?变量变量代表内存中具有特定属性的一个存储单元,它用来存放数据,这就是变量的值,在程序运行期间,这些值是可以改变的。变量名实际上是一个以一个名字对应代表一个地址,在对程序编译连接时由编译系统给每一个变量名分配对应的内存地址。从变量中取值,实际上是通过变量名找到相应的内存地址,从该存储单元中读取数据。total80变量名(符号地址)变量值存储单元变量名(符号地址)变量名(符号地址)变量命名的规定:C语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。例:sum,_total,month,Student_name,
lotus_1_2_3,BASIC,li_lingM.D.John,¥123,3D64,a>b
32个关键字:(由系统定义,不能重作其它定义)autobreakcasecharconst
continuedefaultdodoubleelse enum externfloatforgoto ifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhile注意:编译系统将大写字母和小写字母认为是两个不同的字符。建议变量名的长度最好不要超过8个字符。在选择变量名和其它标识符时,应注意做到“见名知意”,即选有含意的英文单词(或其缩写)作标识符。要求对所有用到的变量作强制定义,也就是“先定义,后使用”。整型常量的表示方法整型常量即整常数。在C语言中,整常数可用以下三种形式表示:(1)十进制整数。(2)八进制整数。以0头的数是八进制数。(3)十六进制整数。以0x开头的数是16进制数。整型变量
(1)整型数据在内存中的存放形式数据在内存中是以二进制形式存放的。如:inti;/*定义为整型变量*/i=10;/*给i赋以整数10*/3.3整型数据两种表示形式小数指数0.1233e-3注意:字母e(或E)之前必须有数字,且e后面的指数必须为整数1e3、1.8e-3、-123e-6、-.1e-3e3、2.1e3.5、.e3、e
3.4浮点型数据浮点型常量的表示方法规范化的指数形式:在字母e(或E)之前的小数部分中,小数点左边应有一位(且只能有一位)非零的数字.例‘a’,’A’,‘1’‘abc’、“a”3.5字符型数据字符常量(1)用单引号包含的一个字符是字符型常量(2)只能包含一个字符√
有些以“\”开头的特殊字符称为转义字符\n换行\t横向跳格\r回车\\反斜杠\dddddd表示1到3位八进制数字\xhhhh表示1到2位十六进制数字字符变量 字符型变量用来存放字符常量,注意只能放一个字符。字符变量的定义形式如下:charc1,c2;在本函数中可以用下面语句对c1,c2赋值:
c1=‘a’;c2=‘b’
;一个字符变量在内存中占一个字节。字符数据在内存中的存储形式及其使用方法将一个字符常量放到一个字符变量中,实际上并不是把该字符本身放到内存单元中去,而是将该字符的相应的ASCII代码放到存储单元中。例3.2向字符变量赋以整数。
#include<stdio.h>
voidmain()
{charc1,c2;
c1=97;
c2=98;
printf(“%c%c\n”,c1,c2);
printf(“%d%d\n”,c1,c2);
}运行结果:ab
9798字符串常量字符串常量是一对双撇号括起来的字符序列.合法的字符串常量:
“Howdoyoudo.”,“CHINA”,“a”
,“$123.45”可以输出一个字符串,如
printf(“Howdoyoudo.”);
‘a’是字符常量,”a”是字符串常量,二者不同。如:假设C被指定为字符变量
:charcc=’a’;c=”a”;c=”CHINA”;
结论:不能把一个字符串常量赋给一个字符变量。C规定:在每一个字符串常量的结尾加一个“字符串结束标志”,以便系统据此判断字符串是否结束。C规定以字符’\0’作为字符串结束标志。混合运算:整型(包括int,short,long)、浮点型(包括float,double)可以混合运算。在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算.说明:这种类型转换是由系统自动进行的。3.6各类数值型数据间的混合运算
例3.3有人用温度计测量出用华氏法表示的温度(如F,今要求把它转换为以摄氏法表示的温度(如C)。转换公式f代表华氏温度,c代表摄氏温度#include<stdio.h>intmain(){floatf,c;f=64.0;c=(5.0/9)*(f-32);printf("f=%f\nc=%f\n",f,c);return0;}定义f和c为单精度浮点型变量指定f的值计算c的值输出f和c的值
例3.4计算存款利息。有1000元,想存一年。有三种方法可选:(1)活期,年利率为r1(2)一年期定期,年利率为r2(3)存两次半年定期,年利率为r3
请分别计算出一年后按三种方法所得到的本息和。#include<stdio.h>intmain(){floatp0=1000,r1=0.0036,r2=0.0225,r3=0.0198,p1,p2,p3;p1=p0*(1+r1);p2=p0*(1+r2);p3=p0*(1+r3/2)*(1+r3/2);printf(”%f\n%f\n%f\n”,p1,p2,p3);return0;}定义变量同时赋予初值C运算符简介
C的运算符有以下几类:(1)算术运算符(+、-、*、/、%)(2)关系运算符(>、<、>=、<=、==、!=)(3)逻辑运算符(!、&&、||)(4)位运算符(<<、>>、~、|、∧、&)(5)赋值运算符(=及其扩展赋值运算符)(6)条件运算符(?:)(7)逗号运算符(,)(8)指针运算符(*、&)(9)求字节数运算符(sizeof)(10)强制类型转换运算符((类型))(11)分量运算符(.->)(12)下标运算符([])(13)其他(如函数调用运算符())3.7运算符和表达式(1)算术表达式和运算符的优先级与结合性基本的算术运算符:
用算术运算符和括号将运算对象(也称操作数)连接起来的、符合C语法规则的式子,称为C算术表达式。运算对象包括常量、变量、函数等。例如:
a*b/c-1.5+′a′
是一个合法的表达式算术表达式和运算符C语言规定了运算符的优先级和结合性。在表达式求值时,先按运算符的优先级别高低次序执行,例如先乘除后加减。C规定了各种运算符的结合方向(结合性)
算术运算符的结合方向为“自左至右”,即先左后右。(2)强制类型转换运算符可以利用强制类型转换运算符将一个表达式转换成所需类型。一般形式:(类型名)(表达式)例如:(double)a将a转换成double类型(int)(x+y)将x+y的值转换成整型(float)(5%3)将5%3的值转换成float型(3)自增、自减运算符作用是使变量的值增1或减1如:++i,--i(在使用i之前,先使i的值加(减)1)i++,i--(在使用i之后,使i的值加(减)1)注意:
(1)自增运算符(++),自减运算符(--),只能用于变量,而不能用于常量或表达式,
(2)++和--的结合方向是“自右至左”。自增(减)运算符常用于循环语句中使循环变量自动加1。也用于指针变量,使指针指向下一个地址赋值运算符和赋值表达式(1)赋值运算符 赋值符号“=”就是赋值运算符,它的作用是将一个数据赋给一个变量。 如“a=3”的作用是执行一次赋值操作(或称赋值运算)。把常量3赋给变量a。 也可以将一个表达式的值赋给一个变量.(2)类型转换 如果赋值运算符两侧的类型不一致,但都是数值型或字符型时,在赋值时要进行类型转换。(3)复合的赋值运算符在赋值符“=”之前加上其他运算符,可以构成复合的运算符。例如:a+=3等价于a=a+3(4)赋值表达式一般形式为:<变量><赋值运算符><表达式>逗号运算符:将两个表达式连接起来,又称为“顺序求值运算符”
如:3+5,6+8一般形式:
表达式1,表达式2求解过程:先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值。例:逗号表达式a=3*5,a*4逗号运算符和逗号表达式1.关系运算符及其优先次序<(小于)<=(小于或等于)>(大于)>=(大于或等于)==(等于)!=(不等于)优先级相同(高)优先级相同(低)说明:关系运算符的优先级低于算术运算符关系运算符的优先级高于赋值运算符关系运算符和关系表达式C语言中没有专用的逻辑值,1代表真,0代表假2.关系表达式 用关系运算符将两个表达式(可以是算术表达式或关系表达式,逻辑表达式,赋值表达式,字符表达式)接起来的式子,称关系表达式例:a>b,a+b>b+c,(a=3)>(b=5),’a’<‘b’,(a>b)>(b<c)关系表达式的值是一个逻辑值,即“真”或“假”。例:关系表达式”a>b”的值为“真”,表达式的值为1。算术运算符 高关系运算符赋值运算符低(优先级关系)逻辑运算符和逻辑表达式1.逻辑运算符及其优先次序
!(逻辑非)相当于其他语言中的NOT &&(逻辑与)相当于其他语言中的AND ||(逻辑或)相当于其他语言中的OR
例:a&&b若a,b为真,则a&&b为真。
a||b若a,b之一为真,则a||b为真。!a若a为真,则!a为假。优先次序:
!非高
算术运算符关系运算符
&&||赋值运算符低优先级关系2.逻辑表达式 用逻辑运算符将关系表达式或逻辑量连接起来的式子就是逻辑表达式。 逻辑表达式的值应该是一个逻辑量“真”或“假”。例:设a=4,b=5:!a的值为0a&&b的值为1a||b的值为1!a||b的值为14&&0||2的值为1任何非零的数值被认作“真”3.8数据输入输出的概念及在C语言中的实现(一).所谓输入输出是以计算机主机为主体而言的输出:从计算机向外部输出设备(显示器,打印机)
输出数据输入:从输入设备(键盘,鼠标,扫描仪)向计算机输入数据.(二).C语言本身不提供输入输出语句,输入和输出操作是由C函数库中的函数来实现的例如:字符输入函数:getchar字符输出函数:putchar格式输入函数:scanf格式输出函数:printf字符串输入函数:gets字符串输出函数:puts(三).在使用系统库函数时,要用预编译命令“#include”将有关的“头文件”包括到用户源文件中.例如:在调用标准输入输出库函数时,文件开头应该有:
#include“stdio.h”
或:
#include<stdio.h>头文件3.8-1字符数据的输入输出(一).字符输出函数一般形式:putchar(c)
函数作用:向终端输出一个字符
例3.5输出单个字符。
#include<stdio.h>
voidmain()
{
chara,b,c;
a=‘B’;b=‘O’;c=‘Y’;
putchar(a);putchar(b);putchar(c);putchar(‘\n’);
}
运行结果:BOYputchar(a);putchar(‘\n’);putchar(b);putchar(‘\n’);putchar(c);putchar(‘\n’);运行结果:BOY(二).字符输入函数一般形式:getchar()函数作用:从终端输入一个字符。函数值:从输入设备得到的字符。例3.6输入单个字符。
#include<stdio.h>
voidmain()
{
charc;
c=getchar();
putchar(c);
putchar(‘\n’);
}3.8-2格式输入与输出(一).格式输出函数函数作用:向终端(或系统隐含指定的输出设备)输出若干个任意类型的数据。一般格式:printf(格式控制,输出表列)%d:以带符号的十进制形式输出整数%o:以八进制无符号形式输出整数%x:以十六进制无符号形式输出整数%u:以无符号十进制形式输出整数%c:以字符形式输出,只输出一个字符%s:输出字符串%f:以小数形式输出单,双精度数,隐含输出六位小数%e:以指数形式输出实数%g:选用%f或%e格式中输出宽度较短的一种格式,不输出无意义的0几种常见的格式符的修饰符:l:用于长整型整数,可加在格式符d,o,x,u前面m(代表一个正整数):数据最小宽度n(代表一个正整数):对实数,表示输出n位小数;对字符串,表示截取的字符个数—:输出的数字或字符在域内向左靠(1)d格式符。用来输出十进制整数。几种用法:①%d:按十进制整型数据的实际长度输出。②%md:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。例:printf(“%4d,%4d”,a,b);
若a=123,d=12345,则输出结果为123,12345③%ld:输出长整型数据。例:longa=13579;/*定义a为长整型变量*/printf(“%ld”,a);(2)o格式符。以八进制整数形式输出。输出的数值不带符号,符号位也一起作为八进制数的一部分输出。例:inta=-1;printf("%d,%o",a,a);-1在内存单元中的存放形式(以补码形式存放)如下:1111111111111111
输出为:-1,177777不会输出带负号的八进制整数。对长整数(long型)可以用“%lo”格式输出。还可以指定字段宽度,例:printf(“%8o“,a);
输出为:177777。(数字前有2个空格)(3)x格式符。以十六进制数形式输出整数。同样不会出现负的十六进制数。例:inta=-1;
printf(“%x,%o,%d”,a,a,a);输出结果为:ffff,177777,-1可以用“%lx”输出长整型数,也可以指定输出字段的宽度例:“%l2x”(4)u格式符,用来输出unsigned型数据.一个有符号整数(int型)也可以用%u格式输出;一unsigned型数据也可以用%d格式输出。unsigned型数据也可用%o或%x格式输出。(5)c格式符,用来输出一个字符。如:chard=′a′;
printf(″%c″,d);输出字符′a′.
一个整数,只要它的值在0-255范围内,可以用“%c”使之按字符形式输出,在输出前,系统会将该整数作为ASCII码转换成相应的字符;一个字符数据也可以用整数形式输出。运行结果:
a=-1,177777,ffff,65535
b=-2,177776,fffe,65534
c=a,97
i=a,97例3.7无符号数据的输出。
#include<stdio.h>
voidmain()
{unsignedinta=65535;intb=-2,i=97;char=‘a’;
printf(“a=%d,%o,%x,%u\n”,a,a,a,a);
printf(“b=%d,%o,%x,%u\n”,b,b,b,b);
printf(“c=%c,%d\n”,c,c);
printf(“i=%c,%d\n”,i,i);}(6)s格式符输出字符串.①%s。例如:
printf(″%s″,″CHINA″)输出字符串“CHINA”(不包括双引号)。②%ms,输出的字符串占m列,若串长大于m,则全部输出,若串长小于m,则左补空格。③%-ms,若串长小于m,字符串向左靠,右补空格。④%m.ns,输出占m列,只取字符串中左端n个字符,输出在m列的右侧,左补空格。⑤%-m.ns,n个字符输出在m列的左侧,右补空格,若n〉m,m自动取n值。运行结果:
CHINA,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年个人借款合同文本
- 农村住房交易合同模板
- 2024年创新工作合同:灵活性与规范化并存
- 房地产行业负债管理制度探讨
- 快递运输承揽合同模板
- 奶制品订单合同模板
- 2024年兼职销售代表长期合同
- 手拟租房合同模板
- 培训教室改造合同模板
- 2024年合同草拟与执行条例
- 20世纪时尚流行文化智慧树知到期末考试答案章节答案2024年浙江理工大学
- 国开(甘肃)2024年春《地域文化(专)》形考任务1-4终考答案
- (高清版)JTGT 3331-04-2023 多年冻土地区公路设计与施工技术规范
- 增值服务具体方案怎么写范文
- 企业评标专家推荐表
- 设备故障报修维修记录单
- 超声造影全面总结
- 质量风险抵押金管理办法
- 奥氏气体分析仪技术操作规程
- 科技文献阅读方法PPT优秀课件
- 风筝蝴蝶鸟头燕尾模型及证明过程.docx
评论
0/150
提交评论