广东警官学院《C语言程序设计》课件-第2章C语言入门_第1页
广东警官学院《C语言程序设计》课件-第2章C语言入门_第2页
广东警官学院《C语言程序设计》课件-第2章C语言入门_第3页
广东警官学院《C语言程序设计》课件-第2章C语言入门_第4页
广东警官学院《C语言程序设计》课件-第2章C语言入门_第5页
已阅读5页,还剩73页未读, 继续免费阅读

下载本文档

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

文档简介

第二章C语言入门《C语言程序设计》广东警官学院程序与程序设计语言——学习目标熟悉字符集;熟悉标识符及其分类;掌握标识符命名规则;熟悉常用关键字、预定义标识符;了解C语言的数据类型。程序与程序设计语言——主要内容字符集;标识符;标识符命名规则;关键字;预定义标识符;数据类型。字符集字符集:C语言中允许使用的字符集合。(1)英文字母(大、小写字母52个)(2)数字:0、1、2…9(3)特殊字符:+、-、*、/、%、>、…(4)转义字符:\a、\b、\n、\t、\ddd、\xhh…标识符及其分类标识符用于程序中的变量、符号常量、数组、函数、数据类型等操作对象的名字由字母、下划线和数字组成的字符序列,标识符分类1.保留字(关键字)具有固定名字和特定含义的标识符2.预定义标识符3.用户定义标识符用于对用户使用的变量、数组、函数等操作对象进行命名标识符命名规则(1)标识符有效字符:只能由字母、数字和下划线组成,且以字母或下划线开头。以下是合法的标识符:a、x1、sum、Average、_data2、student_3、MyName以下是不合法的标识符:$100、3DMax、Min(abc)、x=、M.D.John(2)标识符有效长度:TCV2.0标识符的有效长度为1~32个字符。随系统而异,但至少前8个字符有效。如果超长,则超长部分被舍弃。例如student11和student12的前8个字符相同,有的系统认为这两个变量,是一回事而不加区别标识符命名规则(3)C语言的关键字不能用作变量名。(4)标识符中大小写字母含义不同。C语言对英文字母的大小敏感,即同一字母的大小写,被认为是两个不同的字符。变量名total与变量名TOTAL、ToTaL、totAl等不是同一个变量。(5)标识符命名通常应选择能表示数据含义的英文单词(或缩写)作变量名,或汉语拼音字头作变量名。通过变量名就知道变量值的含义,做到“见名知意”。例如:name⇒xm⇒姓名

sex⇒xb⇒性别

age⇒nl⇒年龄

salary⇒gz⇒工资关键字数据类型:int、char、float、double、short、long、void、signed、unsigned、enum、struct、union、const、typedef、volatile存储类别:auto、static、register、extern语句命令字:break、case、continue、default、do、else、for、goto、if、return、switch、while运算符:sizeof预定义标识符预定义标识符也具有特定的含义printf、scanf、sin、getchar、include、defineintinclude=10;√intsin=8;√(不提倡这种用法!)C语言的数据类型短整型(shortint)长整型(longint)无符号整型(unsignedint)无符号短整型(unsignedshortint)无符号长整型(unsignedlongint)单精度型(float)双精度型(double)长双精度型(longdouble)字符型(char)无符号字符型(unsignedchar)字符型实型(浮点型)整型指针类型(*)数组([])枚举(enum)结构体(struct)共用体(union)构造类型空类型(void)基本类型数据类型常量高级语言程序设计基础(C语言)常量——学习目标理解常量的概念;掌握整型常量十进制、八进制、十六进制的表示方法;理解整型常的存储方式和表示范围;掌握长短整型常量的表示方法;掌握实型常量十进制形式、指数形式表示方法;掌握单双精度实型常量的表示方法;掌握字符常量表示方法;掌握字符串常量的表示方法;掌握符号常量定义方法。程序与程序设计语言——主要内容常量整型常量实型常量字符常量字符串常量符号常量常量常量:用来表示固定的数值或字符值。常量分类数值常量整型常量实型常量字符型常量字符常量字符串常量符号常量整型常量十进制整数:由数字(0-9)和正负号表示例如:123、-456、0等八进制整数:以0开头,后面一串由八进制数字(0-7)组成例如:0123即(123)8=(83)10012即(12)8=(10)10十六进制整数:以0x或0X开头,后面一串由十六进制数字(0-9,a-f,A-F)组成例如:-0x12即(-12)

16=(-18)100x2F即(2F)16=(47)10整型常量整型常量的类型:根据值大小默认类型。整型常量后面加l或L,则认为是longint型例如:123L、0L、432l、0x100l注意:十六进制常量中可以使用大写字母A~F,也可以使用小写字母a~f。八进制常量中不能出现数字8或9例如:018、0921非法整型常量整型常量在内存中的存放整型数据在内存中的存放,数值是以补码表示的。

一个正数的补码与原码相同;一个负数的补码求法:原码的二进制形式,取反求得反码,再加1,得到负数的补码。例如:-8的原码1000000000001000求反码1111111111110111补码1111111111111000整型常量整型常量的类型说明:方括号表示可选项int分配2Byte,long分配4Byte类型名称类型符bit取值范围整型(短整型)[signed]int[signed]short[int]16215~215-1(-32768~32767)无符号整型unsigned[int]160~216-1(0~65535)长整型[signed]long[int]32-231~231-1无符号长整型unsignedlong[int]320~232-1输出不同进制整型常量#include<stdio.h>main(){printf(“0x80----%d\n",0x80);printf(“0200----%d\n",0200);printf("128-----%d\n",128);printf("128-----%o\n",128);printf("128-----%x\n",128);}以数字0x或0开头不输出前缀数字0或0x

实型常量实型常量(实数,又称浮点数)表示形式:(1)十进制形式例如:3.14、9.8(2)指数形式

<尾数>E(e)<整型指数>

例如:3.02E+5

34.42367750E+7实型常量常量输出#include"stdio.h"main(){ printf("%f\n",314.15926); printf("%e\n",314.15926); printf("%g",314.15926);}字符常量字符常量的定义:用一对单引号括起来的单个字符称为字符常量。例如:‘A’、‘7’、‘+’等。转义字符:C语言还允许使用一种特殊形式的字符常量,就是以反斜杠“\”开头的转义字符。

\n\b\r\t\f\0\’\”\v\ddd\xhh注意:如果反斜杠或单引号本身作为字符常量,必须使用转义字符:\\、\’字符常量转义字符的功能,以“\”开头的字符在printf函数中控制输出格式:\n 换行\t 横向跳格(下一个输出区<8列>)\v 竖向跳格\b 退格\r 回车\f 走纸换页\\ 反斜杠字符\\’ 单引号’\ddd 1到3位8进制数所代表的字符。如:‘\101’=‘A’\xhh 1到2位16进制数所代表的字符。字符常量例用转义字符输出字符和不可打印字符main()

{printf(“ABC\tabc\txyz\n”);printf(“abc\bxyz\n”);}

程序运行结果如下:ABCabcxyzabxyz字符串常量字符串常量:是用一对双引号括起来的若干字符序列。字符串长度:字符串中字符的个数称为。空串:长度为0的字符串(即一个字符都没有的字符串),表示为“”(一对紧连的双引号)。例如字符串常量:“Howdoyoudo.”长度为14(空格也是一个字符)

“Goodmorning.”长度为13如果反斜杠和双引号作为字符串中的有效字符,则必须使用转义字符。例①C:\msdos\v6.22→"C:\\msdos\\v6.22"

②Isay:"Goodbye!"→"Isay:\"Goodbye!\""字符串常量字符串常量:用双引号括起的一个字符序列例如:"ABC"、"123"、"a"、"\n\t""\nGoodmorning"字符串常量的长度:所包含的字符个数字符串常量的存储方式:以字符的ASCII码形式存储,且编译器会自动地在字符串末尾添加结束标志符’\0’。所占存储单元数:串长度+1例如:hello,world!,占用13个字节。hello,world!\0字符串常量输出字符串常量main(){printf("%s\n","Isay:\"Goodbye!\"");}运行结果:

Isay:"Goodbye!"字符串常量字符常量与字符串常量的区别例:字符常量'A'与字符串常量"A"的区别:(1)定界符不同:字符常量使用单引号'A',而字符串常量使用双引号""(2)长度不同:字符常量的长度固定为1,而字符串常量的长度,可以是0,也可以是某个整数;(3)存储要求不同:字符常量存储的是字符的ASCII码值,而字符串常量,除了要存储有效的字符外,还要存储一个结束标志'\0'。符号常量符号常量:就是用一个标识符代表某个常量。用#define命令行定义常量。说明:符号常量必须先定义后才能用它表示一个数值。符号常量的值在其作用域内不能改变,也不能再被赋值。习惯:符号常量名用大写,变量用小写。好处:含义清楚;“一改全改”符号常量例符号常量的使用。

#definePRICE30main(){intnum,total;num=10;total=num*PRICE;printf("total=%d",total);}格式控制字符串中的普通字符,照原样输出

运行结果:

total=300变量高级语言程序设计基础(C语言)变量——学习目标理解变量的含义;掌握变量的命名规则;理解变量的地址与值;熟悉变量的基本数据类型;掌握变量的类型定义和使用;掌握变量的初始化。变量——主要内容变量的概念变量的基本数据类型变量的类型定义和使用变量的初始化变量的概念变量:在程序运行过程中其值会发生变化的量称为变量。变量命名变量名字用标识符表示,表示变量的标识符称作变量名。变量命名尽应可能做到见名知义。例如:选用name、weigh、count、month、time等标识符,给具有相应含义的变量命名。这样,可提高程序的可读性。应当注意变量名不要和C语言的保留字同名,也要尽量避免与库函数重名。变量的概念变量的地址和值:变量名是一个与某一存储单元相联系的符号地址,而变量值是指存放在该存储单元中的数据。变量本质上代表存储器单元。从变量中存取数据,实际上是通过变量名找到相应单元的地址,再对该地址单元进行写入或读出数据操作。从图1可以看出,变量month和date分别代表内存单元ffdc和ffdb的名字,存储单元中的内容是它们的值。因此,month的值为6,date的值为18。这里,变量month的值为6体现了它的值属性,地址为ffdc反映了它的地址属性。变量的概念变量类型:每一个变量都具有类型,类型是变量的基本属性。变量的类型属性包含有变量的存储类型和变量值的数据类型双重含义。变量的存储类型用于指定变量的存储区域、作用域,它体现了变量的物理特性,使C语言具有低级语言的某些功能。数据类型是C语言中允许使用的数据的种类(如整型数据、实型数据、字符型数据等)。数据类型决定了变量占有的存储容量、允许参与的运算、取值范围及精度。变量的基本数据类型类型类型标识符占用字节数取值范围有效位数整型[signed]short[int]有符号短整型2-32768~32767unsignedshort[int]无符号短整型20~65535[signed]int/signed[int]基本整型2-32768~32767unsigned[int]无符号基本整型20~65535[signed]long[int]有符号长整型4-2147483648~2147483647unsignedlong[int]无符号长整型40~4294967295字符型[signed]char有符号字符型1-128~127unsignedchar无符号字符型10~255实型float单精度浮点型4-3.4E-38~3.4E+386~7double双精度浮点型8-1.7E-308~1.7E+30815~16longdouble长双精度浮点型10-3.4E-4932~1.1E+493218~19变量的类型定义和使用在C语言中,规定程序里用到的所有变量必须定义,以便C编译系统确定变量的名字、数据类型及其存储类型。定义变量的一般形式如下:

存储类型数据类型变量名表;这一形式称作变量说明语句或称为变量定义语句。其中:“存储类型”由存储类型定义符(相关保留字)表示,存储类型用于指定变量的存储区域和作用域;“数据类型”由类型定义符表示,数据类型用于指定每一变量所需的存储容量和数据的取值范围及精度;“变量名表”由一个或多个变量名组成,如果有多个变量名,相互之间用逗号“,”分隔。最后用分号“;”作结束符。变量的类型定义和使用整型变量:整型变量只能存放整型数据。整型变量要用整型定义符说明,有6种整型定义符例如:{…longintl,m,n;/*定义l、m、n为长整型变量*/intn1,n2;/*定义n1、n2为基本整型变量*/unsignedinta,b;/*定义a、b为无符号基本整型变量*/…}变量的类型定义和使用实型变量:不仅能存放实型数据,也可以存放整型数据。实型变量要用实型定义符说明,TurboC2.0中有3种实型变型定义符:float(单精度)型、double(双精度)型、longdouble(长双精度)型。例如:{…floatx1,x2,x3;

/*定义x1、x2、x3为单精度实型变量*/doublex,y,z;

/*定义x、y、z为双精度实型变量*/

…}变量的类型定义和使用例1实型数据的舍入误差示例。/*源代码文件名:AL2_5.c*/#include<stdio.h>voidmain(){floata,b,c;a=33333.33333;b=123456.789E5;c=b+20;printf("a=%f,b=%f,c=%f\n",a,b,c);}程序运行情况如下:a=33333.332031,b=12345678848.000000,c=12345678848.000000变量的类型定义和使用字符型变量:用来存放一个字符常量。也可以存放0~255的整数。字符型变量要用字符型定义符说明。字符型定义符用来确立字符型变量名、确定字符型变量的取值范围和分配存储单元的字节数。例如:{…charcl,c2,c3;/*定义3个字符型变量*/c1=′A′;/*为字符型变量c1赋值字符常量′A′*/c2=′b′;/*为字符型变量c2赋值字符常量′b′*/c3=′1′;/*为字符型变量c3赋值字符常量′1′*/

…

}变量的类型定义和使用例2用字符变量与整型变量输出字母“a”和“b”的字符和ASCII码,并进行不同类型的混合运算。#include<stdio.h>voidmain(){chara,b;/*定义a、b为字符变量*/intn1,n2;/*定义n1、n2为整型变量*/n1='a';n2='b';/*给整型变量赋以字符常量*/a=97;b=98;/*给字符型变量赋以整型常量*/printf("%c,%d,%c,%d\n",n1,n1,n2,n2);/*分别以字符形式和整数形式输出整型变量n1、n2的值*/printf("%c,%d,%c,%d\n",a,a,b,b);/*分别以字符形式和整数形式输出字符变量a、b的值*/printf("%d,%c",a+n1,a+n1);/*字符变量a与整型变量n1相加*/}变量的类型定义和使用3把小写字母转换成大写字母,并分别以整型和字符型输出#include<stdio.h>voidmain(){charc1,c2;c1='p';c2='q';printf("%c=%d,%c=%d\n",c1,c1,c2,c2);/*输出初值:字符和ASCII码*/c1=c1-3;c2=c2-32;/*通过ASCII码运算实现字母从小写到大写的转换*/printf("%c=%d,%c=%d\n",c1,c1,c2,c2);/*输出结果:字符和SASCII码*/}变量的初始化变量的初始化是指对变量设置初值。变量的初始化可以与变量定义同时实现,也可以先定义变量,然后用赋值语句实现。通常使用整型常量、实型常量和字符常量为变量设置初值。1)定义变量的同时设置初值。intm=5,n=5,l=5;charc1=′a′,c2=65;intc=′a′;doublex=8.1constfloatalpha=0.613,beta=O.825;变量的初始化2)先定义变量后设置初值。例如:(1)intm=5,n=5,l=5;(2)intm,n;intl=m=n=5;(3)intm,n,l=5;(4)intm,n,l=5;(5)intk=m=n=l;格式化输出函数高级语言程序设计基础(C语言)格式化输出函数——学习目标熟悉预处理命令include使用方法;掌握printf函数的基本格式;掌握printf函数格式字符的使用;掌握附加格式说明字符的使用;熟悉printf函数使用的其它说明。格式化输出函数——主要内容格式输出函数的头文件;printf函数的基本格式;printf函数格式字符;附加格式说明字符;printf函数使用的其它说明。格式输出函数的头文件格式输出函数是C语言编译系统提供的库函数,它们的原型在头文件stdio.h中,使用它们时应在程序头部用预处理命令include将stdio.h包含进来,如:#include<stdio.h>或 #include“stdio.h”printf函数的基本格式printf函数是格式输出函数。该函数的功能是将数据按指定的格式输出到标准输出设备上,利用该函数可以灵活地输出多种类型的数据。调用printf函数的基本格式为:

printf(格式控制字符串,输出参数表);其中:“格式控制字符串”是用双引括起来的用于表示输出格式的字符串,它包括两部分:一部分是输出格式控制符,另一部分为普通字符和转义字符。printf函数的基本格式(1)输出格式控制符:C语言规定输出格式控制符必须以“%”号开始,后面跟格式字符,格式字符用于限定被输出数据的格式。例如,输出int型数据用%d,输出字符型数据用%c,输出字符串用%s,输出float型和double型数据用%f等。(2)普通字符和转义字符在输出时按它们的原样输出。“输出参数表”是要输出的若干数据项,数据项可以是常量、变量或表达式,各数据项之间用逗号“,”隔开。数据项的个数、类型、顺序应与格式控制符对应一致。格式输出函数例1用格式输出函数printf输出数据。#include<stdio.h>voidmain(){intyear=2009; doublereal=147.258; printf("Integernumber=%d\nRealnumber=%f\n",year,real); }程序运行情况如下:Integernumber=2009Realnumber=147.258000printf函数格式字符格式字符说

明d,i以带符号的十进制形式输出整数(正数不输出符号)o以八进制无符号形式输出整数(不输出前导符0)x,X以十六进制无符号形式输出整数(不输出前导符0x),用x则输出十六进制数的a~f时以小写形式输出。用X时,则以大写字母输出

u以无符号十进制形式输出整数c以字符形式输出,只输出一个字符s输出字符串f以小数形式输出单、双精度数,隐含输出6位小数e,E以指数形式输出实数,用e时指数以“e”表示(如1.2e+02),用E时指数以“E”表示(如1.2E+02)g,G选用%f或%e格式中输出宽度较短的一种格式,不输出无意义的0。用G时,若以指数形式输出,则指数以大写表示附加格式说明字符字

符

说

明l用于长整型整数,可加在格式符d、o、x、u前面m(代表一个正整数)数据最小宽度n(代表一个正整数)对实数,表示输出n位小数;对字符串,表示截取的字符个数—输出的数字或字符在域内向左靠printf函数的其它说明:(1)除了X、E、G外,其他格式字符必须用小写字母,如%d不能写成%D。(2)可以在printf函数中的格式控制字符串内包含转义字符(参见表2-3)等。(3)小写字母d、o、x、u、c、s、f、e、g等9个字符,如果用在“%”后面就作为格式符号。则一个“格式说明”以“%”开头,并以上述9个格式字符之一为结束。“格式说明”之间可以插入其它字符。例如:printf("x=%fd=%dsum=%e\n",x,d,sum);该printf语句中,第一个格式说明为“%f”,而不包括其后的d;第二个格式说明为“%d”,而不包括其后的s;第三个格式说明为“%e”。“\n”是转义字符。其他的字符为原样输出的普通字符。printf函数的其它说明(4)若想输出字符“%”,则应该在格式控制字符串中使用连续两个“%”(或者用“\%”)表示,如执行语句:printf("%f%%",2/3.0);/*或者用printf("%f\%",2/3.0);*/将会输出:0.666667%格式化输入函数高级语言程序设计基础(C语言)格式化输入函数——学习目标熟悉预处理命令include使用方法;掌握scanf函数的基本格式;掌握scanf函数格式字符的使用;掌握scanf附加格式说明字符的使用;熟悉scanf函数使用的其它说明。格式化输出函数——主要内容格式输入函数的头文件;scanf函数格式;scanf格式控制字符;scanf的附加格式说明字符;格式输入函数使用说明。格式输入函数的头文件格式输入函数是C语言编译系统提供的库函数,它们的原型在头文件stdio.h中,使用它们时应在程序头部用预处理命令include将stdio.h包含进来,如:#include<stdio.h>或 #include“stdio.h”格式输入函数——scanf函数格式scanf函数是格式输入函数。该函数的功能是按指定的格式从标准输入设备上接收输入的数据,利用该函数可以灵活地输入多种类型数据。调用scanf函数的基本格式为:

scanf(格式控制字符串,地址列表);其中:“格式控制字符串”是用双引括起来的用于表示输入格式的字符串,它由格式控制符和普通字符两部分组成。格式控制字符串(1)格式控制符:以%号开始,后面跟格式字符,用于以指定的格式输入数据。例如,输入int型数据用%d,输入char型数据用%c,输入float型数据用%f,输入double型数据用%lf。(注:%lf中的l不是数字1,是英文字母L的小写)。(2)普通字符:在输入数据时要求按原样输入。输入地址列表“地址列表”是由若干个输入数据项的内存地址组成。这些地址,通常是变量的地址,各地址之间用逗号“,”分隔。格式控制字符串中的格式控制符的数量和类型应与输入数据项从左到右对应一致。scanf格式控制字符格式字符说

明d,i用来输入有符号的十进制整数u用来输入无符号的十进制整数o用来输入无符号的八进制整数x,X用来输入无符号的十六进制整数(字母大小写作用相同)c用来输入单个字符s用来输入字符串,将字符串送到一个字符数组中,在输入时以非空白字符开始,以第一个空白字符结束。字符串以串结束标志’\O’作为其最后一个字符f用来输入实数,可以用小数形式或指数形式输入e,E,g,G与f作用相同,e与f、g可以互相替换(字母大小写作用相同)scanf的附加格式说明字符

字

符

说

明l用于输入长整型数据(可用%ld,%lo,%lx,%lu)以及double型数据(用%lf或%le)h用于输入短整型数据(可用%hd,%ho,%hx)

域宽

指定输入数据所占宽度(即列数),域宽应用正整数表示*表示本输入项在读入后不赋给相应的变量格式输入函数使用说明(1)对unsigned型变量所需的数据,可以用%U、%d或%o、%X格式输入。(2)可以指定输入数据所占的列数,系统自动按它截取所需数据。例如:

scanf("%4d%4d",&n,&k);从键盘输入:123456789↙系统自动将1234赋给变量n,5678赋给变量k。此法也适用于字符类型数据。例如:scanf("%4c",&ch);如果从键盘连续输入4个字符"qwer",由于字符变量ch只能容纳一个字符,系统就把第一个字符′q′赋给字符变量ch。格式输入函数使用说明(3)若在%后用一个附加说明符“*”,则表示要跳过它指定的列数。例如:scanf("%3d□□%*4d□□%2d",&n,&k);

如果从键盘输入如下一行内容:123□□4567□□89↙系统会将123赋给整型变量n,%*4d表示读入4位整数,但不赋给任何变量。然后再读入2位整数89赋给整型变量k。即第2个数据“4567”被跳过。在某些应用中,要利用现成的一批数据而又不需要其中某些数据时,可利用此方法“跳过”那些不需要的数据。格式输入函数使用说明(4)用scanf函数接收数据时不能规定精度。例如:scanf("%6.

温馨提示

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

最新文档

评论

0/150

提交评论