内容正文:
专题二 赋值语句与格式化输入输出(讲义)
---《编程语言基础—C语言》专题复习讲练测
[考纲要求]
1:掌握赋值语句以及数据输入、输出语句的用法
[课时安排]
2课时
[知识梳理]
一:赋值语句
在C语言中,=并不意味着“相等”,而是一个赋值运算符。赋值语句是由赋值表达式和一个语句结束符(即分号“;”)组成。它的一般形式为:变量=表达式;
初始化变量就是为变量赋一个初始值。在C语言中,初始化可以直接在声明中完成。只需在变量名后面加上赋值运算符(=)和待赋给变量的值即可。例如:
1. int a = 21;
2. int b = 32, c = 14;
3. int d, e = 94; //只初始化了e,并未初始化d
简而言之,声明为变量创建和标记存储空间,并为其指定初始值。
把表达式的值赋给变量。赋值行为从右往左进行。赋值表达式语句的目的是把值储存到内存位置上。例如:
qyx = 2000;
把值2000赋给变量qyx。=号左侧是一个变量名,右侧是赋给该变量的值。符号“=”被称为赋值运算符。
在赋值的时候,“=”的右边也可以是表达式。例如:
qyx = 2000 + 9 + 11;
执行该语句时,先计算 2000 + 9 + 11的值为2020,再将2020存入变量qyx中。
下面还有常用的赋值语句形式:
qyx = qyx + 1;
该语句是将变量qyx的值2020取出(假设此时qyx的变量值为2020),将2020和1相加,再将计算后的结果2021再次存入变量qyx当中,即此时变量qyx的当前值为2021。
常见赋值语句形式总结:
格式
说明
a = 1;
将整数值“1”赋给变量a;
a = 1+2;
将表达式“1+2”的计算结果,即值“3”赋给变量a;
a = a + 1;
将变量a原值+1之后,再把值赋给变量a;
a = b = c = 1
将值“1”赋给变量c,再把c当中的值赋给变量b,再把b中的值赋给变量a。即此时a、b、c当中的值均为“1”;
赋值运算符=的作用是将右边表达式的值赋给左边的变量,因此赋值号=号左侧的项必须是一个变量名,而不能是常量或表达式。例如,在C语言中,类似这样的语句没有意义(实际上是无效的):
2000 = qyx;
a + b = 10;
最基本、最常用的是=,它把右侧表达式的值赋给左侧的变量。另外,由于C语言中还有一些复合赋值运算,如+=、-=、*=、/=等。
格式
说明
a+=2020;
a = a + 2020;
a-=2020;
a = a - 2020;
a*= b + c;
a = a * (b + c);
a/=2;
a = a/2;
赋值语句中的类型转换:
(1)自动类型转换:
在赋值表达式语句中,计算的最终结果会被转换成被赋值变量的类型。当赋值语句(或赋值运算表达式)中左边的变量与右边的表达式的数据类型不一致时,C编译系统会自动实现数据类型的转换。
转换原则是将赋值号右边的表达式的值的类型转换成与左边变量相同的类型后再赋值。例如:
1. int a;
2. short b;
3. char c;
4. a = b; //short类型变量b的值转换为int类型之后再赋给变量a;
5. b = c; //char类型变量c的值转换为short类型之后再赋给变量b;
6. a = b + c; //将b和c的值转换成int型后相加,再赋给变量a;
注意事项:
· 当左边变量的数据类型比右边的表达式的值类型长时,转换后的值不会改变精度或准确度,只是改变值的表现形式。
· 当右边的表达式值的类型比左边变量的数据类型长时,会对右边的数据进行截取,仅取出与左边变量类型相同的长度,意味着会丢失高位数据,可能会引起精度降低或出现错误的结果。
1. main()
2. {
3. double a = 3.1415;
4. int b = 290;
5. char c;
6. c = b; //整型数据赋给一个char类型变量时,将其低8位截断给char类型变量
7. b = a; //实型数据赋值给整型变量时,将实型数据的小数部分截断
8. a = b; //整型数据赋值给实型变量,数值不变,以浮点数形式存储到实型变量中
9. printf("a=%f,b=%d,c=%d", a, b, c);
10. return 0;
11. }
程序运行结果:
a=3.000000,b=3,c=34
在不同类型的混合运算中,编译器也会自动地转换数据类型,将参与运算的所有数据先转换为同一种类型,然后再进行计算。转换的规则如下:
①:若int型或float与double型数据进行运算,先将int型和float型转换为double型,