版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序设计技术电子邮件:课程介绍课时: 理论40学时 实验32学时考试: 笔试70% 实验25%(5个实验) 出勤5%课程介绍为什么要学习《程序设计技术》?
计算机的应用已经渗透到各行各业,要发挥计算机的强大功能,离不开程序设计技术。怎样才能学好《程序设计技术》? 勤动手,多上机。第一章C语言数据描述和C程序设计初步C程序的基本结构C语言的基本数据类型基本运算符和表达式不同类型数据混合运算及数据转换C程序设计初步1.1.1C源程序的组成成分
#include<stdio.h>/*头文件声明*函数头*/
voidmain()/*定义主函数且无返回值*/{floatave,x,y,z;/*定义变量*/scanf(“%f,%f,%f”,&x,&y,&z);/*调用scanf函数接受数据*/ave=(x+y+z)/3;/*计算平均值*/printf(“%f”,ave);/*调用printf函数输出结果*/}说明:1.程序由预处理命令和至少一个函数组成,但必须而且只有一个主函数,函数名必须是main。2.函数由函数头和函数体组成。函数体总是从花括号“{”开始。以反花括号“}”结束。3函数体由语句组成。每一个分号“;”就代表一条语句的结束。4以/*开头到*/结束的部分叫注释行。即注解。不是语句,可以在程序中的任何位置,结尾不要分号“;”,不引起计算机任何动作。5语句由C语言规定的符号组成,结尾一定是分号“;”不同的语句引起不同的计算机动作,是计算机执行程序的最小单位。6当程序由多个函数组成时,除主函数main外,其他的函数叫子函数。例1-1C语言源程序的组成成分和基本结构
1.1.1C源程序的组成成分
1.1.2C语言的基本元素
1.C语言的字符集
⑴小写英文字母 abc……z⑵大写英文字母 ABC……Z⑶数字 0123……9⑷特殊字符 +=-_()*&%$!|<>.,;:“‘/?{}~[]^⑸不可印出字符 空格 、换行、制表符等2.标识符
标识符是给程序中处理的数据对象(如变量、常量、函数、数据类型等)取的名字
.1.1.2C语言的基本元素标识符取名规则⑴组成标识符的字符为字母、数字和下划线⑵标识符中第一个字符必须是字母或下划线
⑶多数C编译系统在构成标识符时都要区分字母的大小写,即abc和Abc是不相同的标识符⑷构成标识符的字符个数(标识符长度)与所使用的环境相关保留字操作系统或编译系统或其他系统已经用了的名字例如doubleelseenumexternfloatfor goto if _Imaginary* inline*int long register restrict*
用户标识符
用户自己取的名字1.1.2C语言的基本元素程序员(用户)在程序中自定义标识符时,除了避免使用保留字和必须遵守标识符的命名规则外,还需要注意以下两个方面:一是要将标识符取得既有意义,又便于阅读;二是要注意避免含义上或书写时引起混淆。例如下面是一些合法用户自定义标识符的例子:a b1 _buf 下面是不合法的用户自定义标识符例子及错误原因:123abc /*不能以数字开头*/float /*与系统保留字同名*/up.to /*标识符中出现了非法字符“.”*/zhangsan /*标识符中间出现了非法字符空格*/
1.1.2C语言的基本元素4.C程序书写的基本要点
⑴C程序习惯上使用小写英文字母。为了清晰起见,在C程序中往往使用大写英文母来表示宏定义或其它具有特殊意义的标识符。⑵C程序中不强调程序行的概念。一行中可以有多条语句,一个语句也可以写在多行上,但语句与语句之间要用分号(;)分隔。⑶C程序为了增强程序的可读性,可以使用适量的空格、空行和适当的行间缩进结构。第一章C语言数据描述和C程序设计初步C程序的基本结构C语言的基本数据类型基本运算符和表达式不同类型数据混合运算及数据转换C程序设计初步1.2C语言的基本数据类型
数据和数据类型在C语言源程序中能直接书写的、需要被处理的符号只有数和字符两种,这种符号称为C语言的数据。计算机程序只能处理已经存入计算机系统内存的数据,任何需要用计算机程序处理的信息都需要被转换为内存中的数据才能被处理。计算机系统的内存是按字节编址的,在内存里存放一个数据所需要的内存字节数称为一个数据所需要的内存空间,程序中不同的数据在系统内存中所要求的存储空间大小也不一样,因而在程序设计中需要区分所处理数据的数据类型。1.2C语言的基本数据类型常量和变量C源程序中直接书写的数据称为常量,存放一个数据所需要的内存空间称为变量,内存空间中存放的数据内容称为变量值。常量数据在源程序中给定后,在程序的整个执行过程中保持不变。而变量在程序的执行过程中是一个其值可以被程序修改的量。是一个变化的量。
1.2.1C语言的整型数据类型
整型量1.整型常量
C语言源程序能直接书写的整型常量可以有三种形式:⑴十进制整数。如888、-123、0等。⑵八进制整数。以0开头的整数是八进制整型常量,如0777、-011等。⑶十六进制整数。以0x开头的整数是十六进制整型常量,如0x123、0xff等。在字长为16位计算机系统中,整型数据表示的范围为-32768~32767(-215~215-1);在字长为32位的计算机系统中,则表示的数据范围为-231~231-1。1.2.1C语言的整型数据类型
2.整型变量存放整型数据的内存空间称为整型变量,C语言提供了基本整型、短整型、长整型和无符号整型四种大小不同的单位空间来存放整形数据。
类型名
意义
字节数
精度范围short短整型2-32767~32768int
基本整型
4-2147483647~2147483648long长整型4-2147483647L~2147483648Lunsignedshort无符号短整型20~65535unsignedint无符号基本整型40~4294967295UUnsignedlong无符号长整型40~4294967295UL1.2.2C语言的实型数据类型
实型量1.实型常量在C语言源程序中能直接书写的实型数,称为实型常量。实型数在C语言中又称为浮点数,实型常数有两种表示形式:⑴实数形式:实数形式由数字和小数点组成。如:888.88,0.88等。⑵指数形式:数据由数字0~9、小数点和表示阶码的标志“e”或“E”组成,其组成形式一般为:整数部分.小数部分E指数部分如123e5表示123×105,123e-5表示123×10-5。1.2.2C语言的实型数据类型在使用实型数的指数表示形式时应该注意下面两点:⑴指数部分只能是整数而不能用实数表示,如123E1.5是错误的表示方法。⑵字母“e”或“E”之前的尾数部分不能省略,如10-8不能只写为E-8,而应该写成为1E-8(或者1e-8).
1.2.2C语言的实型数据类型2.实型变量C源程序文件中存放实型数据的数据对象称为实型变量。C语言中的实型变量按其表示的数据范围不同和精度不同分为单精度型和双精度型,其类型名分别为float和double。
1.2.3C语言的字符型数据类型
字符量在C语言源程序中直接书写的、需要被处理的字符就是字符常量。同样,用于存放这个字符的内存空间就是字符变量。
1.字符常量
⑴普通字符:普通字符是由单引号括起来的一个可打印字符,如’a’、’?’、’A’等。
⑵转义字符:转义字符是由反斜杠’\’开头的字符序列,此时反斜杠字符后面的字符或字符序列不表示自己本身的含义而转变为表示另外的特定意义。
1.2.3C语言的字符型数据类型2.字符变量字符类型变量用以存储和表示一个字符,占用一个字节。字符型变量的定义形式如下:char<变量列表>;例如:charch; (定义变量ch为字符型变量)在C语言中字符型变量和整型变量是兼容的,系统中存储的是对应字符的ASCII码值,因此在C语言中字符数据和整数之间可以通用,即字符型数据可以与整型数据一起参与运算,但在使用时要注意其表示的合理范围(0~255范围内的整数)1.2.4变量的初始化
变量的初始化指的是为变量第一次赋值。在C语言中变量初始化的方法有两种,一是在程序的执行过程中通过赋值运算符实现赋值;二是在定义变量的同时为变量赋初值。C语言中,定义变量的同时对其初始化的一般形式为:
<数据类型符><变量>=<初始值>;例如inta,x1=100;longb,x2=100L;floatc,x3=100.30;doublex4=100.5;charch=’A’;
第一章C语言数据描述和C程序设计初步C程序的基本结构C语言的基本数据类型基本运算符和表达式不同类型数据混合运算及数据转换C程序设计初步1.3基本运算符和表达式
在完成数据存入内存后,需要对这些数据做相关的处理或运算,以得到我们所需要的结果。C语言提供了多种运算符号,通过由这些运算符组合成表达式和表达式语句对数据进行处理。这些运算符是C语言规定的。各个运算符有各自的意义。1.算术运算符2.关系运算符3.逻辑运算符4.赋值运算符5.条件运算符6.位运算符7.逗号运算符8.指针运算符9.其它运算符1.3基本运算符和表达式一些运算符只需要一个运算对象(操作数),这种运算符称为单目运算符;另外一些运算符需要两个运算对象,这些运算符称为双目运算符;还有比较特殊的运算符需要三个运算对象,称这种运算符为三目运算符。运算符的优先级和结合性优先级表明计算顺序,计算的先后关系结合性表明计值方向。左结合(从左到右)和右结合(从右到左)。
1.3.1算术运算符和算术表达式
C语言提供了加,减、乘、除和求模·五种算术运算符,对应的符号分别是:+、-、*、/和%。这些运算符都需要两个运算对象,称为两目运算符。而且是从左到右的运算顺序,称为左结合性。除求模运算符外,满足数据的正、负符号规则。例如:3+2结果为5,3*(-5)结果为–15.①当两个整数相除时,得到的结果仍然是整数。既取整运算。例如:7/5结果为1,-7/5结果为-1,3/5结果为0.②求模运算就是求余数,参加求模运算的两个对象必须都是整型对象,运算结果的符号与第一个运算对象相同。例如:7%5结果为2,-7%5结果为-2,7%(-5)=2。1.3.1算术运算符和算术表达式由算术运算符和括号将运算对象连接起来的、符合C语言语法规则的算术表达形式称为C语言的算术表达式。运算对象包括常量、变量、函数、表达式等,值得注意的是单个的常量、变量或函数名本身也是表达式。如:a*b/c-1.5+‘a’是一个合法的表达式。而表达式a+b-2.3%6就不是一个合法的C语言表达式。优先级高()函数++、--*、/、%+、-优先级低例1-5算术运算符使用示例。1.3.2赋值运算符和赋值表达式C语言规定符号“=”为赋值运算符,由“=”连接的表达式称为赋值表达式。赋值表达式的书写格式为赋值运算符左边只能是一个变量,右边是一个表达式,格式如下:变量名=表达式
其意义为:将赋值运算符右边的表达式的值存入左边变量名所指定的单位内存空间中,替换掉以前的值。或简述为将表达式的值赋给变量。
例如a=10的意义是将整型数10赋给变量a作为其值;y=x+110的意义是先计算x+110的值,然后将它赋给变量y作为其值。1.3.2赋值运算符和赋值表达式当赋值运算符两边的数据对象类型不一致时,在赋值时要进行数据类型的转换。转换的基本规则是以赋值运算符左边变量的数据类型为准。例如有如下程序段:inta;floatx=10.5f,y=10.6f;a=x+y;执行这段程序时,首先计算出算术表达式x+y的值为:21.1,然后将该值用截取法取整得到21后再赋值给左边的整型变量a,使得a的值为整数21。
1.3.2赋值运算符和赋值表达式C语言程序中,能执行操作运算的只有语句。表达式的功能只能在语句里才能被实现。而单独的表达式是不合法和不被执行的。
赋值语句由赋值表达式加上C语句结尾符号分号“;”构成,其一般形式为:<赋值表达式>;
或变量名=表达式;例如:a=x+y是赋值表达式,而a=x+y;则是赋值语句注意:1.赋值运算符的左边必须为变量,不能为常量或表达式。2.赋值运算符的优先级低于逻辑运算符、关系运算符、算术运算符。其结合性为从右至左(即:右结合性)。3.在C语言中,赋值表达式可以作为一个对象出现在另外的表达式中。
例1-6赋值运算符和赋值表达式使用示例。
1.3.3自反运算符
复合赋值符:凡是双目运算符都可以与赋值运算符一起组成复合赋值符,其结合性为右结合性。这些复合赋值符共有10个,它们是:+=、-=、*=、/=、%=、<<=、>>=、&=、^=、|=自反运算符:赋值运算符“=”的左边加上算术运算符之一而构成的运算符,称为自反运算符。它有两种运算,即算术运算和赋值。是一种“复合运算符”。1.3.3自反运算符例如: a+=5 相当于 a=a+5 x*=y+1 相当于 x=x*(y+1) x%=y-5 相当于 x=x%(y-5)注意:自反运算符的结合性为右结合性,自反运算符的优先级和赋值运算符一致。
例1-7自反运算符使用示例。 例1-8自反运算符的结合性示例。
1.3.4自增、自减运算符
自增运算符“++”和自减运算符“--”是两个单目运算符,其功能是将运算对象的值增加或减少一个该对象的单位值。
⑴自增运算符和自减运算符都可以作用于整型变量、实型变量或者字符型变量。⑵自增运算符和自减运算符不能作用于常量数据或者表达式。例如下面的语句序列存在着错误: inta=100; --(a+100);/*试图对表达式a+100施加自减运算*/300++; /*试图对整型常数300施加自增运算*/1.3.4自增、自减运算符⑴自增、自减运算符的前缀形式前缀形式即自增、自减运算符(++、--)出现在变量的左侧,如:++i、--i。自增、自减运算符的前缀形式对变量实施的运算是“先增/减值后引用”。⑵自增、自减运算符的后缀形式后缀形式即自增、自减运算符(++、--)出现在变量的右侧,如:i++、i--。自增、自减运算符的后缀形式对变量实施的运算是“先引用后增/减值”。 例1-9自增、自减运算符使用示例。
1.3.5逗号运算符和逗号表达式
逗号运算符是C语言中提供的一种特殊运算符。逗号运算符用于将两个以上的表达式连接成一个逗号表达式。逗号表达式的一般形式为:<表达式1>,<表达式2>,…,<表达式n>逗号运算符是C语言所有运算符中级别最低的运算符,其结合性为左结合性。逗号表达式在求值时,按从左到右的顺序分别计算各表达式的值,用最后一个表达式的值和数据类型来表示整个逗号表达式的值和数据类型。例如,逗号表达式a=1,b=a-4,c=b+2;等价于以下3个有序语句:a=1;b=a-4;c=b+2;
例1-10逗号运算符和逗号表达式使用示例。需要注意的是,在C程序中并不是任何地方出现的逗号都是逗号运算符,逗号在许多地方也作为分隔符用以分隔若干个对象。
1.3.6sizeof运算符
sizeof运算符是C语言特有的一个运算符,运算符使用形式为:sizeof(<数据对象>)其中,数据对象既可以是某个具体的变量名,也可以是某种数据类型的常量,还可以是某种数据类型的名字,甚至于还可以是一个合法的C表达式。sizeof运算符的功能是返回其所测试的数据对象所占存储单元的字节数。 例1-11sizeof运算符使用示例。 例1-12sizeof运算符使用示例。
1.3.7运算符优先级别和结合性规则
将表达式中的各种运算符运算的先后顺序规定为15个由低到高的优先级别,同时还为运算符规定了结合性。在表达式求值时,若运算对象两边的运算符优先级不同,按优先级别从高到低运算。若运算对象两边的运算符优先级相同,则按其结合规则处理,对于表达式而言同级运算并不是都遵从从左到右的原则。C运算符有两种结合性,即左结合性和右结合性。 例1-13右结合性运算符使用示例。
第一章C语言数据描述和C程序设计初步C程序的基本结构C语言的基本数据类型基本运算符和表达式不同类型数据混合运算及数据转换C程序设计初步1.4不同类型数据混合运算及数据转换
不同数据类型隐式转换
隐式转换是系统的自动转换,数据类型转换的原则是向表达数据能力更强的方向转换。即当在表达式运算过程中出现了不同数据类型的数据进行混合运算时,系统先自动按图1.4所示的规则将参加运算的数据对象转换成同一类型的数据再进行运算。 例1-14表达式混合运算中的自动数据类型转换示例。高double←float↑long↑unsigned↑低int←short,char图1.4系统自动数据类型转换规则1.4不同类型数据混合运算及数据转换不同数据类型显式转换
在C程序设计中,如果有需要可以对数据进行显式类型转换。显式转换又称为强制类型转换。显式类型转换的一般形式是: (类型名)(<表达式>)floatx=2.5;inta=10,m,n;m=a+(int)x; n=a+(int)(x+1.8);
特别注意:类型转换只对标注强制转换这一次起作用,在程序的其余地方,变量还保留其原有的值。例1-15表达式混合运算中的强制数据类型转换示例。第一章C语言数据描述和C程序设计初步C程序的基本结构C语言的基本数据类型基本运算符和表达式不同类型数据混合运算及数据转换C程序设计初步1.5C程序设计初步
1.5.1算法基本概念及算法描述1.5.2C语句概述
语句按其功能可以分为两大类: 表达式语句、流程控制语句。
表达式语句
⑴赋值语句赋值语句由赋值表达式接一个分号组成。例如 y=x+1;⑵函数调用语句函数调用语句由函数调用表达式后接一个分号组成。例如 printf(“Hello,World!\n”);⑶空语句空语句只由一个分号组成,它不进行任何操作(或者称之为进行空操作)。
1.5.2C语句概述流程控制语句
⑴条件语句if..else..⑵循环语句 forwhiledo..while⑶提前结束本次循环语句 continue⑷循环或多分支终止语句 break⑸无条件转移语句 goto⑹返回语句 return复合表达式语句C语言允许把一组语句括在花括号之中构成一个语句块,称之为复合语句。例如:
{charch;ch=getchar();putchar(ch);}1.5.3C程序的输出最基本的输出函数
C语言中没有提供输入和输出语句,其所有的输入输出均通过调用标准库函数来实现。C语言中的I/O类标准库函数的声明包含在头文件stdio.h中,所以在C程序源文件中开始位置应该加上如下包含编译预处理命令:#include"stdio.h"或#include<stdio.h>1.格式化输出函数——printf
C语言中的格式化标准输出函数为printf函数,函数调用的一般格式为:printf(“格式控制字符串”,输出表列);1.5.3C程序的输出最基本的输出函数函数的功能是:按“格式控制字符串”的要求向标准系统输出设备(显示器)输出一个或多个任意类型的数据。其中的输出表列由一到若干个输出表达式组成,两个输出表达式项之间用逗号分隔。格式控制字符串则由普通字符和格式控制项组成。⑴普通字符在格式控制字符串中,普通字符在输出时照原样输出,所谓原样输出指的是在给定的位置输出给定的字符。1.5.3C程序的输出最基本的输出函数 ⑵格式控制项 在格式化输出函数的格式控制字符串中,格式控制项与输出表列中的输出表项一一对应,用于规定或说明输出表项的输出格式。在格式控制项中,百分号(%)是格式控制项的引导符号,一个格式控制项以%开始到格式控制字符结束,中间含有若干个可选项。格式控制项的一般形式为: %-0*m.nl/h<格式控制字符>1.5.3C程序的输出最基本的输出函数控制字符控制字符意义d以十进制形式输出带符号整数(正数不输出符号)
o以八进制形式输出无符号整数(不输出前缀O)x以十六进制形式输出无符号整数(不输出前缀OX)u以十进制形式输出无符号整数
f以小数形式输出单、双精度实数
e以指数形式输出单、双精度实数
g以%f或%e中较短的输出宽度输出单、双精度实数
c输出单个字符
s输出字符串
1.5.3C程序的输出最基本的输出函数2.字符输出函数——putchar
字符输出标准库函数putchar的调用形式:putchar(输出对象);其中:输出对象可以是字符常量(包括转义字符)、字符变以及整型常量、整型变量等可以转换为字符数据的对象。函数的功能是将用输出对象表示的单个字符输出到标准输出设备(屏幕)上。例如:putchar('A'); /*输出大写字母A*/putchar(‘\n’);/*换行*/
例1-18字符数据输出示例。1.5.4C程序的输入-最基本的输入函数
1.格式化输入函数——scanf
C语言中的格式化标准输入函数为scanf,函数调用的一般格式为:scanf(“格式控制字符串”,地址表列);函数的功能是:按“格式控制字符串”的格式要求,从标准系统输入设备(键盘)上输入一个或多个指定类型的数据到由地址列表指定始地址的内存单元中。地址列表中的每一项为一个地址量,其形式是在一般变量之前加取地址运算符&。例如:设有变量x,则&x表示变量x的地址。
1.5.4C程序的输入-最基本的输入函数⑴格式控制字符串中的普通字符在格式控制字符串中,如果有普通字符存在,则在执行输入时需要照原样输入,即在指定的位置输入指定的字符。例如:scanf(“a=%d”,&a); scanf(“%d,%d”,&a,&b);⑵格式控制字符串中的格式控制项在格式化输入函数中,格式控制项与地址列表中的地址表项一一对应,用以指定对应项输入数据的输入格式。输入数据的格式控制项一般形式为:%*ml/h<格式控制字符>1.5.4C程序的输入-最基本的输入函数格式控制字符用于规定对应数据项的输入格式
控制字符控制字符意义d以十进制形式输入带符号整数(正数不输入符号)
o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 汽车车身涂装修复工岗位基础模拟考核试卷含答案
- 铁合金回转窑工岗前事故预防考核试卷含答案
- 水(油)压机锻造工安全规程水平考核试卷含答案
- 客服竞聘考试试题及答案
- 高浓度有机质厌氧发酵降解:机制、影响因素与应用拓展
- 高比容量普鲁士蓝基LIBs负极材料:制备、性能与前景探索
- 高校贫困生资助体系的深度审视与前瞻
- 高校科研项目全生命周期专利管理优化策略-以A大学为例
- 高校教育中同伴反馈的多维度探究与实践策略
- 高校岗位设置与分级聘任的优化路径探索-以H省A大学为样本
- 产后妈妈的乳房护理与保养
- 《低碳化海洋牧场建设技术规范》
- 民间借贷利息计算表
- 交通信号灯施工方案
- 中职数学-三角函数测试题二(含答案)
- 初高中衔接 英语学科讲座课件
- 胸腔镜手术介绍与治疗方法
- 大跨度钢结构厂房施工组织设计
- 高中数学校本研修报告(三篇)
- GB/T 14164-2013石油天然气输送管用热轧宽钢带
- MBA管理学培训讲座课件
评论
0/150
提交评论