1、2023-1-301共共 47 47页页 第第 2 2 页页 程序程序设计的基本知识设计的基本知识共共 47 47页页 第第 3 3 页页2.1 2.1 程序程序设计的基本知识设计的基本知识二、什么是数据结构二、什么是数据结构l计算机的别名:计算机的别名:数据处理机数据处理机;l数据元素:数据元素:数据的最小单位数据的最小单位;l数据结构:数据结构:数据元素的组织形式数据元素的组织形式.把需要解决的问题用计算机能完全理解的方式描述给计算机。一、什么是程序设计一、什么是程序设计程序设计程序设计数据结构数据结构算法算法方法方法工具工具程序设计编程数据结构包括数据的逻辑结构和物数据结构包括数据的逻辑
2、结构和物理结构,它关系到软件或程序的复理结构,它关系到软件或程序的复杂程度。杂程度。共共 47 47页页 第第 4 4 页页l算法:算法:解决问题的方法和有限的步骤解决问题的方法和有限的步骤l计算机语言的别名:计算机语言的别名:算法语言算法语言 2R L,R2 S 三次乘法三次乘法 一次乘方一次乘方 R A,2A L,AR S 三次乘法三次乘法 2R L,RR S 四次乘法四次乘法 三、三、什么是算法什么是算法求圆周长和圆面积求圆周长和圆面积数学模型:数学模型:L L2 2 R R、S S R R2 2三种算法:三种算法:可读性好可读性好执行效率高执行效率高 综合综合的优点的优点 2.1 2.
3、1 程序程序设计的基本知识(续)设计的基本知识(续)共共 47 47页页 第第 5 5 页页算法的表示算法的表示-流程图流程图开始开始s=0,a=0输入输入ns=s+aa=a+1ab)?a:b目目不同类型的变量不同类型的变量,所所允许的操作不同允许的操作不同单目运算符单目运算符双目运算符双目运算符三目运算符三目运算符 2.4 2.4 算术运算与赋值运算算术运算与赋值运算(续)续)共共 47 47页页 第第 3232 页页*优先级优先级:运算符的执行顺序运算符的执行顺序 *结合性结合性:优先级相同时的结合方向优先级相同时的结合方向*运算结果的类型运算结果的类型X=5+8a100X=a+b*ca+
4、b-c572a=b=5单目运算符的优先级高于双目运算符单目运算符的优先级高于双目运算符单目运算符从右向左结合单目运算符从右向左结合双目运算符从左向右结合双目运算符从左向右结合 2.4 2.4 算术运算与赋值运算算术运算与赋值运算(续)续)共共 47 47页页 第第 3333 页页2.4.2 算术运算符和算术表达式算术运算符和算术表达式1.共有共有5个个:+,-,*,/,%2“-”作为作为 负号时为单目负号时为单目单目单目:-双目双目:*,/,%双目双目:+,-4.优先级优先级:5.结合性结合性:从左向右从左向右 3.%运算只适用于运算只适用于整型数整型数取模(求余数)取模(求余数)a=10%4
5、a的值为的值为2 2.4 2.4 算术运算与赋值运算算术运算与赋值运算(续)续)共共 47 47页页 第第 3434 页页2.4.3 自增、自减运算符自增、自减运算符1.变量自身加(减)变量自身加(减)1 k=k+1k+先使用变量先使用变量k的值,再加的值,再加 1+k 先加先加1,再使用变量,再使用变量 k的值的值 k=k-1k-先使用变量先使用变量k的值,再减的值,再减 1-k 先减先减1,再使用变量,再使用变量k 的值的值 k=3;printf(“%d”,k+);输出输出 3 后后,k 的值为的值为 4i=3;printf(“%d”,+i);输出输出4 2.4 2.4 算术运算与赋值运算
6、算术运算与赋值运算(续)续)共共 47 47页页 第第 3535 页页2.只能用于只能用于变量变量,不能用于,不能用于表达式表达式和和常量常量3.优先级:优先级:高高于双目算术运算符于双目算术运算符4.结合性:结合性:从右向左从右向左(i+k)+,-3i=3;k=i+i+i+;i=3;k=+i+(+i)+(+i);2.4 2.4 算术运算与赋值运算算术运算与赋值运算(续)续)共共 47 47页页 第第 3636 页页 main()int a,b,s ;a=5;b=5;s=a+b;printf(“%d,%d,%dn”,a,b,s);s=a+b;printf(“%d,%d,%dn”,a,b,s);
7、s=+a+b;printf(“%d,%d,%dn”,a,b,s);s=-a+b;printf(“%d,%d,%dn”,a,b,s);s=a-+b;printf(“%d,%d,%dn”,a,b,s);s=a+b;printf(“%d,%d,%dn”,a,b,s);2.4 2.4 算术运算与赋值运算算术运算与赋值运算(续)续)共共 47 47页页 第第 3737 页页s=a +b;s=a+b;s=+a+b;s=-a +b;s=a-+b;s=a +b;a=5,b=55+5=105+5=107+5=126+5=116+5=115+5=10 a b s5 5 106 5 107 5 126 5 115
8、5 115 5 10 2.4 2.4 算术运算与赋值运算算术运算与赋值运算(续)续)共共 47 47页页 第第 3838 页页2.4.4 赋值运算符赋值表达式赋值运算符赋值表达式1.将一个常量或一个表达式的值赋给一个变量称为赋值将一个常量或一个表达式的值赋给一个变量称为赋值x=5 y=x+10 2.可以将一个实型赋给一个整型,或将一个整型赋给一个可以将一个实型赋给一个整型,或将一个整型赋给一个实型实型int x,x=5.3;x的值为的值为 5float y,y=5;y的的值为值为 5.0000003.赋值运算的优先级赋值运算的优先级比算术运算低比算术运算低4.赋值运算的结合性赋值运算的结合性从
9、右向左从右向左X=y=5 2.4 2.4 算术运算与赋值运算算术运算与赋值运算(续)续)共共 47 47页页 第第 3939 页页2.4.6 复合赋值运算符和复合赋值表达式复合赋值运算符和复合赋值表达式赋值运算符两侧出赋值运算符两侧出现相同的变量现相同的变量x=x+nx=x-nx=x*nx=x/nx=x%nx+=nx-=nx*=nx/=nx%=n算术运算与赋算术运算与赋值运算相结合值运算相结合X与与n均均为整数为整数x=x+nn 为常数为常数 2.4 2.4 算术运算与赋值运算算术运算与赋值运算(续)续)x+=n共共 47 47页页 第第 4040 页页main()int a,b,c,d,e;
10、a=2;b=5;c=6;d=10;a+=b;b-=c;c*=d;d/=a;a%=c;printf(“%d,%d,%d,%dn”,a,b,c,d);7,-1,60,1 2.4 2.4 算术运算与赋值运算算术运算与赋值运算(续)续)共共 47 47页页 第第 4141 页页一、逗号运算符一、逗号运算符(表达式表达式 1,表达式表达式 2,表达式表达式 3,表达式表达式 n)用于连接几个表达式用于连接几个表达式 二、求解过程二、求解过程顺序求解几个表达式顺序求解几个表达式三、优先级三、优先级逗号运算符的优先级最低逗号运算符的优先级最低四、结合性四、结合性从左向右从左向右五、逗号表达式五、逗号表达式逗
11、号表达式的值为最后一个表达逗号表达式的值为最后一个表达式的值式的值(表达式表达式n 的值的值)X=(a=4*5,a*2),a+6)a为为?x为为?2.5 2.5 逗号运算逗号运算2.5.1 逗号运算符逗号运算符共共 47 47页页 第第 4242 页页 2.6 2.6 混合运算及数据类型转换混合运算及数据类型转换 不同数据类型需先转换成同一类型不同数据类型需先转换成同一类型,然后进行运算然后进行运算自动进行自动进行-隐式转换隐式转换强制进行强制进行-显式转换显式转换一、隐式转换(算术转换)一、隐式转换(算术转换)级别低的向级别高的转换级别低的向级别高的转换double floatlong un
12、signed int char,shortint i;float f;double d;long e;表达式:表达式:10+a+i*f-d/e 的结果为:的结果为:double共共 47 47页页 第第 4343 页页二、显式转换(强制转换)二、显式转换(强制转换)(int)(10-+a+i*f-d/e)将该结果强制转换为整型将该结果强制转换为整型若有:若有:int i;float f;则则(int)f%i取模运算要求运算分量是取模运算要求运算分量是整数整数,所以,所以先将先将 f 转换为整型转换为整型,再做再做%运算。运算。三、赋值转换三、赋值转换 赋值符号右边的类型向左边的转换赋值符号右边
13、的类型向左边的转换int x;float y=5.3;x=y;int x=5;float y;y=x;2.6 2.6 混合运算及数据类型转换(续)混合运算及数据类型转换(续)共共 47 47页页 第第 4444 页页一一 、C中的基本数据类型,每一种类型的定义方式中的基本数据类型,每一种类型的定义方式(关键字(关键字),在存储空间中所占的字节数,存储形式,取值范围。在存储空间中所占的字节数,存储形式,取值范围。二、二、C中的运算符的几个要点(功能,与运算分量的关系,优中的运算符的几个要点(功能,与运算分量的关系,优 先级先级,结合性,运算结果的类型,结合性,运算结果的类型)。)。三三、算术运算
14、符中的、算术运算符中的%只使用在只使用在int类型。类型。四、四、自增,自减运算的特点,灵活使用自增,自减运算的特点,灵活使用k+,+k。五五、复合的赋值运算规则。、复合的赋值运算规则。七、七、不同类型数据转换时的优先顺序不同类型数据转换时的优先顺序八、单目运算,双目运算的优先级和结合性特点八、单目运算,双目运算的优先级和结合性特点共共 47 47页页 第第 4545 页页二二、补充习题:补充习题:1、C语言规定,在源文件中,语言规定,在源文件中,main()()的位置的位置:()A、必须在最开始必须在最开始 B、必须在库函数后必须在库函数后 C、可以在任意位置可以在任意位置 D、必须在所有函
15、数最后必须在所有函数最后2、一个、一个C程序的执行是从:程序的执行是从:()A、从主函数开始,在主函数中结束;从主函数开始,在主函数中结束;B、从第一个函数开始,到最后一个函数结束;从第一个函数开始,到最后一个函数结束;C、从主函数开始,到最后一个函数结束;从主函数开始,到最后一个函数结束;D、从第一个函数开始,到主函数中结束。从第一个函数开始,到主函数中结束。3、下面选项中,全为不合法的用户标识符的选项是:、下面选项中,全为不合法的用户标识符的选项是:()一、课后习题(一、课后习题(P41 3、6、7、9、10、12)共共 47 47页页 第第 4646 页页A)、A B)、float C)
16、、b-a D)、-123 p_0 1a0 goto temp do _a int INT 4、以下叙述种不正确的是:以下叙述种不正确的是:()A、在在C程序中,逗号运算符优先级最低;程序中,逗号运算符优先级最低;B、在在C程序中,程序中,AHP和和ahp代表两个不同的变量;代表两个不同的变量;C、若变量若变量a、b类型相同,则表达式类型相同,则表达式a=b是将是将b的值放入的值放入a中,而中,而b不变;不变;D、输入数据时,整型变量只能输入整数,实型变量则只能输入实数。输入数据时,整型变量只能输入整数,实型变量则只能输入实数。5、设有说明:、设有说明:char w;int x;float y;
17、double z;则表达式:则表达式:w*x+z-y的值的类型为的值的类型为:()A、float B、char C、int D、double共共 47 47页页 第第 4747 页页6、在在C语言中,语言中,int型数据在内存中占用型数据在内存中占用2字节存储单元,则字节存储单元,则int型数型数据的取值范围为:据的取值范围为:_。7、若若a为为int型变量,则如下表达式的值为:型变量,则如下表达式的值为:_。(a=4*5),a+=5,a+68、若有如下定义:若有如下定义:int b=7;float a=2.5,c=4.7;则表达式则表达式:a+(int)(b/3*(a+c)/2)%4 的值为:的值为:_。