C语言程序设计:第3章 最简单的C程序设计_第1页
C语言程序设计:第3章 最简单的C程序设计_第2页
C语言程序设计:第3章 最简单的C程序设计_第3页
C语言程序设计:第3章 最简单的C程序设计_第4页
C语言程序设计:第3章 最简单的C程序设计_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章

最简单的C程序设计关键知识点:顺序结构程序数据及运算符C语言的数据输入输出C语言基本要素C语言中大小写字母代表不同含义注释方式://:注释一行代码

//a=b+c;

a=fun(5);

//计算5的阶乘/**/:注释一段代码,可以是一行或多行,也可以是一行中的一部分。

/*a=b+c;*/a=b+c;/*计算求和*/标识符:利用符号表示数据分类:关键字:系统中已有明确含义,不允许改变(例如:if、else等)预定义标识符:系统中已有含义,但可以改变(例如:define、scanf等),但一般不去改变!!!用户标识符:用户根据自己的需要定义的符号(包括符号常量、变量)先定义,然后才能使用C语言基本要素用户标识符的基本要求:只能由数字(0~9)、26个大小写字母、下划线(_)构成数字不能作为首字符C语言中区分大小写字母(即:A与a是两个不同的符号)例如:areaPI_inia_arrays1234P101p(合法)456Pcade-yw.wa&b(不合法)C语言基本要素3.1顺序程序设计举例

例3.1有人用温度计测量出用华氏法表示的温度(如F,今要求把它转换为以摄氏法表示的温度(如C)。解题思路:找到二者间的转换公式f代表华氏温度,c代表摄氏温度算法:输入f的值输出c的值

例3.1有人用温度计测量出用华氏法表示的温度(如F,今要求把它转换为以摄氏法表示的温度(如C)。N-S图3.1顺序程序设计举例#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.1顺序程序设计举例

例3.2计算存款利息。有1000元,想存一年。有三种方法可选:(1)活期,年利率为r1(2)一年期定期,年利率为r2(3)存两次半年定期,年利率为r3

请分别计算出一年后按三种方法所得到的本息和。3.1顺序程序设计举例解题思路:确定计算本息和的公式。从数学知识可知:若存款额为p0,则:活期存款一年后本息和为:

p1=p0(1+r1)一年期定期存款,一年后本息和为:

p2=p0(1+r2)两次半年定期存款,一年后本息和为:

3.1顺序程序设计举例算法:输入p0,r1,r2,r3的值计算p1=p0(1+r1)计算p2=p0(1+r2)计算p3=p0(1+)(1+)输出p1,p2,p33.1顺序程序设计举例#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;}定义变量同时赋予初值3.1顺序程序设计举例3.2数据的表现形式及其运算3.2.1常量和变量3.2.2数据类型3.2.3整型数据3.2.4字符型数据3.2.5浮点型数据3.2.6怎样确定常量的类型3.2.7运算符和表达式3.2数据的表现形式及其运算数据常量变量数据类型整型实型字符型int,short,longunsignedintunsigndshortunsigedlongfloatdoublechar数制的概念十进制特点:拥有的数字:0~9每位数的权值是10的整数倍,如:123=1*100+2*10+3*1(10的0次方)二进制特点:拥有的数字:0、1每位数的权值是2的整数倍,如:101=1*4+0*2+1*1(2的0次方)计算机中所有数据(无论是字符还是数值)都是用二进制数表示的!数制的概念八进制特点:拥有的数字:0~7以数值前面有0来表示一个八进制数每位数的权值是8的整数倍,如:247=2*(8的平方)+4*8+7*1(8的0次方)十六进制特点:拥有的数字:0~9、A~Fora~f以数值前面有0x来表示一个十六进制数每位数的权值是16的整数倍,如:23b=2*(16的2次方)+3*(16的1次方)+11*(16的0次方)数制的转换十进制=>二进制的转换整数转换:辗转相除法/除2取余法例如:将十进制数104=>二进制表示1042十进制数余数52020260213262103212110二进制数D0D1D2D3D4D5D611010001101000B=1*(2^6)+1*(2^5)+1*(2^3)=64+32+8=104数制的转换十进制=>二进制的转换小数转换:乘2取整法,结束标准是小数部分为0或者已经达到数据精度要求。例如:0.1254=>二进制二进制数:0.001=1*(2^(-3))=0.1250.1254×2

0.25080×2

0.50160×2

1.00321×2

0.00640数制的转换二进制<=>十六进制的转换0000->00001->1......1001->91010->10(A).......1111->15(F)注意:1111=1*(2^3)+1*(2^2)+1*(2^1)+1*(2^0)=8+4+2+110010111=1001,0111=0x97数制的转换二进制<=>八进制的转换000->0001->1......111->7注意:111=1*(2^2)+1*(2^1)+1*(2^0)=4+2+1=710010111=10,010,111=02273.2.1常量和变量1.常量:在程序运行过程中,其值不能被改变的量整型常量:如1000,12345,0,-345实型常量十进制小数形式:如0.34-56.790.0指数形式:如12.34e3(代表12.34103)字符常量:如’?’转义字符:如’\n’字符串常量:如”boy”符号常量:#definePI3.1416说明:(1)一般情况下符号常量使用大写字母表示(2)符号常量在程序运行时,只能读取,不能修改2.变量:在程序运行期间,变量的值是可以改变的变量必须先定义,并且初始化后,再使用定义变量时必须指定该变量的名字和类型变量名和变量值是两个不同的概念变量名实际上是以一个名字代表的一个存储地址从变量中取值,实际上是通过变量名找到相应的内存地址,从该存储单元中读取数据3.2.1常量和变量3.常变量:constinta=3;4.标识符:一个对象的名字C语言规定标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线合法的标识符:如sum,average,_total,Class,day,BASIC,li_ling不合法的标识符:M.D.John,¥123,#33,3D64,a>b大小写字母是不同的字符3.2.1常量和变量3.2.2数据类型所谓类型,就是对数据分配存储单元的安排,包括存储单元的长度(占多少字节)以及数据的存储形式不同的类型分配不同的长度和存储形式3.2.2数据类型C语言允许使用的数据类型:基本类型整型类型基本整型短整型长整型双长整型字符型布尔型浮点类型单精度浮点型双精度浮点型长双精度浮点型3.2.2数据类型C语言允许使用的数据类型:基本类型枚举类型空类型派生类型指针类型数组类型结构体类型共用体类型函数类型算术类型3.2.3整型数据1.整型数据的分类最基本的整型类型基本整型(int型):占2个或4个字节短整型(shortint):VC++6.0中占2个字节长整型(longint):VC++6.0中占4个字节双长整型(longlongint):C99新增的3.2.3整型数据1.整型数据的分类2.整型变量的符号属性整型变量的值的范围包括负数到正数可以将变量定义为“无符号”类型扩充的整形类型:3.2.3整型数据扩充的整型类型:有符号基本整型[signed]int;无符号基本整型unsignedint;有符号短整型[signed]short[int];无符号短整型unsignedshort[int];有符号长整型[signed]long[int];无符号长整型unsignedlong[int]有符号双长整型[signed]longlong[int];无符号双长整型unsignedlonglong[int]原码反码补码正数的原码、反码和补码相同1的补码0000000000000001……32767的补码0111111111111111(215-1)负数-1原码1000000000000001反码1111111111111110原码取反补码1111111111111111反码+1-32767:1000000000000001-32768:1000000000000000原码反码补码32767补码0111111111111111-32767原码1111111111111111反码1000000000000000原码取反补码1000000000000001反码+1-32768=-32767-1补码1000000000000000-32768-10132767

原码反码补码327670111111111111111……1000000000000000100000000000000000-11111111111111111-21111111111111110……

-327671000000000000001-32768100000000000000032768=32767+11000000000000000=-32768-32769=-32768-10111111111111111=327673.2.4字符型数据字符是按其代码(整数)形式存储的C99把字符型数据作为整数类型的一种字符型数据在使用上有自己的特点3.2.4字符型数据1.字符与字符代码大多数系统采用ASCII字符集字母:A~Z,a~z数字:0~9专门符号:29个:!”#&‘()*等空格符:空格、水平制表符、换行等不能显示的字符:空(null)字符(以‘\0’表示)、警告(以‘\a’表示)、退格(以‘\b’表示)、回车(以‘\r’表示)等3.2.4字符型数据字符’1’和整数1是不同的概念:字符’1’只是代表一个形状为’1’的符号,在需要时按原样输出,在内存中以ASCII码形式存储,占1个字节整数1是以整数存储方式(二进制补码方式)存储的,占2个或4个字节0011000100000000000000013.2.4字符型数据2.字符变量用类型符char定义字符变量charc=’?’;

系统把“?”的ASCII代码63赋给变量cprintf(”%d%c\n”,c,c);输出结果是:63?字符变量Charc1,c2;c1='2';c2='A';或c2=65;int

i;i=65;或i='A';整型变量和字符变量的定义和赋值可以互换【ASCII码范围】字符的数值特征字符可以当整数用,其值就是其ASCII码'A'+1=?字符运算大小写英文字母转换'b'-'a'='B'-'A'……'z'-'a'='Z'-'A''m''M'数字字符和数字

9-0='9'-'0''9'=9+'0''8'8'a'-'A''A'-'a''0''m'–('a'-'A‘)='M''M'+(‘a'-‘A‘)='m''8'-'0'=88+'0'='8'3.2.5浮点型数据浮点型数据是用来表示具有小数点的实数float型(单精度浮点型)编译系统为float型变量分配4个字节数值以规范化的二进制数指数形式存放3.2.5浮点型数据浮点型数据是用来表示具有小数点的实数float型(单精度浮点型)double型(双精度浮点型)编译系统为double型变量分配8个字节15位有效数字longdouble(长双精度)型3.2.6怎样确定常量的类型字符常量:由单撇号括起来的单个字符或转义字符整型常量:不带小数点的数值系统根据数值的大小确定int型还是long型等浮点型常量:凡以小数形式或指数形式出现的实数C编译系统把浮点型常量都按双精度处理分配8个字节3.2.7运算符和表达式1.基本的算术运算符:+:正号运算符(单目运算符)-:负号运算符(单目运算符)*:乘法运算符/:除法运算符%:求余运算符+:加法运算符-:减法运算符3.2.7运算符和表达式两个整数相除的结果为整数如5/3的结果值为1,舍去小数部分如果除数或被除数中有一个为负值,舍入方向不固定。例如,-5/3,有的系统中得到的结果为-1,在有的系统中则得到结果为-2VC++采取“向零取整”的方法

如5/3=1,-5/3=-1,取整后向零靠拢%运算符要求参加运算的运算对象(即操作数)为整数,结果也是整数。如8%3,结果为23.2.7运算符和表达式2.自增、自减运算符:作用是使变量的值加1或减1++i,--i:在使用i之前,先使i的值加(减)1i++,i--:在使用i之后,使i的值加(减)13.2.7运算符和表达式3.算术表达式和运算符的优先级与结合性:用算术运算符和括号将运算对象(也称操作数)连接起来的、符合C语法规则的式子,称为C算术表达式运算对象包括常量、变量、函数等C语言规定了运算符的优先级和结合性3.2.7运算符和表达式4.不同类型数据间的混合运算:+、-、*、/运算的两个数中有一个数为float或double型,结果是double型。系统将float型数据都先转换为double型,然后进行运算(2)如果int型与float或double型数据进行运算,先把int型和float型数据转换为double型,然后进行运算,结果是double型(3)字符型数据与整型数据进行运算,就是把字符的ASCII代码与整型数据进行运算3.2.7运算符和表达式

例3.3给定一个大写字母,要求用小写字母输出。解题思路:关键是找到大、小写字母间的内在联系同一个字母,用小写表示的字符的ASCII代码比用大写表示的字符的ASCII代码大323.2.7运算符和表达式#include<stdio.h>intmain(){charc1,c2;c1=’A’;c2=c1+32;printf("%c\n",c2);printf(”%d\n”,c2);return0;}将字符‘A’的ASCII代码65放到c1中将65+32的结果放到c2中用字符形式输出用十进制形式输出3.2.7运算符和表达式5.强制类型转换运算符强制类型转换运算符的一般形式为

(类型名)(表达式)(double)a(将a转换成double类型)(int)(x+y)(将x+y的值转换成int型)(float)(5%3)(将5%3的值转换成float型)有两种类型转换系统自动进行的类型转换强制类型转换3.2.7运算符和表达式6.C运算符(1)算术运算符

(+-*/%++--)(2)关系运算符

(><==>=<=!=)(3)逻辑运算符

(!&&||)(4)位运算符

(<<>>~|∧&)(5)赋值运算符

(=及其扩展赋值运算符)(6)条件运算符

(?:)3.2.7运算符和表达式6.C运算符(7)逗号运算符

(,)(8)指针运算符

(*和&)(9)求字节数运算符

(sizeof)(10)强制类型转换运算符

((类型))(11)成员运算符

(.->)(12)下标运算符

([

])(13)其他

(如函数调用运算符())C语句概述C程序源程序文件n源程序文件2数据声明函数1函数体执行语句数据声明函数首部函数n预处理命令源程序文件15类控制语句函数调用语句表达式语句空语句复合语句C语句:C语言的所有语句必须以分号;结束数据输出功能:用于在标准输出设备上输出结果一般格式:printf(“控制参数”,输出参数);

输出参数:以逗号间隔,列出要输出的常量、变量或表达式控制参数:提示信息串:在屏幕上原样输出的提示信息转义字符:输出一些控制行为的,例如:回车换行等格式转换控制符:%开头+格式控制信息+格式字符数据输出完整的格式转换控制:完整形式:(选项是可选的)%-0m.n l/h格式字符起始标记左对齐否零填充否域宽精度长度修正输出类型d:十进制有符号整型o:八进制整型x:十六进制整型u:无符号整型c:字符型s:字符串f:以小数形式输出实型e:以指数形式输出实型g:选择f和e格式中较短的形式输出

实型数据输出#include<stdio.h>intmain(){inta=12,b=1234567;longx=789456;doublec=23.42135;floatd=(float)23.4;printf("%05d\n",a);printf("%-5d\n",a);printf("%5d\n",b);printf("%10ld\n",x);printf("%010.4f\n",c);printf("%-10.4f\n",c);printf("%8.2f\n",d);printf("%e\n",c);printf("%015.3e\n",c);return0;}数据输入功能:用于在标准输入设备上接收用户输入的信息一般形式:scanf(“格式控制参数”,地址列表);地址列表:以逗号分隔的若干内存地址&:求变量的内存地址

例如:intx; &x——表示x分配的内存空间的起始地址格式控制参数:格式说明项:说明输入的内容的格式、类型信息分隔符号:说明各输入信息间以什么符号进行分隔(提示输入时,应该如何输入)数据输入scanf使用的注意点输入中指定的是地址列表,而不是普通变量输入中不能指定精度、转义字符(不能与输出混淆)类型必须匹配例如:floatx;doubley;

scanf(“%f,%lf”,&x,&y);指定的分隔符号必须原样从键盘上输入例如:scanf(“a=%f,b=%d”,&a,&b);输入必须为:a=6.3,b=34数据输入scanf使用的注意点(续)分隔符号的说明scanf中不指定,则采用默认分隔(Enter、Space和Tab键)利用域宽进行分隔在scanf中指定的分隔符特别注意输入形式为:数值+字符;或字符+字符有指定分隔符,输入必须使用无指定分隔符,输入不能采用默认分隔符用“%c”输入字符时,空格字符和“转义字符”都是作为有效字符输入。例:整型数的输入输出#include<stdio.h>voidmain(){printf("%d,%o,%x\n",10,10,10);printf("%d,%d,%d\n",10,010,0x10);printf("%d,%x\n",012,012);}

运行结果为:10,12,a10,8,1610,a例:整型数的输入输出#include<stdio.h>voidmain(){inta,b;

scanf("%o

%d",&a,&b);printf("%d%5d\n",a,b);printf("%x,%d\n",a,b);}

输入:1717运行结果为:1517f,17例:实型数的输入输出#include<stdio.h>voidmain() {floatf=123.45;doubled=3.1415926;printf("%f,%e\n",f,f);printf("%f,%e\n",d,d);printf("%5.3f,%5.2f,%.2f\n",d,d,d);}

运行结果为:123.450000,1.23450e+023.141593,3.14159e+003.142,3.14,3.14例:整型数的输入输出假定float的精度为7位,double的精度为16位#include<

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论